@dorsk/tsumikit 0.78.0 → 0.79.0

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.
Files changed (57) hide show
  1. package/dist/components/atoms/Artwork.svelte +5 -3
  2. package/dist/components/atoms/Badge.svelte +1 -1
  3. package/dist/components/atoms/Button.svelte +24 -8
  4. package/dist/components/atoms/Card.svelte +18 -12
  5. package/dist/components/atoms/Checkbox.svelte +4 -2
  6. package/dist/components/atoms/Gauge.svelte +2 -2
  7. package/dist/components/atoms/Input.svelte +6 -3
  8. package/dist/components/atoms/Kbd.svelte +1 -1
  9. package/dist/components/atoms/Progress.svelte +1 -1
  10. package/dist/components/atoms/SegmentedProgress.svelte +2 -2
  11. package/dist/components/atoms/Select.svelte +9 -3
  12. package/dist/components/atoms/Slider.svelte +8 -6
  13. package/dist/components/atoms/Swatch.svelte +1 -1
  14. package/dist/components/atoms/Switch.svelte +3 -2
  15. package/dist/components/atoms/Textarea.svelte +6 -3
  16. package/dist/components/layouts/AppShell.svelte +6 -6
  17. package/dist/components/layouts/MasterDetail.svelte +3 -3
  18. package/dist/components/layouts/NavBar.svelte +4 -4
  19. package/dist/components/layouts/NavSection.svelte +1 -1
  20. package/dist/components/layouts/ResizablePanel.svelte +7 -7
  21. package/dist/components/layouts/TabBar.svelte +2 -2
  22. package/dist/components/molecules/Accordion.svelte +2 -2
  23. package/dist/components/molecules/AttachmentList.svelte +2 -2
  24. package/dist/components/molecules/CapBar.svelte +2 -2
  25. package/dist/components/molecules/CodeBlock.svelte +5 -5
  26. package/dist/components/molecules/Combobox.svelte +3 -3
  27. package/dist/components/molecules/Drawer.svelte +8 -8
  28. package/dist/components/molecules/EmojiPicker.svelte +1 -1
  29. package/dist/components/molecules/FileButton.svelte +16 -4
  30. package/dist/components/molecules/FilterInput.svelte +4 -4
  31. package/dist/components/molecules/GitRef.svelte +2 -2
  32. package/dist/components/molecules/GlyphStack.svelte +21 -3
  33. package/dist/components/molecules/InputGroup.svelte +2 -2
  34. package/dist/components/molecules/Modal.svelte +5 -5
  35. package/dist/components/molecules/OptionButton.svelte +8 -3
  36. package/dist/components/molecules/Pagination.svelte +3 -1
  37. package/dist/components/molecules/Popover.svelte +18 -11
  38. package/dist/components/molecules/Prose.svelte +6 -6
  39. package/dist/components/molecules/RadialMenu.svelte +3 -3
  40. package/dist/components/molecules/RadioGroup.svelte +6 -4
  41. package/dist/components/molecules/RichSelect.svelte +6 -4
  42. package/dist/components/molecules/SectionHeader.svelte +1 -1
  43. package/dist/components/molecules/SeekSlider.svelte +6 -6
  44. package/dist/components/molecules/SegmentedControl.svelte +7 -7
  45. package/dist/components/molecules/SortableList.svelte +2 -2
  46. package/dist/components/molecules/SplitButton.svelte +1 -1
  47. package/dist/components/molecules/Tabs.svelte +3 -3
  48. package/dist/components/molecules/ThemePicker.svelte +1 -1
  49. package/dist/components/molecules/Timestamp.svelte +1 -1
  50. package/dist/components/molecules/Toggle.svelte +5 -3
  51. package/dist/components/molecules/Tooltip.svelte +2 -2
  52. package/dist/components/molecules/VolumeSlider.svelte +3 -3
  53. package/dist/components/organisms/ConversationFeed.svelte +1 -1
  54. package/dist/components/organisms/ConversationPanel.svelte +3 -3
  55. package/dist/components/organisms/DataTable.svelte +18 -16
  56. package/dist/styles/tokens.css +34 -0
  57. package/package.json +1 -1
@@ -144,8 +144,8 @@
144
144
  <style>
145
145
  .tabbar {
146
146
  min-width: 0;
147
- background: var(--bg-elevated);
148
- border-top: 1px solid var(--border);
147
+ background: var(--surface-fill);
148
+ border-top: var(--edge-width) solid var(--surface-edge);
149
149
  }
150
150
  .bar {
151
151
  position: fixed;
@@ -124,7 +124,7 @@
124
124
 
125
125
  <style>
126
126
  .accordion {
127
- border: 1px solid var(--border);
127
+ border: var(--edge-width) solid var(--surface-edge);
128
128
  border-radius: var(--r-lg);
129
129
  overflow: hidden;
130
130
  }
@@ -133,7 +133,7 @@
133
133
  border-radius: 0;
134
134
  }
135
135
  .accordion > :global(.acc-item + .acc-item) {
136
- border-top: 1px solid var(--border);
136
+ border-top: var(--edge-width) solid var(--surface-edge);
137
137
  }
138
138
  .acc-title {
139
139
  min-width: 0;
@@ -317,7 +317,7 @@
317
317
  right: -0.35em;
318
318
  min-width: 1.4em;
319
319
  padding: 0.1em 0.3em;
320
- border: 1px solid var(--border-strong);
320
+ border: var(--edge-width) solid var(--surface-edge-strong);
321
321
  border-radius: var(--r-pill);
322
322
  background: var(--bg);
323
323
  color: var(--text);
@@ -326,7 +326,7 @@
326
326
  .preview {
327
327
  display: block;
328
328
  padding: 0;
329
- border: 1px solid var(--border);
329
+ border: var(--edge-width) solid var(--surface-edge);
330
330
  border-radius: var(--r-md);
331
331
  background: none;
332
332
  cursor: pointer;
@@ -284,7 +284,7 @@
284
284
  inset: 0 0 0 var(--cap);
285
285
  border-radius: 0 var(--r-pill) var(--r-pill) 0;
286
286
  background: var(--bg);
287
- box-shadow: inset 0 0 0 1px var(--border);
287
+ box-shadow: inset 0 0 0 var(--edge-width) var(--track-edge);
288
288
  pointer-events: none;
289
289
  }
290
290
  .fill-clip {
@@ -363,7 +363,7 @@
363
363
  left: clamp(0%, var(--cap), 100%);
364
364
  translate: calc(-1 * clamp(0%, var(--cap), 100%)) 0;
365
365
  padding: var(--sp-px) var(--sp-1);
366
- border: 1px solid var(--border-strong);
366
+ border: var(--edge-width) solid var(--raised-edge);
367
367
  border-radius: var(--r-sm);
368
368
  background: var(--bg-elevated-2);
369
369
  box-shadow: var(--shadow-sm);
@@ -85,7 +85,7 @@
85
85
  <style>
86
86
  .codeblock {
87
87
  margin: 0;
88
- border: 1px solid var(--border);
88
+ border: var(--edge-width) solid var(--surface-edge);
89
89
  border-radius: var(--r-lg);
90
90
  background: var(--bg);
91
91
  overflow: hidden;
@@ -95,8 +95,8 @@
95
95
  align-items: center;
96
96
  gap: var(--sp-2);
97
97
  padding: var(--sp-1) var(--sp-1) var(--sp-1) var(--sp-3);
98
- background: var(--bg-elevated-2);
99
- border-bottom: 1px solid var(--border);
98
+ background: var(--surface-fill-2);
99
+ border-bottom: var(--edge-width) solid var(--surface-edge);
100
100
  font-size: var(--fs-xs);
101
101
  font-family: var(--font-mono);
102
102
  color: var(--text-muted);
@@ -120,8 +120,8 @@
120
120
  padding: var(--sp-3) var(--sp-2);
121
121
  text-align: right;
122
122
  color: var(--text-faint);
123
- background: var(--bg-elevated);
124
- border-right: 1px solid var(--border);
123
+ background: var(--surface-fill);
124
+ border-right: var(--edge-width) solid var(--surface-edge);
125
125
  user-select: none;
126
126
  font-family: var(--font-mono);
127
127
  font-size: var(--fs-sm);
@@ -281,11 +281,11 @@
281
281
  max-height: var(--cb-max-height, min(16rem, 40vh));
282
282
  overflow-y: auto;
283
283
  padding: var(--sp-1);
284
- background: var(--cb-bg, var(--bg-elevated));
284
+ background: var(--cb-bg, var(--raised-fill));
285
285
  color: var(--text);
286
- border: 1px solid var(--cb-border, var(--border-strong));
286
+ border: var(--edge-width) solid var(--cb-border, var(--raised-edge));
287
287
  border-radius: var(--cb-radius, var(--r-md));
288
- box-shadow: var(--shadow-md);
288
+ box-shadow: var(--raised-shadow);
289
289
  transform-origin: var(--tsu-origin, top left);
290
290
  opacity: 1;
291
291
  scale: 1;
@@ -215,7 +215,7 @@
215
215
  'foot';
216
216
  width: 100%;
217
217
  height: 100%;
218
- background: var(--bg-elevated);
218
+ background: var(--overlay-fill);
219
219
  will-change: translate;
220
220
  padding-top: var(--safe-top);
221
221
  padding-bottom: var(--safe-bottom);
@@ -242,7 +242,7 @@
242
242
  align-items: center;
243
243
  gap: var(--sp-2);
244
244
  padding: var(--sp-4);
245
- border-bottom: 1px solid var(--border);
245
+ border-bottom: var(--edge-width) solid var(--surface-edge);
246
246
  }
247
247
  .panel-icon {
248
248
  display: inline-flex;
@@ -269,7 +269,7 @@
269
269
  display: flex;
270
270
  gap: var(--sp-1);
271
271
  padding: var(--sp-2);
272
- border-bottom: 1px solid var(--border);
272
+ border-bottom: var(--edge-width) solid var(--surface-edge);
273
273
  overflow-x: auto;
274
274
  scrollbar-width: thin;
275
275
  }
@@ -290,7 +290,7 @@
290
290
  justify-content: flex-end;
291
291
  gap: var(--sp-2);
292
292
  padding: var(--sp-4);
293
- border-top: 1px solid var(--border);
293
+ border-top: var(--edge-width) solid var(--surface-edge);
294
294
  }
295
295
 
296
296
  @media (min-width: 48rem) {
@@ -298,8 +298,8 @@
298
298
  width: min(var(--drawer-w), 100%);
299
299
  padding-top: 0;
300
300
  padding-bottom: 0;
301
- border-left: 1px solid var(--border-strong);
302
- box-shadow: var(--shadow-lg);
301
+ border-left: var(--edge-width) solid var(--border-strong);
302
+ box-shadow: var(--overlay-shadow);
303
303
  grid-template-columns: minmax(0, 1fr);
304
304
  grid-template-rows: auto minmax(0, 1fr) auto;
305
305
  grid-template-areas:
@@ -309,7 +309,7 @@
309
309
  }
310
310
  .drawer[data-side='left'] .panel {
311
311
  border-left: 0;
312
- border-right: 1px solid var(--border-strong);
312
+ border-right: var(--edge-width) solid var(--border-strong);
313
313
  }
314
314
  .panel.has-nav {
315
315
  grid-template-columns: var(--drawer-nav-w) minmax(0, 1fr);
@@ -325,7 +325,7 @@
325
325
  overflow-x: hidden;
326
326
  overflow-y: auto;
327
327
  border-bottom: 0;
328
- border-right: 1px solid var(--border);
328
+ border-right: var(--edge-width) solid var(--surface-edge);
329
329
  }
330
330
  .panel-nav-mobile {
331
331
  display: none;
@@ -223,7 +223,7 @@
223
223
  align-items: center;
224
224
  justify-content: center;
225
225
  padding: var(--sp-1);
226
- border: 1px solid transparent;
226
+ border: var(--edge-width) solid transparent;
227
227
  border-radius: var(--r-sm);
228
228
  background: none;
229
229
  color: inherit;
@@ -107,9 +107,12 @@
107
107
  gap: var(--sp-2);
108
108
  padding: var(--sp-2) var(--btn-px-md);
109
109
  min-height: var(--control-height-default);
110
- border: 1px solid var(--border-strong);
110
+ border: var(--edge-width) solid var(--btn-edge);
111
111
  border-radius: var(--r-md);
112
- background: var(--surface);
112
+ background: var(--btn-fill);
113
+ --file-shadow-rest: var(--btn-shadow);
114
+ --file-shadow-lift: var(--btn-shadow-hover);
115
+ box-shadow: var(--file-shadow-rest);
113
116
  color: var(--text);
114
117
  font-weight: var(--fw-medium);
115
118
  font-size: var(--control-fs-md);
@@ -123,8 +126,10 @@
123
126
  transition:
124
127
  background var(--dur-fast) ease,
125
128
  border-color var(--dur-fast) ease,
129
+ box-shadow var(--dur-fast) ease,
126
130
  color var(--dur-fast) ease,
127
131
  opacity var(--dur-fast) ease,
132
+ translate var(--dur-fast) var(--ease-out),
128
133
  scale var(--file-scale-dur) var(--ease-out);
129
134
  }
130
135
  .file-btn:active:not(.disabled) {
@@ -197,20 +202,25 @@
197
202
  font-size: var(--icon-xl);
198
203
  }
199
204
  .file-btn.primary {
200
- background: var(--accent);
201
- border-color: var(--accent);
205
+ background: var(--btn-primary-fill);
206
+ border-color: var(--btn-primary-edge);
207
+ --file-shadow-rest: var(--btn-primary-shadow);
208
+ --file-shadow-lift: var(--btn-primary-shadow-hover);
202
209
  color: var(--text-on-accent);
203
210
  font-weight: var(--fw-semibold);
204
211
  }
205
212
  .file-btn.ghost {
206
213
  background: transparent;
207
214
  border-color: transparent;
215
+ --file-shadow-rest: none;
216
+ --file-shadow-lift: none;
208
217
  }
209
218
  /* The hidden input keeps focusability (sr-only, not display:none), so mirror
210
219
  its focus onto the label for a visible ring. */
211
220
  .file-btn:focus-within {
212
221
  outline: var(--focus-ring);
213
222
  outline-offset: var(--focus-ring-offset);
223
+ box-shadow: var(--file-shadow-rest), var(--focus-glow);
214
224
  }
215
225
  .file-btn.disabled {
216
226
  opacity: var(--disabled-opacity);
@@ -219,6 +229,8 @@
219
229
  @media (hover: hover) and (pointer: fine) {
220
230
  .file-btn:hover:not(.disabled) {
221
231
  border-color: var(--accent);
232
+ translate: 0 calc(-1 * var(--hover-lift));
233
+ --file-shadow-rest: var(--file-shadow-lift);
222
234
  }
223
235
  .file-btn.primary:hover:not(.disabled) {
224
236
  filter: brightness(1.08);
@@ -473,7 +473,7 @@
473
473
  padding: 0 var(--control-px-md);
474
474
  min-height: var(--control-height-default);
475
475
  background: var(--bg-elevated);
476
- border: 1px solid var(--border-strong);
476
+ border: var(--edge-width) solid var(--control-edge);
477
477
  border-radius: var(--r-md);
478
478
  transition:
479
479
  border-color var(--dur-fast) ease,
@@ -502,7 +502,7 @@
502
502
  font-size: var(--fs-xs);
503
503
  line-height: var(--lh-none);
504
504
  color: var(--text-faint);
505
- border: 1px solid var(--border);
505
+ border: var(--edge-width) solid var(--border);
506
506
  border-radius: var(--r-sm);
507
507
  padding: var(--sp-0-5) var(--sp-1);
508
508
  }
@@ -600,8 +600,8 @@
600
600
  left: 0;
601
601
  right: 0;
602
602
  z-index: var(--z-drawer);
603
- background: var(--bg-elevated);
604
- border: 1px solid var(--border-strong);
603
+ background: var(--raised-fill);
604
+ border: var(--edge-width) solid var(--raised-edge);
605
605
  border-radius: var(--r-md);
606
606
  box-shadow: var(--shadow-lg);
607
607
  padding: var(--sp-1);
@@ -125,9 +125,9 @@
125
125
  min-width: 0;
126
126
  padding: var(--sp-0-5) var(--sp-2);
127
127
  border-radius: var(--r-pill);
128
- background: var(--bg-elevated-2);
128
+ background: var(--surface-fill-2);
129
129
  color: var(--text-muted);
130
- border: 1px solid var(--border);
130
+ border: var(--edge-width) solid var(--surface-edge);
131
131
  text-decoration: none;
132
132
  }
133
133
  .branch {
@@ -314,6 +314,8 @@
314
314
  height: 1rem;
315
315
  max-width: 1rem;
316
316
  max-height: 1rem;
317
+ min-width: 0;
318
+ min-height: 0;
317
319
  display: inline-flex;
318
320
  align-items: center;
319
321
  justify-content: center;
@@ -321,6 +323,22 @@
321
323
  font-size: var(--fs-xs);
322
324
  line-height: var(--lh-none);
323
325
  }
326
+ /* Controls with a minimum box (e.g. a `box="xs"` IconButton) shrink to the cell instead of clipping. */
327
+ .stacked > .cell > :global(*) {
328
+ min-width: 0;
329
+ min-height: 0;
330
+ max-width: 1rem;
331
+ max-height: 1rem;
332
+ }
333
+ /* A labelled Dot folds to its disc; the label stays in the accessibility tree. */
334
+ .stacked :global(.dot-row > :not(.dot)) {
335
+ position: absolute;
336
+ width: 1px;
337
+ height: 1px;
338
+ overflow: hidden;
339
+ clip-path: inset(50%);
340
+ white-space: nowrap;
341
+ }
324
342
  .stacked > :global(*) :global(:focus-visible),
325
343
  .stacked > :global(:focus-visible) {
326
344
  outline-offset: var(--focus-ring-offset-inset);
@@ -343,11 +361,11 @@
343
361
  margin: 0;
344
362
  padding: var(--sp-1);
345
363
  max-width: calc(100vw - 2 * var(--sp-2));
346
- background: var(--bg-elevated);
364
+ background: var(--raised-fill);
347
365
  color: var(--text);
348
- border: 1px solid var(--border-strong);
366
+ border: var(--edge-width) solid var(--raised-edge);
349
367
  border-radius: var(--r-md);
350
- box-shadow: var(--shadow-md);
368
+ box-shadow: var(--raised-shadow);
351
369
  opacity: 0;
352
370
  scale: var(--enter-scale);
353
371
  transition:
@@ -221,8 +221,8 @@
221
221
  position: absolute;
222
222
  inset: auto 0 0 0;
223
223
  height: var(--ig-h);
224
- background: var(--textarea-bg, var(--bg));
225
- border: 1px solid var(--textarea-border, var(--border-strong));
224
+ background: var(--textarea-bg, var(--control-fill));
225
+ border: var(--edge-width) solid var(--textarea-border, var(--control-edge));
226
226
  border-top: 0;
227
227
  border-radius: 0 0 var(--ig-radius) var(--ig-radius);
228
228
  transition: border-color var(--dur-fast) ease;
@@ -286,10 +286,10 @@
286
286
  max-height: calc(100dvh - var(--safe-top) - var(--sp-6));
287
287
  display: flex;
288
288
  flex-direction: column;
289
- background: var(--bg-elevated);
290
- border: 1px solid var(--border);
289
+ background: var(--overlay-fill);
290
+ border: var(--edge-width) solid var(--overlay-edge);
291
291
  border-radius: var(--r-lg) var(--r-lg) 0 0;
292
- box-shadow: var(--shadow-lg);
292
+ box-shadow: var(--overlay-shadow);
293
293
  padding-bottom: var(--safe-bottom);
294
294
  /* Bottom sheet: slides up on enter, down on exit. */
295
295
  opacity: 0;
@@ -357,7 +357,7 @@
357
357
  align-items: center;
358
358
  gap: var(--sp-2);
359
359
  padding: var(--sp-4);
360
- border-bottom: 1px solid var(--border);
360
+ border-bottom: var(--edge-width) solid var(--surface-edge);
361
361
  }
362
362
  .sheet-toned {
363
363
  border-top: 3px solid var(--modal-tone);
@@ -382,7 +382,7 @@
382
382
  justify-content: flex-end;
383
383
  gap: var(--sp-2);
384
384
  padding: var(--sp-4);
385
- border-top: 1px solid var(--border);
385
+ border-top: var(--edge-width) solid var(--surface-edge);
386
386
  }
387
387
  /* Opt-in: a flex item is shrink-to-fit, so a layout wrapper handed to the
388
388
  footer would size to its content and hug the right edge instead of
@@ -95,9 +95,10 @@
95
95
  flex-direction: column;
96
96
  gap: var(--sp-0-5);
97
97
  padding: var(--sp-2);
98
- background: var(--bg);
99
- border: 1px solid var(--border-strong);
98
+ background: var(--control-fill);
99
+ border: var(--edge-width) solid var(--control-edge);
100
100
  border-radius: var(--r-md);
101
+ box-shadow: var(--control-shadow);
101
102
  color: var(--text);
102
103
  text-align: left;
103
104
  white-space: normal;
@@ -107,6 +108,7 @@
107
108
  background var(--dur-fast) ease,
108
109
  border-color var(--dur-fast) ease,
109
110
  color var(--dur-fast) ease,
111
+ translate var(--dur-fast) ease,
110
112
  scale var(--opt-scale-dur) var(--ease-out);
111
113
  }
112
114
  .opt:disabled {
@@ -154,8 +156,11 @@
154
156
  color: var(--oc);
155
157
  }
156
158
  @media (hover: hover) and (pointer: fine) {
159
+ .opt:hover:not(:disabled) {
160
+ translate: 0 calc(-1 * var(--hover-lift));
161
+ }
157
162
  .opt:hover:not(:disabled):not(.selected) {
158
- border-color: var(--border-strong);
163
+ border-color: var(--control-edge);
159
164
  }
160
165
  .opt.selected:hover:not(:disabled) {
161
166
  border-color: var(--oc);
@@ -189,7 +189,7 @@
189
189
  min-width: var(--box-md);
190
190
  height: var(--box-md);
191
191
  padding: 0 var(--control-px-md);
192
- border: 1px solid transparent;
192
+ border: var(--edge-width) solid transparent;
193
193
  border-radius: var(--r-md);
194
194
  background: transparent;
195
195
  color: var(--text-muted);
@@ -201,6 +201,7 @@
201
201
  background var(--dur-fast) ease,
202
202
  border-color var(--dur-fast) ease,
203
203
  color var(--dur-fast) ease,
204
+ translate var(--dur-fast) ease,
204
205
  scale var(--page-scale-dur) var(--ease-out);
205
206
  }
206
207
  .page:active {
@@ -211,6 +212,7 @@
211
212
  .page:hover {
212
213
  background: var(--bg-elevated-2);
213
214
  color: var(--text);
215
+ translate: 0 calc(-1 * var(--hover-lift));
214
216
  }
215
217
  }
216
218
  .page.on {
@@ -392,7 +392,7 @@
392
392
  min-height: var(--pop-box, var(--box-sm));
393
393
  min-width: var(--pop-box, var(--box-sm));
394
394
  padding: var(--pop-trigger-pad, var(--sp-1));
395
- border: 1px solid var(--pop-trigger-border, transparent);
395
+ border: var(--edge-width) solid var(--pop-trigger-border, transparent);
396
396
  border-radius: var(--pop-trigger-radius, var(--r-md));
397
397
  background: var(--pop-trigger-bg, transparent);
398
398
  color: var(--pop-trigger-fg, var(--text));
@@ -403,6 +403,8 @@
403
403
  background-color var(--dur-fast) var(--ease),
404
404
  border-color var(--dur-fast) var(--ease),
405
405
  color var(--dur-fast) var(--ease),
406
+ box-shadow var(--dur-fast) var(--ease),
407
+ translate var(--dur-fast) var(--ease),
406
408
  scale var(--pop-scale-dur) var(--ease-out);
407
409
  }
408
410
  .pop-trigger:not(.bare, .trigger-toggle):active:not(:disabled, .is-disabled) {
@@ -418,11 +420,14 @@
418
420
  }
419
421
  .pop-trigger.canonical:hover:not(:disabled) {
420
422
  border-color: var(--accent);
421
- background: var(--surface);
423
+ background: var(--btn-fill);
424
+ box-shadow: var(--btn-shadow-hover);
425
+ translate: 0 calc(-1 * var(--hover-lift));
422
426
  }
423
427
  .pop-trigger.trigger-primary:hover:not(:disabled) {
424
- background: var(--accent);
425
- border-color: var(--accent);
428
+ background: var(--btn-primary-fill);
429
+ border-color: var(--btn-primary-edge);
430
+ box-shadow: var(--btn-primary-shadow-hover);
426
431
  filter: brightness(1.08);
427
432
  }
428
433
  .pop-trigger.trigger-ghost:hover:not(:disabled) {
@@ -453,8 +458,9 @@
453
458
  min-width: 0;
454
459
  min-height: var(--control-height-default);
455
460
  padding: var(--pop-trigger-pad, var(--sp-2) var(--btn-px-md));
456
- border-color: var(--pop-trigger-border, var(--border-strong));
457
- background: var(--pop-trigger-bg, var(--surface));
461
+ border-color: var(--pop-trigger-border, var(--btn-edge));
462
+ background: var(--pop-trigger-bg, var(--btn-fill));
463
+ box-shadow: var(--btn-shadow);
458
464
  font-weight: var(--fw-medium);
459
465
  font-size: var(--pop-trigger-size, var(--control-fs-md));
460
466
  line-height: var(--lh-none);
@@ -462,8 +468,9 @@
462
468
  white-space: nowrap;
463
469
  }
464
470
  .pop-trigger.trigger-primary {
465
- background: var(--pop-trigger-bg, var(--accent));
466
- border-color: var(--pop-trigger-border, var(--accent));
471
+ background: var(--pop-trigger-bg, var(--btn-primary-fill));
472
+ border-color: var(--pop-trigger-border, var(--btn-primary-edge));
473
+ box-shadow: var(--btn-primary-shadow);
467
474
  color: var(--pop-trigger-fg, var(--text-on-accent));
468
475
  font-weight: var(--fw-semibold);
469
476
  }
@@ -620,11 +627,11 @@
620
627
  min-width: 10rem;
621
628
  max-width: min(22rem, calc(100vw - 2 * var(--sp-3)));
622
629
  padding: var(--sp-1);
623
- background: var(--bg-elevated);
630
+ background: var(--raised-fill);
624
631
  color: var(--text);
625
- border: 1px solid var(--border-strong);
632
+ border: var(--edge-width) solid var(--raised-edge);
626
633
  border-radius: var(--r-md);
627
- box-shadow: var(--shadow-md);
634
+ box-shadow: var(--raised-shadow);
628
635
  transform-origin: var(--tsu-origin, top left);
629
636
  opacity: 0;
630
637
  scale: var(--enter-scale);
@@ -76,15 +76,15 @@
76
76
  font-family: var(--font-mono);
77
77
  font-size: 0.92em;
78
78
  color: var(--md-code, var(--text));
79
- background: var(--md-code-bg, var(--bg-elevated-2));
79
+ background: var(--md-code-bg, var(--surface-fill-2));
80
80
  padding: 0.1em 0.35em;
81
81
  border-radius: var(--r-sm);
82
82
  }
83
83
  .prose :global(pre) {
84
84
  margin: 0;
85
85
  padding: var(--sp-3);
86
- background: var(--bg-elevated);
87
- border: 1px solid var(--border);
86
+ background: var(--surface-fill);
87
+ border: var(--edge-width) solid var(--surface-edge);
88
88
  border-radius: var(--r-md);
89
89
  overflow-x: auto;
90
90
  font-family: var(--font-mono);
@@ -119,12 +119,12 @@
119
119
  .prose :global(th),
120
120
  .prose :global(td) {
121
121
  padding: var(--sp-1) var(--sp-2);
122
- border: 1px solid var(--border);
122
+ border: var(--edge-width) solid var(--surface-edge);
123
123
  text-align: left;
124
124
  vertical-align: top;
125
125
  }
126
126
  .prose :global(th) {
127
- background: var(--bg-elevated-2);
127
+ background: var(--surface-fill-2);
128
128
  color: var(--text-muted);
129
129
  font-weight: var(--fw-semibold);
130
130
  }
@@ -135,6 +135,6 @@
135
135
  }
136
136
  .prose :global(hr) {
137
137
  border: 0;
138
- border-top: 1px solid var(--border);
138
+ border-top: var(--edge-width) solid var(--surface-edge);
139
139
  }
140
140
  </style>
@@ -542,11 +542,11 @@
542
542
  width: max(var(--radial-petal-size, 3.5rem), var(--touch-target));
543
543
  height: max(var(--radial-petal-size, 3.5rem), var(--touch-target));
544
544
  padding: 0 var(--sp-0-5);
545
- border: 1px solid var(--border-strong);
545
+ border: var(--edge-width) solid var(--raised-edge);
546
546
  border-radius: 50%;
547
- background: var(--bg-elevated);
547
+ background: var(--raised-fill);
548
548
  color: var(--text);
549
- box-shadow: var(--shadow-md);
549
+ box-shadow: var(--raised-shadow);
550
550
  font-size: var(--fs-xs);
551
551
  line-height: var(--lh-heading);
552
552
  translate: -50% -50%;
@@ -172,9 +172,10 @@
172
172
  width: var(--chip-sm);
173
173
  height: var(--chip-sm);
174
174
  margin-top: var(--sp-px);
175
- border: 1px solid var(--border-strong);
175
+ border: var(--edge-width) solid var(--control-edge);
176
176
  border-radius: var(--r-pill);
177
- background: var(--bg);
177
+ background: var(--control-fill);
178
+ box-shadow: var(--control-shadow);
178
179
  transition: border-color var(--dur-fast) var(--ease);
179
180
  }
180
181
  .dot-ctl::after {
@@ -205,6 +206,7 @@
205
206
  input:focus-visible + .dot-ctl {
206
207
  outline: var(--focus-ring);
207
208
  outline-offset: var(--focus-ring-offset);
209
+ box-shadow: var(--control-shadow), var(--focus-glow);
208
210
  }
209
211
  .texts {
210
212
  display: flex;
@@ -231,7 +233,7 @@
231
233
  min-width: 0;
232
234
  gap: var(--sp-2);
233
235
  padding: var(--pad, var(--sp-2) var(--sp-3));
234
- border: 1px solid var(--border);
236
+ border: var(--edge-width) solid var(--surface-edge);
235
237
  border-radius: var(--r-md);
236
238
  transition:
237
239
  border-color var(--dur-fast) var(--ease),
@@ -239,7 +241,7 @@
239
241
  }
240
242
  .row.selected {
241
243
  border-color: var(--accent-dim);
242
- background: var(--bg-elevated);
244
+ background: var(--surface-fill);
243
245
  }
244
246
  .row .radio {
245
247
  flex: 1 1 auto;
@@ -431,9 +431,10 @@
431
431
  min-width: 0;
432
432
  min-height: var(--rs-height);
433
433
  padding: var(--sp-1) var(--sp-2) var(--sp-1) var(--sp-1);
434
- border: 1px solid var(--border-strong);
434
+ border: var(--edge-width) solid var(--control-edge);
435
435
  border-radius: var(--r-md);
436
436
  background: var(--surface);
437
+ box-shadow: var(--control-shadow);
437
438
  color: var(--text);
438
439
  text-align: start;
439
440
  cursor: pointer;
@@ -444,6 +445,7 @@
444
445
  .rich-select :global(.pop-trigger.rs-trigger:focus-visible) {
445
446
  outline: var(--focus-ring);
446
447
  outline-offset: var(--focus-ring-offset);
448
+ box-shadow: var(--control-shadow), var(--focus-glow);
447
449
  }
448
450
  .rich-select :global(.pop-trigger.rs-trigger:active:not(:disabled)) {
449
451
  scale: var(--press-scale-lg);
@@ -534,8 +536,8 @@
534
536
  }
535
537
  .rs-row[data-dragging] {
536
538
  z-index: 1;
537
- box-shadow: var(--shadow-md);
538
- background: var(--bg-elevated);
539
+ box-shadow: var(--raised-shadow);
540
+ background: var(--raised-fill);
539
541
  transition: none;
540
542
  }
541
543
  .rs-option {
@@ -587,6 +589,6 @@
587
589
  display: flex;
588
590
  flex-direction: column;
589
591
  padding-top: var(--sp-1);
590
- border-top: 1px solid var(--border);
592
+ border-top: var(--edge-width) solid var(--surface-edge);
591
593
  }
592
594
  </style>
@@ -172,7 +172,7 @@
172
172
  }
173
173
  .sh-divider > .sh-row {
174
174
  padding-bottom: var(--sp-2);
175
- border-bottom: 1px solid var(--border);
175
+ border-bottom: var(--edge-width) solid var(--surface-edge);
176
176
  }
177
177
  .sh-group > .sh-row {
178
178
  flex-wrap: nowrap;