@motion-proto/live-tokens 0.68.1 → 0.69.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 (93) hide show
  1. package/.claude/skills/live-tokens-build-page/SKILL.md +16 -5
  2. package/.claude/skills/live-tokens-create-component/SKILL.md +43 -8
  3. package/.claude/skills/live-tokens-create-component/references/token-naming.md +30 -1
  4. package/.claude/skills/live-tokens-fix-findings/SKILL.md +131 -0
  5. package/.claude/skills/live-tokens-pick-component/SKILL.md +2 -1
  6. package/CHANGELOG.md +207 -0
  7. package/README.md +11 -4
  8. package/bin/check-component.mjs +367 -63
  9. package/bin/check-page.mjs +409 -0
  10. package/bin/cli.mjs +57 -8
  11. package/bin/lib/cssValues.mjs +50 -0
  12. package/bin/lib/findings.mjs +106 -0
  13. package/bin/lib/tokenVocabulary.mjs +213 -0
  14. package/dist-plugin/adjust/index.cjs +174 -23
  15. package/dist-plugin/adjust/index.js +68 -23
  16. package/dist-plugin/{chunk-2UX6EVVA.js → chunk-2YNERPXY.js} +1 -1
  17. package/dist-plugin/{chunk-NE6N66EE.js → chunk-GPIBU44G.js} +107 -1
  18. package/dist-plugin/{chunk-ZHPX7ZYQ.js → chunk-RFVYPNRO.js} +39 -1
  19. package/dist-plugin/generateColorsAndType/index.cjs +107 -1
  20. package/dist-plugin/generateColorsAndType/index.js +1 -1
  21. package/dist-plugin/index.cjs +146 -2
  22. package/dist-plugin/index.js +3 -3
  23. package/dist-plugin/migrateData/index.cjs +107 -1
  24. package/dist-plugin/migrateData/index.js +2 -2
  25. package/dist-plugin/tokensCssMigrations/index.cjs +39 -1
  26. package/dist-plugin/tokensCssMigrations/index.js +1 -1
  27. package/package.json +3 -2
  28. package/src/app/site.css +4 -4
  29. package/src/editor/component-editor/ButtonEditor.svelte +71 -4
  30. package/src/editor/component-editor/CardEditor.svelte +6 -6
  31. package/src/editor/component-editor/DialogEditor.svelte +3 -3
  32. package/src/editor/component-editor/IconButtonEditor.svelte +68 -3
  33. package/src/editor/component-editor/ImageEditor.svelte +8 -8
  34. package/src/editor/component-editor/ImageLightboxEditor.svelte +12 -1
  35. package/src/editor/component-editor/MenuSelectEditor.svelte +63 -3
  36. package/src/editor/component-editor/SegmentedControlEditor.svelte +63 -3
  37. package/src/editor/component-editor/SideNavigationEditor.svelte +67 -3
  38. package/src/editor/component-editor/SliderEditor.svelte +186 -0
  39. package/src/editor/component-editor/TabBarEditor.svelte +63 -3
  40. package/src/editor/component-editor/registry.ts +10 -0
  41. package/src/editor/core/components/aliasKinds.ts +51 -28
  42. package/src/editor/core/sketch/sketchLayer.ts +16 -0
  43. package/src/editor/core/store/editorPersistence.ts +44 -1
  44. package/src/editor/core/store/editorRenderer.ts +2 -2
  45. package/src/editor/core/store/editorStore.ts +18 -18
  46. package/src/editor/core/store/editorTypes.ts +7 -6
  47. package/src/editor/core/themes/migrations/2026-09-01-gate-suffix-enabled.ts +31 -0
  48. package/src/editor/core/themes/migrations/2026-09-01-scrim-rename.ts +52 -0
  49. package/src/editor/core/themes/migrations/2026-09-01-tabbar-active-tint.ts +27 -0
  50. package/src/editor/core/themes/migrations/2026-09-01-tint-rename.ts +42 -0
  51. package/src/editor/core/themes/migrations/index.ts +16 -0
  52. package/src/editor/core/themes/slices/domainVars.ts +2 -2
  53. package/src/editor/core/themes/slices/washes.ts +107 -0
  54. package/src/editor/docs/content/editing-tokens.md +5 -3
  55. package/src/editor/docs/content.generated.ts +1 -1
  56. package/src/editor/pages/EditorShell.svelte +1 -1
  57. package/src/editor/ui/SurfacesTab.svelte +3 -3
  58. package/src/editor/ui/UITokenSelector.svelte +1 -0
  59. package/src/editor/ui/VariablesTab.svelte +2 -2
  60. package/src/editor/ui/sections/{OverlaysSection.svelte → WashesSection.svelte} +44 -43
  61. package/src/live-tokens/data/colors-and-type/autumn.json +6 -6
  62. package/src/live-tokens/data/colors-and-type/default.json +6 -6
  63. package/src/live-tokens/data/colors-and-type/halloween.json +6 -6
  64. package/src/live-tokens/data/colors-and-type/midnight-study.json +6 -6
  65. package/src/live-tokens/data/colors-and-type/ocean.json +6 -6
  66. package/src/live-tokens/data/colors-and-type/royal-velvet.json +6 -6
  67. package/src/live-tokens/data/colors-and-type/sketchy.json +6 -6
  68. package/src/live-tokens/data/colors-and-type/spring-meadow.json +6 -6
  69. package/src/live-tokens/data/colors-and-type/sunset.json +6 -6
  70. package/src/live-tokens/data/themes/autumn.json +81 -13
  71. package/src/live-tokens/data/themes/halloween.json +81 -13
  72. package/src/live-tokens/data/themes/midnight-study.json +81 -13
  73. package/src/live-tokens/data/themes/ocean.json +81 -13
  74. package/src/live-tokens/data/themes/royal-velvet.json +81 -13
  75. package/src/live-tokens/data/themes/sketchy.json +81 -13
  76. package/src/live-tokens/data/themes/spring-meadow.json +81 -13
  77. package/src/live-tokens/data/themes/sunset.json +81 -13
  78. package/src/live-tokens/data/tokens.generated.css +6 -6
  79. package/src/system/components/Button.svelte +28 -10
  80. package/src/system/components/Card.svelte +6 -6
  81. package/src/system/components/Dialog.svelte +3 -3
  82. package/src/system/components/IconButton.svelte +23 -7
  83. package/src/system/components/Image.svelte +6 -6
  84. package/src/system/components/MenuSelect.svelte +17 -1
  85. package/src/system/components/SegmentedControl.svelte +20 -2
  86. package/src/system/components/SideNavigation.svelte +22 -2
  87. package/src/system/components/Slider.svelte +348 -0
  88. package/src/system/components/TabBar.svelte +20 -2
  89. package/src/system/styles/CONVENTIONS.md +2 -2
  90. package/src/system/styles/tokens.css +12 -4
  91. package/template/package.json +3 -2
  92. package/template/src/pages/Home.svelte +1 -1
  93. package/src/editor/core/themes/slices/overlays.ts +0 -101
