@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.
- package/.claude/skills/live-tokens-generate-theme/SKILL.md +15 -14
- package/.claude/skills/live-tokens-generate-theme/references/mood-vocabulary.md +43 -0
- package/.claude/skills/live-tokens-generate-theme/references/style-vocabulary.md +35 -0
- package/CHANGELOG.md +89 -0
- package/dist-plugin/generateColorsAndType/index.cjs +4 -3
- package/dist-plugin/generateColorsAndType/index.js +4 -3
- package/package.json +1 -1
- package/src/editor/component-editor/ImageLightboxEditor.svelte +11 -2
- package/src/editor/component-editor/MenuSelectEditor.svelte +2 -1
- package/src/editor/component-editor/scaffolding/TokenLayout.svelte +5 -3
- package/src/editor/component-editor/scaffolding/types.ts +6 -0
- package/src/editor/core/sketch/sketchLayer.ts +16 -7
- package/src/editor/core/sketch/sketchPresets.ts +8 -8
- package/src/editor/core/themes/parsers/shadow.ts +12 -4
- package/src/editor/docs/content/sketch-mode.md +2 -1
- package/src/editor/docs/content.generated.ts +1 -1
- package/src/editor/overlay/ColumnsOverlay.svelte +3 -0
- package/src/editor/ui/ColorEditPanel.svelte +13 -9
- package/src/editor/ui/PaletteEditor.svelte +11 -3
- package/src/editor/ui/UIInlineEditActions.svelte +97 -0
- package/src/editor/ui/UIPaletteSelector.svelte +14 -6
- package/src/live-tokens/data/colors-and-type/autumn.json +5 -5
- package/src/live-tokens/data/colors-and-type/default.json +5 -5
- package/src/live-tokens/data/colors-and-type/halloween.json +5 -5
- package/src/live-tokens/data/colors-and-type/midnight-study.json +5 -5
- package/src/live-tokens/data/colors-and-type/ocean.json +5 -5
- package/src/live-tokens/data/colors-and-type/royal-velvet.json +5 -5
- package/src/live-tokens/data/colors-and-type/sketchy.json +5 -5
- package/src/live-tokens/data/colors-and-type/spring-meadow.json +5 -5
- package/src/live-tokens/data/colors-and-type/sunset.json +5 -5
- package/src/live-tokens/data/themes/autumn.json +6 -6
- package/src/live-tokens/data/themes/halloween.json +6 -6
- package/src/live-tokens/data/themes/midnight-study.json +6 -6
- package/src/live-tokens/data/themes/ocean.json +6 -6
- package/src/live-tokens/data/themes/royal-velvet.json +6 -6
- package/src/live-tokens/data/themes/sketchy.json +6 -6
- package/src/live-tokens/data/themes/spring-meadow.json +6 -6
- package/src/live-tokens/data/themes/sunset.json +6 -6
- package/src/live-tokens/data/tokens.generated.css +5 -5
- package/src/system/components/ImageLightbox.svelte +26 -2
- package/src/system/components/MenuSelect.svelte +1 -1
- package/src/system/styles/tokens.css +5 -5
|
@@ -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
|
|
2321
|
-
"--shadow-md": "3px 3px 6px
|
|
2322
|
-
"--shadow-lg": "5px 5px 9px
|
|
2323
|
-
"--shadow-xl": "6px 7px 13px
|
|
2324
|
-
"--shadow-2xl": "8px 9px 16px
|
|
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
|
{
|
|
@@ -3317,7 +3317,7 @@
|
|
|
3317
3317
|
"createdAt": "2026-05-16T00:00:00.000Z",
|
|
3318
3318
|
"updatedAt": "2026-08-19T22:39:32.785Z",
|
|
3319
3319
|
"aliases": {
|
|
3320
|
-
"--menuselect-menu-surface": "color-mix(in srgb, var(--surface-neutral-lower)
|
|
3320
|
+
"--menuselect-menu-surface": "color-mix(in srgb, var(--surface-neutral-lower) 95%, transparent)",
|
|
3321
3321
|
"--menuselect-menu-border": "--border-neutral-medium",
|
|
3322
3322
|
"--menuselect-menu-border-width": "--border-width-1",
|
|
3323
3323
|
"--menuselect-menu-radius": "--radius-lg",
|
|
@@ -53,11 +53,11 @@
|
|
|
53
53
|
--hover-low: color-mix(in srgb, var(--text-primary) 5%, transparent);
|
|
54
54
|
--hover: color-mix(in srgb, var(--text-primary) 10%, transparent);
|
|
55
55
|
--hover-high: color-mix(in srgb, var(--text-primary) 15%, transparent);
|
|
56
|
-
--shadow-sm: 1px 1px 2px
|
|
57
|
-
--shadow-md: 3px 3px 6px
|
|
58
|
-
--shadow-lg: 5px 5px 9px
|
|
59
|
-
--shadow-xl: 6px 7px 13px
|
|
60
|
-
--shadow-2xl: 8px 9px 16px
|
|
56
|
+
--shadow-sm: 1px 1px 2px hsla(237, 18%, 3%, 0.9);
|
|
57
|
+
--shadow-md: 3px 3px 6px hsla(237, 18%, 3%, 0.9);
|
|
58
|
+
--shadow-lg: 5px 5px 9px hsla(237, 18%, 3%, 0.9);
|
|
59
|
+
--shadow-xl: 6px 7px 13px hsla(237, 18%, 3%, 0.9);
|
|
60
|
+
--shadow-2xl: 8px 9px 16px hsla(237, 18%, 3%, 0.9);
|
|
61
61
|
--color-brand-100: oklch(0.95 0.0279 355.35);
|
|
62
62
|
--color-brand-200: oklch(0.8508 0.0915 355.35);
|
|
63
63
|
--color-brand-300: oklch(0.7516 0.1697 355.35);
|
|
@@ -24,6 +24,13 @@
|
|
|
24
24
|
`cover` only crops when the thumbnail has its own box (an aspect from
|
|
25
25
|
`width`/`height`, or a CSS-constrained container). */
|
|
26
26
|
fit?: 'contain' | 'cover';
|
|
27
|
+
/** Where the tile's shadow lands. Both modes read
|
|
28
|
+
`--imagelightbox-tile-shadow`: `box` casts it from the tile's rectangle,
|
|
29
|
+
`content` casts it from the image's own alpha, so art with transparency
|
|
30
|
+
doesn't sit on a phantom rectangle. `none` drops it. A theme that dials
|
|
31
|
+
a non-zero spread has no shadow under `content` — `drop-shadow()` has no
|
|
32
|
+
spread slot. */
|
|
33
|
+
shadow?: 'box' | 'content' | 'none';
|
|
27
34
|
/** When true, shows a bottom toolbar (zoom in/out + percent) and a top-right close button, and enables wheel/drag zoom inside the open modal. When false, click anywhere closes. */
|
|
28
35
|
extended?: boolean;
|
|
29
36
|
/** Maximum zoom, as a multiple of the image's natural resolution: `1` = 100%
|
|
@@ -55,6 +62,7 @@
|
|
|
55
62
|
images = undefined,
|
|
56
63
|
maxWidth = undefined,
|
|
57
64
|
fit = 'contain',
|
|
65
|
+
shadow = 'box',
|
|
58
66
|
extended = false,
|
|
59
67
|
maxZoom = undefined,
|
|
60
68
|
capNatural = false,
|
|
@@ -582,6 +590,8 @@
|
|
|
582
590
|
<button
|
|
583
591
|
bind:this={thumbEl}
|
|
584
592
|
class="image-lightbox-thumb"
|
|
593
|
+
class:shadow-box={shadow === 'box'}
|
|
594
|
+
class:shadow-content={shadow === 'content'}
|
|
585
595
|
style:--imagelightbox-tile-object-fit={fit}
|
|
586
596
|
type="button"
|
|
587
597
|
aria-label={cover?.alt ? `Expand image: ${cover.alt}` : 'Expand image'}
|
|
@@ -618,6 +628,8 @@
|
|
|
618
628
|
<div
|
|
619
629
|
bind:this={stageEl}
|
|
620
630
|
class="image-lightbox-stage"
|
|
631
|
+
class:shadow-box={shadow === 'box'}
|
|
632
|
+
class:shadow-content={shadow === 'content'}
|
|
621
633
|
role="presentation"
|
|
622
634
|
tabindex="-1"
|
|
623
635
|
onclick={onStageClick}
|
|
@@ -747,12 +759,25 @@
|
|
|
747
759
|
cursor: zoom-in;
|
|
748
760
|
border: var(--imagelightbox-tile-border-width) solid var(--imagelightbox-tile-border);
|
|
749
761
|
border-radius: var(--imagelightbox-tile-radius);
|
|
750
|
-
box-shadow: var(--imagelightbox-tile-shadow);
|
|
751
762
|
background: transparent;
|
|
752
763
|
overflow: hidden;
|
|
753
764
|
transition: transform 250ms ease;
|
|
754
765
|
}
|
|
755
766
|
|
|
767
|
+
.image-lightbox-thumb.shadow-box,
|
|
768
|
+
.image-lightbox-stage.shadow-box {
|
|
769
|
+
box-shadow: var(--imagelightbox-tile-shadow);
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
/* Content mode traces the image's alpha. The filter goes on the tile, not the
|
|
773
|
+
<img>: applied to the element it runs after that element's own overflow
|
|
774
|
+
clip, so the shadow lands outside the box instead of being cropped by it.
|
|
775
|
+
The open modal stays bare — it casts against a near-opaque scrim where no
|
|
776
|
+
shadow reads, and a filter over the pan/zoom surface repaints every frame. */
|
|
777
|
+
.image-lightbox-thumb.shadow-content {
|
|
778
|
+
filter: drop-shadow(var(--imagelightbox-tile-shadow));
|
|
779
|
+
}
|
|
780
|
+
|
|
756
781
|
.image-lightbox-thumb:hover {
|
|
757
782
|
transform: scale(1.02);
|
|
758
783
|
}
|
|
@@ -793,7 +818,6 @@
|
|
|
793
818
|
cursor: zoom-out;
|
|
794
819
|
border: var(--imagelightbox-tile-border-width) solid var(--imagelightbox-tile-border);
|
|
795
820
|
border-radius: var(--imagelightbox-tile-radius);
|
|
796
|
-
box-shadow: var(--imagelightbox-tile-shadow);
|
|
797
821
|
background: transparent;
|
|
798
822
|
}
|
|
799
823
|
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
|
|
73
73
|
:global(:root) {
|
|
74
74
|
/* Menu panel */
|
|
75
|
-
--menuselect-menu-surface: color-mix(in srgb, var(--surface-neutral-lower)
|
|
75
|
+
--menuselect-menu-surface: color-mix(in srgb, var(--surface-neutral-lower) 95%, transparent);
|
|
76
76
|
--menuselect-menu-border: var(--border-neutral-medium);
|
|
77
77
|
--menuselect-menu-border-width: var(--border-width-1);
|
|
78
78
|
--menuselect-menu-radius: var(--radius-md);
|
|
@@ -530,11 +530,11 @@
|
|
|
530
530
|
|
|
531
531
|
/* Shadows (elevation scale) */
|
|
532
532
|
--shadow-none: none;
|
|
533
|
-
--shadow-sm: 1px 1px 2px
|
|
534
|
-
--shadow-md: 3px 3px 6px
|
|
535
|
-
--shadow-lg: 5px 5px 9px
|
|
536
|
-
--shadow-xl: 6px 7px 13px
|
|
537
|
-
--shadow-2xl: 8px 9px 16px
|
|
533
|
+
--shadow-sm: 1px 1px 2px hsla(237, 18%, 3%, 0.9);
|
|
534
|
+
--shadow-md: 3px 3px 6px hsla(237, 18%, 3%, 0.9);
|
|
535
|
+
--shadow-lg: 5px 5px 9px hsla(237, 18%, 3%, 0.9);
|
|
536
|
+
--shadow-xl: 6px 7px 13px hsla(237, 18%, 3%, 0.9);
|
|
537
|
+
--shadow-2xl: 8px 9px 16px hsla(237, 18%, 3%, 0.9);
|
|
538
538
|
|
|
539
539
|
/* Focus rings (box-shadow outline) */
|
|
540
540
|
--ring-focus-sm: 0 0 0 2px hsla(0, 78%, 60%, 0.1);
|