anentrypoint-design 0.0.208 → 0.0.209
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app-shell.css +234 -84
- package/chat.css +99 -26
- package/colors_and_type.css +34 -1
- package/dist/247420.css +366 -111
- package/dist/247420.js +14 -14
- package/package.json +4 -2
- package/src/components/agent-chat.js +8 -2
- package/src/components/chat.js +26 -9
- package/src/components/content.js +28 -3
- package/src/components/context-pane.js +9 -9
- package/src/components/files-modals.js +3 -3
- package/src/components/files.js +21 -5
- package/src/components/freddie.js +25 -25
- package/src/components/sessions.js +37 -23
- package/src/components/shell.js +7 -1
- package/src/components/theme-toggle.js +12 -5
package/chat.css
CHANGED
|
@@ -20,6 +20,13 @@
|
|
|
20
20
|
.agentchat-controls .select,
|
|
21
21
|
.agentchat-controls [role="combobox"] { min-width: 130px; max-width: 240px; }
|
|
22
22
|
.agentchat-controls .ds-select { min-width: 130px; max-width: 240px; }
|
|
23
|
+
/* One shared control metric for the most-seen chrome row (mirrors the
|
|
24
|
+
.ds-dash-toolbar precedent): selects, buttons, export acts all 32px / r-1. */
|
|
25
|
+
.agentchat-controls .ds-select { min-height: 32px; padding: 4px 28px 4px 10px; font-size: var(--fs-sm); border-radius: var(--r-1); }
|
|
26
|
+
.agentchat-controls .btn, .agentchat-controls .btn-primary { padding: 5px 12px; min-height: 32px; border-radius: var(--r-1); font-weight: 500; }
|
|
27
|
+
@media (pointer: coarse) {
|
|
28
|
+
.agentchat-controls .ds-select, .agentchat-controls .btn, .agentchat-controls .btn-primary { min-height: 44px; }
|
|
29
|
+
}
|
|
23
30
|
|
|
24
31
|
/* Narrow viewports: let the agent/model selects share the row two-up, then
|
|
25
32
|
stack full-width on the smallest screens, and drop the status to its own
|
|
@@ -42,7 +49,7 @@
|
|
|
42
49
|
gap: .4em;
|
|
43
50
|
white-space: nowrap;
|
|
44
51
|
margin-left: auto;
|
|
45
|
-
font-size:
|
|
52
|
+
font-size: var(--fs-tiny);
|
|
46
53
|
color: var(--fg-3);
|
|
47
54
|
}
|
|
48
55
|
/* status disc — a CSS-drawn dot, not a glyph; pulses while streaming */
|
|
@@ -68,7 +75,7 @@
|
|
|
68
75
|
display: flex;
|
|
69
76
|
align-items: center;
|
|
70
77
|
gap: var(--space-2, 8px);
|
|
71
|
-
font-size:
|
|
78
|
+
font-size: var(--fs-tiny);
|
|
72
79
|
color: var(--fg-3);
|
|
73
80
|
flex-wrap: wrap;
|
|
74
81
|
}
|
|
@@ -109,7 +116,7 @@
|
|
|
109
116
|
gap: .5em;
|
|
110
117
|
}
|
|
111
118
|
.agentchat-title { font-size: 1em; margin: 0; }
|
|
112
|
-
.agentchat-sub { font-size:
|
|
119
|
+
.agentchat-sub { font-size: var(--fs-tiny); color: var(--fg-3); }
|
|
113
120
|
/* Thread wrapper hosts the absolutely-positioned jump-to-latest button. */
|
|
114
121
|
.agentchat-thread-wrap { position: relative; flex: 1; min-height: 0; display: flex; flex-direction: column; }
|
|
115
122
|
.agentchat-thread {
|
|
@@ -125,7 +132,7 @@
|
|
|
125
132
|
.agentchat-jump {
|
|
126
133
|
position: absolute; right: 16px; bottom: 12px; z-index: 3;
|
|
127
134
|
display: none; align-items: center; gap: .35em;
|
|
128
|
-
padding: .4em .8em; font: inherit; font-size:
|
|
135
|
+
padding: .4em .8em; font: inherit; font-size: var(--fs-tiny); cursor: pointer;
|
|
129
136
|
border-radius: 999px; border: var(--bw-hair) solid var(--rule);
|
|
130
137
|
background: var(--bg-2); color: var(--fg-2, var(--fg));
|
|
131
138
|
box-shadow: 0 2px 8px color-mix(in srgb, var(--fg) 14%, transparent);
|
|
@@ -169,7 +176,7 @@
|
|
|
169
176
|
max-width: 46ch;
|
|
170
177
|
}
|
|
171
178
|
.agentchat-empty-title { margin: 0; font-size: 1.05em; color: var(--fg-2, var(--fg)); }
|
|
172
|
-
.agentchat-empty-sub { margin: 0; font-size:
|
|
179
|
+
.agentchat-empty-sub { margin: 0; font-size: var(--fs-sm); }
|
|
173
180
|
.agentchat-empty-suggestions {
|
|
174
181
|
display: flex;
|
|
175
182
|
flex-wrap: wrap;
|
|
@@ -180,7 +187,7 @@
|
|
|
180
187
|
.agentchat-empty-suggestion {
|
|
181
188
|
cursor: pointer;
|
|
182
189
|
font: inherit;
|
|
183
|
-
font-size:
|
|
190
|
+
font-size: var(--fs-tiny);
|
|
184
191
|
padding: .4em .8em;
|
|
185
192
|
border-radius: 999px;
|
|
186
193
|
border: 1px solid color-mix(in srgb, var(--fg) 16%, transparent);
|
|
@@ -200,7 +207,7 @@
|
|
|
200
207
|
text-align: left;
|
|
201
208
|
width: 100%;
|
|
202
209
|
}
|
|
203
|
-
.agentchat-install-text { margin: 0; font-size:
|
|
210
|
+
.agentchat-install-text { margin: 0; font-size: var(--fs-sm); color: var(--fg-3); }
|
|
204
211
|
.agentchat-install-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: var(--space-1, 4px); }
|
|
205
212
|
.agentchat-install-row {
|
|
206
213
|
display: flex; align-items: center; gap: var(--space-2, 8px);
|
|
@@ -241,7 +248,7 @@
|
|
|
241
248
|
gap: .5em;
|
|
242
249
|
padding: .3em .2em;
|
|
243
250
|
color: var(--fg-3);
|
|
244
|
-
font-size:
|
|
251
|
+
font-size: var(--fs-tiny);
|
|
245
252
|
}
|
|
246
253
|
.agentchat-working-text { color: var(--fg-3); }
|
|
247
254
|
/* Self-contained dots (chat-thinking-dots lives in a kit sheet not bundled
|
|
@@ -304,28 +311,40 @@
|
|
|
304
311
|
ConversationList — left-rail "Chats" column.
|
|
305
312
|
---------------------------------------------------------------------------- */
|
|
306
313
|
.ds-sessions { display: flex; flex-direction: column; min-height: 0; height: 100%; }
|
|
307
|
-
|
|
314
|
+
/* One row: quiet icon new-chat beside the search. The list's new-chat must not
|
|
315
|
+
repeat the rail's primary CTA - two identical green buttons on screen at
|
|
316
|
+
once read as a layout mistake, and the rail action already owns 'new'. */
|
|
317
|
+
.ds-session-head { flex: 0 0 auto; display: flex; flex-direction: row; align-items: center; gap: var(--space-2); padding: var(--space-3); border-bottom: var(--bw-hair) solid var(--bg-3); }
|
|
308
318
|
.ds-session-new {
|
|
309
|
-
display: flex; align-items: center;
|
|
310
|
-
|
|
311
|
-
|
|
319
|
+
display: inline-flex; align-items: center; justify-content: center; gap: 0;
|
|
320
|
+
flex: 0 0 auto; order: 2;
|
|
321
|
+
width: 36px; min-height: 36px; padding: 0;
|
|
322
|
+
background: transparent; color: var(--fg-2);
|
|
323
|
+
border: var(--bw-hair) solid var(--rule);
|
|
312
324
|
border-radius: var(--r-1); cursor: pointer; font-family: var(--ff-body);
|
|
313
|
-
font-size: var(--fs-sm); font-weight:
|
|
325
|
+
font-size: var(--fs-sm); font-weight: 500;
|
|
314
326
|
}
|
|
315
|
-
.ds-session-new
|
|
327
|
+
.ds-session-new > span { display: none; }
|
|
328
|
+
.ds-session-new:hover { background: var(--bg-2); color: var(--fg); }
|
|
329
|
+
.ds-session-search { order: 1; flex: 1 1 auto; min-width: 0; }
|
|
316
330
|
.ds-session-new:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
317
331
|
.ds-session-search {
|
|
318
|
-
width: 100%; padding: var(--space-
|
|
332
|
+
width: 100%; padding: var(--space-1) var(--space-3); min-height: 36px;
|
|
319
333
|
background: var(--bg-2); border: var(--bw-hair) solid var(--bg-3); color: var(--fg);
|
|
320
334
|
border-radius: var(--r-1); font-family: var(--ff-body); font-size: var(--fs-sm);
|
|
321
335
|
}
|
|
322
|
-
.ds-session-search:focus-visible { outline: 2px
|
|
336
|
+
.ds-session-search:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--accent); }
|
|
337
|
+
/* Touch floor (must FOLLOW the base rules - same specificity, order decides). */
|
|
338
|
+
@media (pointer: coarse) {
|
|
339
|
+
.ds-session-new { width: 44px; min-height: 44px; }
|
|
340
|
+
.ds-session-search { min-height: 44px; }
|
|
341
|
+
}
|
|
323
342
|
.ds-session-list, .ds-session-groups { flex: 1; min-height: 0; overflow-y: auto; padding: var(--space-2); }
|
|
324
343
|
/* Grouped rows (Today/Yesterday/...) lay out like the flat list; the section
|
|
325
344
|
label sticks to the top of the scroll area for Claude-Desktop-style headers. */
|
|
326
345
|
.ds-session-group { display: flex; flex-direction: column; }
|
|
327
346
|
.ds-session-group-rows { display: flex; flex-direction: column; gap: 2px; }
|
|
328
|
-
.ds-session-group-label { position: sticky; top: 0; z-index: 1; background: var(--bg-1, var(--bg)); font-size: var(--fs-tiny); color: var(--fg-3); text-transform: uppercase; letter-spacing:
|
|
347
|
+
.ds-session-group-label { position: sticky; top: 0; z-index: 1; background: var(--bg-1, var(--bg)); font-size: var(--fs-tiny); font-weight: 600; color: var(--fg-3); text-transform: uppercase; letter-spacing: var(--tr-caps); padding: var(--space-2) var(--space-2) var(--space-1); }
|
|
329
348
|
.ds-session-row {
|
|
330
349
|
position: relative; display: flex; align-items: center; gap: var(--space-2);
|
|
331
350
|
width: 100%; padding: var(--space-2); min-height: 52px; margin-bottom: 2px;
|
|
@@ -356,9 +375,22 @@
|
|
|
356
375
|
SessionDashboard — grid of live-session cards.
|
|
357
376
|
---------------------------------------------------------------------------- */
|
|
358
377
|
.ds-dash { display: flex; flex-direction: column; min-height: 0; }
|
|
359
|
-
.ds-dash-header { flex: 0 0 auto; display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--space-4) 0; }
|
|
378
|
+
.ds-dash-header { flex: 0 0 auto; display: flex; align-items: center; gap: var(--space-3); row-gap: var(--space-2); flex-wrap: wrap; padding: var(--space-3) var(--space-4) 0; }
|
|
360
379
|
.ds-dash-count { font-size: var(--fs-sm); color: var(--fg-2); font-weight: 600; }
|
|
361
|
-
|
|
380
|
+
/* Stop is a quiet destructive control in chrome, not a page-level red CTA;
|
|
381
|
+
it only goes loud while ARMED (the one-shot press-again confirm). */
|
|
382
|
+
.ds-dash-header .btn, .ds-dash-header .btn-primary {
|
|
383
|
+
margin-left: 0;
|
|
384
|
+
padding: 5px 12px; min-height: 32px; border-radius: var(--r-1); font-weight: 500;
|
|
385
|
+
}
|
|
386
|
+
.ds-dash-header .btn-primary.danger {
|
|
387
|
+
background: transparent; color: var(--warn);
|
|
388
|
+
border: var(--bw-hair) solid var(--warn);
|
|
389
|
+
}
|
|
390
|
+
.ds-dash-header .btn-primary.danger:hover {
|
|
391
|
+
background: color-mix(in oklab, var(--warn) 12%, transparent); color: var(--warn);
|
|
392
|
+
}
|
|
393
|
+
.ds-dash-header .btn-primary.danger.is-armed { background: var(--warn); color: var(--paper); border-color: var(--warn); }
|
|
362
394
|
.ds-dash-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--space-3); padding: var(--space-4); }
|
|
363
395
|
.ds-dash-card { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-3); background: var(--bg-2); border: var(--bw-hair) solid var(--bg-3); border-radius: var(--r-2); }
|
|
364
396
|
.ds-dash-card.is-error { border-color: var(--flame); }
|
|
@@ -385,7 +417,6 @@
|
|
|
385
417
|
---------------------------------------------------------------------------- */
|
|
386
418
|
.ds-context { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-3); }
|
|
387
419
|
.ds-context .panel { background: var(--bg-2); border: var(--bw-hair) solid var(--bg-3); border-radius: var(--r-2); }
|
|
388
|
-
.ds-context .row { font-size: var(--fs-sm); }
|
|
389
420
|
.ds-context .row .meta { font-family: var(--ff-mono); font-size: var(--fs-tiny); color: var(--fg-2); }
|
|
390
421
|
.ds-context .row .sub { font-family: var(--ff-mono); font-size: var(--fs-tiny); color: var(--fg-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
391
422
|
.ds-context-actions { display: flex; gap: var(--space-2); }
|
|
@@ -438,7 +469,18 @@ button.chat-composer-context:focus-visible { outline: 2px solid var(--accent); o
|
|
|
438
469
|
.ds-dash-status.is-running { color: var(--accent); }
|
|
439
470
|
|
|
440
471
|
/* --- C2: dashboard sort/filter toolbar + stream-state line. --- */
|
|
472
|
+
/* The toolbar is part of the ONE header row (count | heartbeat ... filter,
|
|
473
|
+
sort, errors-only, stop): compact controls that align on a shared 32px
|
|
474
|
+
height, never a stacked full-width form column. */
|
|
441
475
|
.ds-dash-toolbar { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; }
|
|
476
|
+
.ds-dash-toolbar .ds-search-input {
|
|
477
|
+
width: 200px; min-height: 32px; padding: 5px 10px;
|
|
478
|
+
font-size: var(--fs-sm); border-radius: var(--r-1);
|
|
479
|
+
}
|
|
480
|
+
.ds-dash-toolbar .ds-select, .ds-dash-toolbar select {
|
|
481
|
+
min-height: 32px; padding: 4px 10px; font-size: var(--fs-sm);
|
|
482
|
+
width: auto; border-radius: var(--r-1);
|
|
483
|
+
}
|
|
442
484
|
.ds-dash-stream { font-size: var(--fs-tiny); color: var(--fg-3); }
|
|
443
485
|
.ds-dash-stream.is-lost { color: var(--flame); }
|
|
444
486
|
.ds-dash-stream.is-connecting { color: var(--amber, #d9a93a); }
|
|
@@ -649,7 +691,7 @@ button.chat-composer-context:focus-visible { outline: 2px solid var(--accent); o
|
|
|
649
691
|
.chat-msg-flat.you { background: none; }
|
|
650
692
|
.chat-msg-flat .chat-stack { max-width: var(--measure); width: 100%; margin: 0; align-items: stretch; }
|
|
651
693
|
.chat-msg-flat.you .chat-stack { align-items: stretch; }
|
|
652
|
-
.chat-role { font-size: var(--fs-tiny); font-weight:
|
|
694
|
+
.chat-role { font-size: var(--fs-tiny); font-weight: 600; text-transform: uppercase; letter-spacing: var(--tr-caps); color: var(--fg-3); margin-bottom: var(--space-1); }
|
|
653
695
|
.chat-msg-flat.you .chat-role { color: var(--accent); }
|
|
654
696
|
.chat-msg-flat .chat-bubble { background: none; border: none; border-radius: 0; padding: 0; max-width: 100%; box-shadow: none; transform: none; }
|
|
655
697
|
.chat-msg-flat.you .chat-bubble { background: none; color: inherit; }
|
|
@@ -690,7 +732,7 @@ button.chat-composer-context:focus-visible { outline: 2px solid var(--accent); o
|
|
|
690
732
|
.chat-msg .chat-tool.tool-error .chat-tool-status { color: var(--flame); background: color-mix(in oklab, var(--flame) 12%, transparent); }
|
|
691
733
|
.chat-tool-body { border-top: var(--bw-hair) solid var(--rule); padding: var(--space-2) var(--space-3); display: flex; flex-direction: column; gap: var(--space-2); }
|
|
692
734
|
.chat-tool-section { display: flex; flex-direction: column; gap: var(--space-1); }
|
|
693
|
-
.chat-tool-section-label { font-size: var(--fs-
|
|
735
|
+
.chat-tool-section-label { font-size: var(--fs-tiny); font-weight: 600; text-transform: uppercase; letter-spacing: var(--tr-caps); color: var(--fg-3); }
|
|
694
736
|
.chat-tool-pre { margin: 0; padding: var(--space-2); background: var(--bg-2); border-radius: var(--r-1); font-family: var(--ff-mono); font-size: var(--fs-tiny); line-height: 1.45; overflow-x: auto; max-height: 320px; overflow-y: auto; }
|
|
695
737
|
.chat-tool-pre.is-error { color: var(--flame); }
|
|
696
738
|
.chat-tool-pre.chat-tool-empty { color: var(--fg-3); }
|
|
@@ -729,7 +771,7 @@ button.chat-composer-context:focus-visible { outline: 2px solid var(--accent); o
|
|
|
729
771
|
|
|
730
772
|
/* Live command-center: status-bucket groups + header breakdown + heartbeat. */
|
|
731
773
|
.ds-dash-group { display: flex; flex-direction: column; gap: var(--space-2); }
|
|
732
|
-
.ds-dash-group-label { font-size: var(--fs-
|
|
774
|
+
.ds-dash-group-label { font-size: var(--fs-tiny); font-weight: 600; text-transform: uppercase; letter-spacing: var(--tr-caps); color: var(--fg-3); padding: 0 var(--space-1); }
|
|
733
775
|
.ds-dash-breakdown { display: flex; align-items: center; gap: var(--space-1); font-size: var(--fs-sm); color: var(--fg-2); }
|
|
734
776
|
.ds-dash-breakdown .seg.is-running { color: var(--green); font-weight: 600; }
|
|
735
777
|
.ds-dash-breakdown .seg.is-error { color: var(--flame); font-weight: 600; }
|
|
@@ -755,9 +797,9 @@ button.chat-composer-context:focus-visible { outline: 2px solid var(--accent); o
|
|
|
755
797
|
.ds-preview-code .token.comment, .ds-preview-code .token.prolog, .ds-preview-code .token.doctype, .ds-preview-code .token.cdata { color: var(--fg-3); }
|
|
756
798
|
.ds-preview-code .token.punctuation { color: var(--fg-2); }
|
|
757
799
|
.ds-preview-code .token.property, .ds-preview-code .token.tag, .ds-preview-code .token.boolean, .ds-preview-code .token.number, .ds-preview-code .token.constant, .ds-preview-code .token.symbol { color: var(--purple-2, #7F18A4); }
|
|
758
|
-
.ds-preview-code .token.selector, .ds-preview-code .token.attr-name, .ds-preview-code .token.string, .ds-preview-code .token.char, .ds-preview-code .token.builtin { color: var(--
|
|
759
|
-
.ds-preview-code .token.atrule, .ds-preview-code .token.attr-value, .ds-preview-code .token.keyword { color: var(--
|
|
760
|
-
.ds-preview-code .token.function, .ds-preview-code .token.class-name { color: var(--flame); }
|
|
800
|
+
.ds-preview-code .token.selector, .ds-preview-code .token.attr-name, .ds-preview-code .token.string, .ds-preview-code .token.char, .ds-preview-code .token.builtin { color: var(--code-string, var(--green)); }
|
|
801
|
+
.ds-preview-code .token.atrule, .ds-preview-code .token.attr-value, .ds-preview-code .token.keyword { color: var(--code-keyword, var(--sky)); }
|
|
802
|
+
.ds-preview-code .token.function, .ds-preview-code .token.class-name { color: var(--code-fn, var(--flame)); }
|
|
761
803
|
.ds-preview-code.has-gutter { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0 var(--space-2); }
|
|
762
804
|
.ds-preview-code.has-gutter code { display: block; min-width: 0; overflow-x: auto; }
|
|
763
805
|
.ds-preview-gutter { user-select: none; text-align: right; padding: 0 var(--space-2) 0 0; color: var(--fg-3); border-right: var(--bw-hair) solid var(--rule); font-family: var(--ff-mono); white-space: pre; line-height: inherit; }
|
|
@@ -769,3 +811,34 @@ button.chat-composer-context:focus-visible { outline: 2px solid var(--accent); o
|
|
|
769
811
|
background-size: 16px 16px; background-position: 0 0, 0 8px, 8px -8px, -8px 0;
|
|
770
812
|
}
|
|
771
813
|
.ds-preview-media.is-actual { max-width: none; max-height: none; }
|
|
814
|
+
|
|
815
|
+
/* ----------------------------------------------------------------------------
|
|
816
|
+
Compact-button tiers — ONE spec for the small quiet rect buttons that eight
|
|
817
|
+
surfaces used to clone with drifting metrics/tones. chat.css loads after
|
|
818
|
+
app-shell.css in the bundle, so these same-specificity rules win by order.
|
|
819
|
+
Tier A (toolbar-grade, 32px) matches .ds-file-toolbar .btn, the reference;
|
|
820
|
+
tier B (inline-row-grade, 24px) for actions inside dense row strips.
|
|
821
|
+
Hover/focus/active-state rules on the originals still apply.
|
|
822
|
+
---------------------------------------------------------------------------- */
|
|
823
|
+
.row-act, .ds-dash-errors-toggle, .agentchat-export-act, .ds-file-more-btn {
|
|
824
|
+
min-height: 32px; padding: 5px 12px; border-radius: var(--r-1);
|
|
825
|
+
font-family: var(--ff-body); font-size: var(--fs-tiny); font-weight: 500;
|
|
826
|
+
background: transparent; border: var(--bw-hair) solid var(--rule); color: var(--fg-2);
|
|
827
|
+
cursor: pointer;
|
|
828
|
+
}
|
|
829
|
+
.row-act:hover, .ds-dash-errors-toggle:hover, .agentchat-export-act:hover, .ds-file-more-btn:hover {
|
|
830
|
+
background: var(--bg-2); color: var(--fg);
|
|
831
|
+
}
|
|
832
|
+
.agentchat-install-copy, .ds-upload-act, .ds-session-meta-copy {
|
|
833
|
+
min-height: 24px; padding: 2px 8px; border-radius: var(--r-1);
|
|
834
|
+
font-family: var(--ff-body); font-size: var(--fs-tiny);
|
|
835
|
+
background: transparent; border: var(--bw-hair) solid var(--rule); color: var(--fg-3);
|
|
836
|
+
cursor: pointer;
|
|
837
|
+
}
|
|
838
|
+
.agentchat-install-copy:hover, .ds-upload-act:hover, .ds-session-meta-copy:hover {
|
|
839
|
+
background: var(--bg-2); color: var(--fg);
|
|
840
|
+
}
|
|
841
|
+
@media (pointer: coarse) {
|
|
842
|
+
.row-act, .ds-dash-errors-toggle, .agentchat-export-act, .ds-file-more-btn,
|
|
843
|
+
.agentchat-install-copy, .ds-upload-act, .ds-session-meta-copy { min-height: 44px; }
|
|
844
|
+
}
|
package/colors_and_type.css
CHANGED
|
@@ -35,9 +35,21 @@
|
|
|
35
35
|
|
|
36
36
|
/* Signals */
|
|
37
37
|
--sun: #F5C344;
|
|
38
|
-
|
|
38
|
+
/* Error/status tones are theme-tuned: the root values are the LIGHT (paper)
|
|
39
|
+
pair (flame 4.74:1, amber 4.5+:1 on paper); the dark blocks below restore
|
|
40
|
+
the originals (#FF5A1F / #D9A93A) which were tuned on ink and fail on
|
|
41
|
+
paper (2.9:1 / 2.0:1). */
|
|
42
|
+
--flame: #C53E00;
|
|
43
|
+
--amber: #8A6512;
|
|
39
44
|
--sky: #3A6EFF;
|
|
40
45
|
--warn: #E0241A;
|
|
46
|
+
/* Syntax-token aliases: light values pass 4.5:1 on paper; the dark blocks
|
|
47
|
+
restore the bright dark-tuned originals. Components reference ONLY these. */
|
|
48
|
+
--code-string: var(--green);
|
|
49
|
+
--code-keyword: #2453C9;
|
|
50
|
+
--code-fn: #B84300;
|
|
51
|
+
--code-str-alt: var(--mascot-deep);
|
|
52
|
+
--code-num: #946300;
|
|
41
53
|
--danger: oklch(0.55 0.18 25);
|
|
42
54
|
--success: var(--green-2);
|
|
43
55
|
--live: var(--green);
|
|
@@ -246,6 +258,13 @@ select:focus-visible {
|
|
|
246
258
|
--accent-fg: var(--ink);
|
|
247
259
|
--accent-bright: var(--green-2);
|
|
248
260
|
--danger: oklch(0.68 0.19 25);
|
|
261
|
+
--flame: #FF5A1F;
|
|
262
|
+
--amber: #D9A93A;
|
|
263
|
+
--code-string: var(--green-2);
|
|
264
|
+
--code-keyword: var(--sky);
|
|
265
|
+
--code-fn: var(--flame);
|
|
266
|
+
--code-str-alt: var(--mascot);
|
|
267
|
+
--code-num: var(--sun);
|
|
249
268
|
}
|
|
250
269
|
|
|
251
270
|
/* NOTE: the [data-theme="auto"] block below intentionally duplicates the
|
|
@@ -272,6 +291,13 @@ select:focus-visible {
|
|
|
272
291
|
--accent: var(--accent-bright, var(--green-2));
|
|
273
292
|
--accent-fg: var(--ink);
|
|
274
293
|
--accent-bright: var(--green-2);
|
|
294
|
+
--flame: #FF5A1F;
|
|
295
|
+
--amber: #D9A93A;
|
|
296
|
+
--code-string: var(--green-2);
|
|
297
|
+
--code-keyword: var(--sky);
|
|
298
|
+
--code-fn: var(--flame);
|
|
299
|
+
--code-str-alt: var(--mascot);
|
|
300
|
+
--code-num: var(--sun);
|
|
275
301
|
}
|
|
276
302
|
}
|
|
277
303
|
|
|
@@ -310,6 +336,11 @@ select:focus-visible {
|
|
|
310
336
|
--cat-sun: inherit;
|
|
311
337
|
--cat-flame: inherit;
|
|
312
338
|
--cat-sky: inherit;
|
|
339
|
+
--code-string: inherit;
|
|
340
|
+
--code-keyword: inherit;
|
|
341
|
+
--code-fn: inherit;
|
|
342
|
+
--code-str-alt: inherit;
|
|
343
|
+
--code-num: inherit;
|
|
313
344
|
}
|
|
314
345
|
|
|
315
346
|
/* ============================================================
|
|
@@ -326,6 +357,8 @@ select:focus-visible {
|
|
|
326
357
|
--bg: var(--paper); --bg-2: var(--paper-2); --bg-3: var(--paper-3);
|
|
327
358
|
--fg: var(--ink); --fg-2: var(--ink-2); --fg-3: var(--ink-3);
|
|
328
359
|
--accent: var(--green); --accent-fg: var(--paper);
|
|
360
|
+
/* A paper island under a dark ancestor must not inherit the dark signal pair. */
|
|
361
|
+
--flame: #C53E00; --amber: #8A6512;
|
|
329
362
|
}
|
|
330
363
|
|
|
331
364
|
/* thebird — warm-paper brand preset. A first-class swappable theme: it lives
|