@@ -516,6 +516,42 @@ var tokensCssMigration_2026_08_27_editorialLargeSteps = {
516
516
  }
517
517
  };
518
518
 
519
+ // vite-plugin/tokensCssMigrations/migrations/2026-09-01-scrim-rename.ts
520
+ var RENAMES2 = [
521
+ ["--overlay-low", "--scrim-low"],
522
+ ["--overlay-high", "--scrim-high"],
523
+ ["--overlay", "--scrim"]
524
+ ];
525
+ var tokensCssMigration_2026_09_01_scrimRename = {
526
+ id: "2026-09-01-scrim-rename",
527
+ kind: "breaking",
528
+ description: "Rename --overlay-{low,base,high} to --scrim-*; a scrim dims what is behind it",
529
+ apply(css) {
530
+ let out = css;
531
+ for (const [oldName, newName] of RENAMES2) out = renameToken(out, oldName, newName);
532
+ return out;
533
+ }
534
+ };
535
+
536
+ // vite-plugin/tokensCssMigrations/migrations/2026-09-01-tint-scale.ts
537
+ var ENTRIES = [
538
+ { name: "--tint-low", value: "rgba(255, 255, 255, 0.05)" },
539
+ { name: "--tint", value: "rgba(255, 255, 255, 0.1)" },
540
+ { name: "--tint-high", value: "rgba(255, 255, 255, 0.15)" }
541
+ ];
542
+ var tokensCssMigration_2026_09_01_tintScale = {
543
+ id: "2026-09-01-tint-scale",
544
+ kind: "additive",
545
+ description: "Add the --tint-* scale; a tint shades the surface it sits on",
546
+ apply(css) {
547
+ return ensureScale(css, {
548
+ entries: ENTRIES,
549
+ sectionComment: "Tints \u2014 translucent washes that shade the surface they sit on",
550
+ anchorPrefixes: ["--scrim", "--overlay"]
551
+ });
552
+ }
553
+ };
554
+
519
555
  // vite-plugin/tokensCssMigrations/index.ts
