anentrypoint-design 0.0.239 → 0.0.241
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 +85 -71
- package/chat.css +25 -22
- package/colors_and_type.css +17 -6
- package/community.css +63 -18
- package/dist/247420.css +216 -139
- package/dist/247420.js +23 -27
- package/package.json +1 -1
- package/src/components/community.js +46 -12
- package/src/components/content.js +8 -6
- package/src/components/shell.js +1 -1
- package/src/kits/os/freddie-dashboard.css +2 -2
- package/src/kits/os/icons.js +38 -16
- package/src/kits/os/theme.css +33 -33
- package/src/kits/spoint/loading-screen.css +1 -1
- package/src/page-html.js +9 -13
package/app-shell.css
CHANGED
|
@@ -31,7 +31,7 @@ button, input, select, textarea { font: inherit; }
|
|
|
31
31
|
}
|
|
32
32
|
.skip-link:focus {
|
|
33
33
|
top: 10px;
|
|
34
|
-
outline: 2px solid var(--accent);
|
|
34
|
+
outline: 2px solid var(--accent-ink);
|
|
35
35
|
outline-offset: 2px;
|
|
36
36
|
}
|
|
37
37
|
body {
|
|
@@ -248,7 +248,7 @@ body.canvas-host { background: transparent !important; }
|
|
|
248
248
|
}
|
|
249
249
|
.app-topbar nav a:hover { background: var(--bg-2); color: var(--fg); }
|
|
250
250
|
.app-topbar nav a:focus-visible {
|
|
251
|
-
outline: 2px solid var(--accent);
|
|
251
|
+
outline: 2px solid var(--accent-ink);
|
|
252
252
|
outline-offset: 2px;
|
|
253
253
|
}
|
|
254
254
|
/* Active tab reads as a subtle tinted pill with an accent underline rather than
|
|
@@ -284,7 +284,7 @@ body.canvas-host { background: transparent !important; }
|
|
|
284
284
|
width: 100%;
|
|
285
285
|
}
|
|
286
286
|
.app-search:focus-within {
|
|
287
|
-
outline: 2px solid var(--accent);
|
|
287
|
+
outline: 2px solid var(--accent-ink);
|
|
288
288
|
outline-offset: 2px;
|
|
289
289
|
}
|
|
290
290
|
|
|
@@ -326,7 +326,7 @@ body.canvas-host { background: transparent !important; }
|
|
|
326
326
|
}
|
|
327
327
|
.app-side a:hover { background: var(--bg-2); color: var(--fg); }
|
|
328
328
|
.app-side a:focus-visible {
|
|
329
|
-
outline: 2px solid var(--accent);
|
|
329
|
+
outline: 2px solid var(--accent-ink);
|
|
330
330
|
outline-offset: 2px;
|
|
331
331
|
}
|
|
332
332
|
.app-side a.active {
|
|
@@ -449,7 +449,7 @@ body.canvas-host { background: transparent !important; }
|
|
|
449
449
|
.btn-ghost:hover { background: var(--fg); color: var(--bg); }
|
|
450
450
|
.btn:active, .btn-primary:active, .btn-ghost:active { transform: translateY(2px); }
|
|
451
451
|
.btn:focus-visible, .btn-primary:focus-visible, .btn-ghost:focus-visible {
|
|
452
|
-
outline: 2px solid var(--accent);
|
|
452
|
+
outline: 2px solid var(--accent-ink);
|
|
453
453
|
outline-offset: 2px;
|
|
454
454
|
}
|
|
455
455
|
|
|
@@ -476,7 +476,7 @@ body.canvas-host { background: transparent !important; }
|
|
|
476
476
|
.ds-icon-btn-danger { background: var(--warn); color: var(--on-color); }
|
|
477
477
|
.ds-icon-btn-danger:hover { filter: brightness(1.1); }
|
|
478
478
|
.ds-icon-btn:active { transform: translateY(1px); }
|
|
479
|
-
.ds-icon-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
479
|
+
.ds-icon-btn:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
480
480
|
.ds-icon-btn:disabled, .ds-icon-btn.is-disabled {
|
|
481
481
|
opacity: 0.5; cursor: not-allowed; pointer-events: none;
|
|
482
482
|
}
|
|
@@ -488,7 +488,7 @@ body.canvas-host { background: transparent !important; }
|
|
|
488
488
|
display: inline-flex; align-items: center; justify-content: center;
|
|
489
489
|
min-width: 18px; height: 18px; padding: 0 6px;
|
|
490
490
|
font-size: var(--fs-micro); font-weight: 600; line-height: 1;
|
|
491
|
-
border-radius:
|
|
491
|
+
border-radius: var(--r-pill);
|
|
492
492
|
background: var(--bg-3); color: var(--fg-2);
|
|
493
493
|
}
|
|
494
494
|
.ds-badge.tone-green { background: var(--green-tint); color: var(--green-deep); }
|
|
@@ -700,16 +700,13 @@ a.row { text-decoration: none; }
|
|
|
700
700
|
padding: var(--space-9) 0 var(--space-8);
|
|
701
701
|
display: grid; gap: var(--space-5) var(--space-6);
|
|
702
702
|
grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
|
|
703
|
-
grid-template-areas: 'title title' 'body actions'
|
|
703
|
+
grid-template-areas: 'title title' 'body actions';
|
|
704
704
|
align-items: end;
|
|
705
705
|
max-width: var(--measure-wide);
|
|
706
706
|
}
|
|
707
707
|
.ds-hero-head { grid-area: title; display: grid; gap: var(--space-3); }
|
|
708
708
|
.ds-hero-body { grid-area: body; }
|
|
709
709
|
.ds-hero-actions { grid-area: actions; }
|
|
710
|
-
/* Badge gets its own row — sharing 'actions' overlapped it onto the CTAs
|
|
711
|
-
whenever a caller passes both actions and badge. */
|
|
712
|
-
.ds-hero-badge { grid-area: badge; }
|
|
713
710
|
.ds-hero-title {
|
|
714
711
|
font-family: var(--ff-display); font-weight: 700;
|
|
715
712
|
font-size: clamp(40px, 9cqi, 116px);
|
|
@@ -730,7 +727,7 @@ a.row { text-decoration: none; }
|
|
|
730
727
|
@container (max-width: 900px) {
|
|
731
728
|
.ds-hero {
|
|
732
729
|
grid-template-columns: minmax(0, 1fr);
|
|
733
|
-
grid-template-areas: 'title' 'body' 'actions'
|
|
730
|
+
grid-template-areas: 'title' 'body' 'actions';
|
|
734
731
|
align-items: start;
|
|
735
732
|
padding: var(--space-7) 0 var(--space-6);
|
|
736
733
|
}
|
|
@@ -904,7 +901,7 @@ table td { padding: 14px 16px; border-top: 1px solid var(--rule); }
|
|
|
904
901
|
table tr.clickable { cursor: pointer; }
|
|
905
902
|
table tr.clickable:hover td { background: var(--bg-2); }
|
|
906
903
|
table tr.clickable:focus-visible {
|
|
907
|
-
outline: 2px solid var(--accent);
|
|
904
|
+
outline: 2px solid var(--accent-ink);
|
|
908
905
|
outline-offset: -2px;
|
|
909
906
|
}
|
|
910
907
|
table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
@@ -1302,7 +1299,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1302
1299
|
flex-direction: column;
|
|
1303
1300
|
gap: 4px;
|
|
1304
1301
|
}
|
|
1305
|
-
.ds-file-grid:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--r-2); }
|
|
1302
|
+
.ds-file-grid:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; border-radius: var(--r-2); }
|
|
1306
1303
|
|
|
1307
1304
|
/* Listing wrapper holds the optional filter + sort header above the grid. */
|
|
1308
1305
|
.ds-file-listing { display: flex; flex-direction: column; gap: var(--space-2); min-height: 0; }
|
|
@@ -1324,7 +1321,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1324
1321
|
}
|
|
1325
1322
|
.ds-file-sort-btn:hover { color: var(--fg-2); background: var(--bg-2); }
|
|
1326
1323
|
.ds-file-sort-btn.active { color: var(--accent-ink); }
|
|
1327
|
-
.ds-file-sort-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
1324
|
+
.ds-file-sort-btn:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
1328
1325
|
|
|
1329
1326
|
/* Skeleton shimmer rows shown while a directory loads. */
|
|
1330
1327
|
.ds-file-row-skeleton { cursor: default; pointer-events: none; }
|
|
@@ -1372,7 +1369,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1372
1369
|
color: inherit; font: inherit; text-align: left; cursor: pointer;
|
|
1373
1370
|
}
|
|
1374
1371
|
.ds-file-open[disabled] { cursor: default; }
|
|
1375
|
-
.ds-file-open:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--r-1); }
|
|
1372
|
+
.ds-file-open:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; border-radius: var(--r-1); }
|
|
1376
1373
|
.ds-file-row:hover {
|
|
1377
1374
|
background: var(--bg-2);
|
|
1378
1375
|
border-color: var(--rule);
|
|
@@ -1445,7 +1442,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1445
1442
|
role=checkbox/aria-checked name+state. */
|
|
1446
1443
|
.ds-check-box {
|
|
1447
1444
|
width: 15px; height: 15px; box-sizing: border-box; flex: 0 0 auto; position: relative;
|
|
1448
|
-
border: 1.5px solid var(--fg-3); border-radius:
|
|
1445
|
+
border: 1.5px solid var(--fg-3); border-radius: var(--r-0);
|
|
1449
1446
|
transition: background var(--dur-snap) var(--ease), border-color var(--dur-snap) var(--ease);
|
|
1450
1447
|
}
|
|
1451
1448
|
.is-marked > .ds-check-box,
|
|
@@ -1457,7 +1454,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1457
1454
|
}
|
|
1458
1455
|
[aria-checked="mixed"] > .ds-check-box { background: var(--accent); border-color: var(--accent); }
|
|
1459
1456
|
[aria-checked="mixed"] > .ds-check-box::after {
|
|
1460
|
-
content: ""; position: absolute; left: 3px; right: 3px; top: 6px; height: 2px; background: var(--bg); border-radius:
|
|
1457
|
+
content: ""; position: absolute; left: 3px; right: 3px; top: 6px; height: 2px; background: var(--bg); border-radius: var(--r-hair);
|
|
1461
1458
|
}
|
|
1462
1459
|
|
|
1463
1460
|
.ds-file-check {
|
|
@@ -1470,7 +1467,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1470
1467
|
}
|
|
1471
1468
|
.ds-file-check:hover { background: var(--bg-3); color: var(--fg); }
|
|
1472
1469
|
.ds-file-check.is-marked { color: var(--accent-ink); }
|
|
1473
|
-
.ds-file-check:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
1470
|
+
.ds-file-check:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
1474
1471
|
.ds-file-check[disabled] { opacity: 0.4; cursor: default; }
|
|
1475
1472
|
.ds-file-row.is-marked { background: var(--accent-tint); border-color: var(--accent); }
|
|
1476
1473
|
.ds-file-selectall {
|
|
@@ -1480,7 +1477,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1480
1477
|
padding: var(--space-1); border-radius: var(--r-1);
|
|
1481
1478
|
}
|
|
1482
1479
|
.ds-file-selectall:hover { background: var(--bg-2); color: var(--fg); }
|
|
1483
|
-
.ds-file-selectall:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
1480
|
+
.ds-file-selectall:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
1484
1481
|
.ds-file-controls { display: flex; align-items: center; gap: var(--space-2); padding: 0 var(--space-2) var(--space-1); flex-wrap: wrap; }
|
|
1485
1482
|
.ds-file-controls .spread { flex: 1 1 auto; }
|
|
1486
1483
|
.ds-file-controls .ds-file-sort { padding: 0; }
|
|
@@ -1518,7 +1515,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1518
1515
|
}
|
|
1519
1516
|
.ds-density-btn:hover { color: var(--fg); }
|
|
1520
1517
|
.ds-density-btn.active { background: var(--accent-tint); color: var(--fg); }
|
|
1521
|
-
.ds-density-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
1518
|
+
.ds-density-btn:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
1522
1519
|
|
|
1523
1520
|
/* Compact density — tighter rows for long listings. */
|
|
1524
1521
|
.ds-file-grid[data-density="compact"] { gap: 2px; }
|
|
@@ -1552,7 +1549,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1552
1549
|
background: none; border: none; cursor: pointer; color: var(--fg);
|
|
1553
1550
|
}
|
|
1554
1551
|
.ds-file-cell-open[disabled] { cursor: default; }
|
|
1555
|
-
.ds-file-cell-open:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; border-radius: var(--r-2); }
|
|
1552
|
+
.ds-file-cell-open:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: -2px; border-radius: var(--r-2); }
|
|
1556
1553
|
.ds-file-cell-media {
|
|
1557
1554
|
display: flex; align-items: center; justify-content: center;
|
|
1558
1555
|
width: 100%; aspect-ratio: 4 / 3;
|
|
@@ -1770,7 +1767,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1770
1767
|
color: var(--fg-2); font-family: var(--ff-body); font-size: var(--fs-micro);
|
|
1771
1768
|
}
|
|
1772
1769
|
.ds-upload-act:hover { background: var(--bg-3); color: var(--fg); }
|
|
1773
|
-
.ds-upload-act:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
1770
|
+
.ds-upload-act:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
1774
1771
|
@media (hover: none), (pointer: coarse) {
|
|
1775
1772
|
.ds-upload-act { min-height: 44px; min-width: 44px; }
|
|
1776
1773
|
/* 44px floor for file controls on ANY touch device, not only narrow ones
|
|
@@ -1841,7 +1838,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
1841
1838
|
border-radius: var(--r-2); color: var(--fg);
|
|
1842
1839
|
font-family: inherit; font-size: var(--fs-sm);
|
|
1843
1840
|
}
|
|
1844
|
-
.ds-modal-input:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
1841
|
+
.ds-modal-input:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
1845
1842
|
/* iOS auto-zooms inputs under 16px on focus, breaking the modal layout. */
|
|
1846
1843
|
@media (hover: none), (pointer: coarse) {
|
|
1847
1844
|
.ds-modal-input { font-size: 16px; min-height: 44px; }
|
|
@@ -2005,7 +2002,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2005
2002
|
.ds-kbd-sep { color: var(--fg-3); font-size: var(--fs-micro); padding: 0 2px; }
|
|
2006
2003
|
.ds-kbd {
|
|
2007
2004
|
display: inline-block; min-width: 0;
|
|
2008
|
-
padding: 2px 7px; border-radius:
|
|
2005
|
+
padding: 2px 7px; border-radius: var(--r-0);
|
|
2009
2006
|
background: var(--bg); border: var(--bw-hair) solid var(--rule);
|
|
2010
2007
|
border-bottom-width: 2px;
|
|
2011
2008
|
font-family: var(--ff-mono); font-size: var(--fs-micro); color: var(--fg-2);
|
|
@@ -2027,7 +2024,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2027
2024
|
transition: color var(--dur-base) var(--ease), background var(--dur-base) var(--ease);
|
|
2028
2025
|
}
|
|
2029
2026
|
.ds-segmented .ds-seg-btn:hover { color: var(--fg); }
|
|
2030
|
-
.ds-segmented .ds-seg-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
2027
|
+
.ds-segmented .ds-seg-btn:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
2031
2028
|
.ds-segmented .ds-seg-btn.is-on {
|
|
2032
2029
|
background: var(--bg); color: var(--fg);
|
|
2033
2030
|
box-shadow: inset 0 0 0 var(--bw-hair, 1px) var(--rule);
|
|
@@ -2081,7 +2078,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2081
2078
|
.chat-thread { scroll-behavior: smooth; }
|
|
2082
2079
|
}
|
|
2083
2080
|
.chat-thread::-webkit-scrollbar { width: 8px; }
|
|
2084
|
-
.chat-thread::-webkit-scrollbar-thumb { background: var(--bg-3); border-radius:
|
|
2081
|
+
.chat-thread::-webkit-scrollbar-thumb { background: var(--bg-3); border-radius: var(--r-0); }
|
|
2085
2082
|
.chat-empty {
|
|
2086
2083
|
margin: auto;
|
|
2087
2084
|
text-align: center;
|
|
@@ -2095,7 +2092,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2095
2092
|
.chat-msg { display: flex; gap: 12px; align-items: flex-start; padding: 6px 0; position: relative; min-width: 0; }
|
|
2096
2093
|
.chat-msg.you { flex-direction: row-reverse; }
|
|
2097
2094
|
.chat-msg.you .chat-stack { align-items: flex-end; }
|
|
2098
|
-
.chat-msg:hover { background: color-mix(in oklab, var(--fg) 4%, transparent); padding: 6px 0; margin: 0; border-radius:
|
|
2095
|
+
.chat-msg:hover { background: color-mix(in oklab, var(--fg) 4%, transparent); padding: 6px 0; margin: 0; border-radius: var(--r-0); transition: background var(--dur-base) var(--ease); }
|
|
2099
2096
|
|
|
2100
2097
|
.chat-avatar {
|
|
2101
2098
|
width: 36px; height: 36px; flex-shrink: 0;
|
|
@@ -2141,7 +2138,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2141
2138
|
.chat-bubble code {
|
|
2142
2139
|
font-family: var(--ff-mono); font-size: 0.92em;
|
|
2143
2140
|
background: color-mix(in oklab, var(--fg) 10%, transparent);
|
|
2144
|
-
padding: 1px 6px; border-radius:
|
|
2141
|
+
padding: 1px 6px; border-radius: var(--r-0);
|
|
2145
2142
|
}
|
|
2146
2143
|
.chat-msg.you .chat-bubble code { background: color-mix(in oklab, var(--fg) 10%, transparent); }
|
|
2147
2144
|
.chat-bubble a {
|
|
@@ -2252,7 +2249,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2252
2249
|
.chat-msg.you .chat-image,
|
|
2253
2250
|
.chat-msg .chat-image,
|
|
2254
2251
|
.chat-image {
|
|
2255
|
-
display: inline-block; border-radius:
|
|
2252
|
+
display: inline-block; border-radius: var(--r-1); overflow: hidden;
|
|
2256
2253
|
max-width: min(100%, 480px); background: var(--bg-2);
|
|
2257
2254
|
text-decoration: none; color: var(--fg);
|
|
2258
2255
|
border: 1px solid color-mix(in oklab, var(--fg) 10%, transparent);
|
|
@@ -2271,7 +2268,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2271
2268
|
.chat-file {
|
|
2272
2269
|
display: flex; align-items: center; gap: 12px; padding: 12px 14px;
|
|
2273
2270
|
background: var(--bg-2); border: 1px solid color-mix(in oklab, var(--fg) 10%, transparent);
|
|
2274
|
-
border-radius:
|
|
2271
|
+
border-radius: var(--r-1); text-decoration: none; color: var(--fg);
|
|
2275
2272
|
max-width: min(100%, 360px);
|
|
2276
2273
|
transition: background var(--dur-snap, .15s) var(--ease, ease), border-color var(--dur-snap, .15s) var(--ease, ease);
|
|
2277
2274
|
}
|
|
@@ -2280,7 +2277,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2280
2277
|
font-size: 22px; width: 36px; height: 36px;
|
|
2281
2278
|
display: inline-flex; align-items: center; justify-content: center;
|
|
2282
2279
|
background: color-mix(in oklab, var(--accent) 18%, transparent);
|
|
2283
|
-
color: var(--accent-ink); border-radius:
|
|
2280
|
+
color: var(--accent-ink); border-radius: var(--r-0); flex-shrink: 0; font-family: var(--ff-mono);
|
|
2284
2281
|
}
|
|
2285
2282
|
.chat-file > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
|
|
2286
2283
|
.chat-file .name {
|
|
@@ -2298,7 +2295,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2298
2295
|
background: var(--bg-2);
|
|
2299
2296
|
color: var(--fg);
|
|
2300
2297
|
border: 1px solid color-mix(in oklab, var(--fg) 10%, transparent);
|
|
2301
|
-
border-radius:
|
|
2298
|
+
border-radius: var(--r-1); overflow: hidden; max-width: min(100%, 480px);
|
|
2302
2299
|
transition: box-shadow 0.12s ease, border-color 0.12s ease;
|
|
2303
2300
|
}
|
|
2304
2301
|
.chat-msg:hover .chat-pdf { border-color: color-mix(in oklab, var(--accent) 30%, transparent); }
|
|
@@ -2321,7 +2318,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2321
2318
|
display: grid; grid-template-columns: 80px 1fr; gap: 12px; padding: 10px;
|
|
2322
2319
|
background: var(--bg-2);
|
|
2323
2320
|
border: 1px solid color-mix(in oklab, var(--fg) 10%, transparent);
|
|
2324
|
-
border-radius:
|
|
2321
|
+
border-radius: var(--r-1); text-decoration: none; color: var(--fg);
|
|
2325
2322
|
max-width: min(100%, 480px);
|
|
2326
2323
|
transition: background var(--dur-snap, .15s) var(--ease, ease), border-color var(--dur-snap, .15s) var(--ease, ease), box-shadow 0.15s ease;
|
|
2327
2324
|
}
|
|
@@ -2332,7 +2329,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2332
2329
|
}
|
|
2333
2330
|
.chat-link:not(:has(.thumb)):not(:has(img)) { grid-template-columns: 1fr; }
|
|
2334
2331
|
.chat-link .thumb,
|
|
2335
|
-
.chat-link img.thumb { width: 80px; height: 80px; border-radius:
|
|
2332
|
+
.chat-link img.thumb { width: 80px; height: 80px; border-radius: var(--r-0); object-fit: cover; background: var(--bg-3) center/cover no-repeat; }
|
|
2336
2333
|
.chat-link .meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
|
|
2337
2334
|
.chat-link .host { font-family: var(--ff-mono); font-size: var(--fs-xs); color: var(--fg-3); text-transform: lowercase; }
|
|
2338
2335
|
.chat-link .title { font-weight: 600; font-size: var(--fs-sm); line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
|
|
@@ -2356,7 +2353,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2356
2353
|
display: inline-flex; align-items: center; gap: 4px;
|
|
2357
2354
|
padding: 2px 8px; background: var(--bg-2);
|
|
2358
2355
|
border: 1px solid color-mix(in oklab, var(--fg) 10%, transparent);
|
|
2359
|
-
border-radius:
|
|
2356
|
+
border-radius: var(--r-pill); font-size: var(--fs-xs);
|
|
2360
2357
|
cursor: pointer; user-select: none;
|
|
2361
2358
|
transition: background var(--dur-snap, .12s) var(--ease, ease), border-color var(--dur-snap, .12s) var(--ease, ease), transform 0.12s ease;
|
|
2362
2359
|
position: relative;
|
|
@@ -2477,7 +2474,7 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2477
2474
|
.chat-composer .send:active { filter: brightness(0.94); }
|
|
2478
2475
|
.chat-composer .send:focus-visible,
|
|
2479
2476
|
.composer-btn:focus-visible {
|
|
2480
|
-
outline: 2px solid var(--accent);
|
|
2477
|
+
outline: 2px solid var(--accent-ink);
|
|
2481
2478
|
outline-offset: 2px;
|
|
2482
2479
|
}
|
|
2483
2480
|
.chat-composer .send:disabled {
|
|
@@ -2589,8 +2586,13 @@ table tr.clickable:focus-visible td { background: var(--bg-2); }
|
|
|
2589
2586
|
Component States — Disabled, Loading, Error, Success
|
|
2590
2587
|
-------------------------------------------------------------- */
|
|
2591
2588
|
|
|
2592
|
-
/* Disabled state for all interactive elements
|
|
2589
|
+
/* Disabled state for all interactive elements. The `.is-disabled` class
|
|
2590
|
+
variants cover Btn()'s anchor-rendered case (shell.js) — an <a> has no
|
|
2591
|
+
:disabled pseudo-class, so a disabled link-styled button relies entirely
|
|
2592
|
+
on this class selector for its visual treatment (aria-disabled + tabindex
|
|
2593
|
+
are set in JS; this is the paired CSS half). */
|
|
2593
2594
|
.btn:disabled, .btn-primary:disabled, .btn-ghost:disabled,
|
|
2595
|
+
.btn.is-disabled, .btn-primary.is-disabled, .btn-ghost.is-disabled,
|
|
2594
2596
|
button:disabled, [disabled] {
|
|
2595
2597
|
opacity: 0.6;
|
|
2596
2598
|
cursor: not-allowed;
|
|
@@ -2927,7 +2929,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
2927
2929
|
|
|
2928
2930
|
/* Base focus-visible: 2px ring + 2px offset clears dark bg-3 surfaces (WCAG 1.4.11) */
|
|
2929
2931
|
:focus-visible {
|
|
2930
|
-
outline: 2px solid var(--accent);
|
|
2932
|
+
outline: 2px solid var(--accent-ink);
|
|
2931
2933
|
outline-offset: 2px;
|
|
2932
2934
|
}
|
|
2933
2935
|
|
|
@@ -2937,7 +2939,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
2937
2939
|
[role="tab"]:focus-visible,
|
|
2938
2940
|
.row:focus-visible,
|
|
2939
2941
|
.row[tabindex]:focus-visible {
|
|
2940
|
-
outline: 2px solid var(--accent);
|
|
2942
|
+
outline: 2px solid var(--accent-ink);
|
|
2941
2943
|
outline-offset: 2px;
|
|
2942
2944
|
}
|
|
2943
2945
|
|
|
@@ -3327,7 +3329,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3327
3329
|
border-radius: var(--r-1, 6px);
|
|
3328
3330
|
cursor: pointer;
|
|
3329
3331
|
}
|
|
3330
|
-
.app-side-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
3332
|
+
.app-side-toggle:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
3331
3333
|
@container (max-width: 900px) {
|
|
3332
3334
|
.app-side-toggle { display: inline-flex; }
|
|
3333
3335
|
.app-topbar .brand { margin-left: 44px; }
|
|
@@ -3417,7 +3419,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3417
3419
|
.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; }
|
|
3418
3420
|
.ws-resizer::after { content: ""; display: block; width: 2px; height: 100%; margin: 0 auto; background: transparent; transition: background var(--dur-snap) var(--ease); }
|
|
3419
3421
|
.ws-resizer:hover::after, .ws-resizer:focus-visible::after { background: var(--accent); }
|
|
3420
|
-
.ws-resizer:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
|
|
3422
|
+
.ws-resizer:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: -2px; }
|
|
3421
3423
|
.ws-resizer.ws-resizer-rail { grid-column: 1; }
|
|
3422
3424
|
.ws-resizer.ws-resizer-sessions { grid-column: 2; }
|
|
3423
3425
|
.ws-resizer.ws-resizer-pane { grid-column: 3; justify-self: end; }
|
|
@@ -3469,7 +3471,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3469
3471
|
border-radius: var(--r-1); cursor: pointer;
|
|
3470
3472
|
}
|
|
3471
3473
|
.ws-rail-toggle:hover { background: var(--bg-3); color: var(--fg); }
|
|
3472
|
-
.ws-rail-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
3474
|
+
.ws-rail-toggle:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
3473
3475
|
.ws-rail-inner { display: flex; flex-direction: column; min-height: 0; flex: 1; padding: var(--space-3) var(--space-2); gap: var(--space-2); }
|
|
3474
3476
|
.ws-rail-head { display: flex; align-items: center; min-height: 36px; padding: 0 var(--space-2); }
|
|
3475
3477
|
.ws-rail-brand { font-family: var(--ff-body); font-weight: 600; font-size: var(--fs-body); color: var(--fg); white-space: nowrap; overflow: hidden; }
|
|
@@ -3482,7 +3484,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3482
3484
|
min-height: 40px; white-space: nowrap; overflow: hidden;
|
|
3483
3485
|
}
|
|
3484
3486
|
.ws-rail-action:hover { filter: brightness(1.08); }
|
|
3485
|
-
.ws-rail-action:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
3487
|
+
.ws-rail-action:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
3486
3488
|
.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; }
|
|
3487
3489
|
.ws-rail-item {
|
|
3488
3490
|
display: flex; align-items: center; gap: var(--space-2);
|
|
@@ -3492,7 +3494,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3492
3494
|
font-family: var(--ff-body); font-size: var(--fs-sm); white-space: nowrap; overflow: hidden;
|
|
3493
3495
|
}
|
|
3494
3496
|
.ws-rail-item:hover { background: var(--bg-3); color: var(--fg); }
|
|
3495
|
-
.ws-rail-item:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
|
|
3497
|
+
.ws-rail-item:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: -2px; }
|
|
3496
3498
|
.ws-rail-item.active { background: var(--accent-tint); color: var(--fg); box-shadow: inset 2px 0 0 var(--accent); }
|
|
3497
3499
|
.ws-rail-item-label { flex: 1; overflow: hidden; text-overflow: ellipsis; }
|
|
3498
3500
|
.ws-rail-item-count { font-family: var(--ff-mono); font-size: var(--fs-tiny); color: var(--fg-3); }
|
|
@@ -3565,7 +3567,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3565
3567
|
/* Desktop-only chrome toggle (sessions collapse): inverse of the mobile drawer-toggle. */
|
|
3566
3568
|
.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); }
|
|
3567
3569
|
.ws-desktop-toggle:hover { background: var(--bg-2); color: var(--fg); }
|
|
3568
|
-
.ws-desktop-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
3570
|
+
.ws-desktop-toggle:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
3569
3571
|
@media (max-width: 900px) { .ws-desktop-toggle { display: none; } }
|
|
3570
3572
|
/* The pane collapse toggle is meaningless once the pane TRACK is dropped (the
|
|
3571
3573
|
pane becomes a mobile overlay drawer at <=1480px, reached via its own
|
|
@@ -3689,7 +3691,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3689
3691
|
.ws-crumb .app-crumb .crumb-right { margin-left: 0; flex-wrap: wrap; min-width: 0; display: inline-flex; }
|
|
3690
3692
|
}
|
|
3691
3693
|
.ws-drawer-toggle:hover { background: var(--bg-2); color: var(--fg); }
|
|
3692
|
-
.ws-drawer-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
3694
|
+
.ws-drawer-toggle:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
3693
3695
|
|
|
3694
3696
|
@media (prefers-reduced-motion: reduce) {
|
|
3695
3697
|
.ws-shell, .ws-rail, .ws-pane, .ws-sessions, .ws-scrim { transition: none; }
|
|
@@ -3701,7 +3703,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3701
3703
|
============================================================ */
|
|
3702
3704
|
|
|
3703
3705
|
/* Highlighted match inside a Row title (Row `highlight` prop). */
|
|
3704
|
-
.ds-hl { background: color-mix(in oklab, var(--accent) 25%, transparent); color: inherit; border-radius:
|
|
3706
|
+
.ds-hl { background: color-mix(in oklab, var(--accent) 25%, transparent); color: inherit; border-radius: var(--r-hair); }
|
|
3705
3707
|
|
|
3706
3708
|
/* Action strip rendered inside an EXPANDED Row (Row `actions` prop). The
|
|
3707
3709
|
buttons stop propagation so they never fire the row onClick. */
|
|
@@ -3714,20 +3716,20 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3714
3716
|
transition: background var(--dur-snap) var(--ease), color var(--dur-snap) var(--ease);
|
|
3715
3717
|
}
|
|
3716
3718
|
.row-act:hover { background: var(--bg-3); color: var(--fg); }
|
|
3717
|
-
.row-act:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
3719
|
+
.row-act:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
3718
3720
|
|
|
3719
3721
|
/* FilterPills - a group of pill toggle buttons (aria-pressed). */
|
|
3720
3722
|
.ds-filter-pills { display: flex; flex-wrap: wrap; gap: var(--space-2); }
|
|
3721
3723
|
.ds-filter-pill {
|
|
3722
3724
|
display: inline-flex; align-items: center; justify-content: center;
|
|
3723
3725
|
padding: 4px 12px; min-height: 28px;
|
|
3724
|
-
background: var(--bg-2); border: var(--bw-hair) solid var(--bg-3); border-radius:
|
|
3726
|
+
background: var(--bg-2); border: var(--bw-hair) solid var(--bg-3); border-radius: var(--r-pill);
|
|
3725
3727
|
color: var(--fg-2); font-family: var(--ff-body); font-size: var(--fs-tiny); cursor: pointer;
|
|
3726
3728
|
transition: background var(--dur-snap) var(--ease), color var(--dur-snap) var(--ease);
|
|
3727
3729
|
}
|
|
3728
3730
|
.ds-filter-pill:hover { background: var(--bg-3); color: var(--fg); }
|
|
3729
3731
|
.ds-filter-pill.active { background: var(--accent-tint); color: var(--fg); border-color: var(--accent); }
|
|
3730
|
-
.ds-filter-pill:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
3732
|
+
.ds-filter-pill:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
3731
3733
|
|
|
3732
3734
|
/* Touch floor for the new small controls. */
|
|
3733
3735
|
@media (pointer: coarse) {
|
|
@@ -3737,7 +3739,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3737
3739
|
/* Disabled file actions (read-only row / in-flight mutation) stay visible but inert. */
|
|
3738
3740
|
.ds-file-act:disabled { opacity: .45; cursor: default; }
|
|
3739
3741
|
.ds-file-act:disabled:hover { background: transparent; color: var(--fg-3); }
|
|
3740
|
-
.ds-file-act:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
|
|
3742
|
+
.ds-file-act:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 1px; }
|
|
3741
3743
|
|
|
3742
3744
|
/* ============================================================
|
|
3743
3745
|
Print — linearize WorkspaceShell so main content prints in full.
|
|
@@ -3788,7 +3790,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3788
3790
|
/* PhaseWalk */
|
|
3789
3791
|
.ds-phasewalk { display: inline-flex; gap: 2px; vertical-align: middle; }
|
|
3790
3792
|
.ds-phasewalk-seg {
|
|
3791
|
-
width: 18px; height: 10px; border-radius:
|
|
3793
|
+
width: 18px; height: 10px; border-radius: var(--r-hair);
|
|
3792
3794
|
background: var(--bg-3); position: relative;
|
|
3793
3795
|
}
|
|
3794
3796
|
.ds-phasewalk-seg.is-reached { background: var(--success); }
|
|
@@ -3827,8 +3829,8 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3827
3829
|
/* BarRow */
|
|
3828
3830
|
.ds-bar-row { display: flex; align-items: center; gap: 8px; margin: 3px 0; font-size: var(--fs-tiny); }
|
|
3829
3831
|
.ds-bar-row-label { width: 100px; flex-shrink: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
3830
|
-
.ds-bar-bg { flex: 1; min-width: 60px; background: var(--bg-3); border-radius:
|
|
3831
|
-
.ds-bar-fill { background: var(--accent); height: 100%; border-radius:
|
|
3832
|
+
.ds-bar-bg { flex: 1; min-width: 60px; background: var(--bg-3); border-radius: var(--r-hair); height: 6px; overflow: hidden; }
|
|
3833
|
+
.ds-bar-fill { background: var(--accent); height: 100%; border-radius: var(--r-hair); }
|
|
3832
3834
|
.ds-bar-row-value { flex-shrink: 0; color: var(--fg-2); max-width: 40%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
3833
3835
|
@media (max-width: 400px) {
|
|
3834
3836
|
.ds-bar-row-label { width: 72px; }
|
|
@@ -3843,7 +3845,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3843
3845
|
.ds-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-1); }
|
|
3844
3846
|
}
|
|
3845
3847
|
.ds-stats-grid-empty { padding: var(--space-3); color: var(--fg-3); font-size: var(--fs-tiny); }
|
|
3846
|
-
.ds-stat { min-width: 0; background: var(--bg-3); border-radius:
|
|
3848
|
+
.ds-stat { min-width: 0; background: var(--bg-3); border-radius: var(--r-0); padding: 10px 12px; }
|
|
3847
3849
|
.ds-stat-val { font-size: clamp(18px, 5cqi, 22px); font-weight: 700; color: var(--accent-ink); overflow-wrap: anywhere; }
|
|
3848
3850
|
.ds-stat-val.rate-big { font-size: clamp(24px, 7cqi, 32px); color: var(--success); }
|
|
3849
3851
|
.ds-stat-val.err-rate { font-size: clamp(24px, 7cqi, 32px); color: var(--warn); }
|
|
@@ -3854,7 +3856,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3854
3856
|
.ds-sub-grid-empty { padding: var(--space-3); color: var(--fg-3); font-size: var(--fs-tiny); }
|
|
3855
3857
|
.ds-sub-btn {
|
|
3856
3858
|
padding: 6px 10px; background: var(--bg-3); border: var(--bw-hair) solid var(--bg-3);
|
|
3857
|
-
border-radius:
|
|
3859
|
+
border-radius: var(--r-0); font-size: var(--fs-tiny); cursor: pointer; color: var(--fg);
|
|
3858
3860
|
text-align: left; font-family: var(--ff-body);
|
|
3859
3861
|
}
|
|
3860
3862
|
.ds-sub-btn:hover { border-color: var(--accent); color: var(--accent-ink); }
|
|
@@ -3885,7 +3887,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3885
3887
|
/* DevRow */
|
|
3886
3888
|
.ds-dev-row {
|
|
3887
3889
|
background: var(--danger-surface); border-left: var(--bw-chunk) solid var(--warn);
|
|
3888
|
-
padding: 8px 12px; margin: 4px 0; border-radius:
|
|
3890
|
+
padding: 8px 12px; margin: 4px 0; border-radius: var(--r-hair); font-size: var(--fs-tiny);
|
|
3889
3891
|
}
|
|
3890
3892
|
.ds-dev-row strong { color: var(--warn); }
|
|
3891
3893
|
|
|
@@ -3905,7 +3907,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3905
3907
|
.ds-live-log-entry { padding: 2px 8px; border-bottom: var(--bw-hair) solid var(--bg-3); overflow-wrap: anywhere; }
|
|
3906
3908
|
.ds-live-log-entry:hover { background: var(--bg-3); }
|
|
3907
3909
|
.ds-live-log-ts { margin-right: 6px; color: var(--fg-3); }
|
|
3908
|
-
.ds-live-log-subtag { margin-right: 6px; padding: 0 5px; border-radius:
|
|
3910
|
+
.ds-live-log-subtag { margin-right: 6px; padding: 0 5px; border-radius: var(--r-hair); font-size: var(--fs-micro); }
|
|
3909
3911
|
.ds-live-log-preview { margin-left: 6px; color: var(--fg-3); word-break: break-word; }
|
|
3910
3912
|
|
|
3911
3913
|
/* Touch floors for the dense controls (not covered by the mobile width blocks). */
|
|
@@ -3941,6 +3943,13 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3941
3943
|
@media (max-width: 760px) {
|
|
3942
3944
|
.ds-panel-duo { grid-template-columns: 1fr; }
|
|
3943
3945
|
}
|
|
3946
|
+
/* Wide-viewport density: auto-fit grid so panel COUNT tracks actual children
|
|
3947
|
+
instead of a hardcoded column number — 2 children sit 2-up, 5 wrap to a
|
|
3948
|
+
third row, never an arbitrary 3-card reflex (same auto-fit/minmax pattern
|
|
3949
|
+
as .ds-tile-grid). Panels floor at 280px before wrapping, so ultra-wide
|
|
3950
|
+
screens still get more columns than a fixed repeat(3, ...) ever allowed. */
|
|
3951
|
+
.ds-panel-trio { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: var(--space-2); margin: var(--space-2) 0; }
|
|
3952
|
+
.ds-panel-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: var(--space-2); margin: var(--space-2) 0; }
|
|
3944
3953
|
/* wide dense rows/tables scroll inside their panel, never the page */
|
|
3945
3954
|
.ds-scroll-x { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
|
|
3946
3955
|
|
|
@@ -3951,7 +3960,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
3951
3960
|
max-width: min(1100px, 100%);
|
|
3952
3961
|
margin: var(--space-3) auto;
|
|
3953
3962
|
background: var(--bg-2);
|
|
3954
|
-
border-radius:
|
|
3963
|
+
border-radius: var(--r-2);
|
|
3955
3964
|
padding: clamp(16px, 5vw, 64px);
|
|
3956
3965
|
box-sizing: border-box;
|
|
3957
3966
|
display: flex;
|
|
@@ -4013,7 +4022,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
4013
4022
|
.ds-slide-split { grid-template-columns: 1fr; }
|
|
4014
4023
|
}
|
|
4015
4024
|
.ds-slide-split-cell {
|
|
4016
|
-
padding: 18px; background: var(--bg-2); border-radius:
|
|
4025
|
+
padding: 18px; background: var(--bg-2); border-radius: var(--r-2);
|
|
4017
4026
|
color: var(--fg-2); font-size: var(--fs-lg); line-height: var(--lh-base); min-width: 0;
|
|
4018
4027
|
}
|
|
4019
4028
|
.ds-slide-split-cell--accent { border-left: 3px solid var(--slide-accent, var(--accent)); }
|
|
@@ -4030,7 +4039,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
4030
4039
|
.ds-err-path {
|
|
4031
4040
|
display: inline-flex; gap: 6px; align-items: baseline; flex-wrap: wrap; max-width: 100%;
|
|
4032
4041
|
font-family: var(--ff-mono); font-size: 13px; color: var(--panel-text-2);
|
|
4033
|
-
background: var(--panel-1); padding: 6px 12px; border-radius:
|
|
4042
|
+
background: var(--panel-1); padding: 6px 12px; border-radius: var(--r-0);
|
|
4034
4043
|
overflow-wrap: anywhere; word-break: break-all;
|
|
4035
4044
|
}
|
|
4036
4045
|
|
|
@@ -4046,10 +4055,15 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
4046
4055
|
}
|
|
4047
4056
|
.ds-gallery-tile {
|
|
4048
4057
|
cursor: pointer; display: flex; flex-direction: column; gap: 6px;
|
|
4049
|
-
padding: 12px; border-radius:
|
|
4058
|
+
padding: 12px; border-radius: var(--r-1); min-height: clamp(120px, 18vw, 160px);
|
|
4050
4059
|
border: 0; text-align: left; font: inherit; color: inherit;
|
|
4051
4060
|
background: var(--tile-tone, var(--panel-1));
|
|
4061
|
+
transition: transform var(--dur-base) var(--ease), box-shadow var(--dur-base) var(--ease);
|
|
4052
4062
|
}
|
|
4063
|
+
/* Flat tonal fill only (house style: no bespoke tile chrome, no borders — see
|
|
4064
|
+
.ds-feature above), so the hover affordance is a lift, matching the same
|
|
4065
|
+
translateY + shadow idiom .chat-msg:hover .chat-bubble already uses. */
|
|
4066
|
+
.ds-gallery-tile:hover { transform: translateY(-2px); box-shadow: 0 2px 8px color-mix(in oklab, var(--fg) 10%, transparent); }
|
|
4053
4067
|
.ds-gallery-tile:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 2px; }
|
|
4054
4068
|
.ds-gallery-tile--tight { min-height: clamp(96px, 14vw, 120px); }
|
|
4055
4069
|
.ds-lightbox {
|
|
@@ -4060,7 +4074,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
4060
4074
|
z-index: 50;
|
|
4061
4075
|
}
|
|
4062
4076
|
.ds-lightbox-card {
|
|
4063
|
-
background: var(--panel-0); border-radius:
|
|
4077
|
+
background: var(--panel-0); border-radius: var(--r-2); padding: clamp(16px, 4vw, 28px);
|
|
4064
4078
|
width: min(520px, 100%); min-width: 0;
|
|
4065
4079
|
max-height: calc(100vh - 24px);
|
|
4066
4080
|
max-height: calc(100dvh - 24px);
|
|
@@ -4068,7 +4082,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
4068
4082
|
display: flex; flex-direction: column; gap: 14px;
|
|
4069
4083
|
}
|
|
4070
4084
|
.ds-lightbox-preview {
|
|
4071
|
-
padding: clamp(16px, 6vw, 36px); border-radius:
|
|
4085
|
+
padding: clamp(16px, 6vw, 36px); border-radius: var(--r-1); text-align: center;
|
|
4072
4086
|
font-family: var(--ff-mono); white-space: pre-line; font-size: clamp(16px, 5vw, 24px);
|
|
4073
4087
|
background: var(--tile-tone, var(--panel-1));
|
|
4074
4088
|
}
|
|
@@ -4090,7 +4104,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
4090
4104
|
}
|
|
4091
4105
|
.ds-swatch-grid-lg { grid-template-columns: repeat(auto-fill, minmax(min(150px, 100%), 1fr)); }
|
|
4092
4106
|
.ds-swatch-col { display: flex; flex-direction: column; gap: 6px; }
|
|
4093
|
-
.ds-swatch-chip { height: 48px; border-radius:
|
|
4107
|
+
.ds-swatch-chip { height: 48px; border-radius: var(--r-1); border: 1px solid var(--rule); background: var(--swatch, var(--panel-1)); }
|
|
4094
4108
|
.ds-swatch-chip--big { height: 64px; }
|
|
4095
4109
|
.ds-swatch-name { font-family: var(--ff-mono); font-size: 11px; color: var(--fg-3); }
|
|
4096
4110
|
.ds-type-panel { padding: clamp(10px, 2.5vw, 14px) clamp(10px, 3vw, 18px); display: flex; flex-direction: column; gap: 14px; }
|
|
@@ -4152,14 +4166,14 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
4152
4166
|
.ds-savebar {
|
|
4153
4167
|
position: sticky; bottom: 8px; display: flex; align-items: center;
|
|
4154
4168
|
justify-content: flex-end; gap: 8px; flex-wrap: wrap; padding: 10px;
|
|
4155
|
-
background: var(--panel-2); border-radius:
|
|
4169
|
+
background: var(--panel-2); border-radius: var(--r-1); margin: 8px 0;
|
|
4156
4170
|
}
|
|
4157
4171
|
.ds-savebar-note { flex: 1 1 160px; min-width: 0; color: var(--panel-text-2); }
|
|
4158
4172
|
.ds-settings-modal { min-width: min(320px, calc(100vw - 32px)); max-width: 480px; }
|
|
4159
4173
|
.ds-modal-body-form { padding: 16px; display: flex; flex-direction: column; gap: 12px; }
|
|
4160
4174
|
.ds-modal-note { margin: 0 0 8px; color: var(--panel-text-2); font-size: 14px; }
|
|
4161
4175
|
.ds-draft-preview {
|
|
4162
|
-
background: var(--panel-1); padding: 12px; border-radius:
|
|
4176
|
+
background: var(--panel-1); padding: 12px; border-radius: var(--r-0);
|
|
4163
4177
|
font-size: 13px; color: var(--panel-text-2); max-height: 120px;
|
|
4164
4178
|
overflow-y: auto; font-family: var(--ff-mono); overflow-wrap: anywhere;
|
|
4165
4179
|
}
|
|
@@ -4180,7 +4194,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
4180
4194
|
.ds-auth-remember { display: flex; align-items: center; gap: 6px; cursor: pointer; }
|
|
4181
4195
|
.ds-auth-remember-text { color: var(--panel-text-2); font-size: 13px; }
|
|
4182
4196
|
.ds-auth-forgot { font-size: 13px; }
|
|
4183
|
-
.ds-auth-error { padding: 8px 10px; background: var(--panel-1); border-radius:
|
|
4197
|
+
.ds-auth-error { padding: 8px 10px; background: var(--panel-1); border-radius: var(--r-0); color: var(--danger); font-size: 13px; overflow-wrap: anywhere; }
|
|
4184
4198
|
.ds-auth-divider { display: flex; align-items: center; gap: 10px; margin: 6px 0; color: var(--panel-text-3); font-size: 12px; }
|
|
4185
4199
|
.ds-auth-divider-line { flex: 1; height: 1px; background: var(--panel-2); }
|
|
4186
4200
|
.ds-auth-providers { display: flex; gap: 8px; flex-wrap: wrap; }
|
|
@@ -4204,7 +4218,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
4204
4218
|
.ds-tile-meta { display: flex; align-items: center; justify-content: space-between; gap: 6px; font-size: 12px; flex-wrap: wrap; min-width: 0; }
|
|
4205
4219
|
.ds-tile-glyph { font-family: var(--ff-mono); color: var(--panel-text-3); }
|
|
4206
4220
|
.ds-tile-label { color: var(--panel-text); overflow-wrap: anywhere; }
|
|
4207
|
-
.ds-gal-swatch { height: 64px; border-radius:
|
|
4221
|
+
.ds-gal-swatch { height: 64px; border-radius: var(--r-0); background: var(--swatch, var(--panel-1)); }
|
|
4208
4222
|
.ds-gal-swatch-meta { display: flex; justify-content: space-between; gap: 6px; flex-wrap: wrap; font-family: var(--ff-mono); font-size: 11px; min-width: 0; }
|
|
4209
4223
|
.ds-gal-swatch-name { color: var(--panel-text); }
|
|
4210
4224
|
.ds-gal-swatch-hint { color: var(--panel-text-3); overflow-wrap: anywhere; }
|
|
@@ -4225,7 +4239,7 @@ input[type="password"]:not(:placeholder-shown) + .input-clear {
|
|
|
4225
4239
|
.ds-cli-warn .prompt, .ds-cli-warn .cmd { color: var(--mascot); }
|
|
4226
4240
|
.ds-cli-log .prompt { color: var(--fg-3); }
|
|
4227
4241
|
.ds-cli-log .cmd { color: var(--fg-2); font-family: var(--ff-mono); }
|
|
4228
|
-
.ds-term-body { padding: 14px 18px; display: flex; flex-direction: column; gap: 4px; background: var(--bg-2); border-radius:
|
|
4242
|
+
.ds-term-body { padding: 14px 18px; display: flex; flex-direction: column; gap: 4px; background: var(--bg-2); border-radius: var(--r-1); }
|
|
4229
4243
|
.ds-term-body--tall { min-height: 280px; }
|
|
4230
4244
|
.ds-term-input-row { margin-top: 6px; }
|
|
4231
4245
|
.ds-term-input { flex: 1; min-width: 0; background: transparent; border: 0; outline: 0; font-family: var(--ff-mono); font-size: 13px; color: var(--fg); }
|