.tui-code-editor { width: calc(100% - 2px); min-width: 0; border: 1px solid var(--td-component-stroke, #B8BBC9); display: flex; overflow: hidden; background: transparent; border-radius: var(--td-radius-medium, 0); .gutter { flex: none; color: var(--td-text-color-placeholder, #999); overflow: hidden; text-align: right; background: #F2F2F2E6; border-right: 1px solid var(--td-component-stroke, #B8BBC9); > span { width: 3.25rem; height: 1.5rem; display: block; font-size: 1rem; font-family: "JetBrains Mono", "Fira Code", Consolas, "Courier New", monospace; line-height: 1.5rem; padding-right: .25rem; } } .body { flex: 1; min-width: 0; min-height: 0; position: relative; overflow: hidden; } .search-bar { top: .5rem; right: .5rem; gap: .5rem; z-index: 3; display: flex; padding: .5rem; position: absolute; align-items: center; border-radius: var(--td-radius-default, .375rem); background: var(--td-bg-color-container, #fff); border: 1px solid var(--td-component-stroke, #B8BBC9); box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .12); } .search-input { width: 10rem; height: 2rem; padding: 0 .5rem; color: var(--td-text-color-primary, #111); border: 1px solid var(--td-component-stroke, #B8BBC9); background: var(--td-bg-color-container, #fff); border-radius: var(--td-radius-default, .375rem); font: inherit; } .search-actions { gap: .25rem; display: flex; align-items: center; } .search-button { height: 2rem; padding: 0 .625rem; color: var(--td-text-color-primary, #111); border: 1px solid var(--td-component-stroke, #B8BBC9); background: var(--td-bg-color-container, #fff); border-radius: var(--td-radius-default, .375rem); cursor: pointer; &:hover { background: var(--td-bg-color-container-hover, #f6f6f6); } } .search-status { color: var(--td-text-color-secondary, #666); white-space: nowrap; font-size: .875rem; } .preview, .input { inset: 0; width: 100%; height: 100%; margin: 0; tab-size: 4; overflow: auto; max-width: 100%; min-width: 0; line-height: 1.5rem; font-size: 1rem; box-sizing: border-box; font-family: "JetBrains Mono", "Fira Code", Consolas, "Courier New", monospace; } .preview { top: 0; left: 0; border: none; position: absolute; word-break: normal; background: transparent; transition: none; white-space: pre; border-radius: 0; pointer-events: none; code { padding: 0; display: block; width: max-content; min-width: 100%; min-height: 100%; color: inherit; background: transparent; text-shadow: none; font-size: inherit; line-height: inherit; font-family: inherit; } } .input { top: 0; left: 0; color: transparent; resize: none; border: none; outline: none; position: absolute; background: transparent; white-space: pre; word-break: normal; overflow-wrap: normal; caret-color: var(--td-text-color-primary, #111); -webkit-text-fill-color: transparent; } .input::placeholder { color: var(--td-text-color-placeholder, #999); -webkit-text-fill-color: var(--td-text-color-placeholder, #999); } .input::selection { background: rgb(0 122 255 / 18%); } &.disabled { opacity: .65; } &.readonly { .preview { pointer-events: auto; } } } @media (prefers-color-scheme: dark) { .tui-code-editor { border-color: var(--td-component-stroke, #434343); .gutter { border-right-color: var(--td-component-stroke, #434343); } .search-bar { background: var(--td-bg-color-container, #1f1f1f); border-color: var(--td-component-stroke, #434343); box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .28); } .search-input, .search-button { color: var(--td-text-color-primary, #F5F5F5); border-color: var(--td-component-stroke, #434343); background: var(--td-bg-color-container, #1f1f1f); } .search-button:hover { background: var(--td-bg-color-container-hover, #2b2b2b); } .input { caret-color: var(--td-text-color-primary, #F5F5F5); } .input::selection { background: rgb(64 153 255 / 28%); } } }