520
556
  var TOKENS_CSS_MIGRATIONS = [
521
557
  tokensCssMigration_2026_05_29_typographyScaleAdditions,
@@ -530,7 +566,9 @@ var TOKENS_CSS_MIGRATIONS = [
530
566
  tokensCssMigration_2026_08_26_gradientStops,
531
567
  tokensCssMigration_2026_08_27_backdropPolarity,
532
568
  tokensCssMigration_2026_08_27_editorialSizeSteps,
533
- tokensCssMigration_2026_08_27_editorialLargeSteps
569
+ tokensCssMigration_2026_08_27_editorialLargeSteps,
570
+ tokensCssMigration_2026_09_01_scrimRename,
571
+ tokensCssMigration_2026_09_01_tintScale
534
572
  ];
535
573
  function runTokensCssMigrations(css) {
536
574
  return foldMigrations(css, () => true);
@@ -1551,6 +1551,106 @@ var componentMigration_2026_08_15_lineHeightScaleRename = {
1551
1551
  apply: renameValues
1552
1552
  };
1553
1553
 
1554
+ // src/editor/core/themes/migrations/2026-09-01-scrim-rename.ts
1555
+ var RENAMED2 = {
1556
+ "--overlay-low": "--scrim-low",
1557
+ "--overlay": "--scrim",
1558
+ "--overlay-high": "--scrim-high"
1559
+ };
1560
+ var RENAMED_COMPONENT_KEYS = {
1561
+ "--dialog-overlay-surface": "--dialog-scrim-surface"
1562
+ };
1563
+ var colorsAndTypeMigration_2026_09_01_scrimRename = {
1564
+ id: "2026-09-01-scrim-rename-theme",
1565
+ fromVersion: 5,
1566
+ toVersion: 6,
1567
+ appliesTo: "colors-and-type",
1568
+ apply(rawVars) {
1569
+ const out = {};
1570
+ for (const [key, value] of Object.entries(rawVars)) {
1571
+ out[RENAMED2[key] ?? key] = value;
1572
+ }
1573
+ return out;
1574
+ }
1575
+ };
1576
+ var componentMigration_2026_09_01_scrimRename = {
1577
+ id: "2026-09-01-scrim-rename-component",
1578
+ fromVersion: 21,
1579
+ toVersion: 22,
1580
+ appliesTo: "component-config",
1581
+ apply(rawVars) {
1582
+ const out = {};
1583
+ for (const [key, value] of Object.entries(rawVars)) {
1584
+ out[RENAMED_COMPONENT_KEYS[key] ?? key] = RENAMED2[value] ?? value;
1585
+ }
1586
+ return out;
1587
+ }
1588
+ };
1589
+
1590
+ // src/editor/core/themes/migrations/2026-09-01-tint-rename.ts
1591
+ var RENAMED3 = {
1592
+ "--hover-low": "--tint-low",
1593
+ "--hover": "--tint",
1594
+ "--hover-high": "--tint-high"
1595
+ };
1596
+ var colorsAndTypeMigration_2026_09_01_tintRename = {
1597
+ id: "2026-09-01-tint-rename-theme",
1598
+ fromVersion: 6,
1599
+ toVersion: 7,
1600
+ appliesTo: "colors-and-type",
1601
+ apply(rawVars) {
1602
+ const out = {};
1603
+ for (const [key, value] of Object.entries(rawVars)) out[RENAMED3[key] ?? key] = value;
1604
+ return out;
1605
+ }
1606
+ };
1607
+ var componentMigration_2026_09_01_tintRename = {
1608
+ id: "2026-09-01-tint-rename-component",
1609
+ fromVersion: 22,
1610
+ toVersion: 23,
1611
+ appliesTo: "component-config",
1612
+ apply(rawVars) {
1613
+ const out = {};
1614
+ for (const [key, value] of Object.entries(rawVars)) out[key] = RENAMED3[value] ?? value;
1615
+ return out;
1616
+ }
1617
+ };
1618
+
1619
+ // src/editor/core/themes/migrations/2026-09-01-tabbar-active-tint.ts
1620
+ var componentMigration_2026_09_01_tabbarActiveTint = {
1621
+ id: "2026-09-01-tabbar-active-tint",
1622
+ fromVersion: 23,
1623
+ toVersion: 24,
1624
+ appliesTo: "component-config",
1625
+ apply(rawVars, meta) {
1626
+ if (meta.component !== "tabbar") return { ...rawVars };
1627
+ const out = { ...rawVars };
1628
+ if (out["--tabbar-active-surface"] === "--scrim-low") {
1629
+ out["--tabbar-active-surface"] = "--tint-low";
1630
+ }
1631
+ return out;
1632
+ }
1633
+ };
1634
+
1635
+ // src/editor/core/themes/migrations/2026-09-01-gate-suffix-enabled.ts
1636
+ var RENAMED4 = {
1637
+ "--card-hover-border-active": "--card-hover-border-enabled",
1638
+ "--card-hover-shadow-active": "--card-hover-shadow-enabled",
1639
+ "--image-zoom-hover": "--image-zoom-enabled",
1640
+ "--image-grow-hover": "--image-grow-enabled"
1641
+ };
1642
+ var componentMigration_2026_09_01_gateSuffixEnabled = {
1643
+ id: "2026-09-01-gate-suffix-enabled",
1644
+ fromVersion: 24,
1645
+ toVersion: 25,
1646
+ appliesTo: "component-config",
1647
+ apply(rawVars) {
1648
+ const out = {};
1649
+ for (const [key, value] of Object.entries(rawVars)) out[RENAMED4[key] ?? key] = value;
1650
+ return out;
1651
+ }
1652
+ };
1653
+
1554
1654
  // src/editor/core/themes/migrations/index.ts
1555
1655
  var MIGRATIONS = [
1556
1656
  colorsAndTypeMigration_2026_04_24_legacyKeysAndBgToCanvas,
@@ -1578,7 +1678,13 @@ var MIGRATIONS = [
1578
1678
  componentMigration_2026_05_29_toggleDeriveTrackFromThumb,
1579
1679
  colorsAndTypeMigration_2026_08_13_dropLegacyShapeSpaceKeys,
1580
1680
  colorsAndTypeMigration_2026_08_15_lineHeightScaleRename,
1581
- componentMigration_2026_08_15_lineHeightScaleRename
1681
+ componentMigration_2026_08_15_lineHeightScaleRename,
1682
+ colorsAndTypeMigration_2026_09_01_scrimRename,
1683
+ componentMigration_2026_09_01_scrimRename,
1684
+ colorsAndTypeMigration_2026_09_01_tintRename,
1685
+ componentMigration_2026_09_01_tintRename,
1686
+ componentMigration_2026_09_01_tabbarActiveTint,
1687
+ componentMigration_2026_09_01_gateSuffixEnabled
1582
1688
  ];
1583
1689
  function countFor(kind) {
1584
1690
  return MIGRATIONS.filter((m) => m.appliesTo === kind).length;
@@ -19,7 +19,7 @@ import {
19
19
  import {
20
20
  CURRENT_COLORS_AND_TYPE_SCHEMA_VERSION,
21
21
  CURRENT_COMPONENT_SCHEMA_VERSION
22
- } from "../chunk-NE6N66EE.js";
22
+ } from "../chunk-GPIBU44G.js";
23
23
  import {
24
24
  cssColorToOklch,
25
25
  gamutClamp,
@@ -1487,6 +1487,106 @@ var componentMigration_2026_08_15_lineHeightScaleRename = {
1487
1487
  apply: renameValues
1488
1488
  };
1489
1489
 
1490
+ // src/editor/core/themes/migrations/2026-09-01-scrim-rename.ts
1491
+ var RENAMED2 = {
1492
+ "--overlay-low": "--scrim-low",
1493
+ "--overlay": "--scrim",
1494
+ "--overlay-high": "--scrim-high"
1495
+ };
1496
+ var RENAMED_COMPONENT_KEYS = {
1497
+ "--dialog-overlay-surface": "--dialog-scrim-surface"
1498
+ };
1499
+ var colorsAndTypeMigration_2026_09_01_scrimRename = {
1500
+ id: "2026-09-01-scrim-rename-theme",
1501
+ fromVersion: 5,
1502
+ toVersion: 6,
1503
+ appliesTo: "colors-and-type",
1504
+ apply(rawVars) {
1505
+ const out = {};
1506
+ for (const [key, value] of Object.entries(rawVars)) {
1507
+ out[RENAMED2[key] ?? key] = value;
1508
+ }
1509
+ return out;
1510
+ }
1511
+ };
1512
+ var componentMigration_2026_09_01_scrimRename = {
1513
+ id: "2026-09-01-scrim-rename-component",
1514
+ fromVersion: 21,
1515
+ toVersion: 22,
1516
+ appliesTo: "component-config",
1517
+ apply(rawVars) {
1518
+ const out = {};
1519
+ for (const [key, value] of Object.entries(rawVars)) {
1520
+ out[RENAMED_COMPONENT_KEYS[key] ?? key] = RENAMED2[value] ?? value;
1521
+ }
1522
+ return out;
1523
+ }
1524
+ };
1525
+
1526
+ // src/editor/core/themes/migrations/2026-09-01-tint-rename.ts
1527
+ var RENAMED3 = {
1528
+ "--hover-low": "--tint-low",
1529
+ "--hover": "--tint",
1530
+ "--hover-high": "--tint-high"
1531
+ };
1532
+ var colorsAndTypeMigration_2026_09_01_tintRename = {
1533
+ id: "2026-09-01-tint-rename-theme",
1534
+ fromVersion: 6,
1535
+ toVersion: 7,
1536
+ appliesTo: "colors-and-type",
1537
+ apply(rawVars) {
1538
+ const out = {};
1539
+ for (const [key, value] of Object.entries(rawVars)) out[RENAMED3[key] ?? key] = value;
1540
+ return out;
1541
+ }
1542
+ };
1543
+ var componentMigration_2026_09_01_tintRename = {
1544
+ id: "2026-09-01-tint-rename-component",
1545
+ fromVersion: 22,
1546
+ toVersion: 23,
1547
+ appliesTo: "component-config",
1548
+ apply(rawVars) {
1549
+ const out = {};
1550
+ for (const [key, value] of Object.entries(rawVars)) out[key] = RENAMED3[value] ?? value;
1551
+ return out;
1552
+ }
1553
+ };
1554
+
1555
+ // src/editor/core/themes/migrations/2026-09-01-tabbar-active-tint.ts
1556
+ var componentMigration_2026_09_01_tabbarActiveTint = {
1557
+ id: "2026-09-01-tabbar-active-tint",
1558
+ fromVersion: 23,
1559
+ toVersion: 24,
1560
+ appliesTo: "component-config",
1561
+ apply(rawVars, meta) {
1562
+ if (meta.component !== "tabbar") return { ...rawVars };
1563
+ const out = { ...rawVars };
1564
+ if (out["--tabbar-active-surface"] === "--scrim-low") {
1565
+ out["--tabbar-active-surface"] = "--tint-low";
1566
+ }
1567
+ return out;
1568
+ }
1569
+ };
1570
+
1571
+ // src/editor/core/themes/migrations/2026-09-01-gate-suffix-enabled.ts
1572
+ var RENAMED4 = {
1573
+ "--card-hover-border-active": "--card-hover-border-enabled",
1574
+ "--card-hover-shadow-active": "--card-hover-shadow-enabled",
1575
+ "--image-zoom-hover": "--image-zoom-enabled",
1576
+ "--image-grow-hover": "--image-grow-enabled"
1577
+ };
1578
+ var componentMigration_2026_09_01_gateSuffixEnabled = {
1579
+ id: "2026-09-01-gate-suffix-enabled",
1580
+ fromVersion: 24,
1581
+ toVersion: 25,
1582
+ appliesTo: "component-config",
1583
+ apply(rawVars) {
1584
+ const out = {};
1585
+ for (const [key, value] of Object.entries(rawVars)) out[RENAMED4[key] ?? key] = value;
1586
+ return out;
1587
+ }
1588
+ };
1589
+
1490
1590
  // src/editor/core/themes/migrations/index.ts
1491
1591
  var MIGRATIONS = [
1492
1592
  colorsAndTypeMigration_2026_04_24_legacyKeysAndBgToCanvas,
@@ -1514,7 +1614,13 @@ var MIGRATIONS = [
1514
1614
  componentMigration_2026_05_29_toggleDeriveTrackFromThumb,
1515
1615
  colorsAndTypeMigration_2026_08_13_dropLegacyShapeSpaceKeys,
1516
1616
  colorsAndTypeMigration_2026_08_15_lineHeightScaleRename,
1517
- componentMigration_2026_08_15_lineHeightScaleRename
1617
+ componentMigration_2026_08_15_lineHeightScaleRename,
1618
+ colorsAndTypeMigration_2026_09_01_scrimRename,
1619
+ componentMigration_2026_09_01_scrimRename,
1620
+ colorsAndTypeMigration_2026_09_01_tintRename,
1621
+ componentMigration_2026_09_01_tintRename,
1622
+ componentMigration_2026_09_01_tabbarActiveTint,
1623
+ componentMigration_2026_09_01_gateSuffixEnabled
1518
1624
  ];
1519
1625
  function countFor(kind) {
1520
1626
  return MIGRATIONS.filter((m) => m.appliesTo === kind).length;
@@ -3092,6 +3198,42 @@ var tokensCssMigration_2026_08_27_editorialLargeSteps = {
3092
3198
  }
3093
3199
  };
3094
3200
 
3201
+ // vite-plugin/tokensCssMigrations/migrations/2026-09-01-scrim-rename.ts
3202
+ var RENAMES3 = [
3203
+ ["--overlay-low", "--scrim-low"],
3204
+ ["--overlay-high", "--scrim-high"],
3205
+ ["--overlay", "--scrim"]
3206
+ ];
3207
+ var tokensCssMigration_2026_09_01_scrimRename = {
3208
+ id: "2026-09-01-scrim-rename",
3209
+ kind: "breaking",
3210
+ description: "Rename --overlay-{low,base,high} to --scrim-*; a scrim dims what is behind it",
3211
+ apply(css) {
3212
+ let out = css;
3213
+ for (const [oldName, newName] of RENAMES3) out = renameToken2(out, oldName, newName);
3214
+ return out;
3215
+ }
3216
+ };
3217
+
3218
+ // vite-plugin/tokensCssMigrations/migrations/2026-09-01-tint-scale.ts
3219
+ var ENTRIES = [
3220
+ { name: "--tint-low", value: "rgba(255, 255, 255, 0.05)" },
3221
+ { name: "--tint", value: "rgba(255, 255, 255, 0.1)" },
3222
+ { name: "--tint-high", value: "rgba(255, 255, 255, 0.15)" }
3223
+ ];
3224
+ var tokensCssMigration_2026_09_01_tintScale = {
3225
+ id: "2026-09-01-tint-scale",
3226
+ kind: "additive",
3227
+ description: "Add the --tint-* scale; a tint shades the surface it sits on",
3228
+ apply(css) {
3229
+ return ensureScale(css, {
3230
+ entries: ENTRIES,
3231
+ sectionComment: "Tints \u2014 translucent washes that shade the surface they sit on",
3232
+ anchorPrefixes: ["--scrim", "--overlay"]
3233
+ });
3234
+ }
3235
+ };
3236
+
3095
3237
  // vite-plugin/tokensCssMigrations/index.ts
3096
3238
  var TOKENS_CSS_MIGRATIONS = [
3097
3239
  tokensCssMigration_2026_05_29_typographyScaleAdditions,
@@ -3106,7 +3248,9 @@ var TOKENS_CSS_MIGRATIONS = [
3106
3248
  tokensCssMigration_2026_08_26_gradientStops,
3107
3249
  tokensCssMigration_2026_08_27_backdropPolarity,
3108
3250
  tokensCssMigration_2026_08_27_editorialSizeSteps,
3109
- tokensCssMigration_2026_08_27_editorialLargeSteps
3251
+ tokensCssMigration_2026_08_27_editorialLargeSteps,
3252
+ tokensCssMigration_2026_09_01_scrimRename,
3253
+ tokensCssMigration_2026_09_01_tintScale
3110
3254
  ];
3111
3255
  function runTokensCssMigrations(css) {
3112
3256
  return foldMigrations(css, () => true);
@@ -13,17 +13,17 @@ import {
13
13
  nextAvailableName,
14
14
  normalizeTheme,
15
15
  versionedFileResourceServer
16
- } from "./chunk-2UX6EVVA.js";
16
+ } from "./chunk-2YNERPXY.js";
17
17
  import {
18
18
  CURRENT_COMPONENT_SCHEMA_VERSION
19
- } from "./chunk-NE6N66EE.js";
19
+ } from "./chunk-GPIBU44G.js";
20
20
  import {
21
21
  TOKENS_CSS_MIGRATIONS,
22
22
  extractGlobalRootBody,
23
23
  runAdditiveTokensCssMigrations,
24
24
  runTokensCssMigrations,
25
25
  validateTokensCss
26
- } from "./chunk-ZHPX7ZYQ.js";
26
+ } from "./chunk-RFVYPNRO.js";
27
27
  import {
28
28
  hexToOklch,
29
29
  oklchToRgb255,
@@ -876,6 +876,106 @@ var componentMigration_2026_08_15_lineHeightScaleRename = {
876
876
  apply: renameValues
877
877
  };
878
878
 
879
+ // src/editor/core/themes/migrations/2026-09-01-scrim-rename.ts
880
+ var RENAMED2 = {
881
+ "--overlay-low": "--scrim-low",
882
+ "--overlay": "--scrim",
883
+ "--overlay-high": "--scrim-high"
884
+ };
885
+ var RENAMED_COMPONENT_KEYS = {
886
+ "--dialog-overlay-surface": "--dialog-scrim-surface"
887
+ };
888
+ var colorsAndTypeMigration_2026_09_01_scrimRename = {
889
+ id: "2026-09-01-scrim-rename-theme",
890
+ fromVersion: 5,
891
+ toVersion: 6,
892
+ appliesTo: "colors-and-type",
893
+ apply(rawVars) {
894
+ const out = {};
895
+ for (const [key, value] of Object.entries(rawVars)) {
896
+ out[RENAMED2[key] ?? key] = value;
897
+ }
898
+ return out;
899
+ }
900
+ };
901
+ var componentMigration_2026_09_01_scrimRename = {
902
+ id: "2026-09-01-scrim-rename-component",
903
+ fromVersion: 21,
904
+ toVersion: 22,
905
+ appliesTo: "component-config",
906
+ apply(rawVars) {
907
+ const out = {};
908
+ for (const [key, value] of Object.entries(rawVars)) {
909
+ out[RENAMED_COMPONENT_KEYS[key] ?? key] = RENAMED2[value] ?? value;
910
+ }
911
+ return out;
912
+ }
913
+ };
914
+
915
+ // src/editor/core/themes/migrations/2026-09-01-tint-rename.ts
916
+ var RENAMED3 = {
917
+ "--hover-low": "--tint-low",
918
+ "--hover": "--tint",
919
+ "--hover-high": "--tint-high"
920
+ };
921
+ var colorsAndTypeMigration_2026_09_01_tintRename = {
922
+ id: "2026-09-01-tint-rename-theme",
923
+ fromVersion: 6,
924
+ toVersion: 7,
925
+ appliesTo: "colors-and-type",
926
+ apply(rawVars) {
927
+ const out = {};
928
+ for (const [key, value] of Object.entries(rawVars)) out[RENAMED3[key] ?? key] = value;
929
+ return out;
930
+ }
931
+ };
932
+ var componentMigration_2026_09_01_tintRename = {
933
+ id: "2026-09-01-tint-rename-component",
934
+ fromVersion: 22,
935
+ toVersion: 23,
936
+ appliesTo: "component-config",
937
+ apply(rawVars) {
938
+ const out = {};
939
+ for (const [key, value] of Object.entries(rawVars)) out[key] = RENAMED3[value] ?? value;
940
+ return out;
941
+ }
942
+ };
943
+
944
+ // src/editor/core/themes/migrations/2026-09-01-tabbar-active-tint.ts
945
+ var componentMigration_2026_09_01_tabbarActiveTint = {
946
+ id: "2026-09-01-tabbar-active-tint",
947
+ fromVersion: 23,
948
+ toVersion: 24,
949
+ appliesTo: "component-config",
950
+ apply(rawVars, meta) {
951
+ if (meta.component !== "tabbar") return { ...rawVars };
952
+ const out = { ...rawVars };
953
+ if (out["--tabbar-active-surface"] === "--scrim-low") {
954
+ out["--tabbar-active-surface"] = "--tint-low";
955
+ }
956
+ return out;
957
+ }
958
+ };
959
+
960
+ // src/editor/core/themes/migrations/2026-09-01-gate-suffix-enabled.ts
961
+ var RENAMED4 = {
962
+ "--card-hover-border-active": "--card-hover-border-enabled",
963
+ "--card-hover-shadow-active": "--card-hover-shadow-enabled",
964
+ "--image-zoom-hover": "--image-zoom-enabled",
965
+ "--image-grow-hover": "--image-grow-enabled"
966
+ };
967
+ var componentMigration_2026_09_01_gateSuffixEnabled = {
968
+ id: "2026-09-01-gate-suffix-enabled",
969
+ fromVersion: 24,
970
+ toVersion: 25,
971
+ appliesTo: "component-config",
972
+ apply(rawVars) {
973
+ const out = {};
974
+ for (const [key, value] of Object.entries(rawVars)) out[RENAMED4[key] ?? key] = value;
975
+ return out;
976
+ }
977
+ };
978
+
879
979
  // src/editor/core/themes/migrations/index.ts
880
980
  var MIGRATIONS = [
881
981
  colorsAndTypeMigration_2026_04_24_legacyKeysAndBgToCanvas,
@@ -903,7 +1003,13 @@ var MIGRATIONS = [
903
1003
  componentMigration_2026_05_29_toggleDeriveTrackFromThumb,
904
1004
  colorsAndTypeMigration_2026_08_13_dropLegacyShapeSpaceKeys,
905
1005
  colorsAndTypeMigration_2026_08_15_lineHeightScaleRename,
906
- componentMigration_2026_08_15_lineHeightScaleRename
1006
+ componentMigration_2026_08_15_lineHeightScaleRename,
1007
+ colorsAndTypeMigration_2026_09_01_scrimRename,
1008
+ componentMigration_2026_09_01_scrimRename,
1009
+ colorsAndTypeMigration_2026_09_01_tintRename,
1010
+ componentMigration_2026_09_01_tintRename,
1011
+ componentMigration_2026_09_01_tabbarActiveTint,
1012
+ componentMigration_2026_09_01_gateSuffixEnabled
907
1013
  ];
908
1014
  function countFor(kind) {
909
1015
  return MIGRATIONS.filter((m) => m.appliesTo === kind).length;
@@ -7,10 +7,10 @@ import {
7
7
  normalizeTheme,
8
8
  planLegacyRenames,
9
9
  versionedFileResourceServer
10
- } from "../chunk-2UX6EVVA.js";
10
+ } from "../chunk-2YNERPXY.js";
11
11
  import {
12
12
  CURRENT_COMPONENT_SCHEMA_VERSION
13
- } from "../chunk-NE6N66EE.js";
13
+ } from "../chunk-GPIBU44G.js";
14
14
  import {
15
15
  readLiveTokensConfig,
16
16
  resolveDataDirs
@@ -603,6 +603,42 @@ var tokensCssMigration_2026_08_27_editorialLargeSteps = {
603
603
  }
604
604
  };
605
605
 
606
+ // vite-plugin/tokensCssMigrations/migrations/2026-09-01-scrim-rename.ts
607
+ var RENAMES2 = [
608
+ ["--overlay-low", "--scrim-low"],
609
+ ["--overlay-high", "--scrim-high"],
610
+ ["--overlay", "--scrim"]
611
+ ];
612
+ var tokensCssMigration_2026_09_01_scrimRename = {
613
+ id: "2026-09-01-scrim-rename",
614
+ kind: "breaking",
615
+ description: "Rename --overlay-{low,base,high} to --scrim-*; a scrim dims what is behind it",
616
+ apply(css) {
617
+ let out = css;
618
+ for (const [oldName, newName] of RENAMES2) out = renameToken(out, oldName, newName);
619
+ return out;
620
+ }
621
+ };
622
+
623
+ // vite-plugin/tokensCssMigrations/migrations/2026-09-01-tint-scale.ts
624
+ var ENTRIES = [
625
+ { name: "--tint-low", value: "rgba(255, 255, 255, 0.05)" },
626
+ { name: "--tint", value: "rgba(255, 255, 255, 0.1)" },
627
+ { name: "--tint-high", value: "rgba(255, 255, 255, 0.15)" }
628
+ ];
629
+ var tokensCssMigration_2026_09_01_tintScale = {
630
+ id: "2026-09-01-tint-scale",
631
+ kind: "additive",
632
+ description: "Add the --tint-* scale; a tint shades the surface it sits on",
633
+ apply(css) {
634
+ return ensureScale(css, {
635
+ entries: ENTRIES,
636
+ sectionComment: "Tints \u2014 translucent washes that shade the surface they sit on",
637
+ anchorPrefixes: ["--scrim", "--overlay"]
638
+ });
639
+ }
640
+ };
641
+
606
642
  // vite-plugin/files/dataPaths.ts
607
643
  var import_fs = __toESM(require("fs"), 1);
608
644
  var import_path = __toESM(require("path"), 1);
@@ -651,7 +687,9 @@ var TOKENS_CSS_MIGRATIONS = [
651
687
  tokensCssMigration_2026_08_26_gradientStops,
652
688
  tokensCssMigration_2026_08_27_backdropPolarity,
653
689
  tokensCssMigration_2026_08_27_editorialSizeSteps,
654
- tokensCssMigration_2026_08_27_editorialLargeSteps
690
+ tokensCssMigration_2026_08_27_editorialLargeSteps,
691
+ tokensCssMigration_2026_09_01_scrimRename,
692
+ tokensCssMigration_2026_09_01_tintScale
655
693
  ];
656
694
  function runTokensCssMigrations(css) {
657
695
  return foldMigrations(css, () => true);
@@ -13,7 +13,7 @@ import {
13
13
  runTokensCssMigrations,
14
14
  semverBumpType,
15
15
  validateTokensCss
16
- } from "../chunk-ZHPX7ZYQ.js";
16
+ } from "../chunk-RFVYPNRO.js";
17
17
  import "../chunk-7TQQTHI6.js";
18
18
  import {
19
19
  readLiveTokensConfig
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@motion-proto/live-tokens",
3
- "version": "0.68.1",
3
+ "version": "0.69.0",
4
4
  "type": "module",
5
5
  "description": "Design token editor with live CSS variable editing. Svelte 5 + Vite 8.",
6
6
  "keywords": [
@@ -144,6 +144,7 @@
144
144
  "check:overlay-portal": "node scripts/check-overlay-portal.mjs",
145
145
  "check:editor-font-isolation": "node scripts/check-editor-font-isolation.mjs",
146
146
  "check:component-defaults": "node scripts/sync-component-defaults.mjs --check",
147
+ "check:pages": "node bin/cli.mjs check-page --strict",
147
148
  "check:production-is-default": "node scripts/check-production-is-default.mjs",
148
149
  "check:docs-content": "node scripts/sync-docs.mjs --check",
149
150
  "check:token-contract": "node scripts/check-token-contract.mjs",
@@ -157,7 +158,7 @@
157
158
  "collapse:theme": "node scripts/collapse-theme-to-default.mjs",
158
159
  "check:smoke-install": "bash scripts/smoke-install.sh",
159
160
  "check:smoke-create": "bash scripts/smoke-create.sh",
160
- "prepublishOnly": "npm run check:no-style-imports && npm run check:no-tooling-imports && npm run check:slot-prose && npm run check:overlay-portal && npm run check:editor-font-isolation && npm run check:component-defaults && npm run check:production-is-default && npm run check:docs-content && npm run build:lib && npm run check:token-contract && npm run check:preset-themes && npm run check:skills && npm run check:skill-atlas && npm run check:smoke-install && npm run check:smoke-create"
161
+ "prepublishOnly": "npm run check:no-style-imports && npm run check:no-tooling-imports && npm run check:slot-prose && npm run check:overlay-portal && npm run check:editor-font-isolation && npm run check:component-defaults && npm run check:pages && npm run check:production-is-default && npm run check:docs-content && npm run build:lib && npm run check:token-contract && npm run check:preset-themes && npm run check:skills && npm run check:skill-atlas && npm run check:smoke-install && npm run check:smoke-create"
161
162
  },
162
163
  "peerDependencies": {
163
164
  "@sveltejs/vite-plugin-svelte": "^7.0",
package/src/app/site.css CHANGED
@@ -71,7 +71,7 @@ p {
71
71
  font-size: var(--body-md-font-size);
72
72
  color: var(--text-secondary);
73
73
  line-height: var(--body-md-line-height);
74
- margin: 0 0 14px;
74
+ margin: 0 0 var(--space-16);
75
75
  }
76
76
 
77
77
  p:last-child {
@@ -142,15 +142,15 @@ ol li::marker {
142
142
 
143
143
  hr {
144
144
  border: none;
145
- border-top: 1px solid var(--border-neutral-faint);
145
+ border-top: var(--border-width-1) solid var(--border-neutral-faint);
146
146
  margin: var(--space-32) 0;
147
147
  }
148
148
 
149
149
  blockquote {
150
150
  margin: var(--space-16) 0;
151
151
  padding: var(--space-12) var(--space-20);
152
- border: 1px solid var(--color-brand-500);
153
- border-left: 4px solid var(--color-brand-500);
152
+ border: var(--border-width-1) solid var(--color-brand-500);
153
+ border-left: var(--border-width-4) solid var(--color-brand-500);
154
154
  background: var(--surface-neutral-high);
155
155
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
156
156
  color: var(--text-secondary);