anentrypoint-design 0.0.291 → 0.0.293
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 +48 -40
- package/colors_and_type.css +22 -1
- package/community.css +1 -1
- package/dist/247420.css +73 -44
- package/dist/247420.js +12 -12
- package/package.json +1 -1
- package/src/components/agent-chat.js +1 -1
package/app-shell.css
CHANGED
|
@@ -30,8 +30,8 @@ button, input, select, textarea { font: inherit; }
|
|
|
30
30
|
}
|
|
31
31
|
.skip-link:focus {
|
|
32
32
|
top: 10px;
|
|
33
|
-
outline:
|
|
34
|
-
outline-offset:
|
|
33
|
+
outline: var(--focus-w) solid var(--focus-color);
|
|
34
|
+
outline-offset: var(--focus-offset);
|
|
35
35
|
}
|
|
36
36
|
body {
|
|
37
37
|
background: var(--bg);
|
|
@@ -42,7 +42,12 @@ body {
|
|
|
42
42
|
-webkit-font-smoothing: antialiased;
|
|
43
43
|
text-rendering: optimizeLegibility;
|
|
44
44
|
}
|
|
45
|
-
|
|
45
|
+
/* Light (paper, the default theme) needs a stronger accent share than dark to
|
|
46
|
+
clear a visible selection tint against --bg-2 -- the dark-theme value (24%)
|
|
47
|
+
read too weak on paper. Dark/ink keeps its existing 24% mix, restored below
|
|
48
|
+
in the ink/dark + auto-dark blocks (mirrors the --danger/--flame pattern of
|
|
49
|
+
scoping a value per theme rather than sharing one across both). */
|
|
50
|
+
::selection { background: color-mix(in oklab, var(--accent) 46%, var(--bg-2)); color: var(--fg); }
|
|
46
51
|
|
|
47
52
|
/* Every root has a CQ container so fluid type can resolve to a meaningful inline-size. */
|
|
48
53
|
.app, .ds-stage {
|
|
@@ -247,8 +252,8 @@ body.canvas-host { background: transparent !important; }
|
|
|
247
252
|
}
|
|
248
253
|
.app-topbar nav a:hover { background: var(--bg-2); color: var(--fg); }
|
|
249
254
|
.app-topbar nav a:focus-visible {
|
|
250
|
-
outline:
|
|
251
|
-
outline-offset:
|
|
255
|
+
outline: var(--focus-w) solid var(--focus-color);
|
|
256
|
+
outline-offset: var(--focus-offset);
|
|
252
257
|
}
|
|
253
258
|
/* Active tab reads as a subtle tinted pill with an accent underline rather than
|
|
254
259
|
an oversized filled oval that sits taller than its inactive siblings and reads
|
|
@@ -283,8 +288,8 @@ body.canvas-host { background: transparent !important; }
|
|
|
283
288
|
width: 100%;
|
|
284
289
|
}
|
|
285
290
|
.app-search:focus-within {
|
|
286
|
-
outline:
|
|
287
|
-
outline-offset:
|
|
291
|
+
outline: var(--focus-w) solid var(--focus-color);
|
|
292
|
+
outline-offset: var(--focus-offset);
|
|
288
293
|
}
|
|
289
294
|
|
|
290
295
|
.app-crumb {
|
|
@@ -325,8 +330,8 @@ body.canvas-host { background: transparent !important; }
|
|
|
325
330
|
}
|
|
326
331
|
.app-side a:hover { background: var(--bg-2); color: var(--fg); }
|
|
327
332
|
.app-side a:focus-visible {
|
|
328
|
-
outline:
|
|
329
|
-
outline-offset:
|
|
333
|
+
outline: var(--focus-w) solid var(--focus-color);
|
|
334
|
+
outline-offset: var(--focus-offset);
|
|
330
335
|
}
|
|
331
336
|
.app-side a.active {
|
|
332
337
|
color: var(--accent-fg);
|
|
@@ -585,7 +590,7 @@ body.canvas-host { background: transparent !important; }
|
|
|
585
590
|
background: var(--panel-1, var(--bg-2));
|
|
586
591
|
border: var(--bw-hair) solid var(--rule);
|
|
587
592
|
border-radius: var(--r-2);
|
|
588
|
-
margin: 0 0 var(--space-
|
|
593
|
+
margin: 0 0 var(--space-4);
|
|
589
594
|
padding: var(--space-3);
|
|
590
595
|
position: relative;
|
|
591
596
|
/* Crisp, restrained elevation — a hairline border does the edge definition;
|
|
@@ -733,6 +738,9 @@ a.row:hover .meta, .row[role="button"]:hover .meta { color: var(--accent-ink); t
|
|
|
733
738
|
[data-typescale="app"] .row { padding: 12px 16px; }
|
|
734
739
|
[data-typescale="app"] .row .title { font-size: var(--fs-sm); font-weight: 500; }
|
|
735
740
|
.row .sub { font-family: var(--ff-body); font-weight: 400; font-size: var(--fs-sm); color: var(--fg-3); }
|
|
741
|
+
/* Context-pane cwd fact reads as a path (like .ds-dash-cwd/.ds-session-agent/
|
|
742
|
+
.ds-dash-model) -- scoped to that one row so no other Row .sub is affected. */
|
|
743
|
+
.ds-context-cwd-row .row .sub { font-family: var(--ff-mono); }
|
|
736
744
|
.row .meta { font-family: var(--ff-mono); font-size: var(--fs-xs); color: var(--fg-3); text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; align-self: center; }
|
|
737
745
|
/* WorksList meta pairs a label with a disclosure chevron, inline-aligned. */
|
|
738
746
|
.ds-works-meta { display: inline-flex; align-items: center; gap: .4em; }
|
|
@@ -1001,7 +1009,7 @@ table td { padding: 14px 16px; border-top: 1px solid var(--rule); }
|
|
|
1001
1009
|
table tr.clickable { cursor: pointer; }
|
|
1002
1010
|
table tr.clickable:hover td { background: var(--bg-2); }
|
|
1003
1011
|
table tr.clickable:focus-visible {
|
|
1004
|
-
outline:
|
|
1012
|
+
outline: var(--focus-w) solid var(--focus-color);
|
|
1005
1013
|
outline-offset: -2px;
|
|
1006
1014
|
}
|
|
1007
1015
|
table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
@@ -1442,7 +1450,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1442
1450
|
flex-direction: column;
|
|
1443
1451
|
gap: 4px;
|
|
1444
1452
|
}
|
|
1445
|
-
.ds-file-grid:focus-visible { outline:
|
|
1453
|
+
.ds-file-grid:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); border-radius: var(--r-2); }
|
|
1446
1454
|
|
|
1447
1455
|
/* Listing wrapper holds the optional filter + sort header above the grid. */
|
|
1448
1456
|
.ds-file-listing { display: flex; flex-direction: column; gap: var(--space-2); min-height: 0; }
|
|
@@ -1464,7 +1472,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1464
1472
|
}
|
|
1465
1473
|
.ds-file-sort-btn:hover { color: var(--fg-2); background: var(--bg-2); }
|
|
1466
1474
|
.ds-file-sort-btn.active { color: var(--accent-ink); }
|
|
1467
|
-
.ds-file-sort-btn:focus-visible { outline:
|
|
1475
|
+
.ds-file-sort-btn:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
1468
1476
|
|
|
1469
1477
|
/* Skeleton shimmer rows shown while a directory loads. */
|
|
1470
1478
|
.ds-file-row-skeleton { cursor: default; pointer-events: none; }
|
|
@@ -1512,7 +1520,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1512
1520
|
color: inherit; font: inherit; text-align: left; cursor: pointer;
|
|
1513
1521
|
}
|
|
1514
1522
|
.ds-file-open[disabled] { cursor: default; }
|
|
1515
|
-
.ds-file-open:focus-visible { outline:
|
|
1523
|
+
.ds-file-open:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); border-radius: var(--r-1); }
|
|
1516
1524
|
.ds-file-row:hover {
|
|
1517
1525
|
background: var(--bg-2);
|
|
1518
1526
|
border-color: var(--rule);
|
|
@@ -1616,7 +1624,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1616
1624
|
}
|
|
1617
1625
|
.ds-file-check:hover { background: var(--bg-3); color: var(--fg); }
|
|
1618
1626
|
.ds-file-check.is-marked { color: var(--accent-ink); }
|
|
1619
|
-
.ds-file-check:focus-visible { outline:
|
|
1627
|
+
.ds-file-check:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
1620
1628
|
.ds-file-check[disabled] { opacity: 0.4; cursor: default; }
|
|
1621
1629
|
.ds-file-row.is-marked { background: var(--accent-tint); border-color: var(--accent); }
|
|
1622
1630
|
.ds-file-selectall {
|
|
@@ -1626,7 +1634,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1626
1634
|
padding: var(--space-1); border-radius: var(--r-1);
|
|
1627
1635
|
}
|
|
1628
1636
|
.ds-file-selectall:hover { background: var(--bg-2); color: var(--fg); }
|
|
1629
|
-
.ds-file-selectall:focus-visible { outline:
|
|
1637
|
+
.ds-file-selectall:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
1630
1638
|
.ds-file-controls { display: flex; align-items: center; gap: var(--space-2); padding: 0 var(--space-2) var(--space-1); flex-wrap: wrap; }
|
|
1631
1639
|
.ds-file-controls .spread { flex: 1 1 auto; }
|
|
1632
1640
|
.ds-file-controls .ds-file-sort { padding: 0; }
|
|
@@ -1664,7 +1672,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1664
1672
|
}
|
|
1665
1673
|
.ds-density-btn:hover { color: var(--fg); }
|
|
1666
1674
|
.ds-density-btn.active { background: var(--accent-tint); color: var(--fg); }
|
|
1667
|
-
.ds-density-btn:focus-visible { outline:
|
|
1675
|
+
.ds-density-btn:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
1668
1676
|
|
|
1669
1677
|
/* Compact density — tighter rows for long listings. */
|
|
1670
1678
|
.ds-file-grid[data-density="compact"] { gap: 2px; }
|
|
@@ -1702,7 +1710,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1702
1710
|
background: none; border: none; cursor: pointer; color: var(--fg);
|
|
1703
1711
|
}
|
|
1704
1712
|
.ds-file-cell-open[disabled] { cursor: default; }
|
|
1705
|
-
.ds-file-cell-open:focus-visible { outline:
|
|
1713
|
+
.ds-file-cell-open:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: -2px; border-radius: var(--r-2); }
|
|
1706
1714
|
.ds-file-cell-media {
|
|
1707
1715
|
display: flex; align-items: center; justify-content: center;
|
|
1708
1716
|
width: 100%; aspect-ratio: 4 / 3;
|
|
@@ -1942,7 +1950,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1942
1950
|
color: var(--fg-2); font-family: var(--ff-body); font-size: var(--fs-micro);
|
|
1943
1951
|
}
|
|
1944
1952
|
.ds-upload-act:hover { background: var(--bg-3); color: var(--fg); }
|
|
1945
|
-
.ds-upload-act:focus-visible { outline:
|
|
1953
|
+
.ds-upload-act:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
1946
1954
|
@media (hover: none), (pointer: coarse) {
|
|
1947
1955
|
.ds-upload-act { min-height: 44px; min-width: 44px; }
|
|
1948
1956
|
/* 44px floor for file controls on ANY touch device, not only narrow ones
|
|
@@ -2013,7 +2021,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2013
2021
|
border-radius: var(--r-2); color: var(--fg);
|
|
2014
2022
|
font-family: inherit; font-size: var(--fs-sm);
|
|
2015
2023
|
}
|
|
2016
|
-
.ds-modal-input:focus-visible { outline:
|
|
2024
|
+
.ds-modal-input:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
2017
2025
|
/* iOS auto-zooms inputs under 16px on focus, breaking the modal layout. */
|
|
2018
2026
|
@media (hover: none), (pointer: coarse) {
|
|
2019
2027
|
.ds-modal-input { font-size: 16px; min-height: 44px; }
|
|
@@ -2200,7 +2208,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2200
2208
|
transition: color var(--dur-base) var(--ease), background var(--dur-base) var(--ease);
|
|
2201
2209
|
}
|
|
2202
2210
|
.ds-segmented .ds-seg-btn:hover { color: var(--fg); }
|
|
2203
|
-
.ds-segmented .ds-seg-btn:focus-visible { outline:
|
|
2211
|
+
.ds-segmented .ds-seg-btn:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
2204
2212
|
.ds-segmented .ds-seg-btn.is-on {
|
|
2205
2213
|
background: var(--bg); color: var(--fg);
|
|
2206
2214
|
box-shadow: inset 0 0 0 var(--bw-hair, 1px) var(--rule);
|
|
@@ -2646,12 +2654,12 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2646
2654
|
transition: background var(--dur-snap, .15s) var(--ease, ease), color var(--dur-snap, .15s) var(--ease, ease);
|
|
2647
2655
|
}
|
|
2648
2656
|
.composer-btn:hover { background: color-mix(in oklab, var(--fg) 8%, transparent); color: var(--fg); }
|
|
2649
|
-
.chat-composer .send:hover { filter: brightness(
|
|
2657
|
+
.chat-composer .send:hover { filter: brightness(0.92); }
|
|
2650
2658
|
.chat-composer .send:active { filter: brightness(0.94); }
|
|
2651
2659
|
.chat-composer .send:focus-visible,
|
|
2652
2660
|
.composer-btn:focus-visible {
|
|
2653
|
-
outline:
|
|
2654
|
-
outline-offset:
|
|
2661
|
+
outline: var(--focus-w) solid var(--focus-color);
|
|
2662
|
+
outline-offset: var(--focus-offset);
|
|
2655
2663
|
}
|
|
2656
2664
|
.chat-composer .send:disabled {
|
|
2657
2665
|
background: var(--bg-3); color: var(--fg-3); cursor: not-allowed; transform: none;
|
|
@@ -3192,8 +3200,8 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3192
3200
|
|
|
3193
3201
|
/* Base focus-visible: 2px ring + 2px offset clears dark bg-3 surfaces (WCAG 1.4.11) */
|
|
3194
3202
|
:focus-visible {
|
|
3195
|
-
outline:
|
|
3196
|
-
outline-offset:
|
|
3203
|
+
outline: var(--focus-w) solid var(--focus-color);
|
|
3204
|
+
outline-offset: var(--focus-offset);
|
|
3197
3205
|
}
|
|
3198
3206
|
|
|
3199
3207
|
/* Enhanced focus-visible for all interactive elements */
|
|
@@ -3202,8 +3210,8 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3202
3210
|
[role="tab"]:focus-visible,
|
|
3203
3211
|
.row:focus-visible,
|
|
3204
3212
|
.row[tabindex]:focus-visible {
|
|
3205
|
-
outline:
|
|
3206
|
-
outline-offset:
|
|
3213
|
+
outline: var(--focus-w) solid var(--focus-color);
|
|
3214
|
+
outline-offset: var(--focus-offset);
|
|
3207
3215
|
}
|
|
3208
3216
|
|
|
3209
3217
|
/* Skip to main content link */
|
|
@@ -3595,7 +3603,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3595
3603
|
border-radius: var(--r-1, 6px);
|
|
3596
3604
|
cursor: pointer;
|
|
3597
3605
|
}
|
|
3598
|
-
.app-side-toggle:focus-visible { outline:
|
|
3606
|
+
.app-side-toggle:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
3599
3607
|
@container (max-width: 900px) {
|
|
3600
3608
|
.app-side-toggle { display: inline-flex; }
|
|
3601
3609
|
.app-topbar .brand { margin-left: 44px; }
|
|
@@ -3689,7 +3697,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3689
3697
|
.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; }
|
|
3690
3698
|
.ws-resizer::after { content: ""; display: block; width: 2px; height: 100%; margin: 0 auto; background: transparent; transition: background var(--dur-snap) var(--ease); }
|
|
3691
3699
|
.ws-resizer:hover::after, .ws-resizer:focus-visible::after { background: var(--accent); }
|
|
3692
|
-
.ws-resizer:focus-visible { outline:
|
|
3700
|
+
.ws-resizer:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: -2px; }
|
|
3693
3701
|
.ws-resizer.ws-resizer-rail { grid-column: 1; }
|
|
3694
3702
|
.ws-resizer.ws-resizer-sessions { grid-column: 2; }
|
|
3695
3703
|
.ws-resizer.ws-resizer-pane { grid-column: 3; justify-self: end; }
|
|
@@ -3741,7 +3749,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3741
3749
|
border-radius: var(--r-1); cursor: pointer;
|
|
3742
3750
|
}
|
|
3743
3751
|
.ws-rail-toggle:hover { background: var(--bg-3); color: var(--fg); }
|
|
3744
|
-
.ws-rail-toggle:focus-visible { outline:
|
|
3752
|
+
.ws-rail-toggle:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
3745
3753
|
.ws-rail-inner { display: flex; flex-direction: column; min-height: 0; flex: 1; padding: var(--space-3) var(--space-2); gap: var(--space-2); }
|
|
3746
3754
|
.ws-rail-head { display: flex; align-items: center; min-height: 36px; padding: 0 var(--space-2); }
|
|
3747
3755
|
.ws-rail-brand { font-family: var(--ff-body); font-weight: 600; font-size: var(--fs-body); color: var(--fg); white-space: nowrap; overflow: hidden; }
|
|
@@ -3753,8 +3761,8 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3753
3761
|
font-family: var(--ff-body); font-size: var(--fs-sm); font-weight: 600;
|
|
3754
3762
|
min-height: 40px; white-space: nowrap; overflow: hidden;
|
|
3755
3763
|
}
|
|
3756
|
-
.ws-rail-action:hover { filter: brightness(
|
|
3757
|
-
.ws-rail-action:focus-visible { outline:
|
|
3764
|
+
.ws-rail-action:hover { filter: brightness(0.92); }
|
|
3765
|
+
.ws-rail-action:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
3758
3766
|
.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; }
|
|
3759
3767
|
.ws-rail-item {
|
|
3760
3768
|
display: flex; align-items: center; gap: var(--space-2);
|
|
@@ -3764,7 +3772,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3764
3772
|
font-family: var(--ff-body); font-size: var(--fs-sm); white-space: nowrap; overflow: hidden;
|
|
3765
3773
|
}
|
|
3766
3774
|
.ws-rail-item:hover { background: var(--bg-3); color: var(--fg); }
|
|
3767
|
-
.ws-rail-item:focus-visible { outline:
|
|
3775
|
+
.ws-rail-item:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: -2px; }
|
|
3768
3776
|
.ws-rail-item.active { background: var(--accent-tint); color: var(--fg); box-shadow: inset 2px 0 0 var(--accent); }
|
|
3769
3777
|
.ws-rail-item-label { flex: 1; overflow: hidden; text-overflow: ellipsis; }
|
|
3770
3778
|
.ws-rail-item-count { font-family: var(--ff-mono); font-size: var(--fs-tiny); color: var(--fg-3); }
|
|
@@ -3837,7 +3845,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3837
3845
|
/* Desktop-only chrome toggle (sessions collapse): inverse of the mobile drawer-toggle. */
|
|
3838
3846
|
.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); }
|
|
3839
3847
|
.ws-desktop-toggle:hover { background: var(--bg-2); color: var(--fg); }
|
|
3840
|
-
.ws-desktop-toggle:focus-visible { outline:
|
|
3848
|
+
.ws-desktop-toggle:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
3841
3849
|
@media (max-width: 900px) { .ws-desktop-toggle { display: none; } }
|
|
3842
3850
|
/* The pane collapse toggle is meaningless once the pane TRACK is dropped (the
|
|
3843
3851
|
pane becomes a mobile overlay drawer at <=1480px, reached via its own
|
|
@@ -3961,7 +3969,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3961
3969
|
.ws-crumb .app-crumb .crumb-right { margin-left: 0; flex-wrap: wrap; min-width: 0; display: inline-flex; }
|
|
3962
3970
|
}
|
|
3963
3971
|
.ws-drawer-toggle:hover { background: var(--bg-2); color: var(--fg); }
|
|
3964
|
-
.ws-drawer-toggle:focus-visible { outline:
|
|
3972
|
+
.ws-drawer-toggle:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
3965
3973
|
|
|
3966
3974
|
@media (prefers-reduced-motion: reduce) {
|
|
3967
3975
|
.ws-shell, .ws-rail, .ws-pane, .ws-sessions, .ws-scrim { transition: none; }
|
|
@@ -3986,7 +3994,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3986
3994
|
transition: background var(--dur-snap) var(--ease), color var(--dur-snap) var(--ease);
|
|
3987
3995
|
}
|
|
3988
3996
|
.row-act:hover { background: var(--bg-3); color: var(--fg); }
|
|
3989
|
-
.row-act:focus-visible { outline:
|
|
3997
|
+
.row-act:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
3990
3998
|
|
|
3991
3999
|
/* FilterPills - a group of pill toggle buttons (aria-pressed). */
|
|
3992
4000
|
.ds-filter-pills { display: flex; flex-wrap: wrap; gap: var(--space-2); }
|
|
@@ -3999,7 +4007,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3999
4007
|
}
|
|
4000
4008
|
.ds-filter-pill:hover { background: var(--bg-3); color: var(--fg); }
|
|
4001
4009
|
.ds-filter-pill.active { background: var(--accent-tint); color: var(--fg); border-color: var(--accent); }
|
|
4002
|
-
.ds-filter-pill:focus-visible { outline:
|
|
4010
|
+
.ds-filter-pill:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
4003
4011
|
|
|
4004
4012
|
/* Touch floor for the new small controls. */
|
|
4005
4013
|
@media (pointer: coarse) {
|
|
@@ -4009,7 +4017,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
4009
4017
|
/* Disabled file actions (read-only row / in-flight mutation) stay visible but inert. */
|
|
4010
4018
|
.ds-file-act:disabled { opacity: .45; cursor: default; }
|
|
4011
4019
|
.ds-file-act:disabled:hover { background: transparent; color: var(--fg-3); }
|
|
4012
|
-
.ds-file-act:focus-visible { outline:
|
|
4020
|
+
.ds-file-act:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
4013
4021
|
|
|
4014
4022
|
/* ============================================================
|
|
4015
4023
|
Print — linearize WorkspaceShell so main content prints in full.
|
|
@@ -4334,7 +4342,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
4334
4342
|
.ds-feature above), so the hover affordance is a lift, matching the same
|
|
4335
4343
|
translateY + shadow idiom .chat-msg:hover .chat-bubble already uses. */
|
|
4336
4344
|
.ds-gallery-tile:hover { transform: translateY(-2px); box-shadow: 0 2px 8px color-mix(in oklab, var(--fg) 10%, transparent); }
|
|
4337
|
-
.ds-gallery-tile:focus-visible { outline:
|
|
4345
|
+
.ds-gallery-tile:focus-visible { outline: var(--focus-w) solid var(--focus-color); outline-offset: var(--focus-offset); }
|
|
4338
4346
|
.ds-gallery-tile--tight { min-height: clamp(96px, 14vw, 120px); }
|
|
4339
4347
|
.ds-lightbox {
|
|
4340
4348
|
position: fixed; inset: 0; background: var(--scrim);
|
package/colors_and_type.css
CHANGED
|
@@ -90,7 +90,11 @@
|
|
|
90
90
|
--accent-fg: var(--ink);
|
|
91
91
|
--accent-ink: var(--acid-deep);
|
|
92
92
|
--accent-bright: var(--acid); /* base value so var(--accent-bright) never falls back empty; ink + [data-accent] retune it */
|
|
93
|
-
--accent-
|
|
93
|
+
/* Blends --accent-ink (the readable/darker ink variant), not the raw
|
|
94
|
+
--accent fill, so light-theme active states clear contrast against --bg;
|
|
95
|
+
dark/ink and auto-dark restate the prior --accent-based value explicitly
|
|
96
|
+
below so this change does not leak into them via inheritance. */
|
|
97
|
+
--accent-tint: color-mix(in oklab, var(--accent-ink) 22%, var(--bg));
|
|
94
98
|
|
|
95
99
|
/* On-color foregrounds — text/icons that sit ON a saturated fill (accent,
|
|
96
100
|
danger, category chips). Theme-driven so white-on-color never hard-codes
|
|
@@ -327,6 +331,9 @@ select:focus-visible {
|
|
|
327
331
|
--accent-fg: var(--ink);
|
|
328
332
|
--accent-ink: var(--acid); /* on ink, the lime itself reads as bright text */
|
|
329
333
|
--accent-bright: var(--acid);
|
|
334
|
+
/* Preserves the prior --accent-based blend for dark; the :root light-theme
|
|
335
|
+
value above was retuned to blend --accent-ink instead. */
|
|
336
|
+
--accent-tint: color-mix(in oklab, var(--accent) 30%, var(--bg));
|
|
330
337
|
--danger: oklch(0.68 0.19 25);
|
|
331
338
|
--flame: #FF5A1F;
|
|
332
339
|
--amber: #D9A93A;
|
|
@@ -341,6 +348,14 @@ select:focus-visible {
|
|
|
341
348
|
--code-num: var(--sun);
|
|
342
349
|
}
|
|
343
350
|
|
|
351
|
+
/* Restores the pre-existing (weaker) dark-theme selection tint after the
|
|
352
|
+
light-theme-only bump in app-shell.css's base ::selection rule. */
|
|
353
|
+
[data-theme="ink"] ::selection,
|
|
354
|
+
[data-theme="dark"] ::selection {
|
|
355
|
+
background: color-mix(in oklab, var(--accent) 24%, var(--bg-2));
|
|
356
|
+
color: var(--fg);
|
|
357
|
+
}
|
|
358
|
+
|
|
344
359
|
/* NOTE: the [data-theme="auto"] block below mirrors the
|
|
345
360
|
[data-theme="ink"/"dark"] block above token-for-token. 'auto + OS-dark' and
|
|
346
361
|
'explicit dark' are the same visual context and resolve every token —
|
|
@@ -368,6 +383,7 @@ select:focus-visible {
|
|
|
368
383
|
--accent-fg: var(--ink);
|
|
369
384
|
--accent-ink: var(--acid);
|
|
370
385
|
--accent-bright: var(--acid);
|
|
386
|
+
--accent-tint: color-mix(in oklab, var(--accent) 30%, var(--bg));
|
|
371
387
|
--danger: oklch(0.68 0.19 25);
|
|
372
388
|
--flame: #FF5A1F;
|
|
373
389
|
--amber: #D9A93A;
|
|
@@ -379,6 +395,10 @@ select:focus-visible {
|
|
|
379
395
|
--code-str-alt: var(--mascot);
|
|
380
396
|
--code-num: var(--sun);
|
|
381
397
|
}
|
|
398
|
+
[data-theme="auto"] ::selection {
|
|
399
|
+
background: color-mix(in oklab, var(--accent) 24%, var(--bg-2));
|
|
400
|
+
color: var(--fg);
|
|
401
|
+
}
|
|
382
402
|
}
|
|
383
403
|
|
|
384
404
|
/* Nested-scope safety: if .ds-247420 appears under another .ds-247420 (e.g.
|
|
@@ -438,6 +458,7 @@ select:focus-visible {
|
|
|
438
458
|
--bg: var(--paper); --bg-2: var(--paper-2); --bg-3: var(--paper-3);
|
|
439
459
|
--fg: var(--ink); --fg-2: var(--ink-2); --fg-3: var(--ink-3);
|
|
440
460
|
--accent: var(--acid); --accent-fg: var(--ink); --accent-ink: var(--acid-deep);
|
|
461
|
+
--accent-tint: color-mix(in oklab, var(--accent-ink) 22%, var(--bg));
|
|
441
462
|
/* A paper island under a dark ancestor must not inherit the dark signal pair. */
|
|
442
463
|
--flame: #C53E00; --amber: #7C570F; --warn: #E0241A; --sky: #3A6EFF;
|
|
443
464
|
}
|