style(editor): theme-aware syntax tokens + match textarea metrics
Addresses Important #1 + #2 from the Task 3 code review: - Adds --color-string, --color-keyword, --color-number, --color-bg-popover-active to tokens.css in both the :root and dark blocks. GitHub-style palette tuned for legibility on each theme's surface. - Updates .editor-code to use the same padding tokens, font-family stack, font-size, and line-height as the existing textarea rule so the contenteditable doesn't visibly jump when the widget mounts. - Drops the caret-color override (browser default adapts to system theme — no token needed). Plan source block updated to match. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
75a586a47b
commit
f9c8518212
3 changed files with 19 additions and 13 deletions
|
|
@ -277,19 +277,18 @@ Create `l4d2web/l4d2web/static/css/editor.css`:
|
|||
display: block;
|
||||
width: 100%;
|
||||
min-height: 6em;
|
||||
padding: 0.5em 0.75em;
|
||||
font-family: var(--font-mono, ui-monospace, "SF Mono", Menlo, monospace);
|
||||
font-size: 0.95em;
|
||||
line-height: 1.45;
|
||||
color: var(--color-fg, #e6e6e6);
|
||||
background: var(--color-bg-input, #1b1b1b);
|
||||
padding: var(--space-s) var(--space-m);
|
||||
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.5;
|
||||
color: var(--color-text, #e6e6e6);
|
||||
background: var(--color-surface, #1b1b1b);
|
||||
border: 1px solid var(--color-border, #333);
|
||||
border-radius: var(--radius-input, 4px);
|
||||
border-radius: var(--radius-s, 4px);
|
||||
white-space: pre-wrap;
|
||||
word-break: break-word;
|
||||
overflow: auto;
|
||||
outline: none;
|
||||
caret-color: var(--color-caret, #fff);
|
||||
}
|
||||
|
||||
.editor-code:focus {
|
||||
|
|
|
|||
|
|
@ -18,10 +18,10 @@
|
|||
display: block;
|
||||
width: 100%;
|
||||
min-height: 6em;
|
||||
padding: 0.5em 0.75em;
|
||||
font-family: var(--font-mono, ui-monospace, "SF Mono", Menlo, monospace);
|
||||
font-size: 0.95em;
|
||||
line-height: 1.45;
|
||||
padding: var(--space-s) var(--space-m);
|
||||
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.5;
|
||||
color: var(--color-text, #e6e6e6);
|
||||
background: var(--color-surface, #1b1b1b);
|
||||
border: 1px solid var(--color-border, #333);
|
||||
|
|
@ -30,7 +30,6 @@
|
|||
word-break: break-word;
|
||||
overflow: auto;
|
||||
outline: none;
|
||||
caret-color: var(--color-caret, #fff);
|
||||
}
|
||||
|
||||
.editor-code:focus {
|
||||
|
|
|
|||
|
|
@ -13,6 +13,10 @@
|
|||
--color-focus: #2563eb;
|
||||
--color-log-bg: #f8fafc;
|
||||
--color-log-text: #18181b;
|
||||
--color-string: #0a3069;
|
||||
--color-keyword: #cf222e;
|
||||
--color-number: #0550ae;
|
||||
--color-bg-popover-active: #f3f4f6;
|
||||
|
||||
--space-base: 0.25rem;
|
||||
--space-xs: var(--space-base);
|
||||
|
|
@ -51,6 +55,10 @@
|
|||
--color-focus: #bfdbfe;
|
||||
--color-log-bg: #111827;
|
||||
--color-log-text: #e5e7eb;
|
||||
--color-string: #a5d6ff;
|
||||
--color-keyword: #ff7b72;
|
||||
--color-number: #79c0ff;
|
||||
--color-bg-popover-active: #374151;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue