@motion-proto/live-tokens 0.58.0 → 0.60.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 (42) hide show
  1. package/.claude/skills/live-tokens-generate-theme/SKILL.md +15 -14
  2. package/.claude/skills/live-tokens-generate-theme/references/mood-vocabulary.md +43 -0
  3. package/.claude/skills/live-tokens-generate-theme/references/style-vocabulary.md +35 -0
  4. package/CHANGELOG.md +89 -0
  5. package/dist-plugin/generateColorsAndType/index.cjs +4 -3
  6. package/dist-plugin/generateColorsAndType/index.js +4 -3
  7. package/package.json +1 -1
  8. package/src/editor/component-editor/ImageLightboxEditor.svelte +11 -2
  9. package/src/editor/component-editor/MenuSelectEditor.svelte +2 -1
  10. package/src/editor/component-editor/scaffolding/TokenLayout.svelte +5 -3
  11. package/src/editor/component-editor/scaffolding/types.ts +6 -0
  12. package/src/editor/core/sketch/sketchLayer.ts +16 -7
  13. package/src/editor/core/sketch/sketchPresets.ts +8 -8
  14. package/src/editor/core/themes/parsers/shadow.ts +12 -4
  15. package/src/editor/docs/content/sketch-mode.md +2 -1
  16. package/src/editor/docs/content.generated.ts +1 -1
  17. package/src/editor/overlay/ColumnsOverlay.svelte +3 -0
  18. package/src/editor/ui/ColorEditPanel.svelte +13 -9
  19. package/src/editor/ui/PaletteEditor.svelte +11 -3
  20. package/src/editor/ui/UIInlineEditActions.svelte +97 -0
  21. package/src/editor/ui/UIPaletteSelector.svelte +14 -6
  22. package/src/live-tokens/data/colors-and-type/autumn.json +5 -5
  23. package/src/live-tokens/data/colors-and-type/default.json +5 -5
  24. package/src/live-tokens/data/colors-and-type/halloween.json +5 -5
  25. package/src/live-tokens/data/colors-and-type/midnight-study.json +5 -5
  26. package/src/live-tokens/data/colors-and-type/ocean.json +5 -5
  27. package/src/live-tokens/data/colors-and-type/royal-velvet.json +5 -5
  28. package/src/live-tokens/data/colors-and-type/sketchy.json +5 -5
  29. package/src/live-tokens/data/colors-and-type/spring-meadow.json +5 -5
  30. package/src/live-tokens/data/colors-and-type/sunset.json +5 -5
  31. package/src/live-tokens/data/themes/autumn.json +6 -6
  32. package/src/live-tokens/data/themes/halloween.json +6 -6
  33. package/src/live-tokens/data/themes/midnight-study.json +6 -6
  34. package/src/live-tokens/data/themes/ocean.json +6 -6
  35. package/src/live-tokens/data/themes/royal-velvet.json +6 -6
  36. package/src/live-tokens/data/themes/sketchy.json +6 -6
  37. package/src/live-tokens/data/themes/spring-meadow.json +6 -6
  38. package/src/live-tokens/data/themes/sunset.json +6 -6
  39. package/src/live-tokens/data/tokens.generated.css +5 -5
  40. package/src/system/components/ImageLightbox.svelte +26 -2
  41. package/src/system/components/MenuSelect.svelte +1 -1
  42. package/src/system/styles/tokens.css +5 -5
@@ -58,7 +58,10 @@
58
58
  {/if}
59
59
 
60
60
  <style>
61
+ /* Sketch mode scopes itself to the host document root, and these guides live
62
+ there too. The effect is for the page being measured, not for the ruler. */
61
63
  .columns-overlay {
64
+ --sketch-icon-off: none;
62
65
  position: fixed;
63
66
  inset: 0;
64
67
  pointer-events: none;
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { hexToOklch, oklchToHex, gamutClamp } from '../core/palettes/oklch';
3
- import InlineEditActions from '../../system/components/InlineEditActions.svelte';
4
- import Button from '../../system/components/Button.svelte';
3
+ import UIInlineEditActions from './UIInlineEditActions.svelte';
4
+ import UIPillButton from './UIPillButton.svelte';
5
5
 
6
6
 
7
7
 
@@ -15,6 +15,8 @@
15
15
  /** Hide the confirm/cancel actions for live-apply consumers (Colors view
16
16
  * readout) where edits commit through the store as they happen. */
17
17
  hideActions?: boolean;
18
+ /** Greys the confirm/cancel pair out while no edit is pending. */
19
+ actionsDisabled?: boolean;
18
20
  /** Hide the preview square where the surrounding view already shows the
19
21
  * color (Colors view: wheel, swatches and derived scale all do). */
20
22
  hidePreview?: boolean;
@@ -43,6 +45,7 @@
43
45
  highlighted = false,
44
46
  showRemoveOverride = false,
45
47
  hideActions = false,
48
+ actionsDisabled = false,
46
49
  hidePreview = false,
47
50
  onConfirm = () => {},
48
51
  onCancel = () => {},
@@ -171,16 +174,17 @@
171
174
  {#if !hideActions}
172
175
  <div class="hsl-panel-actions">
173
176
  {#if showRemoveOverride}
174
- <Button
175
- variant="danger"
176
- size="small"
177
- icon="fas fa-trash"
178
- on:click={onRemoveOverride}
179
- >Remove override</Button>
177
+ <UIPillButton
178
+ size="compact"
179
+ variant="outline"
180
+ icon="fa-trash"
181
+ onclick={onRemoveOverride}
182
+ >Remove override</UIPillButton>
180
183
  {/if}
181
- <InlineEditActions
184
+ <UIInlineEditActions
182
185
  onSave={onConfirm}
183
186
  onCancel={onCancel}
187
+ disabled={actionsDisabled}
184
188
  saveTitle="Apply changes"
185
189
  cancelTitle="Discard changes"
186
190
  />
@@ -203,6 +203,14 @@
203
203
 
204
204
  function startBaseEdit() {
205
205
  if (editing.kind === 'editingBase') { confirmEdit(); return; }
206
+ ensureBaseSession();
207
+ }
208
+
209
+ // The base panel applies every change straight to the store, so its
210
+ // confirm/cancel pair needs a session to act on. Opening one lazily on the
211
+ // first touch keeps the panel's mere presence from clipping the undo floor.
212
+ function ensureBaseSession() {
213
+ if (editing.kind === 'editingBase') return;
206
214
  editing = { kind: 'editingBase' };
207
215
  openSession();
208
216
  }
@@ -626,18 +634,18 @@
626
634
  <ColorEditPanel
627
635
  title={basePanelTitle}
628
636
  showRemoveOverride={false}
629
- hideActions={!isEditingBase}
637
+ actionsDisabled={!isEditingBase}
630
638
  hidePreview
631
639
  hue={baseColor.h}
632
640
  chroma={baseColor.c}
633
641
  lightness={baseColor.l * 100}
634
642
  chromaMax={BASE_CHROMA_MAX}
635
643
  chromaHint={neutral ? NEUTRAL_CALM_CHROMA : undefined}
636
- onHueChromaChange={(h, c, l) => setBaseColor(label, { l: l / 100, c, h })}
644
+ onHueChromaChange={(h, c, l) => { ensureBaseSession(); setBaseColor(label, { l: l / 100, c, h }); }}
637
645
  onConfirm={confirmEdit}
638
646
  onCancel={cancelEdit}
639
647
  onRemoveOverride={() => {}}
640
- onSliderStart={() => beginSliderGesture(`edit ${label} base`)}
648
+ onSliderStart={() => { ensureBaseSession(); beginSliderGesture(`edit ${label} base`); }}
641
649
  />
642
650
  </div>
643
651
  </div>
@@ -0,0 +1,97 @@
1
+ <script lang="ts">
2
+ interface Props {
3
+ onSave: () => void | Promise<void>;
4
+ onCancel: () => void;
5
+ disabled?: boolean;
6
+ saveTitle?: string;
7
+ cancelTitle?: string;
8
+ }
9
+
10
+ let {
11
+ onSave,
12
+ onCancel,
13
+ disabled = false,
14
+ saveTitle = 'Save',
15
+ cancelTitle = 'Cancel'
16
+ }: Props = $props();
17
+ </script>
18
+
19
+ <div class="ui-inline-actions">
20
+ <button
21
+ class="ui-ia ui-ia-save"
22
+ type="button"
23
+ {disabled}
24
+ title={saveTitle}
25
+ aria-label={saveTitle}
26
+ onclick={onSave}
27
+ ><i class="fas fa-check" aria-hidden="true"></i></button>
28
+ <button
29
+ class="ui-ia ui-ia-cancel"
30
+ type="button"
31
+ {disabled}
32
+ title={cancelTitle}
33
+ aria-label={cancelTitle}
34
+ onclick={onCancel}
35
+ ><i class="fas fa-xmark" aria-hidden="true"></i></button>
36
+ </div>
37
+
38
+ <style>
39
+ .ui-inline-actions {
40
+ display: inline-flex;
41
+ align-items: center;
42
+ gap: var(--ui-space-4);
43
+ }
44
+
45
+ /* Sized to the 1.5rem chrome buttons it sits beside (eyedropper, swatch). */
46
+ .ui-ia {
47
+ display: inline-flex;
48
+ align-items: center;
49
+ justify-content: center;
50
+ width: 1.5rem;
51
+ height: 1.5rem;
52
+ padding: 0;
53
+ border-radius: var(--ui-radius-sm);
54
+ font-size: var(--ui-font-size-xs);
55
+ line-height: 1;
56
+ cursor: pointer;
57
+ transition:
58
+ background var(--ui-transition-fast),
59
+ border-color var(--ui-transition-fast),
60
+ color var(--ui-transition-fast);
61
+ }
62
+
63
+ .ui-ia-save {
64
+ background: linear-gradient(180deg, rgba(90, 168, 94, 0.35) 0%, rgba(90, 168, 94, 0.18) 100%);
65
+ border: 1px solid rgba(90, 168, 94, 0.6);
66
+ color: var(--ui-text-primary);
67
+ }
68
+
69
+ .ui-ia-save:hover:not(:disabled) {
70
+ background: linear-gradient(180deg, rgba(90, 168, 94, 0.48) 0%, rgba(90, 168, 94, 0.26) 100%);
71
+ border-color: rgba(90, 168, 94, 0.78);
72
+ }
73
+
74
+ .ui-ia-cancel {
75
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.02) 100%);
76
+ border: 1px solid rgba(255, 255, 255, 0.3);
77
+ color: var(--ui-text-secondary);
78
+ }
79
+
80
+ .ui-ia-cancel:hover:not(:disabled) {
81
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0.05) 100%);
82
+ border-color: rgba(255, 255, 255, 0.5);
83
+ color: var(--ui-text-primary);
84
+ }
85
+
86
+ .ui-ia:focus-visible {
87
+ outline: none;
88
+ box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.18);
89
+ }
90
+
91
+ .ui-ia:disabled {
92
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.02) 100%);
93
+ border-color: rgba(255, 255, 255, 0.14);
94
+ color: var(--ui-text-disabled);
95
+ cursor: not-allowed;
96
+ }
97
+ </style>
@@ -45,6 +45,10 @@
45
45
  * Slots that must always paint something (e.g. overlay backdrops) opt
46
46
  * out — picking None would just degenerate to opacity 0. */
47
47
  showNone?: boolean;
48
+ /** Opacity floor, 0-100. Declared on tokens whose surface floats over
49
+ * arbitrary page content (a dropdown panel) and must stay legible there.
50
+ * A floor also retires "None", which would defeat it. */
51
+ minOpacity?: number;
48
52
  onchange?: () => void;
49
53
  /** Forwarded to UITokenSelector — when set, writes route through this
50
54
  * callback instead of the DOM. See UITokenSelector.onwrite. */
@@ -59,10 +63,14 @@
59
63
  selectionsLocked = false,
60
64
  familyFilter = null,
61
65
  showNone = true,
66
+ minOpacity = 0,
62
67
  onchange,
63
68
  onwrite,
64
69
  }: Props = $props();
65
70
 
71
+ const clampOpacity = (n: number) => Math.max(minOpacity, Math.min(100, Math.round(n)));
72
+ let noneAllowed = $derived(showNone && minOpacity <= 0);
73
+
66
74
  type Category = 'palette' | 'surface' | 'border' | 'text';
67
75
 
68
76
  const families = [
@@ -270,7 +278,7 @@
270
278
  }
271
279
 
272
280
  function applyOpacity() {
273
- opacity = Math.max(0, Math.min(100, Math.round(opacity)));
281
+ opacity = clampOpacity(opacity);
274
282
  if (chosenStatic !== null) {
275
283
  selector?.writeOverride(buildValue(`--color-${chosenStatic}`));
276
284
  onchange?.();
@@ -394,7 +402,7 @@
394
402
  chosenCategory = null;
395
403
  chosenFamily = null;
396
404
  chosenStep = null;
397
- opacity = staticParsed.opacity;
405
+ opacity = clampOpacity(staticParsed.opacity);
398
406
  return;
399
407
  }
400
408
  chosenStatic = null;
@@ -406,7 +414,7 @@
406
414
  chosenCategory = parsed.category;
407
415
  chosenFamily = parsed.family;
408
416
  chosenStep = parsed.step;
409
- opacity = opacityParsed.opacity;
417
+ opacity = clampOpacity(opacityParsed.opacity);
410
418
  return;
411
419
  }
412
420
  }
@@ -597,8 +605,8 @@
597
605
  {#snippet subheader()}
598
606
  <div class="opacity-control" class:hidden={chosenGradient !== null}>
599
607
  <span class="opacity-label">opacity</span>
600
- <input type="range" min="0" max="100" bind:value={opacity} class="opacity-slider" oninput={applyOpacity} />
601
- <input type="number" min="0" max="100" bind:value={opacity} class="opacity-input" onchange={applyOpacity} />
608
+ <input type="range" min={minOpacity} max="100" bind:value={opacity} class="opacity-slider" oninput={applyOpacity} />
609
+ <input type="number" min={minOpacity} max="100" bind:value={opacity} class="opacity-input" onchange={applyOpacity} />
602
610
  <span class="opacity-unit">%</span>
603
611
  </div>
604
612
  {/snippet}
@@ -616,7 +624,7 @@
616
624
  <div class="static-swatch static-swatch--black"></div>
617
625
  <span class="static-label">Black</span>
618
626
  </button>
619
- {#if showNone}
627
+ {#if noneAllowed}
620
628
  <button class="static-chip" class:active={chosenNone} onclick={() => selectNone(close)}>
621
629
  <div class="static-swatch static-swatch--none"></div>
622
630
  <span class="static-label">None</span>
@@ -2265,11 +2265,11 @@
2265
2265
  "--hover-low": "color-mix(in srgb, var(--text-primary) 5%, transparent)",
2266
2266
  "--hover": "color-mix(in srgb, var(--text-primary) 10%, transparent)",
2267
2267
  "--hover-high": "color-mix(in srgb, var(--text-primary) 15%, transparent)",
2268
- "--shadow-sm": "1px 1px 2px 0px hsla(237, 18%, 3%, 0.25)",
2269
- "--shadow-md": "3px 3px 6px 0px hsla(237, 18%, 3%, 0.25)",
2270
- "--shadow-lg": "5px 5px 9px 0px hsla(237, 18%, 3%, 0.25)",
2271
- "--shadow-xl": "6px 7px 13px 0px hsla(237, 18%, 3%, 0.25)",
2272
- "--shadow-2xl": "8px 9px 16px 0px hsla(237, 18%, 3%, 0.25)"
2268
+ "--shadow-sm": "1px 1px 2px hsla(237, 18%, 3%, 0.25)",
2269
+ "--shadow-md": "3px 3px 6px hsla(237, 18%, 3%, 0.25)",
2270
+ "--shadow-lg": "5px 5px 9px hsla(237, 18%, 3%, 0.25)",
2271
+ "--shadow-xl": "6px 7px 13px hsla(237, 18%, 3%, 0.25)",
2272
+ "--shadow-2xl": "8px 9px 16px hsla(237, 18%, 3%, 0.25)"
2273
2273
  },
2274
2274
  "fontSources": [
2275
2275
  {
@@ -2296,11 +2296,11 @@
2296
2296
  "--hover-low": "color-mix(in srgb, var(--text-primary) 5%, transparent)",
2297
2297
  "--hover": "color-mix(in srgb, var(--text-primary) 10%, transparent)",
2298
2298
  "--hover-high": "color-mix(in srgb, var(--text-primary) 15%, transparent)",
2299
- "--shadow-sm": "1px 1px 2px 0px hsla(237, 18%, 3%, 0.9)",
2300
- "--shadow-md": "3px 3px 6px 0px hsla(237, 18%, 3%, 0.9)",
2301
- "--shadow-lg": "5px 5px 9px 0px hsla(237, 18%, 3%, 0.9)",
2302
- "--shadow-xl": "6px 7px 13px 0px hsla(237, 18%, 3%, 0.9)",
2303
- "--shadow-2xl": "8px 9px 16px 0px hsla(237, 18%, 3%, 0.9)"
2299
+ "--shadow-sm": "1px 1px 2px hsla(237, 18%, 3%, 0.9)",
2300
+ "--shadow-md": "3px 3px 6px hsla(237, 18%, 3%, 0.9)",
2301
+ "--shadow-lg": "5px 5px 9px hsla(237, 18%, 3%, 0.9)",
2302
+ "--shadow-xl": "6px 7px 13px hsla(237, 18%, 3%, 0.9)",
2303
+ "--shadow-2xl": "8px 9px 16px hsla(237, 18%, 3%, 0.9)"
2304
2304
  },
2305
2305
  "fontSources": [
2306
2306
  {
@@ -2312,11 +2312,11 @@
2312
2312
  "--hover-low": "color-mix(in srgb, var(--text-primary) 5%, transparent)",
2313
2313
  "--hover": "color-mix(in srgb, var(--text-primary) 10%, transparent)",
2314
2314
  "--hover-high": "color-mix(in srgb, var(--text-primary) 15%, transparent)",
2315
- "--shadow-sm": "1px 1px 2px 0px hsla(237, 18%, 3%, 0.9)",
2316
- "--shadow-md": "3px 3px 6px 0px hsla(237, 18%, 3%, 0.9)",
2317
- "--shadow-lg": "5px 5px 9px 0px hsla(237, 18%, 3%, 0.9)",
2318
- "--shadow-xl": "6px 7px 13px 0px hsla(237, 18%, 3%, 0.9)",
2319
- "--shadow-2xl": "8px 9px 16px 0px hsla(237, 18%, 3%, 0.9)"
2315
+ "--shadow-sm": "1px 1px 2px hsla(237, 18%, 3%, 0.9)",
2316
+ "--shadow-md": "3px 3px 6px hsla(237, 18%, 3%, 0.9)",
2317
+ "--shadow-lg": "5px 5px 9px hsla(237, 18%, 3%, 0.9)",
2318
+ "--shadow-xl": "6px 7px 13px hsla(237, 18%, 3%, 0.9)",
2319
+ "--shadow-2xl": "8px 9px 16px hsla(237, 18%, 3%, 0.9)"
2320
2320
  },
2321
2321
  "fontSources": [
2322
2322
  {
@@ -2312,11 +2312,11 @@
2312
2312
  "--hover-low": "color-mix(in srgb, var(--text-primary) 5%, transparent)",
2313
2313
  "--hover": "color-mix(in srgb, var(--text-primary) 10%, transparent)",
2314
2314
  "--hover-high": "color-mix(in srgb, var(--text-primary) 15%, transparent)",
2315
- "--shadow-sm": "1px 1px 2px 0px hsla(237, 18%, 3%, 0.9)",
2316
- "--shadow-md": "3px 3px 6px 0px hsla(237, 18%, 3%, 0.9)",
2317
- "--shadow-lg": "5px 5px 9px 0px hsla(237, 18%, 3%, 0.9)",
2318
- "--shadow-xl": "6px 7px 13px 0px hsla(237, 18%, 3%, 0.9)",
2319
- "--shadow-2xl": "8px 9px 16px 0px hsla(237, 18%, 3%, 0.9)"
2315
+ "--shadow-sm": "1px 1px 2px hsla(237, 18%, 3%, 0.9)",
2316
+ "--shadow-md": "3px 3px 6px hsla(237, 18%, 3%, 0.9)",
2317
+ "--shadow-lg": "5px 5px 9px hsla(237, 18%, 3%, 0.9)",
2318
+ "--shadow-xl": "6px 7px 13px hsla(237, 18%, 3%, 0.9)",
2319
+ "--shadow-2xl": "8px 9px 16px hsla(237, 18%, 3%, 0.9)"
2320
2320
  },
2321
2321
  "fontSources": [
2322
2322
  {
@@ -2265,11 +2265,11 @@
2265
2265
  "--hover-low": "color-mix(in srgb, var(--text-primary) 5%, transparent)",
2266
2266
  "--hover": "color-mix(in srgb, var(--text-primary) 10%, transparent)",
2267
2267
  "--hover-high": "color-mix(in srgb, var(--text-primary) 15%, transparent)",
2268
- "--shadow-sm": "1px 1px 2px 0px hsla(237, 18%, 3%, 0.2)",
2269
- "--shadow-md": "3px 3px 6px 0px hsla(237, 18%, 3%, 0.2)",
2270
- "--shadow-lg": "5px 5px 9px 0px hsla(237, 18%, 3%, 0.2)",
2271
- "--shadow-xl": "6px 7px 13px 0px hsla(237, 18%, 3%, 0.2)",
2272
- "--shadow-2xl": "8px 9px 16px 0px hsla(237, 18%, 3%, 0.2)"
2268
+ "--shadow-sm": "1px 1px 2px hsla(237, 18%, 3%, 0.2)",
2269
+ "--shadow-md": "3px 3px 6px hsla(237, 18%, 3%, 0.2)",
2270
+ "--shadow-lg": "5px 5px 9px hsla(237, 18%, 3%, 0.2)",
2271
+ "--shadow-xl": "6px 7px 13px hsla(237, 18%, 3%, 0.2)",
2272
+ "--shadow-2xl": "8px 9px 16px hsla(237, 18%, 3%, 0.2)"
2273
2273
  },
2274
2274
  "fontSources": [
2275
2275
  {
@@ -2297,11 +2297,11 @@
2297
2297
  "--hover-low": "color-mix(in srgb, var(--text-primary) 5%, transparent)",
2298
2298
  "--hover": "color-mix(in srgb, var(--text-primary) 10%, transparent)",
2299
2299
  "--hover-high": "color-mix(in srgb, var(--text-primary) 15%, transparent)",
2300
- "--shadow-sm": "1px 1px 2px 0px hsla(237, 18%, 3%, 0.9)",
2301
- "--shadow-md": "3px 3px 6px 0px hsla(237, 18%, 3%, 0.9)",
2302
- "--shadow-lg": "5px 5px 9px 0px hsla(237, 18%, 3%, 0.9)",
2303
- "--shadow-xl": "6px 7px 13px 0px hsla(237, 18%, 3%, 0.9)",
2304
- "--shadow-2xl": "8px 9px 16px 0px hsla(237, 18%, 3%, 0.9)"
2300
+ "--shadow-sm": "1px 1px 2px hsla(237, 18%, 3%, 0.9)",
2301
+ "--shadow-md": "3px 3px 6px hsla(237, 18%, 3%, 0.9)",
2302
+ "--shadow-lg": "5px 5px 9px hsla(237, 18%, 3%, 0.9)",
2303
+ "--shadow-xl": "6px 7px 13px hsla(237, 18%, 3%, 0.9)",
2304
+ "--shadow-2xl": "8px 9px 16px hsla(237, 18%, 3%, 0.9)"
2305
2305
  },
2306
2306
  "fontSources": [
2307
2307
  {
@@ -2251,11 +2251,11 @@
2251
2251
  "--hover-low": "color-mix(in srgb, var(--text-primary) 5%, transparent)",
2252
2252
  "--hover": "color-mix(in srgb, var(--text-primary) 10%, transparent)",
2253
2253
  "--hover-high": "color-mix(in srgb, var(--text-primary) 15%, transparent)",
2254
- "--shadow-sm": "1px 1px 2px 0px hsla(237, 18%, 3%, 0.2)",
2255
- "--shadow-md": "3px 3px 6px 0px hsla(237, 18%, 3%, 0.2)",
2256
- "--shadow-lg": "5px 5px 9px 0px hsla(237, 18%, 3%, 0.2)",
2257
- "--shadow-xl": "6px 7px 13px 0px hsla(237, 18%, 3%, 0.2)",
2258
- "--shadow-2xl": "8px 9px 16px 0px hsla(237, 18%, 3%, 0.2)"
2254
+ "--shadow-sm": "1px 1px 2px hsla(237, 18%, 3%, 0.2)",
2255
+ "--shadow-md": "3px 3px 6px hsla(237, 18%, 3%, 0.2)",
2256
+ "--shadow-lg": "5px 5px 9px hsla(237, 18%, 3%, 0.2)",
2257
+ "--shadow-xl": "6px 7px 13px hsla(237, 18%, 3%, 0.2)",
2258
+ "--shadow-2xl": "8px 9px 16px hsla(237, 18%, 3%, 0.2)"
2259
2259
  },
2260
2260
  "fontSources": [
2261
2261
  {
@@ -2251,11 +2251,11 @@
2251
2251
  "--hover-low": "color-mix(in srgb, var(--text-primary) 5%, transparent)",
2252
2252
  "--hover": "color-mix(in srgb, var(--text-primary) 10%, transparent)",
2253
2253
  "--hover-high": "color-mix(in srgb, var(--text-primary) 15%, transparent)",
2254
- "--shadow-sm": "1px 1px 2px 0px hsla(237, 18%, 3%, 0.2)",
2255
- "--shadow-md": "3px 3px 6px 0px hsla(237, 18%, 3%, 0.2)",
2256
- "--shadow-lg": "5px 5px 9px 0px hsla(237, 18%, 3%, 0.2)",
2257
- "--shadow-xl": "6px 7px 13px 0px hsla(237, 18%, 3%, 0.2)",
2258
- "--shadow-2xl": "8px 9px 16px 0px hsla(237, 18%, 3%, 0.2)"
2254
+ "--shadow-sm": "1px 1px 2px hsla(237, 18%, 3%, 0.2)",
2255
+ "--shadow-md": "3px 3px 6px hsla(237, 18%, 3%, 0.2)",
2256
+ "--shadow-lg": "5px 5px 9px hsla(237, 18%, 3%, 0.2)",
2257
+ "--shadow-xl": "6px 7px 13px hsla(237, 18%, 3%, 0.2)",
2258
+ "--shadow-2xl": "8px 9px 16px hsla(237, 18%, 3%, 0.2)"
2259
2259
  },
2260
2260
  "fontSources": [
2261
2261
  {
@@ -2312,11 +2312,11 @@
2312
2312
  "--hover-low": "color-mix(in srgb, var(--text-primary) 5%, transparent)",
2313
2313
  "--hover": "color-mix(in srgb, var(--text-primary) 10%, transparent)",
2314
2314
  "--hover-high": "color-mix(in srgb, var(--text-primary) 15%, transparent)",
2315
- "--shadow-sm": "1px 1px 2px 0px hsla(237, 18%, 3%, 0.9)",
2316
- "--shadow-md": "3px 3px 6px 0px hsla(237, 18%, 3%, 0.9)",
2317
- "--shadow-lg": "5px 5px 9px 0px hsla(237, 18%, 3%, 0.9)",
2318
- "--shadow-xl": "6px 7px 13px 0px hsla(237, 18%, 3%, 0.9)",
2319
- "--shadow-2xl": "8px 9px 16px 0px hsla(237, 18%, 3%, 0.9)"
2315
+ "--shadow-sm": "1px 1px 2px hsla(237, 18%, 3%, 0.9)",
2316
+ "--shadow-md": "3px 3px 6px hsla(237, 18%, 3%, 0.9)",
2317
+ "--shadow-lg": "5px 5px 9px hsla(237, 18%, 3%, 0.9)",
2318
+ "--shadow-xl": "6px 7px 13px hsla(237, 18%, 3%, 0.9)",
2319
+ "--shadow-2xl": "8px 9px 16px hsla(237, 18%, 3%, 0.9)"
2320
2320
  },
2321
2321
  "fontSources": [
2322
2322
  {
@@ -2270,11 +2270,11 @@
2270
2270
  "--hover-low": "color-mix(in srgb, var(--text-primary) 5%, transparent)",
2271
2271
  "--hover": "color-mix(in srgb, var(--text-primary) 10%, transparent)",
2272
2272
  "--hover-high": "color-mix(in srgb, var(--text-primary) 15%, transparent)",
2273
- "--shadow-sm": "1px 1px 2px 0px hsla(237, 18%, 3%, 0.25)",
2274
- "--shadow-md": "3px 3px 6px 0px hsla(237, 18%, 3%, 0.25)",
2275
- "--shadow-lg": "5px 5px 9px 0px hsla(237, 18%, 3%, 0.25)",
2276
- "--shadow-xl": "6px 7px 13px 0px hsla(237, 18%, 3%, 0.25)",
2277
- "--shadow-2xl": "8px 9px 16px 0px hsla(237, 18%, 3%, 0.25)"
2273
+ "--shadow-sm": "1px 1px 2px hsla(237, 18%, 3%, 0.25)",
2274
+ "--shadow-md": "3px 3px 6px hsla(237, 18%, 3%, 0.25)",
2275
+ "--shadow-lg": "5px 5px 9px hsla(237, 18%, 3%, 0.25)",
2276
+ "--shadow-xl": "6px 7px 13px hsla(237, 18%, 3%, 0.25)",
2277
+ "--shadow-2xl": "8px 9px 16px hsla(237, 18%, 3%, 0.25)"
2278
2278
  },
2279
2279
  "fontSources": [
2280
2280
  {
@@ -3279,7 +3279,7 @@
3279
3279
  "createdAt": "2026-05-16T00:00:00.000Z",
3280
3280
  "updatedAt": "2026-08-19T22:39:32.785Z",
3281
3281
  "aliases": {
3282
- "--menuselect-menu-surface": "color-mix(in srgb, var(--surface-neutral-lower) 85%, transparent)",
3282
+ "--menuselect-menu-surface": "color-mix(in srgb, var(--surface-neutral-lower) 95%, transparent)",
3283
3283
  "--menuselect-menu-border": "--border-neutral-medium",
3284
3284
  "--menuselect-menu-border-width": "--border-width-1",
3285
3285
  "--menuselect-menu-radius": "--radius-xl",
@@ -2317,11 +2317,11 @@
2317
2317
  "--hover-low": "color-mix(in srgb, var(--text-primary) 5%, transparent)",
2318
2318
  "--hover": "color-mix(in srgb, var(--text-primary) 10%, transparent)",
2319
2319
  "--hover-high": "color-mix(in srgb, var(--text-primary) 15%, transparent)",
2320
- "--shadow-sm": "1px 1px 2px 0px hsla(237, 18%, 3%, 0.9)",
2321
- "--shadow-md": "3px 3px 6px 0px hsla(237, 18%, 3%, 0.9)",
2322
- "--shadow-lg": "5px 5px 9px 0px hsla(237, 18%, 3%, 0.9)",
2323
- "--shadow-xl": "6px 7px 13px 0px hsla(237, 18%, 3%, 0.9)",
2324
- "--shadow-2xl": "8px 9px 16px 0px hsla(237, 18%, 3%, 0.9)"
2320
+ "--shadow-sm": "1px 1px 2px hsla(237, 18%, 3%, 0.9)",
2321
+ "--shadow-md": "3px 3px 6px hsla(237, 18%, 3%, 0.9)",
2322
+ "--shadow-lg": "5px 5px 9px hsla(237, 18%, 3%, 0.9)",
2323
+ "--shadow-xl": "6px 7px 13px hsla(237, 18%, 3%, 0.9)",
2324
+ "--shadow-2xl": "8px 9px 16px hsla(237, 18%, 3%, 0.9)"
2325
2325
  },
2326
2326
  "fontSources": [
2327
2327
  {
@@ -3318,7 +3318,7 @@
3318
3318
  "createdAt": "2026-05-16T00:00:00.000Z",
3319
3319
  "updatedAt": "2026-08-19T22:39:32.785Z",
3320
3320
  "aliases": {
3321
- "--menuselect-menu-surface": "color-mix(in srgb, var(--surface-neutral-lower) 85%, transparent)",
3321
+ "--menuselect-menu-surface": "color-mix(in srgb, var(--surface-neutral-lower) 95%, transparent)",
3322
3322
  "--menuselect-menu-border": "--border-neutral-medium",
3323
3323
  "--menuselect-menu-border-width": "--border-width-3",
3324
3324
  "--menuselect-menu-radius": "--radius-none",
@@ -2317,11 +2317,11 @@
2317
2317
  "--hover-low": "color-mix(in srgb, var(--text-primary) 5%, transparent)",
2318
2318
  "--hover": "color-mix(in srgb, var(--text-primary) 10%, transparent)",
2319
2319
  "--hover-high": "color-mix(in srgb, var(--text-primary) 15%, transparent)",
2320
- "--shadow-sm": "1px 1px 2px 0px hsla(237, 18%, 3%, 0.9)",
2321
- "--shadow-md": "3px 3px 6px 0px hsla(237, 18%, 3%, 0.9)",
2322
- "--shadow-lg": "5px 5px 9px 0px hsla(237, 18%, 3%, 0.9)",
2323
- "--shadow-xl": "6px 7px 13px 0px hsla(237, 18%, 3%, 0.9)",
2324
- "--shadow-2xl": "8px 9px 16px 0px hsla(237, 18%, 3%, 0.9)"
2320
+ "--shadow-sm": "1px 1px 2px hsla(237, 18%, 3%, 0.9)",
2321
+ "--shadow-md": "3px 3px 6px hsla(237, 18%, 3%, 0.9)",
2322
+ "--shadow-lg": "5px 5px 9px hsla(237, 18%, 3%, 0.9)",
2323
+ "--shadow-xl": "6px 7px 13px hsla(237, 18%, 3%, 0.9)",
2324
+ "--shadow-2xl": "8px 9px 16px hsla(237, 18%, 3%, 0.9)"
2325
2325
  },
2326
2326
  "fontSources": [
2327
2327
  {
@@ -3325,7 +3325,7 @@
3325
3325
  "createdAt": "2026-05-16T00:00:00.000Z",
3326
3326
  "updatedAt": "2026-08-19T22:39:32.785Z",
3327
3327
  "aliases": {
3328
- "--menuselect-menu-surface": "color-mix(in srgb, var(--surface-neutral-lower) 85%, transparent)",
3328
+ "--menuselect-menu-surface": "color-mix(in srgb, var(--surface-neutral-lower) 95%, transparent)",
3329
3329
  "--menuselect-menu-border": "--border-neutral-medium",
3330
3330
  "--menuselect-menu-border-width": "--border-width-1",
3331
3331
  "--menuselect-menu-radius": "--radius-md",
@@ -2270,11 +2270,11 @@
2270
2270
  "--hover-low": "color-mix(in srgb, var(--text-primary) 5%, transparent)",
2271
2271
  "--hover": "color-mix(in srgb, var(--text-primary) 10%, transparent)",
2272
2272
  "--hover-high": "color-mix(in srgb, var(--text-primary) 15%, transparent)",
2273
- "--shadow-sm": "1px 1px 2px 0px hsla(237, 18%, 3%, 0.2)",
2274
- "--shadow-md": "3px 3px 6px 0px hsla(237, 18%, 3%, 0.2)",
2275
- "--shadow-lg": "5px 5px 9px 0px hsla(237, 18%, 3%, 0.2)",
2276
- "--shadow-xl": "6px 7px 13px 0px hsla(237, 18%, 3%, 0.2)",
2277
- "--shadow-2xl": "8px 9px 16px 0px hsla(237, 18%, 3%, 0.2)"
2273
+ "--shadow-sm": "1px 1px 2px hsla(237, 18%, 3%, 0.2)",
2274
+ "--shadow-md": "3px 3px 6px hsla(237, 18%, 3%, 0.2)",
2275
+ "--shadow-lg": "5px 5px 9px hsla(237, 18%, 3%, 0.2)",
2276
+ "--shadow-xl": "6px 7px 13px hsla(237, 18%, 3%, 0.2)",
2277
+ "--shadow-2xl": "8px 9px 16px hsla(237, 18%, 3%, 0.2)"
2278
2278
  },
2279
2279
  "fontSources": [
2280
2280
  {
@@ -3278,7 +3278,7 @@
3278
3278
  "createdAt": "2026-05-16T00:00:00.000Z",
3279
3279
  "updatedAt": "2026-08-19T22:39:32.785Z",
3280
3280
  "aliases": {
3281
- "--menuselect-menu-surface": "color-mix(in srgb, var(--surface-neutral-lower) 85%, transparent)",
3281
+ "--menuselect-menu-surface": "color-mix(in srgb, var(--surface-neutral-lower) 95%, transparent)",
3282
3282
  "--menuselect-menu-border": "--border-neutral-medium",
3283
3283
  "--menuselect-menu-border-width": "--border-width-1",
3284
3284
  "--menuselect-menu-radius": "--radius-xl",
@@ -2302,11 +2302,11 @@
2302
2302
  "--hover-low": "color-mix(in srgb, var(--text-primary) 5%, transparent)",
2303
2303
  "--hover": "color-mix(in srgb, var(--text-primary) 10%, transparent)",
2304
2304
  "--hover-high": "color-mix(in srgb, var(--text-primary) 15%, transparent)",
2305
- "--shadow-sm": "1px 1px 2px 0px hsla(237, 18%, 3%, 0.9)",
2306
- "--shadow-md": "3px 3px 6px 0px hsla(237, 18%, 3%, 0.9)",
2307
- "--shadow-lg": "5px 5px 9px 0px hsla(237, 18%, 3%, 0.9)",
2308
- "--shadow-xl": "6px 7px 13px 0px hsla(237, 18%, 3%, 0.9)",
2309
- "--shadow-2xl": "8px 9px 16px 0px hsla(237, 18%, 3%, 0.9)"
2305
+ "--shadow-sm": "1px 1px 2px hsla(237, 18%, 3%, 0.9)",
2306
+ "--shadow-md": "3px 3px 6px hsla(237, 18%, 3%, 0.9)",
2307
+ "--shadow-lg": "5px 5px 9px hsla(237, 18%, 3%, 0.9)",
2308
+ "--shadow-xl": "6px 7px 13px hsla(237, 18%, 3%, 0.9)",
2309
+ "--shadow-2xl": "8px 9px 16px hsla(237, 18%, 3%, 0.9)"
2310
2310
  },
2311
2311
  "fontSources": [
2312
2312
  {
@@ -3309,7 +3309,7 @@
3309
3309
  "createdAt": "2026-05-16T00:00:00.000Z",
3310
3310
  "updatedAt": "2026-08-19T22:39:32.785Z",
3311
3311
  "aliases": {
3312
- "--menuselect-menu-surface": "color-mix(in srgb, var(--surface-neutral-lower) 85%, transparent)",
3312
+ "--menuselect-menu-surface": "color-mix(in srgb, var(--surface-neutral-lower) 95%, transparent)",
3313
3313
  "--menuselect-menu-border": "--border-neutral-medium",
3314
3314
  "--menuselect-menu-border-width": "--border-width-2",
3315
3315
  "--menuselect-menu-radius": "--radius-md",
@@ -2256,11 +2256,11 @@
2256
2256
  "--hover-low": "color-mix(in srgb, var(--text-primary) 5%, transparent)",
2257
2257
  "--hover": "color-mix(in srgb, var(--text-primary) 10%, transparent)",
2258
2258
  "--hover-high": "color-mix(in srgb, var(--text-primary) 15%, transparent)",
2259
- "--shadow-sm": "1px 1px 2px 0px hsla(237, 18%, 3%, 0.2)",
2260
- "--shadow-md": "3px 3px 6px 0px hsla(237, 18%, 3%, 0.2)",
2261
- "--shadow-lg": "5px 5px 9px 0px hsla(237, 18%, 3%, 0.2)",
2262
- "--shadow-xl": "6px 7px 13px 0px hsla(237, 18%, 3%, 0.2)",
2263
- "--shadow-2xl": "8px 9px 16px 0px hsla(237, 18%, 3%, 0.2)"
2259
+ "--shadow-sm": "1px 1px 2px hsla(237, 18%, 3%, 0.2)",
2260
+ "--shadow-md": "3px 3px 6px hsla(237, 18%, 3%, 0.2)",
2261
+ "--shadow-lg": "5px 5px 9px hsla(237, 18%, 3%, 0.2)",
2262
+ "--shadow-xl": "6px 7px 13px hsla(237, 18%, 3%, 0.2)",
2263
+ "--shadow-2xl": "8px 9px 16px hsla(237, 18%, 3%, 0.2)"
2264
2264
  },
2265
2265
  "fontSources": [
2266
2266
  {
@@ -3292,7 +3292,7 @@
3292
3292
  "createdAt": "2026-05-16T00:00:00.000Z",
3293
3293
  "updatedAt": "2026-08-25T01:13:11.520Z",
3294
3294
  "aliases": {
3295
- "--menuselect-menu-surface": "color-mix(in srgb, var(--surface-neutral-lower) 85%, transparent)",
3295
+ "--menuselect-menu-surface": "color-mix(in srgb, var(--surface-neutral-lower) 95%, transparent)",
3296
3296
  "--menuselect-menu-border": "--border-neutral-medium",
3297
3297
  "--menuselect-menu-border-width": "--border-width-1",
3298
3298
  "--menuselect-menu-radius": "--radius-none",
@@ -2256,11 +2256,11 @@
2256
2256
  "--hover-low": "color-mix(in srgb, var(--text-primary) 5%, transparent)",
2257
2257
  "--hover": "color-mix(in srgb, var(--text-primary) 10%, transparent)",
2258
2258
  "--hover-high": "color-mix(in srgb, var(--text-primary) 15%, transparent)",
2259
- "--shadow-sm": "1px 1px 2px 0px hsla(237, 18%, 3%, 0.2)",
2260
- "--shadow-md": "3px 3px 6px 0px hsla(237, 18%, 3%, 0.2)",
2261
- "--shadow-lg": "5px 5px 9px 0px hsla(237, 18%, 3%, 0.2)",
2262
- "--shadow-xl": "6px 7px 13px 0px hsla(237, 18%, 3%, 0.2)",
2263
- "--shadow-2xl": "8px 9px 16px 0px hsla(237, 18%, 3%, 0.2)"
2259
+ "--shadow-sm": "1px 1px 2px hsla(237, 18%, 3%, 0.2)",
2260
+ "--shadow-md": "3px 3px 6px hsla(237, 18%, 3%, 0.2)",
2261
+ "--shadow-lg": "5px 5px 9px hsla(237, 18%, 3%, 0.2)",
2262
+ "--shadow-xl": "6px 7px 13px hsla(237, 18%, 3%, 0.2)",
2263
+ "--shadow-2xl": "8px 9px 16px hsla(237, 18%, 3%, 0.2)"
2264
2264
  },
2265
2265
  "fontSources": [
2266
2266
  {
@@ -3265,7 +3265,7 @@
3265
3265
  "createdAt": "2026-05-16T00:00:00.000Z",
3266
3266
  "updatedAt": "2026-08-19T22:39:32.785Z",
3267
3267
  "aliases": {
3268
- "--menuselect-menu-surface": "color-mix(in srgb, var(--surface-neutral-lower) 85%, transparent)",
3268
+ "--menuselect-menu-surface": "color-mix(in srgb, var(--surface-neutral-lower) 95%, transparent)",
3269
3269
  "--menuselect-menu-border": "--border-neutral-medium",
3270
3270
  "--menuselect-menu-border-width": "--border-width-1",
3271
3271
  "--menuselect-menu-radius": "--radius-lg",