anentrypoint-design 0.0.292 → 0.0.294
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 +73 -57
- package/colors_and_type.css +22 -1
- package/dist/247420.css +95 -58
- package/dist/247420.js +15 -15
- package/package.json +1 -1
- package/src/components/agent-chat.js +1 -1
package/dist/247420.css
CHANGED
|
@@ -92,7 +92,11 @@
|
|
|
92
92
|
--accent-fg: var(--ink);
|
|
93
93
|
--accent-ink: var(--acid-deep);
|
|
94
94
|
--accent-bright: var(--acid); /* base value so var(--accent-bright) never falls back empty; ink + [data-accent] retune it */
|
|
95
|
-
--accent-
|
|
95
|
+
/* Blends --accent-ink (the readable/darker ink variant), not the raw
|
|
96
|
+
--accent fill, so light-theme active states clear contrast against --bg;
|
|
97
|
+
dark/ink and auto-dark restate the prior --accent-based value explicitly
|
|
98
|
+
below so this change does not leak into them via inheritance. */
|
|
99
|
+
--accent-tint: color-mix(in oklab, var(--accent-ink) 22%, var(--bg));
|
|
96
100
|
|
|
97
101
|
/* On-color foregrounds — text/icons that sit ON a saturated fill (accent,
|
|
98
102
|
danger, category chips). Theme-driven so white-on-color never hard-codes
|
|
@@ -329,6 +333,9 @@
|
|
|
329
333
|
--accent-fg: var(--ink);
|
|
330
334
|
--accent-ink: var(--acid); /* on ink, the lime itself reads as bright text */
|
|
331
335
|
--accent-bright: var(--acid);
|
|
336
|
+
/* Preserves the prior --accent-based blend for dark; the :root light-theme
|
|
337
|
+
value above was retuned to blend --accent-ink instead. */
|
|
338
|
+
--accent-tint: color-mix(in oklab, var(--accent) 30%, var(--bg));
|
|
332
339
|
--danger: oklch(0.68 0.19 25);
|
|
333
340
|
--flame: #FF5A1F;
|
|
334
341
|
--amber: #D9A93A;
|
|
@@ -343,6 +350,14 @@
|
|
|
343
350
|
--code-num: var(--sun);
|
|
344
351
|
}
|
|
345
352
|
|
|
353
|
+
/* Restores the pre-existing (weaker) dark-theme selection tint after the
|
|
354
|
+
light-theme-only bump in app-shell.css's base ::selection rule. */
|
|
355
|
+
.ds-247420[data-theme="ink"] ::selection,
|
|
356
|
+
.ds-247420[data-theme="dark"] ::selection {
|
|
357
|
+
background: color-mix(in oklab, var(--accent) 24%, var(--bg-2));
|
|
358
|
+
color: var(--fg);
|
|
359
|
+
}
|
|
360
|
+
|
|
346
361
|
/* NOTE: the [data-theme="auto"] block below mirrors the
|
|
347
362
|
[data-theme="ink"/"dark"] block above token-for-token. 'auto + OS-dark' and
|
|
348
363
|
'explicit dark' are the same visual context and resolve every token —
|
|
@@ -370,6 +385,7 @@
|
|
|
370
385
|
--accent-fg: var(--ink);
|
|
371
386
|
--accent-ink: var(--acid);
|
|
372
387
|
--accent-bright: var(--acid);
|
|
388
|
+
--accent-tint: color-mix(in oklab, var(--accent) 30%, var(--bg));
|
|
373
389
|
--danger: oklch(0.68 0.19 25);
|
|
374
390
|
--flame: #FF5A1F;
|
|
375
391
|
--amber: #D9A93A;
|
|
@@ -381,6 +397,10 @@
|
|
|
381
397
|
--code-str-alt: var(--mascot);
|
|
382
398
|
--code-num: var(--sun);
|
|
383
399
|
}
|
|
400
|
+
.ds-247420[data-theme="auto"] ::selection {
|
|
401
|
+
background: color-mix(in oklab, var(--accent) 24%, var(--bg-2));
|
|
402
|
+
color: var(--fg);
|
|
403
|
+
}
|
|
384
404
|
}
|
|
385
405
|
|
|
386
406
|
/* Nested-scope safety: if .ds-247420 appears under another .ds-247420 (e.g.
|
|
@@ -440,6 +460,7 @@
|
|
|
440
460
|
--bg: var(--paper); --bg-2: var(--paper-2); --bg-3: var(--paper-3);
|
|
441
461
|
--fg: var(--ink); --fg-2: var(--ink-2); --fg-3: var(--ink-3);
|
|
442
462
|
--accent: var(--acid); --accent-fg: var(--ink); --accent-ink: var(--acid-deep);
|
|
463
|
+
--accent-tint: color-mix(in oklab, var(--accent-ink) 22%, var(--bg));
|
|
443
464
|
/* A paper island under a dark ancestor must not inherit the dark signal pair. */
|
|
444
465
|
--flame: #C53E00; --amber: #7C570F; --warn: #E0241A; --sky: #3A6EFF;
|
|
445
466
|
}
|
|
@@ -546,8 +567,8 @@
|
|
|
546
567
|
}
|
|
547
568
|
.ds-247420 .skip-link:focus {
|
|
548
569
|
top: 10px;
|
|
549
|
-
outline:
|
|
550
|
-
outline-offset:
|
|
570
|
+
outline: var(--focus-w) solid var(--focus-color);
|
|
571
|
+
outline-offset: var(--focus-offset);
|
|
551
572
|
}
|
|
552
573
|
.ds-247420 body {
|
|
553
574
|
background: var(--bg);
|
|
@@ -558,7 +579,12 @@
|
|
|
558
579
|
-webkit-font-smoothing: antialiased;
|
|
559
580
|
text-rendering: optimizeLegibility;
|
|
560
581
|
}
|
|
561
|
-
|
|
582
|
+
/* Light (paper, the default theme) needs a stronger accent share than dark to
|
|
583
|
+
clear a visible selection tint against --bg-2 -- the dark-theme value (24%)
|
|
584
|
+
read too weak on paper. Dark/ink keeps its existing 24% mix, restored below
|
|
585
|
+
in the ink/dark + auto-dark blocks (mirrors the --danger/--flame pattern of
|
|
586
|
+
scoping a value per theme rather than sharing one across both). */
|
|
587
|
+
.ds-247420 ::selection { background: color-mix(in oklab, var(--accent) 46%, var(--bg-2)); color: var(--fg); }
|
|
562
588
|
|
|
563
589
|
/* Every root has a CQ container so fluid type can resolve to a meaningful inline-size. */
|
|
564
590
|
.ds-247420 .app, .ds-247420 .ds-stage {
|
|
@@ -763,8 +789,8 @@
|
|
|
763
789
|
}
|
|
764
790
|
.ds-247420 .app-topbar nav a:hover { background: var(--bg-2); color: var(--fg); }
|
|
765
791
|
.ds-247420 .app-topbar nav a:focus-visible {
|
|
766
|
-
outline:
|
|
767
|
-
outline-offset:
|
|
792
|
+
outline: var(--focus-w) solid var(--focus-color);
|
|
793
|
+
outline-offset: var(--focus-offset);
|
|
768
794
|
}
|
|
769
795
|
/* Active tab reads as a subtle tinted pill with an accent underline rather than
|
|
770
796
|
an oversized filled oval that sits taller than its inactive siblings and reads
|
|
@@ -799,8 +825,8 @@
|
|
|
799
825
|
width: 100%;
|
|
800
826
|
}
|
|
801
827
|
.ds-247420 .app-search:focus-within {
|
|
802
|
-
outline:
|
|
803
|
-
outline-offset:
|
|
828
|
+
outline: var(--focus-w) solid var(--focus-color);
|
|
829
|
+
outline-offset: var(--focus-offset);
|
|
804
830
|
}
|
|
805
831
|
|
|
806
832
|
.ds-247420 .app-crumb {
|
|
@@ -841,8 +867,8 @@
|
|
|
841
867
|
}
|
|
842
868
|
.ds-247420 .app-side a:hover { background: var(--bg-2); color: var(--fg); }
|
|
843
869
|
.ds-247420 .app-side a:focus-visible {
|
|
844
|
-
outline:
|
|
845
|
-
outline-offset:
|
|
870
|
+
outline: var(--focus-w) solid var(--focus-color);
|
|
871
|
+
outline-offset: var(--focus-offset);
|
|
846
872
|
}
|
|
847
873
|
.ds-247420 .app-side a.active {
|
|
848
874
|
color: var(--accent-fg);
|
|
@@ -1015,7 +1041,7 @@
|
|
|
1015
1041
|
.ds-247420 .ds-icon-btn-ghost { background: transparent; }
|
|
1016
1042
|
.ds-247420 .ds-icon-btn-ghost:hover { background: var(--fg); color: var(--bg); }
|
|
1017
1043
|
.ds-247420 .ds-icon-btn-primary { background: var(--accent); color: var(--accent-fg); }
|
|
1018
|
-
.ds-247420 .ds-icon-btn-primary:hover { background: var(--fg); color: var(--
|
|
1044
|
+
.ds-247420 .ds-icon-btn-primary:hover { background: var(--fg); color: var(--accent-ink); }
|
|
1019
1045
|
/* warn = destructive ACTION tone; flame stays exclusively error STATUS. */
|
|
1020
1046
|
.ds-247420 .ds-icon-btn-danger { background: var(--warn); color: var(--on-color); }
|
|
1021
1047
|
.ds-247420 .ds-icon-btn-danger:hover { filter: brightness(0.92); }
|
|
@@ -1034,19 +1060,27 @@
|
|
|
1034
1060
|
border-radius: var(--r-pill);
|
|
1035
1061
|
background: var(--bg-3); color: var(--fg-2);
|
|
1036
1062
|
}
|
|
1037
|
-
|
|
1063
|
+
/* Canonical tone names are tone-success / tone-error / tone-neutral. Every
|
|
1064
|
+
other tone name grouped into the same rule below (tone-green/tone-live,
|
|
1065
|
+
tone-flame, tone-wip, tone-sun/tone-yellow, tone-ok/tone-miss) is a
|
|
1066
|
+
true-synonym legacy alias, kept working but sharing one declaration so the
|
|
1067
|
+
tone-family colors can't drift apart across names. */
|
|
1068
|
+
.ds-247420 .ds-badge.tone-green, .ds-247420 .ds-badge.tone-live, .ds-247420 .ds-badge.tone-success {
|
|
1069
|
+
background: var(--green-tint); color: var(--green-deep);
|
|
1070
|
+
}
|
|
1071
|
+
.ds-247420 .ds-badge.tone-flame, .ds-247420 .ds-badge.tone-error {
|
|
1072
|
+
background: var(--flame); color: var(--on-color);
|
|
1073
|
+
}
|
|
1074
|
+
.ds-247420 .ds-badge.tone-wip, .ds-247420 .ds-badge.tone-neutral {
|
|
1075
|
+
background: var(--bg-3); color: var(--fg-2);
|
|
1076
|
+
}
|
|
1038
1077
|
.ds-247420 .ds-badge.tone-purple { background: var(--purple-tint); color: var(--purple-deep); }
|
|
1039
1078
|
.ds-247420 .ds-badge.tone-mascot { background: var(--mascot-tint); color: var(--ink); }
|
|
1040
|
-
.ds-247420 .ds-badge.tone-sun
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
.ds-247420 .ds-badge.tone-wip { background: var(--bg-3); color: var(--fg-2); }
|
|
1044
|
-
.ds-247420 .ds-badge.tone-error { background: var(--flame); color: var(--on-color); }
|
|
1045
|
-
.ds-247420 .ds-badge.tone-success { background: var(--green-tint); color: var(--green-deep); }
|
|
1046
|
-
.ds-247420 .ds-badge.tone-neutral { background: var(--bg-3); color: var(--fg-2); }
|
|
1079
|
+
.ds-247420 .ds-badge.tone-sun, .ds-247420 .ds-badge.tone-yellow {
|
|
1080
|
+
background: var(--sun); color: var(--ink);
|
|
1081
|
+
}
|
|
1047
1082
|
.ds-247420 .ds-badge.tone-blue { background: var(--accent-tint); color: var(--accent-ink); }
|
|
1048
1083
|
.ds-247420 .ds-badge.tone-orange { background: color-mix(in oklab, var(--flame) 30%, var(--sun) 70%); color: var(--ink); }
|
|
1049
|
-
.ds-247420 .ds-badge.tone-yellow { background: var(--sun); color: var(--ink); }
|
|
1050
1084
|
|
|
1051
1085
|
.ds-247420 .chip {
|
|
1052
1086
|
display: inline-flex; align-items: center; gap: 6px;
|
|
@@ -1057,19 +1091,22 @@
|
|
|
1057
1091
|
letter-spacing: var(--tr-caps); text-transform: uppercase;
|
|
1058
1092
|
border-radius: var(--r-pill);
|
|
1059
1093
|
}
|
|
1060
|
-
|
|
1094
|
+
/* Same canonical/legacy-alias grouping as .ds-badge above. */
|
|
1095
|
+
.ds-247420 .chip.tone-green, .ds-247420 .chip.tone-live, .ds-247420 .chip.tone-success, .ds-247420 .chip.tone-ok {
|
|
1096
|
+
background: var(--green-tint); color: var(--green-deep);
|
|
1097
|
+
}
|
|
1098
|
+
.ds-247420 .chip.tone-flame, .ds-247420 .chip.tone-error, .ds-247420 .chip.tone-miss {
|
|
1099
|
+
background: var(--flame); color: var(--on-color);
|
|
1100
|
+
}
|
|
1101
|
+
.ds-247420 .chip.tone-wip, .ds-247420 .chip.tone-neutral {
|
|
1102
|
+
background: var(--bg-3); color: var(--fg-2);
|
|
1103
|
+
}
|
|
1061
1104
|
.ds-247420 .chip.tone-purple { background: var(--purple-tint); color: var(--purple-deep); }
|
|
1062
1105
|
.ds-247420 .chip.tone-mascot { background: var(--mascot-tint); color: var(--ink); }
|
|
1063
|
-
.ds-247420 .chip.tone-sun
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
.ds-247420 .chip.tone-wip { background: var(--bg-3); color: var(--fg-2); }
|
|
1067
|
-
.ds-247420 .chip.tone-error { background: var(--flame); color: var(--on-color); }
|
|
1068
|
-
.ds-247420 .chip.tone-success { background: var(--green-tint); color: var(--green-deep); }
|
|
1106
|
+
.ds-247420 .chip.tone-sun, .ds-247420 .chip.tone-yellow {
|
|
1107
|
+
background: var(--sun); color: var(--ink);
|
|
1108
|
+
}
|
|
1069
1109
|
.ds-247420 .chip.tone-disabled { background: var(--bg-3); color: var(--fg-3); }
|
|
1070
|
-
.ds-247420 .chip.tone-ok { background: var(--green-tint); color: var(--green-deep); }
|
|
1071
|
-
.ds-247420 .chip.tone-miss { background: var(--flame); color: var(--on-color); }
|
|
1072
|
-
.ds-247420 .chip.tone-neutral { background: var(--bg-3); color: var(--fg-2); }
|
|
1073
1110
|
.ds-247420 .chip.tone-blue { background: var(--accent-tint); color: var(--accent-ink); }
|
|
1074
1111
|
.ds-247420 .chip.tone-orange { background: color-mix(in oklab, var(--flame) 30%, var(--sun) 70%); color: var(--ink); }
|
|
1075
1112
|
.ds-247420 .chip.tone-yellow { background: var(--sun); color: var(--ink); }
|
|
@@ -1520,7 +1557,7 @@
|
|
|
1520
1557
|
.ds-247420 table tr.clickable { cursor: pointer; }
|
|
1521
1558
|
.ds-247420 table tr.clickable:hover td { background: var(--bg-2); }
|
|
1522
1559
|
.ds-247420 table tr.clickable:focus-visible {
|
|
1523
|
-
outline:
|
|
1560
|
+
outline: var(--focus-w) solid var(--focus-color);
|
|
1524
1561
|
outline-offset: -2px;
|
|
1525
1562
|
}
|
|
1526
1563
|
.ds-247420 table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
@@ -1961,7 +1998,7 @@
|
|
|
1961
1998
|
flex-direction: column;
|
|
1962
1999
|
gap: 4px;
|
|
1963
2000
|
}
|
|
1964
|
-
.ds-247420 .ds-file-grid:focus-visible { outline:
|
|
2001
|
+
.ds-247420 .ds-file-grid:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); border-radius: var(--r-2); }
|
|
1965
2002
|
|
|
1966
2003
|
/* Listing wrapper holds the optional filter + sort header above the grid. */
|
|
1967
2004
|
.ds-247420 .ds-file-listing { display: flex; flex-direction: column; gap: var(--space-2); min-height: 0; }
|
|
@@ -1983,7 +2020,7 @@
|
|
|
1983
2020
|
}
|
|
1984
2021
|
.ds-247420 .ds-file-sort-btn:hover { color: var(--fg-2); background: var(--bg-2); }
|
|
1985
2022
|
.ds-247420 .ds-file-sort-btn.active { color: var(--accent-ink); }
|
|
1986
|
-
.ds-247420 .ds-file-sort-btn:focus-visible { outline:
|
|
2023
|
+
.ds-247420 .ds-file-sort-btn:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
1987
2024
|
|
|
1988
2025
|
/* Skeleton shimmer rows shown while a directory loads. */
|
|
1989
2026
|
.ds-247420 .ds-file-row-skeleton { cursor: default; pointer-events: none; }
|
|
@@ -2031,7 +2068,7 @@
|
|
|
2031
2068
|
color: inherit; font: inherit; text-align: left; cursor: pointer;
|
|
2032
2069
|
}
|
|
2033
2070
|
.ds-247420 .ds-file-open[disabled] { cursor: default; }
|
|
2034
|
-
.ds-247420 .ds-file-open:focus-visible { outline:
|
|
2071
|
+
.ds-247420 .ds-file-open:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); border-radius: var(--r-1); }
|
|
2035
2072
|
.ds-247420 .ds-file-row:hover {
|
|
2036
2073
|
background: var(--bg-2);
|
|
2037
2074
|
border-color: var(--rule);
|
|
@@ -2135,7 +2172,7 @@
|
|
|
2135
2172
|
}
|
|
2136
2173
|
.ds-247420 .ds-file-check:hover { background: var(--bg-3); color: var(--fg); }
|
|
2137
2174
|
.ds-247420 .ds-file-check.is-marked { color: var(--accent-ink); }
|
|
2138
|
-
.ds-247420 .ds-file-check:focus-visible { outline:
|
|
2175
|
+
.ds-247420 .ds-file-check:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
2139
2176
|
.ds-247420 .ds-file-check[disabled] { opacity: 0.4; cursor: default; }
|
|
2140
2177
|
.ds-247420 .ds-file-row.is-marked { background: var(--accent-tint); border-color: var(--accent); }
|
|
2141
2178
|
.ds-247420 .ds-file-selectall {
|
|
@@ -2145,7 +2182,7 @@
|
|
|
2145
2182
|
padding: var(--space-1); border-radius: var(--r-1);
|
|
2146
2183
|
}
|
|
2147
2184
|
.ds-247420 .ds-file-selectall:hover { background: var(--bg-2); color: var(--fg); }
|
|
2148
|
-
.ds-247420 .ds-file-selectall:focus-visible { outline:
|
|
2185
|
+
.ds-247420 .ds-file-selectall:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
2149
2186
|
.ds-247420 .ds-file-controls { display: flex; align-items: center; gap: var(--space-2); padding: 0 var(--space-2) var(--space-1); flex-wrap: wrap; }
|
|
2150
2187
|
.ds-247420 .ds-file-controls .spread { flex: 1 1 auto; }
|
|
2151
2188
|
.ds-247420 .ds-file-controls .ds-file-sort { padding: 0; }
|
|
@@ -2183,7 +2220,7 @@
|
|
|
2183
2220
|
}
|
|
2184
2221
|
.ds-247420 .ds-density-btn:hover { color: var(--fg); }
|
|
2185
2222
|
.ds-247420 .ds-density-btn.active { background: var(--accent-tint); color: var(--fg); }
|
|
2186
|
-
.ds-247420 .ds-density-btn:focus-visible { outline:
|
|
2223
|
+
.ds-247420 .ds-density-btn:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
2187
2224
|
|
|
2188
2225
|
/* Compact density — tighter rows for long listings. */
|
|
2189
2226
|
.ds-247420 .ds-file-grid[data-density="compact"] { gap: 2px; }
|
|
@@ -2221,7 +2258,7 @@
|
|
|
2221
2258
|
background: none; border: none; cursor: pointer; color: var(--fg);
|
|
2222
2259
|
}
|
|
2223
2260
|
.ds-247420 .ds-file-cell-open[disabled] { cursor: default; }
|
|
2224
|
-
.ds-247420 .ds-file-cell-open:focus-visible { outline:
|
|
2261
|
+
.ds-247420 .ds-file-cell-open:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: -2px; border-radius: var(--r-2); }
|
|
2225
2262
|
.ds-247420 .ds-file-cell-media {
|
|
2226
2263
|
display: flex; align-items: center; justify-content: center;
|
|
2227
2264
|
width: 100%; aspect-ratio: 4 / 3;
|
|
@@ -2461,7 +2498,7 @@
|
|
|
2461
2498
|
color: var(--fg-2); font-family: var(--ff-body); font-size: var(--fs-micro);
|
|
2462
2499
|
}
|
|
2463
2500
|
.ds-247420 .ds-upload-act:hover { background: var(--bg-3); color: var(--fg); }
|
|
2464
|
-
.ds-247420 .ds-upload-act:focus-visible { outline:
|
|
2501
|
+
.ds-247420 .ds-upload-act:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
2465
2502
|
@media (hover: none), (pointer: coarse) {
|
|
2466
2503
|
.ds-247420 .ds-upload-act { min-height: 44px; min-width: 44px; }
|
|
2467
2504
|
/* 44px floor for file controls on ANY touch device, not only narrow ones
|
|
@@ -2532,7 +2569,7 @@
|
|
|
2532
2569
|
border-radius: var(--r-2); color: var(--fg);
|
|
2533
2570
|
font-family: inherit; font-size: var(--fs-sm);
|
|
2534
2571
|
}
|
|
2535
|
-
.ds-247420 .ds-modal-input:focus-visible { outline:
|
|
2572
|
+
.ds-247420 .ds-modal-input:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
2536
2573
|
/* iOS auto-zooms inputs under 16px on focus, breaking the modal layout. */
|
|
2537
2574
|
@media (hover: none), (pointer: coarse) {
|
|
2538
2575
|
.ds-247420 .ds-modal-input { font-size: 16px; min-height: 44px; }
|
|
@@ -2719,7 +2756,7 @@
|
|
|
2719
2756
|
transition: color var(--dur-base) var(--ease), background var(--dur-base) var(--ease);
|
|
2720
2757
|
}
|
|
2721
2758
|
.ds-247420 .ds-segmented .ds-seg-btn:hover { color: var(--fg); }
|
|
2722
|
-
.ds-247420 .ds-segmented .ds-seg-btn:focus-visible { outline:
|
|
2759
|
+
.ds-247420 .ds-segmented .ds-seg-btn:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
2723
2760
|
.ds-247420 .ds-segmented .ds-seg-btn.is-on {
|
|
2724
2761
|
background: var(--bg); color: var(--fg);
|
|
2725
2762
|
box-shadow: inset 0 0 0 var(--bw-hair, 1px) var(--rule);
|
|
@@ -3169,8 +3206,8 @@
|
|
|
3169
3206
|
.ds-247420 .chat-composer .send:active { filter: brightness(0.94); }
|
|
3170
3207
|
.ds-247420 .chat-composer .send:focus-visible,
|
|
3171
3208
|
.ds-247420 .composer-btn:focus-visible {
|
|
3172
|
-
outline:
|
|
3173
|
-
outline-offset:
|
|
3209
|
+
outline: var(--focus-w) solid var(--focus-color);
|
|
3210
|
+
outline-offset: var(--focus-offset);
|
|
3174
3211
|
}
|
|
3175
3212
|
.ds-247420 .chat-composer .send:disabled {
|
|
3176
3213
|
background: var(--bg-3); color: var(--fg-3); cursor: not-allowed; transform: none;
|
|
@@ -3703,8 +3740,8 @@
|
|
|
3703
3740
|
|
|
3704
3741
|
/* Base focus-visible: 2px ring + 2px offset clears dark bg-3 surfaces (WCAG 1.4.11) */
|
|
3705
3742
|
.ds-247420 :focus-visible {
|
|
3706
|
-
outline:
|
|
3707
|
-
outline-offset:
|
|
3743
|
+
outline: var(--focus-w) solid var(--focus-color);
|
|
3744
|
+
outline-offset: var(--focus-offset);
|
|
3708
3745
|
}
|
|
3709
3746
|
|
|
3710
3747
|
/* Enhanced focus-visible for all interactive elements */
|
|
@@ -3713,8 +3750,8 @@
|
|
|
3713
3750
|
.ds-247420[role="tab"]:focus-visible,
|
|
3714
3751
|
.ds-247420 .row:focus-visible,
|
|
3715
3752
|
.ds-247420 .row[tabindex]:focus-visible {
|
|
3716
|
-
outline:
|
|
3717
|
-
outline-offset:
|
|
3753
|
+
outline: var(--focus-w) solid var(--focus-color);
|
|
3754
|
+
outline-offset: var(--focus-offset);
|
|
3718
3755
|
}
|
|
3719
3756
|
|
|
3720
3757
|
/* Skip to main content link */
|
|
@@ -4103,7 +4140,7 @@
|
|
|
4103
4140
|
border-radius: var(--r-1, 6px);
|
|
4104
4141
|
cursor: pointer;
|
|
4105
4142
|
}
|
|
4106
|
-
.ds-247420 .app-side-toggle:focus-visible { outline:
|
|
4143
|
+
.ds-247420 .app-side-toggle:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
4107
4144
|
@container (max-width: 900px) {
|
|
4108
4145
|
.ds-247420 .app-side-toggle { display: inline-flex; }
|
|
4109
4146
|
.ds-247420 .app-topbar .brand { margin-left: 44px; }
|
|
@@ -4197,7 +4234,7 @@
|
|
|
4197
4234
|
.ds-247420 .ws-resizer { grid-row: 1 / -1; align-self: stretch; justify-self: end; width: 8px; margin-right: -4px; z-index: 5; cursor: col-resize; background: transparent; border: none; padding: 0; touch-action: none; }
|
|
4198
4235
|
.ds-247420 .ws-resizer::after { content: ""; display: block; width: 2px; height: 100%; margin: 0 auto; background: transparent; transition: background var(--dur-snap) var(--ease); }
|
|
4199
4236
|
.ds-247420 .ws-resizer:hover::after, .ds-247420 .ws-resizer:focus-visible::after { background: var(--accent); }
|
|
4200
|
-
.ds-247420 .ws-resizer:focus-visible { outline:
|
|
4237
|
+
.ds-247420 .ws-resizer:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: -2px; }
|
|
4201
4238
|
.ds-247420 .ws-resizer.ws-resizer-rail { grid-column: 1; }
|
|
4202
4239
|
.ds-247420 .ws-resizer.ws-resizer-sessions { grid-column: 2; }
|
|
4203
4240
|
.ds-247420 .ws-resizer.ws-resizer-pane { grid-column: 3; justify-self: end; }
|
|
@@ -4249,7 +4286,7 @@
|
|
|
4249
4286
|
border-radius: var(--r-1); cursor: pointer;
|
|
4250
4287
|
}
|
|
4251
4288
|
.ds-247420 .ws-rail-toggle:hover { background: var(--bg-3); color: var(--fg); }
|
|
4252
|
-
.ds-247420 .ws-rail-toggle:focus-visible { outline:
|
|
4289
|
+
.ds-247420 .ws-rail-toggle:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
4253
4290
|
.ds-247420 .ws-rail-inner { display: flex; flex-direction: column; min-height: 0; flex: 1; padding: var(--space-3) var(--space-2); gap: var(--space-2); }
|
|
4254
4291
|
.ds-247420 .ws-rail-head { display: flex; align-items: center; min-height: 36px; padding: 0 var(--space-2); }
|
|
4255
4292
|
.ds-247420 .ws-rail-brand { font-family: var(--ff-body); font-weight: 600; font-size: var(--fs-body); color: var(--fg); white-space: nowrap; overflow: hidden; }
|
|
@@ -4262,7 +4299,7 @@
|
|
|
4262
4299
|
min-height: 40px; white-space: nowrap; overflow: hidden;
|
|
4263
4300
|
}
|
|
4264
4301
|
.ds-247420 .ws-rail-action:hover { filter: brightness(0.92); }
|
|
4265
|
-
.ds-247420 .ws-rail-action:focus-visible { outline:
|
|
4302
|
+
.ds-247420 .ws-rail-action:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
4266
4303
|
.ds-247420 .ws-rail-nav { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
|
|
4267
4304
|
.ds-247420 .ws-rail-item {
|
|
4268
4305
|
display: flex; align-items: center; gap: var(--space-2);
|
|
@@ -4272,7 +4309,7 @@
|
|
|
4272
4309
|
font-family: var(--ff-body); font-size: var(--fs-sm); white-space: nowrap; overflow: hidden;
|
|
4273
4310
|
}
|
|
4274
4311
|
.ds-247420 .ws-rail-item:hover { background: var(--bg-3); color: var(--fg); }
|
|
4275
|
-
.ds-247420 .ws-rail-item:focus-visible { outline:
|
|
4312
|
+
.ds-247420 .ws-rail-item:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: -2px; }
|
|
4276
4313
|
.ds-247420 .ws-rail-item.active { background: var(--accent-tint); color: var(--fg); box-shadow: inset 2px 0 0 var(--accent); }
|
|
4277
4314
|
.ds-247420 .ws-rail-item-label { flex: 1; overflow: hidden; text-overflow: ellipsis; }
|
|
4278
4315
|
.ds-247420 .ws-rail-item-count { font-family: var(--ff-mono); font-size: var(--fs-tiny); color: var(--fg-3); }
|
|
@@ -4345,7 +4382,7 @@
|
|
|
4345
4382
|
/* Desktop-only chrome toggle (sessions collapse): inverse of the mobile drawer-toggle. */
|
|
4346
4383
|
.ds-247420 .ws-desktop-toggle { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: none; background: none; color: var(--fg-2); cursor: pointer; border-radius: var(--r-1); }
|
|
4347
4384
|
.ds-247420 .ws-desktop-toggle:hover { background: var(--bg-2); color: var(--fg); }
|
|
4348
|
-
.ds-247420 .ws-desktop-toggle:focus-visible { outline:
|
|
4385
|
+
.ds-247420 .ws-desktop-toggle:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
4349
4386
|
@media (max-width: 900px) { .ds-247420 .ws-desktop-toggle { display: none; } }
|
|
4350
4387
|
/* The pane collapse toggle is meaningless once the pane TRACK is dropped (the
|
|
4351
4388
|
pane becomes a mobile overlay drawer at <=1480px, reached via its own
|
|
@@ -4469,7 +4506,7 @@
|
|
|
4469
4506
|
.ds-247420 .ws-crumb .app-crumb .crumb-right { margin-left: 0; flex-wrap: wrap; min-width: 0; display: inline-flex; }
|
|
4470
4507
|
}
|
|
4471
4508
|
.ds-247420 .ws-drawer-toggle:hover { background: var(--bg-2); color: var(--fg); }
|
|
4472
|
-
.ds-247420 .ws-drawer-toggle:focus-visible { outline:
|
|
4509
|
+
.ds-247420 .ws-drawer-toggle:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
4473
4510
|
|
|
4474
4511
|
@media (prefers-reduced-motion: reduce) {
|
|
4475
4512
|
.ds-247420 .ws-shell, .ds-247420 .ws-rail, .ds-247420 .ws-pane, .ds-247420 .ws-sessions, .ds-247420 .ws-scrim { transition: none; }
|
|
@@ -4494,7 +4531,7 @@
|
|
|
4494
4531
|
transition: background var(--dur-snap) var(--ease), color var(--dur-snap) var(--ease);
|
|
4495
4532
|
}
|
|
4496
4533
|
.ds-247420 .row-act:hover { background: var(--bg-3); color: var(--fg); }
|
|
4497
|
-
.ds-247420 .row-act:focus-visible { outline:
|
|
4534
|
+
.ds-247420 .row-act:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
4498
4535
|
|
|
4499
4536
|
/* FilterPills - a group of pill toggle buttons (aria-pressed). */
|
|
4500
4537
|
.ds-247420 .ds-filter-pills { display: flex; flex-wrap: wrap; gap: var(--space-2); }
|
|
@@ -4507,7 +4544,7 @@
|
|
|
4507
4544
|
}
|
|
4508
4545
|
.ds-247420 .ds-filter-pill:hover { background: var(--bg-3); color: var(--fg); }
|
|
4509
4546
|
.ds-247420 .ds-filter-pill.active { background: var(--accent-tint); color: var(--fg); border-color: var(--accent); }
|
|
4510
|
-
.ds-247420 .ds-filter-pill:focus-visible { outline:
|
|
4547
|
+
.ds-247420 .ds-filter-pill:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
4511
4548
|
|
|
4512
4549
|
/* Touch floor for the new small controls. */
|
|
4513
4550
|
@media (pointer: coarse) {
|
|
@@ -4517,7 +4554,7 @@
|
|
|
4517
4554
|
/* Disabled file actions (read-only row / in-flight mutation) stay visible but inert. */
|
|
4518
4555
|
.ds-247420 .ds-file-act:disabled { opacity: .45; cursor: default; }
|
|
4519
4556
|
.ds-247420 .ds-file-act:disabled:hover { background: transparent; color: var(--fg-3); }
|
|
4520
|
-
.ds-247420 .ds-file-act:focus-visible { outline:
|
|
4557
|
+
.ds-247420 .ds-file-act:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
4521
4558
|
|
|
4522
4559
|
/* ============================================================
|
|
4523
4560
|
Print — linearize WorkspaceShell so main content prints in full.
|
|
@@ -4841,7 +4878,7 @@
|
|
|
4841
4878
|
.ds-feature above), so the hover affordance is a lift, matching the same
|
|
4842
4879
|
translateY + shadow idiom .chat-msg:hover .chat-bubble already uses. */
|
|
4843
4880
|
.ds-247420 .ds-gallery-tile:hover { transform: translateY(-2px); box-shadow: 0 2px 8px color-mix(in oklab, var(--fg) 10%, transparent); }
|
|
4844
|
-
.ds-247420 .ds-gallery-tile:focus-visible { outline:
|
|
4881
|
+
.ds-247420 .ds-gallery-tile:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
4845
4882
|
.ds-247420 .ds-gallery-tile--tight { min-height: clamp(96px, 14vw, 120px); }
|
|
4846
4883
|
.ds-247420 .ds-lightbox {
|
|
4847
4884
|
position: fixed; inset: 0; background: var(--scrim);
|