@mkbabb/glass-ui 3.13.0 → 4.0.1

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 (507) hide show
  1. package/README.md +3 -1
  2. package/dist/CardAction-CW7a0m8M.js +253 -0
  3. package/dist/{CommandShortcut-RowNEO6i.js → CommandShortcut-DvZNQ_HF.js} +58 -53
  4. package/dist/ConfiguratorRow-BR4l-ixA.js +143 -0
  5. package/dist/{ContextMenuContent-CT3AS1WX.js → ContextMenuContent-uWnVxDab.js} +1 -1
  6. package/dist/{ContextMenuSubContent-BQmxTAdw.js → ContextMenuSubContent-xol4sD2q.js} +32 -37
  7. package/dist/{DataTable-BCddn3T3.js → DataTable-CuKwF7wr.js} +99 -97
  8. package/dist/DialogContent-DcKK8k9i.js +103 -0
  9. package/dist/{DialogFooter-Blu4t7tJ.js → DialogFooter-BZNX5aVr.js} +3 -3
  10. package/dist/FadingScroll-DI6hQhT9.js +76 -0
  11. package/dist/{HoverCardContent-Csywg3YF.js → HoverCardContent-b2uaAMRR.js} +1 -1
  12. package/dist/{HoverPopover-CISOJQuZ.js → HoverPopover-CbqbNwgU.js} +2 -2
  13. package/dist/IconChip-BTD-nay5.js +55 -0
  14. package/dist/{IconTooltip-DPzE09X9.js → IconTooltip-Bl8gFZ8d.js} +1 -1
  15. package/dist/{Input-DWQQIOC4.js → Input-h9v5LeXf.js} +1 -1
  16. package/dist/{MetricBadge-C9QMz1KT.js → MetricBadge-RHdBP72w.js} +1 -1
  17. package/dist/Notification-VUwexFUf.js +43 -0
  18. package/dist/NumberFieldContent-Cq7EzX-U.js +138 -0
  19. package/dist/PopoverContent-DL7E6vJP.js +127 -0
  20. package/dist/{Progress-DwlUKGbr.js → Progress-DctG61iZ.js} +98 -78
  21. package/dist/{ScrollingText-DfFrwSph.js → ScrollingText-yOpBzFYq.js} +2 -2
  22. package/dist/{SelectScrollDownButton-CiDUxfEj.js → SelectScrollDownButton-CrA8F0iV.js} +35 -20
  23. package/dist/{Switch-CsIuYP_e.js → Switch-CwYNf8bo.js} +1 -1
  24. package/dist/Toaster-Bw4xR8xV.js +274 -0
  25. package/dist/{ToggleGroupItem-D_AHlRw9.js → ToggleGroupItem-pEM9vIhs.js} +50 -37
  26. package/dist/{TooltipProvider-B3MkB_8P.js → TooltipProvider-rzvnXz60.js} +1 -1
  27. package/dist/animated-digit.js +2 -2
  28. package/dist/api/index.d.ts +16 -8
  29. package/dist/api/types-extra.d.ts +6 -0
  30. package/dist/api.js +2 -2
  31. package/dist/aurora.js +888 -230
  32. package/dist/badge.js +1 -1
  33. package/dist/border-progress.d.ts +1 -0
  34. package/dist/border-progress.js +106 -0
  35. package/dist/button-DYCUa-tH.js +126 -0
  36. package/dist/button.js +1 -1
  37. package/dist/canvas.js +2 -2
  38. package/dist/card.js +2 -2
  39. package/dist/carousel.d.ts +1 -1
  40. package/dist/carousel.js +90 -151
  41. package/dist/collapsible.js +1 -1
  42. package/dist/color-swatch.d.ts +1 -0
  43. package/dist/color-swatch.js +47 -0
  44. package/dist/color.js +1 -1
  45. package/dist/command.js +1 -1
  46. package/dist/compile-CQEFRTmx.js +19 -0
  47. package/dist/components/custom/aurora/composables/atoms-fields.d.ts +39 -0
  48. package/dist/components/custom/aurora/composables/auroraFallbackGround.d.ts +108 -0
  49. package/dist/components/custom/aurora/composables/runtime.d.ts +19 -0
  50. package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
  51. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +51 -0
  52. package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +29 -0
  53. package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
  54. package/dist/components/custom/aurora/constants/presets.d.ts +30 -2
  55. package/dist/components/custom/aurora/constants/renderMode.d.ts +63 -10
  56. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -0
  57. package/dist/components/custom/aurora/constants/shaders/oil-modes.glsl.d.ts +1 -0
  58. package/dist/components/custom/aurora/constants/shaders/procedural-color.wgsl.d.ts +4 -0
  59. package/dist/components/custom/aurora/index.d.ts +3 -2
  60. package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +46 -0
  61. package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +22 -0
  62. package/dist/components/custom/border-progress/constants.d.ts +59 -0
  63. package/dist/components/custom/border-progress/index.d.ts +4 -0
  64. package/dist/components/custom/color-swatch/ColorSwatch.vue.d.ts +22 -0
  65. package/dist/components/custom/color-swatch/index.d.ts +1 -0
  66. package/dist/components/custom/concentric/Concentric.vue.d.ts +39 -0
  67. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +11 -0
  68. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +13 -0
  69. package/dist/components/custom/concentric/composables/ringField.d.ts +44 -0
  70. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +13 -0
  71. package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
  72. package/dist/components/custom/concentric/constants.d.ts +43 -0
  73. package/dist/components/custom/concentric/index.d.ts +5 -0
  74. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +4 -0
  75. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -0
  76. package/dist/components/custom/configurator/Configurator.vue.d.ts +19 -8
  77. package/dist/components/custom/constellation/Constellation.vue.d.ts +18 -206
  78. package/dist/components/custom/constellation/composables/useConstellation.d.ts +26 -0
  79. package/dist/components/custom/constellation/constellationField.d.ts +2 -369
  80. package/dist/components/custom/constellation/constellationTypes.d.ts +369 -0
  81. package/dist/components/custom/constellation/index.d.ts +1 -1
  82. package/dist/components/custom/dock/DockIconButton.vue.d.ts +13 -4
  83. package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
  84. package/dist/components/custom/dock/DockRail.vue.d.ts +17 -16
  85. package/dist/components/custom/dock/DockSection.vue.d.ts +69 -0
  86. package/dist/components/custom/dock/DockSeparator.vue.d.ts +49 -1
  87. package/dist/components/custom/dock/DockTabButton.vue.d.ts +5 -5
  88. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +75 -0
  89. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
  90. package/dist/components/custom/dock/constants.d.ts +35 -0
  91. package/dist/components/custom/dock/index.d.ts +2 -0
  92. package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +38 -0
  93. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +41 -0
  94. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +24 -0
  95. package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +34 -0
  96. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +18 -0
  97. package/dist/components/custom/dot-flow-field/constants.d.ts +48 -0
  98. package/dist/components/custom/dot-flow-field/index.d.ts +5 -0
  99. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -0
  100. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +20 -0
  101. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -0
  102. package/dist/components/custom/easing/EasingConfigurator.vue.d.ts +33 -0
  103. package/dist/components/custom/easing/EasingPicker.vue.d.ts +49 -0
  104. package/dist/components/custom/easing/composables/useEasingPicker.d.ts +75 -0
  105. package/dist/components/custom/easing/constants.d.ts +28 -0
  106. package/dist/components/custom/easing/index.d.ts +3 -0
  107. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +10 -0
  108. package/dist/components/custom/fading-scroll/FadingScroll.vue.d.ts +25 -0
  109. package/dist/components/custom/fading-scroll/composables/useFadingScroll.d.ts +31 -0
  110. package/dist/components/custom/fading-scroll/constants.d.ts +19 -0
  111. package/dist/components/custom/fading-scroll/index.d.ts +2 -0
  112. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +19 -2
  113. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +39 -0
  114. package/dist/components/custom/fourier-field/constants.d.ts +7 -0
  115. package/dist/components/custom/fourier-field/index.d.ts +1 -1
  116. package/dist/components/custom/fourier-field/math.d.ts +17 -0
  117. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +9 -1
  118. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +4 -2
  119. package/dist/components/custom/goo-blob/composables/uniformBridgeWGPU.d.ts +24 -0
  120. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +29 -12
  121. package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
  122. package/dist/components/custom/goo-blob/constants.d.ts +6 -1
  123. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
  124. package/dist/components/custom/handmark/HandMark.vue.d.ts +29 -0
  125. package/dist/components/custom/handmark/brush.d.ts +269 -0
  126. package/dist/components/custom/handmark/composables/useHandMark.d.ts +89 -0
  127. package/dist/components/custom/handmark/constants.d.ts +39 -0
  128. package/dist/components/custom/handmark/freehand.d.ts +69 -0
  129. package/dist/components/custom/handmark/geometry.d.ts +52 -0
  130. package/dist/components/custom/handmark/index.d.ts +27 -0
  131. package/dist/components/custom/handmark/ink.d.ts +11 -0
  132. package/dist/components/custom/handmark/texture.d.ts +39 -0
  133. package/dist/components/custom/handmark/types.d.ts +62 -0
  134. package/dist/components/custom/icon-chip/IconChip.vue.d.ts +4 -0
  135. package/dist/components/custom/icon-chip/index.d.ts +2 -0
  136. package/dist/components/custom/icon-chip/types.d.ts +82 -0
  137. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +17 -2
  138. package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
  139. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +39 -0
  140. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  141. package/dist/components/custom/spa-view/SpaView.vue.d.ts +50 -0
  142. package/dist/components/custom/spa-view/index.d.ts +2 -0
  143. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +29 -24
  144. package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
  145. package/dist/components/custom/tabs/composables/useTabIndicator.d.ts +30 -21
  146. package/dist/components/custom/tabs/constants.d.ts +9 -3
  147. package/dist/components/custom/tabs/index.d.ts +1 -1
  148. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +15 -1
  149. package/dist/components/ui/_shared/index.d.ts +2 -0
  150. package/dist/components/ui/_shared/menuItemVariants.d.ts +19 -0
  151. package/dist/components/ui/_shared/useSurfaceAxis.d.ts +41 -0
  152. package/dist/components/ui/badge/index.d.ts +1 -1
  153. package/dist/components/ui/button/Button.vue.d.ts +5 -2
  154. package/dist/components/ui/button/index.d.ts +2 -2
  155. package/dist/components/ui/card/Card.vue.d.ts +34 -4
  156. package/dist/components/ui/card/CardHeader.vue.d.ts +42 -16
  157. package/dist/components/ui/card/ScrollCard.vue.d.ts +33 -0
  158. package/dist/components/ui/card/ScrollCardHeader.vue.d.ts +17 -0
  159. package/dist/components/ui/card/index.d.ts +2 -0
  160. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
  161. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
  162. package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +2 -2
  163. package/dist/components/ui/carousel/index.d.ts +0 -1
  164. package/dist/components/ui/command/Command.vue.d.ts +4 -1
  165. package/dist/components/ui/dialog/DialogContent.vue.d.ts +8 -3
  166. package/dist/components/ui/drawer/Drawer.vue.d.ts +46 -33
  167. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +12 -8
  168. package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +2 -2
  169. package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +1 -1
  170. package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +2 -2
  171. package/dist/components/ui/drawer/composables/drawerSnapContext.d.ts +26 -0
  172. package/dist/components/ui/drawer/composables/useDrawerSnap.d.ts +17 -0
  173. package/dist/components/ui/drawer/constants.d.ts +45 -0
  174. package/dist/components/ui/drawer/index.d.ts +23 -15
  175. package/dist/components/ui/focus-scope/FocusScope.vue.d.ts +20 -0
  176. package/dist/components/ui/focus-scope/index.d.ts +2 -0
  177. package/dist/components/ui/index.d.ts +1 -1
  178. package/dist/components/ui/popover/PopoverContent.vue.d.ts +3 -0
  179. package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
  180. package/dist/components/ui/progress/ProgressSectioned.vue.d.ts +14 -3
  181. package/dist/components/ui/select/SelectContent.vue.d.ts +1 -1
  182. package/dist/components/ui/select/SelectTrigger.vue.d.ts +27 -4
  183. package/dist/components/ui/sheet/SheetContent.vue.d.ts +6 -0
  184. package/dist/components/ui/sheet/index.d.ts +1 -1
  185. package/dist/components/ui/skeleton/Skeleton.vue.d.ts +3 -0
  186. package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
  187. package/dist/components/ui/toast/Toast.vue.d.ts +5 -2
  188. package/dist/components/ui/toast/use-toast.d.ts +14 -0
  189. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  190. package/dist/composables/dark/index.d.ts +1 -1
  191. package/dist/composables/dark/useGlobalDark.d.ts +23 -1
  192. package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +13 -6
  193. package/dist/composables/glass/index.d.ts +5 -2
  194. package/dist/composables/glass/useSpecularPointer.d.ts +33 -0
  195. package/dist/composables/glass/useSpecularTracking.d.ts +20 -0
  196. package/dist/composables/glass/vSpecular.d.ts +2 -0
  197. package/dist/composables/glass/webgl/shaders/flow.glsl.d.ts +1 -0
  198. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +16 -0
  199. package/dist/composables/glass/webgpu/index.d.ts +2 -0
  200. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +54 -0
  201. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +84 -0
  202. package/dist/composables/motion/core/index.d.ts +1 -0
  203. package/dist/composables/motion/index.d.ts +4 -0
  204. package/dist/composables/motion/useDockCtaReceive.d.ts +59 -0
  205. package/dist/composables/motion/useDragMorph.d.ts +77 -0
  206. package/dist/composables/motion/useLiquidFlex.d.ts +11 -0
  207. package/dist/composables/motion/useLiquidPress.d.ts +71 -0
  208. package/dist/composables/motion/useLiquidReveal.d.ts +51 -0
  209. package/dist/composables/motion/useNumericTransition.d.ts +3 -3
  210. package/dist/composables/motion/usePointerVelocityField.d.ts +98 -0
  211. package/dist/composables/motion/useViewTransition.d.ts +36 -1
  212. package/dist/concentric.d.ts +1 -0
  213. package/dist/concentric.js +562 -0
  214. package/dist/configurator.js +3 -2
  215. package/dist/confirm-dialog.js +22 -24
  216. package/dist/constellation.js +93 -95
  217. package/dist/context-menu.js +3 -3
  218. package/dist/controls.js +10 -4
  219. package/dist/createCanvasLifecycle-CHD5XrDW.js +82 -0
  220. package/dist/dark.d.ts +1 -1
  221. package/dist/dark.js +1 -1
  222. package/dist/data-table.js +1 -1
  223. package/dist/dialog.js +2 -2
  224. package/dist/dock.js +738 -442
  225. package/dist/{dockContext-BegmJVmx.js → dockContext-BNfyPLe9.js} +1 -1
  226. package/dist/dom.js +5 -5
  227. package/dist/dot-flow-field.d.ts +1 -0
  228. package/dist/dot-flow-field.js +604 -0
  229. package/dist/drawer.d.ts +1 -0
  230. package/dist/drawer.js +380 -0
  231. package/dist/{dropdown-menu-DzkkyBwX.js → dropdown-menu-CofSZuk8.js} +14 -15
  232. package/dist/dropdown-menu.js +1 -1
  233. package/dist/easing.d.ts +1 -0
  234. package/dist/easing.js +463 -0
  235. package/dist/expandable-container.js +45 -38
  236. package/dist/fading-scroll.d.ts +1 -0
  237. package/dist/fading-scroll.js +2 -0
  238. package/dist/focus-scope.d.ts +1 -0
  239. package/dist/focus-scope.js +23 -0
  240. package/dist/forms.js +7 -7
  241. package/dist/fourier-field.js +135 -122
  242. package/dist/fourier-math.js +2 -2
  243. package/dist/glass-panel.js +39 -36
  244. package/dist/glass-ui.css +1 -1
  245. package/dist/glass-ui.js +154 -362
  246. package/dist/goo-blob.js +838 -227
  247. package/dist/handmark.d.ts +1 -0
  248. package/dist/handmark.js +707 -0
  249. package/dist/header-ribbon.js +1 -1
  250. package/dist/hover-card.js +1 -1
  251. package/dist/hover-popover.js +1 -1
  252. package/dist/icon-chip.d.ts +1 -0
  253. package/dist/icon-chip.js +2 -0
  254. package/dist/icon-tooltip.js +1 -1
  255. package/dist/index.d.ts +3 -3
  256. package/dist/instrument-chassis.js +1 -1
  257. package/dist/keyboard.js +1 -1
  258. package/dist/label.js +1 -1
  259. package/dist/labeled-field.js +6 -6
  260. package/dist/{math-U6-RrLmV.js → math-BINYmg5z.js} +11 -3
  261. package/dist/{menuItemVariants-DPiEarb0.js → menuItemVariants-D8VNHq22.js} +10 -4
  262. package/dist/metric-badge.js +1 -1
  263. package/dist/metric-cell.js +25 -22
  264. package/dist/metric-stack.js +4 -8
  265. package/dist/motion-core.js +36 -35
  266. package/dist/motion-curves.js +1 -1
  267. package/dist/motion.js +157 -55
  268. package/dist/notification.js +1 -1
  269. package/dist/number-field.js +1 -1
  270. package/dist/pager-dots.d.ts +1 -0
  271. package/dist/pager-dots.js +91 -0
  272. package/dist/paper-backdrop.js +1 -1
  273. package/dist/popover.js +1 -1
  274. package/dist/{presets-BKVyQfbt.js → presets-BW2b-fr1.js} +14 -1
  275. package/dist/{compile-B7NGOBcP.js → procedural-color.glsl-CIFsJhwI.js} +1 -155
  276. package/dist/procedural-color.wgsl-CToRHugY.js +224 -0
  277. package/dist/progress.js +1 -1
  278. package/dist/pulse.js +1 -1
  279. package/dist/reactive.js +2 -2
  280. package/dist/scrolling-text.js +1 -1
  281. package/dist/search.js +10 -12
  282. package/dist/select.js +3 -3
  283. package/dist/separator.js +1 -1
  284. package/dist/sheet-tZMg0E0w.js +218 -0
  285. package/dist/sheet.js +1 -1
  286. package/dist/{slider-B-JP2JlI.js → slider-DVb4HXU-.js} +7 -7
  287. package/dist/slider.js +1 -1
  288. package/dist/sortable-list.js +3 -3
  289. package/dist/spa-view.d.ts +1 -0
  290. package/dist/spa-view.js +46 -0
  291. package/dist/styles/animations.css +40 -31
  292. package/dist/styles/border-progress.css +109 -0
  293. package/dist/styles/cards.css +76 -0
  294. package/dist/styles/components.css +1 -1
  295. package/dist/styles/configurator.css +35 -0
  296. package/dist/styles/critical-partition.mjs +140 -0
  297. package/dist/styles/critical.css +12 -0
  298. package/dist/styles/deferred.css +31 -0
  299. package/dist/styles/dock/density.css +64 -0
  300. package/dist/styles/dock/layers.css +54 -30
  301. package/dist/styles/dock/morph.css +124 -7
  302. package/dist/styles/dock/overflow.css +31 -2
  303. package/dist/styles/dock/rail-extend.css +168 -71
  304. package/dist/styles/dock/section.css +59 -0
  305. package/dist/styles/dock/shell.css +83 -16
  306. package/dist/styles/dock-controls/icon-button.css +11 -1
  307. package/dist/styles/dock-controls/tab-button.css +24 -83
  308. package/dist/styles/dock-controls/triggers.css +7 -0
  309. package/dist/styles/dock.css +38 -3
  310. package/dist/styles/drawer.css +127 -35
  311. package/dist/styles/feedback-tone.css +104 -0
  312. package/dist/styles/glass/deep.css +44 -0
  313. package/dist/styles/glass/ladder.css +154 -52
  314. package/dist/styles/glass/material.css +78 -15
  315. package/dist/styles/glass/reveal.css +136 -0
  316. package/dist/styles/glass/rim.css +100 -0
  317. package/dist/styles/glass/surface-axis.css +113 -0
  318. package/dist/styles/glass/surfaces.css +189 -15
  319. package/dist/styles/glass-refract.css +96 -44
  320. package/dist/styles/glass-specular-track.css +7 -0
  321. package/dist/styles/glass.css +8 -2
  322. package/dist/styles/hover-popover.css +7 -6
  323. package/dist/styles/icon-chip.css +211 -0
  324. package/dist/styles/index.css +78 -4
  325. package/dist/styles/instrument-chassis.css +107 -2
  326. package/dist/styles/menu.css +127 -0
  327. package/dist/styles/scroll-choreography.css +300 -0
  328. package/dist/styles/segmented-tabs.css +188 -86
  329. package/dist/styles/select.css +50 -0
  330. package/dist/styles/theme/bridges.css +22 -1
  331. package/dist/styles/theme/literals.css +11 -2
  332. package/dist/styles/theme/radius.css +6 -1
  333. package/dist/styles/tokens/color-radius.css +40 -13
  334. package/dist/styles/tokens/dark-arm.css +200 -20
  335. package/dist/styles/tokens/glass-deep.css +75 -0
  336. package/dist/styles/tokens/glass-fx.css +333 -0
  337. package/dist/styles/tokens/glass.css +95 -315
  338. package/dist/styles/tokens/light-dark.css +64 -22
  339. package/dist/styles/tokens/offsets.css +116 -0
  340. package/dist/styles/tokens/on-glass-fg.css +39 -0
  341. package/dist/styles/tokens/property-regs.css +130 -10
  342. package/dist/styles/tokens/scale-paper.css +155 -84
  343. package/dist/styles/tokens/scheme-motion.css +102 -46
  344. package/dist/styles/tokens/scroll-tokens.css +123 -0
  345. package/dist/styles/tokens/{offsets-sizing.css → sizing.css} +88 -89
  346. package/dist/styles/tokens.css +9 -3
  347. package/dist/styles/transitions.css +7 -7
  348. package/dist/styles/typography/scale.css +153 -0
  349. package/dist/styles/typography/semantic.css +220 -0
  350. package/dist/styles/typography/utilities.css +174 -0
  351. package/dist/styles/typography.css +23 -507
  352. package/dist/styles/utilities/a11y-overrides.css +33 -4
  353. package/dist/styles/utilities/animate.css +27 -24
  354. package/dist/styles/utilities/base-misc.css +255 -0
  355. package/dist/styles/utilities/base.css +100 -138
  356. package/dist/styles/utilities/btn.css +21 -202
  357. package/dist/styles/utilities/metal.css +189 -0
  358. package/dist/styles/utilities.css +14 -7
  359. package/dist/styles/view-transition.css +4 -1
  360. package/dist/switch.js +1 -1
  361. package/dist/tabs.js +275 -191
  362. package/dist/timeline.js +2 -2
  363. package/dist/toast.js +1 -1
  364. package/dist/toggle-chip.js +3 -1
  365. package/dist/toggle-group.js +1 -1
  366. package/dist/tooltip.js +1 -1
  367. package/dist/typewriter.js +1 -1
  368. package/dist/{useAnimatedNumber-C5I3wWd8.js → useAnimatedNumber-BfUq2bUM.js} +1 -1
  369. package/dist/useCanvas2D-B8w_E3Rr.js +83 -0
  370. package/dist/useConfiguratorState-DNlOh6c8.js +161 -0
  371. package/dist/useDragMorph-DgxnsVJz.js +102 -0
  372. package/dist/{useGlobalDark-yhL4Wp-s.js → useGlobalDark-C28t0VWJ.js} +22 -3
  373. package/dist/useLiquidPress-kfb4KX79.js +39 -0
  374. package/dist/usePointerVelocityField-JbRd5CrM.js +137 -0
  375. package/dist/{useRAFLoop-Bxv0o6L5.js → useRAFLoop-UYa4zoiN.js} +1 -1
  376. package/dist/useSpring-C0jyvEJB.js +40 -0
  377. package/dist/useSpringMount-q1amq1SJ.js +71 -0
  378. package/dist/useSpringPress-BsqPr7FJ.js +34 -0
  379. package/dist/useSurfaceAxis-g0NloYEF.js +7 -0
  380. package/dist/{useTouchGate-Dg7MQI1G.js → useTouchGate-CBZTD4SD.js} +1 -1
  381. package/dist/vReveal-Czsb7zQC.js +10 -0
  382. package/dist/vSpecular-CQFmLNzA.js +68 -0
  383. package/dist/vendor-CKmzio-i.js +226 -0
  384. package/dist/watercolor-dot.js +12 -5
  385. package/package.json +193 -25
  386. package/src/styles/animations.css +40 -31
  387. package/src/styles/border-progress.css +109 -0
  388. package/src/styles/cards.css +76 -0
  389. package/src/styles/configurator.css +35 -0
  390. package/src/styles/critical-partition.mjs +140 -0
  391. package/src/styles/dock/density.css +64 -0
  392. package/src/styles/dock/layers.css +54 -30
  393. package/src/styles/dock/morph.css +124 -7
  394. package/src/styles/dock/overflow.css +31 -2
  395. package/src/styles/dock/rail-extend.css +168 -71
  396. package/src/styles/dock/section.css +59 -0
  397. package/src/styles/dock/shell.css +83 -16
  398. package/src/styles/dock-controls/icon-button.css +11 -1
  399. package/src/styles/dock-controls/tab-button.css +24 -83
  400. package/src/styles/dock-controls/triggers.css +7 -0
  401. package/src/styles/dock.css +38 -3
  402. package/src/styles/drawer.css +123 -35
  403. package/src/styles/feedback-tone.css +104 -0
  404. package/src/styles/glass/deep.css +44 -0
  405. package/src/styles/glass/ladder.css +154 -52
  406. package/src/styles/glass/material.css +78 -15
  407. package/src/styles/glass/reveal.css +136 -0
  408. package/src/styles/glass/rim.css +100 -0
  409. package/src/styles/glass/surface-axis.css +113 -0
  410. package/src/styles/glass/surfaces.css +189 -15
  411. package/src/styles/glass-refract.css +96 -44
  412. package/src/styles/glass-specular-track.css +7 -0
  413. package/src/styles/glass.css +8 -2
  414. package/src/styles/hover-popover.css +7 -6
  415. package/src/styles/icon-chip.css +211 -0
  416. package/src/styles/index.css +78 -4
  417. package/src/styles/instrument-chassis.css +107 -2
  418. package/src/styles/menu.css +127 -0
  419. package/src/styles/scroll-choreography.css +300 -0
  420. package/src/styles/segmented-tabs.css +184 -84
  421. package/src/styles/select.css +50 -0
  422. package/src/styles/theme/bridges.css +22 -1
  423. package/src/styles/theme/literals.css +11 -2
  424. package/src/styles/theme/radius.css +6 -1
  425. package/src/styles/tokens/color-radius.css +40 -13
  426. package/src/styles/tokens/dark-arm.css +200 -20
  427. package/src/styles/tokens/glass-deep.css +75 -0
  428. package/src/styles/tokens/glass-fx.css +333 -0
  429. package/src/styles/tokens/glass.css +95 -315
  430. package/src/styles/tokens/light-dark.css +64 -22
  431. package/src/styles/tokens/offsets.css +116 -0
  432. package/src/styles/tokens/on-glass-fg.css +39 -0
  433. package/src/styles/tokens/property-regs.css +130 -10
  434. package/src/styles/tokens/scale-paper.css +155 -84
  435. package/src/styles/tokens/scheme-motion.css +102 -46
  436. package/src/styles/tokens/scroll-tokens.css +123 -0
  437. package/src/styles/tokens/{offsets-sizing.css → sizing.css} +88 -89
  438. package/src/styles/tokens.css +9 -3
  439. package/src/styles/transitions.css +7 -7
  440. package/src/styles/typography/scale.css +153 -0
  441. package/src/styles/typography/semantic.css +220 -0
  442. package/src/styles/typography/utilities.css +174 -0
  443. package/src/styles/typography.css +23 -507
  444. package/src/styles/utilities/a11y-overrides.css +33 -4
  445. package/src/styles/utilities/animate.css +27 -24
  446. package/src/styles/utilities/base-misc.css +255 -0
  447. package/src/styles/utilities/base.css +100 -138
  448. package/src/styles/utilities/btn.css +21 -202
  449. package/src/styles/utilities/metal.css +189 -0
  450. package/src/styles/utilities.css +14 -7
  451. package/src/styles/view-transition.css +4 -1
  452. package/dist/CardAction-Cj2eycQ2.js +0 -157
  453. package/dist/DialogContent-Dl9WkAoS.js +0 -100
  454. package/dist/Notification-DdwNxIrI.js +0 -100
  455. package/dist/NumberFieldContent-CqaN-SvN.js +0 -145
  456. package/dist/PopoverContent-BYwt2-4x.js +0 -121
  457. package/dist/TabsList-Dttss653.js +0 -105
  458. package/dist/Toaster-D6q4HtXu.js +0 -263
  459. package/dist/button-ChXMfsud.js +0 -81
  460. package/dist/check-njhk-vfu.js +0 -7
  461. package/dist/chevron-down-DKkxb4VV.js +0 -7
  462. package/dist/chevron-right-CPXbqQQz.js +0 -7
  463. package/dist/chevron-up-n_24SqI-.js +0 -7
  464. package/dist/components/custom/underline/GlassUnderline.vue.d.ts +0 -84
  465. package/dist/components/custom/underline/index.d.ts +0 -2
  466. package/dist/components/custom/underline/types.d.ts +0 -56
  467. package/dist/components/ui/carousel/CarouselDots.vue.d.ts +0 -4
  468. package/dist/createLucideIcon-DydS2qgk.js +0 -43
  469. package/dist/minimize-2-BV31Ob_h.js +0 -38
  470. package/dist/search-BSGrf2Sk.js +0 -12
  471. package/dist/sheet-1fChZjtw.js +0 -214
  472. package/dist/underline.d.ts +0 -1
  473. package/dist/underline.js +0 -85
  474. package/dist/useCanvas2D-ClrQuZtp.js +0 -96
  475. package/dist/useConfiguratorState-DAoeHVue.js +0 -287
  476. package/dist/useSpecularTracking-Bo5su68i.js +0 -32
  477. package/dist/useSpringMount-CI2jOstM.js +0 -108
  478. package/dist/vReveal-CqaCz_mC.js +0 -44
  479. package/dist/x-BUwTKe50.js +0 -10
  480. /package/dist/{CollapsibleContent-CP9qF1v4.js → CollapsibleContent-68dEXIAl.js} +0 -0
  481. /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-Bx0F_q5g.js} +0 -0
  482. /package/dist/{Label-r3WzWrsj.js → Label-C2ejNWeC.js} +0 -0
  483. /package/dist/{ModalOverlay-DVLI2VRr.js → ModalOverlay-D1VrWyoi.js} +0 -0
  484. /package/dist/{PaperBackdrop-DIXTtVq6.js → PaperBackdrop-Vf3tlpvd.js} +0 -0
  485. /package/dist/{SelectGroup-aumMgWLs.js → SelectGroup-DwwjicPY.js} +0 -0
  486. /package/dist/{SelectSeparator-BQ_1Fcbp.js → SelectSeparator-DXswVdRz.js} +0 -0
  487. /package/dist/{Separator-0JE6LtNu.js → Separator-pKF0oA4M.js} +0 -0
  488. /package/dist/{_plugin-vue_export-helper-ok8pgSl5.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
  489. /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
  490. /package/dist/{color-CUYeFbgd.js → color-DweYl7pE.js} +0 -0
  491. /package/dist/{constants-CS75AWHG.js → constants-BPOqYJAm.js} +0 -0
  492. /package/dist/{createContext-BM46COQ-.js → createContext-CpBNTRMI.js} +0 -0
  493. /package/dist/{prng-D27-B3tK.js → prng-Za0Rmgag.js} +0 -0
  494. /package/dist/{resolveCanvasColor-BBiYfp8g.js → resolveCanvasColor-CUyHr5Uu.js} +0 -0
  495. /package/dist/{springPresets--YdWTHtm.js → springPresets-CFQGQfdl.js} +0 -0
  496. /package/dist/{useIntersectionPause-Cc-H9ees.js → useIntersectionPause-Bj4sPkMh.js} +0 -0
  497. /package/dist/{useInterval-iHludrxk.js → useInterval-CvK1mL92.js} +0 -0
  498. /package/dist/{useKeyboardShortcuts-Be3w_Rwk.js → useKeyboardShortcuts-BXWXOZ-9.js} +0 -0
  499. /package/dist/{useLiquidFlex-BL0lLLN2.js → useLiquidFlex-mZPMiNXh.js} +0 -0
  500. /package/dist/{useResizeObserver-BhgdhOIj.js → useResizeObserver-Bpoi7tRE.js} +0 -0
  501. /package/dist/{useResolveTokenColor-Dvn2RZJW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
  502. /package/dist/{useScrollProgress-Dlvx-L3v.js → useScrollProgress-D7bYU2RK.js} +0 -0
  503. /package/dist/{useSortable-muI29agz.js → useSortable-DHjtZSEd.js} +0 -0
  504. /package/dist/{useTextHighlight-DmRYkOBx.js → useTextHighlight-CWEi25hf.js} +0 -0
  505. /package/dist/{useTimer-Dzarvzuk.js → useTimer-BHJOKr35.js} +0 -0
  506. /package/dist/{useUserInvalidAria-B2h6jAM_.js → useUserInvalidAria-y5namzeE.js} +0 -0
  507. /package/dist/{useViewportReady-B40FK4Pa.js → useViewportReady-anbac3m6.js} +0 -0
@@ -51,9 +51,19 @@
51
51
  --type-leading-body: 1.5;
52
52
  --type-leading-prose: 1.618;
53
53
  --type-leading-heading: 1.2;
54
- --type-leading-display: 1.1;
54
+ /* BB.W-DISPLAY-TRACKING — the display leading is tightened to the Apple
55
+ 84/80 ≈ 1.05 signature (was 1.1). The DISPLAY ladder ONLY reads this rung;
56
+ --type-leading-heading (1.2) carries the heading/title register. */
57
+ --type-leading-display: 1.05;
55
58
 
56
59
  --type-tracking-tight: -0.025em;
60
+ /* BB.W-DISPLAY-TRACKING — the DISPLAY-ONLY proportional negative tracking
61
+ rung (the Apple −1.5%-of-size signature: 80px → −1.2px = −0.015em). It is
62
+ em-relative, so the single value is a constant −1.5% across the whole
63
+ clamp() ladder (φ² → φ^(11/2)). MINTED as its OWN rung so the display
64
+ calibration NEVER bleeds into the shared --type-tracking-tight (the
65
+ heading/title/configurator register's tracking, kept at -0.025em). */
66
+ --type-tracking-display: -0.015em;
57
67
  --type-tracking-snug: -0.01em;
58
68
  --type-tracking-normal: 0;
59
69
  --type-tracking-wide: 0.025em;
@@ -72,18 +82,24 @@
72
82
  --duration-xxl: 1.5s;
73
83
  --duration-shimmer-fast: 3s;
74
84
  --duration-shimmer: 5s;
75
- /* Sparkle micro-event — primary-CTA disco-grain sparkle sweep, success
76
- affirmations. R5 vocab.γ gap row 3 (single-site at dock.css:735 today,
77
- reserved for J.W2.7 §17 audacious-CTA buildout). */
78
- --duration-sparkle: 600ms;
85
+ /* BB.W-METAL-SHIMMER — the brand-metal family's OWN slow dignified one-pass
86
+ clock (slower than the 5s generic shimmer). The metal sweep (gold·silver·
87
+ bronze, text-clip + border/mask) reads as a calm slow patina catch, not a
88
+ fast band-pass — the §6 calm register. (`--duration-seal` was never landed;
89
+ this is net-new, NOT a retirement re-point.) */
90
+ --duration-metal: 6s;
91
+ /* BA.W-GLASS-CAL (H2a) — `--duration-sparkle` (600ms) DELETED with the disco
92
+ recipe retirement: the sparkle-sweep keyframe + its sole `btn-audacious`
93
+ consumer are gone. */
79
94
 
80
95
  /* AH.W5-e (FA-8 §4d) — motion-duration + staged-reveal canon.
81
96
 
82
- Six duration tokens + three delay tokens promoted from raw literals
83
- at speedtest's celebratory-reveal SFCs (SpeedtestResults, ThankYou,
84
- ResultStack, CompleteBadge). Unified under the `--motion-*`
85
- namespace (parallel to `--motion-ease-*`) so all motion tokens
86
- cluster at one canon — duration + easing arm together. */
97
+ Duration + delay tokens promoted from raw literals at speedtest's
98
+ celebratory-reveal SFCs (SpeedtestResults, ThankYou, ResultStack).
99
+ Unified under the `--motion-*` namespace (parallel to `--motion-ease-*`)
100
+ so all motion tokens cluster at one canon — duration + easing arm
101
+ together. (BB.W-DEAD-SWEEP retired the never-shipped CompleteBadge
102
+ staged-reveal cluster — no consumer existed.) */
87
103
 
88
104
  /* Staged-entrance pairing — opacity + transform Vue <Transition> arms
89
105
  in the celebratory headline + result-row reveals. Partners with
@@ -100,17 +116,6 @@
100
116
  glyphs cleanly. Load-bearing — zeroing either collapses the shimmer to
101
117
  an imperceptible blow-through. */
102
118
 
103
- /* CompleteBadge staged-reveal cluster — the disc / ring / check curve
104
- fires at three asymmetric durations + delays per the A4-AF staged-
105
- variety design intent. Promoting the magic numbers makes the
106
- staged-variety visible at the canon. */
107
- --motion-duration-badge-disc: 420ms;
108
- --motion-duration-badge-ring: 560ms;
109
- --motion-duration-badge-check: 380ms;
110
- --motion-delay-badge-disc: 80ms;
111
- --motion-delay-badge-ring: 220ms;
112
- --motion-delay-badge-check: 460ms;
113
-
114
119
  /* Staggered-reveal increment canon — three perceptually-distinct tiers for
115
120
  per-row/per-cell/per-bar cascades:
116
121
  • tight (40ms) — dense row cascades, sub-perceptual gap
@@ -154,21 +159,53 @@
154
159
  ── EASING DOCTRINE (AX.W52 §6 — which easing fits which job) ──
155
160
  ONE recorded rule so the animation easing stops forking live. This
156
161
  FORMALIZES the already-correct `transitions.css` idiom (enter=spring,
157
- exit=bezier) as the house rule every recipe reaches for:
158
-
159
- | Transition kind | Easing |
160
- |--------------------------------------------------|-------------------------------------|
161
- | Surface props (bg, border, color, box-shadow, | `--ease-standard` (bezier — a |
162
- | opacity) | colour cross-fade reads as a |
163
- | | wobble on a spring) |
164
- | Transform — hover/press/active (scale, translate,| `--spring-smooth` (the ONE button/ |
165
- | rotate) | interactive scale register) or |
166
- | | `--spring-snappy` (crisp press) |
167
- | Enter (mount, popover open, dialog in) | `--spring-bouncy` / `--spring-snappy`|
168
- | Exit (unmount, close) | `--ease-out` / `--ease-standard` |
169
- | | (bezier, NO overshoot — an exit |
170
- | | must never overshoot past gone) |
171
- | Position-tracked (specular pointer follow) | `--ease-standard` |
162
+ exit=bezier) as the house rule every recipe reaches for.
163
+
164
+ BB.W-MOTION-CANON — the table embodies ONE principle (Material 3's
165
+ spatial-vs-effects split, codified in `docs/precepts/motion-canon.md`
166
+ as P1): a SPATIAL channel (the box MOVES/RESHAPES — position, SIZE,
167
+ rotation, corners) rides a `--spring-<name>` (overshoot = physicality);
168
+ an EFFECTS channel (the surface RE-TINTS — color, opacity, box-shadow)
169
+ rides a bezier `--ease-*` (a colour cross-fade reads as a wobble on a
170
+ spring). Each row below is tagged [SPATIAL] (spring) or [EFFECTS]
171
+ (bezier) so the rule is legible, not implicit. The canon doc is the
172
+ canonical home; this table is the SOURCE it re-states:
173
+
174
+ | Transition kind | Tier | Easing |
175
+ |--------------------------------------------------|-----------|--------------------------|
176
+ | Surface props (bg, border, color, box-shadow, | [EFFECTS] | `--ease-standard` (bezier|
177
+ | opacity) | | — a colour cross-fade |
178
+ | | | reads as a wobble on a |
179
+ | | | spring) |
180
+ | Transform — hover/press/active (scale, translate,| [SPATIAL] | `--spring-smooth` (the |
181
+ | rotate) | | ONE button/interactive |
182
+ | | | scale register) or |
183
+ | | | `--spring-snappy` |
184
+ | Size / morph (dock V↔H, indicator size- | [SPATIAL] | `--spring-dock` / |
185
+ | correction, reveal source-rect bloom) | | `--spring-snappy`, |
186
+ | | | expressed as a |
187
+ | | | COMPOSITOR transform |
188
+ | | | (P5) — NEVER an |
189
+ | | | animated width/height |
190
+ | Enter (mount, popover open, dialog in, reveal) | [SPATIAL] | `--spring-bouncy` / |
191
+ | | | `--spring-snappy` |
192
+ | Bold decelerating arrival (the SOTA arrival — | [SPATIAL] | `--ease-out-expo` |
193
+ | reveal draw-on, big-distance settle) | | (cubic-bezier(.16,1, |
194
+ | | | .3,1); the house expo) |
195
+ | Exit (unmount, close) | [EFFECTS] | `--ease-out` / |
196
+ | | | `--ease-standard` |
197
+ | | | (bezier, NO overshoot —|
198
+ | | | an exit must never |
199
+ | | | overshoot past gone) |
200
+ | Position-tracked (specular pointer follow) | [EFFECTS] | `--ease-standard` |
201
+
202
+ The SOTA arrival ease is the EXISTING `--ease-out-expo` (alias →
203
+ `--motion-ease-out-expo` = `cubic-bezier(0.16, 1, 0.3, 1)`, the house
204
+ expo with the value.js `easeOutExpo` JS twin in the MOTION_CURVES table)
205
+ — NOT a net-new token. The motion canon NAMES it as the arrival register;
206
+ it is not re-minted (a duplicate alias would fail proof:animation-
207
+ coherence's EASING-TABLE-BOUND arm — the curve already has its canonical
208
+ + alias row in `curves.ts`).
172
209
 
173
210
  The BUTTON family (`.btn-pill` / `.tap-squish` / `.glass-btn` /
174
211
  `btn-interactive`) UNIFIES its `scale` transform leg onto ONE register —
@@ -186,6 +223,28 @@
186
223
  --spring-gentle: linear(0, 0.09415 2.041%, 0.27374 4.082%, 0.45506 6.122%, 0.60779 8.163%, 0.72570 10.204%, 0.81213 12.245%, 0.87336 14.286%, 0.91570 16.327%, 0.94445 18.367%, 0.96371 20.408%, 0.97645 22.449%, 0.98481 24.490%, 0.99025 26.531%, 0.99377 28.571%, 0.99604 30.612%, 0.99749 32.653%, 0.99841 34.694%, 0.99900 36.735%, 0.99937 38.776%, 0.99961 40.816%, 0.99975 42.857%, 0.99985 44.898%, 1.00000 46.939%, 1.00000 48.980%, 1.00000 51.020%, 1.00000 53.061%, 1.00000 55.102%, 1.00000 57.143%, 1.00000 59.184%, 1.00000 61.224%, 1.00000 63.265%, 1.00000 65.306%, 1.00000 67.347%, 1.00000 69.388%, 1.00000 71.429%, 1.00000 73.469%, 1.00000 75.510%, 1.00000 77.551%, 1.00000 79.592%, 1.00000 81.633%, 1.00000 83.673%, 1.00000 85.714%, 1.00000 87.755%, 1.00000 89.796%, 1.00000 91.837%, 1.00000 93.878%, 1.00000 95.918%, 1.00000 97.959%, 1);
187
224
  --spring-dock: linear(0, 0.10282 2.041%, 0.31773 4.082%, 0.54783 6.122%, 0.74309 8.163%, 0.88550 10.204%, 0.97598 12.245%, 1.02452 14.286%, 1.04368 16.327%, 1.04501 18.367%, 1.03739 20.408%, 1.02681 22.449%, 1.01672 24.490%, 1.00873 26.531%, 1.00323 28.571%, 0.99996 30.612%, 0.99837 32.653%, 0.99789 34.694%, 0.99805 36.735%, 0.99848 38.776%, 0.99897 40.816%, 0.99940 42.857%, 0.99972 44.898%, 0.99993 46.939%, 1.00004 48.980%, 1.00000 51.020%, 1.00000 53.061%, 1.00000 55.102%, 1.00000 57.143%, 1.00000 59.184%, 1.00000 61.224%, 1.00000 63.265%, 1.00000 65.306%, 1.00000 67.347%, 1.00000 69.388%, 1.00000 71.429%, 1.00000 73.469%, 1.00000 75.510%, 1.00000 77.551%, 1.00000 79.592%, 1.00000 81.633%, 1.00000 83.673%, 1.00000 85.714%, 1.00000 87.755%, 1.00000 89.796%, 1.00000 91.837%, 1.00000 93.878%, 1.00000 95.918%, 1.00000 97.959%, 1);
188
225
 
226
+ /* ── PER-SPRING DURATION CLOCK (BA.W-GLASS-CAL Unit 3) ──
227
+ Generated from `scripts/regen-spring-tokens.mjs` — DO NOT hand-edit.
228
+ Each `--spring-<name>-duration` is the spring's OWN 2%-band envelope-settle
229
+ time `t_s = -ln(0.02) / (ζ·ωₙ)` (ωₙ = 2π/response), derived from the SAME
230
+ (response, ζ) PRESETS table the `--spring-*` `linear()` curves above
231
+ derive from — never a hand value.
232
+
233
+ WHY: the `--spring-<name>` curve is NORMALIZED to 0..1 and discards the
234
+ spring's settle time. Pairing it with a generic `--duration-*` clock
235
+ (0.2/0.3/0.45s) re-timed EVERY spring to the same wall clock — snappy
236
+ (response 0.35s) and smooth (0.5s) both ran 300ms, so the crisp snappy
237
+ register dragged a dead sub-pixel tail (the R10-2 read: within-1px at
238
+ ~109ms but the transition ran 300ms). These clocks re-time UNDER each
239
+ register to its own settle WITHOUT touching the §6 register canon (which
240
+ spring fits which job): a `transition` pairs `--spring-<name>` with the
241
+ matching `--spring-<name>-duration`. */
242
+ --spring-smooth-duration: 0.36s;
243
+ --spring-snappy-duration: 0.34s;
244
+ --spring-bouncy-duration: 0.69s;
245
+ --spring-gentle-duration: 0.44s;
246
+ --spring-dock-duration: 0.28s;
247
+
189
248
  /* Core cubic-bezier (exits, fallbacks, non-spring uses) */
190
249
  --motion-ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
191
250
  --motion-ease-out: cubic-bezier(0, 0, 0.2, 1);
@@ -269,15 +328,13 @@
269
328
  /* ═══════════════════════════════════════════════
270
329
  §2.C ANIMATION EXPRESSIVENESS
271
330
 
272
- Three idiom families:
331
+ Two idiom families (the audacious press-ripple RETIRED at BA.W-GLASS-CAL):
273
332
  • Progress lifecycle — the progress bar rides an intake pulse on
274
333
  rising-edge, a crescendo brightening at ≥85%, and a one-shot discharge
275
334
  flash at 100% (the crescendo is the typed `@property --progress-crescendo`).
276
335
  • Chassis phase-tint companion — `@property --phase-tint-amount` so the
277
336
  chassis backdrop warms toward the active phase, interpolating with
278
337
  `--phase-color` across the consumer's phase-handoff window (600ms default).
279
- • Audacious button press-ripple — `btn-audacious` gains a typed
280
- `@property --ripple-radius` ramping 0 → max over the ripple duration.
281
338
  ═══════════════════════════════════════════════ */
282
339
 
283
340
  /* Progress lifecycle — typed crescendo + segment-local durations */
@@ -291,13 +348,12 @@
291
348
  overwhelming the chassis chrome's resting register. */
292
349
  --phase-tint-peak: 6%;
293
350
 
294
- /* Audacious button press-ripple — geometry + duration. The ripple
295
- radius caps at 12rem so an oversized button doesn't paint a
296
- transparent halo beyond its bounds (the parent's `overflow:
297
- hidden` clips the visible region; the cap keeps the gradient
298
- falloff well-defined). */
299
- --ripple-radius-max: 12rem;
300
- --motion-duration-ripple: 340ms;
351
+ /* BA.W-GLASS-CAL (H2a) — the `btn-audacious` press-ripple knobs
352
+ (`--ripple-radius-max` 12rem, `--motion-duration-ripple` 340ms) DELETED
353
+ with the disco recipe retirement: the ripple was btn-audacious-private and
354
+ has no surviving consumer (the calm CTA register's press is the §6
355
+ `--scale-press-btn` scale beat). The `@property --ripple-radius`
356
+ registration retires with it (property-regs.css). */
301
357
 
302
358
  /* Skeleton breath variant — the M.3 "known-imminent" loading
303
359
  register. 6s cycle (the canon ambient rate) so a known-imminent
@@ -0,0 +1,123 @@
1
+ /* tokens/scroll-tokens.css
2
+ §20 PLATFORM MOTION (AQ.W5) — the native-platform motion substrate knobs.
3
+ Carved WHOLE from tokens/scale-paper.css at BB.W-CARVE4 to hold the no-god-module
4
+ bound (the paper/control/display/metal/timeline/metric/table families §11–§19 stay
5
+ in scale-paper.css; §20 is the file's last section, so this is a contiguous tail
6
+ carve at the §19/§20 seam). @import-ed by tokens.css in cascade order IMMEDIATELY
7
+ AFTER scale-paper.css — an adjacent same-selector :root{} block carrying the SAME
8
+ declarations in the SAME relative order, so the dist is byte-isomorphic.
9
+
10
+ The motion families, each read by a `@supports`-gated CSS recipe:
11
+ scroll-driven.css / scroll-choreography.css, animations.css (§TOP-LAYER),
12
+ view-transition.css — every visual knob a token so a consumer retunes without
13
+ editing library source. */
14
+ :root {
15
+ /* SCROLL-DRIVEN (scroll-driven.css). Values mirror the JS-fallback composable
16
+ defaults (`useScrollProgress` / `useStaggerReveal`) so the native CSS path and
17
+ the fallback path read identically — no visual seam at the `@supports` boundary. */
18
+ --scroll-progress-scroller: root;
19
+ --scroll-reveal-rise: 6px;
20
+ --scroll-reveal-range-end: 60%;
21
+
22
+ /* BB.W-SCROLL-MOTION — the scroll-CHOREOGRAPHY register knobs (the page-build /
23
+ section-cascade / scroll-pinned recipes in scroll-choreography.css). These
24
+ EXTEND the --scroll-reveal-* substrate above; the existing three are READ-ONLY
25
+ (the cascade COMPOSES them, it never re-tunes them). All distances are
26
+ compositor (transform) channels; the clocks are the per-spring settle clocks
27
+ (scheme-motion.css), threaded, never re-tuned. */
28
+ /* .scroll-build — the route-enter page-build (the chrome -> hero -> body
29
+ coordinated entrance). The rise is a touch deeper than the section cascade
30
+ (the page ASSEMBLES — a more pronounced settle), the step is the per-beat
31
+ coordinated stagger between the chrome, hero, and first-section beats. */
32
+ --scroll-build-rise: 1.5rem;
33
+ --scroll-build-step: 90ms;
34
+ /* .scroll-cascade — the orchestrated section cascade (the per-child view()
35
+ timeline, the spring-clocked coupled build). The rise lifts the bare
36
+ --scroll-reveal-rise 6px to a perceptible SOTA build; the range-end is the
37
+ reveal window (a touch tighter than the bare reveal so each section lands
38
+ crisply rather than dragging a long fade tail). The column-stagger delay is
39
+ the opt-in .scroll-cascade--columns grid-variant knob. */
40
+ --scroll-cascade-rise: 1.25rem;
41
+ --scroll-cascade-range-end: 45%;
42
+ --scroll-cascade-column-stagger: 60ms;
43
+ /* .scroll-pin — the fixed-stage-advances-time scroll-pinned register. The stage
44
+ height is the Nvh temporal space the sticky stage advances its phases across;
45
+ the phase windows are the scroll-progress fractions the stage's internal
46
+ phases key off (grid-reveal 0..45%, expand 45..90%, settle 90..100% — the
47
+ Codrops phased-sequence shape). */
48
+ --scroll-pin-stage-height: 320vh;
49
+ --scroll-pin-phase-reveal-end: 45%;
50
+ --scroll-pin-phase-expand-end: 90%;
51
+ --scroll-pin-lift: 2.5rem;
52
+
53
+ /* TOP-LAYER (animations.css §TOP-LAYER). The `@starting-style` entry/exit
54
+ grammar for native `<dialog>` / `[popover]` glass surfaces. The backdrop dim
55
+ uses the house alpha-derivative `color-mix(in srgb, var(--background) Npct,
56
+ transparent)` (AZ.W-ADAPTIVE-AUTO A5-1). It is NOT the `hsl(var(--background)
57
+ / α)` channel form: `--background` is a COMPLETE `hsl()` color
58
+ (`= hsl(48 12% 98%)`), so `hsl(var(--background) / α)` double-wraps to
59
+ `hsl(hsl(…) / α)` — invalid, never paints (the modal dim was silently dead).
60
+ The genuine channel form would require `--background` declared as a bare
61
+ `H S% L%` triple, which it never is — hence the alpha-derivative mix. */
62
+ --top-layer-enter-scale: 0.96;
63
+ --top-layer-backdrop-blur: 8px;
64
+ --top-layer-backdrop-dim: 0.5;
65
+
66
+ /* VIEW-TRANSITION (view-transition.css). The shared `.gl-list-item` group recipe
67
+ + the `--vt-*` axes the `useViewTransition` substrate consumers (dock layer
68
+ swap, muster J's verdict re-rank) tune their swap against. */
69
+ --vt-duration: var(--duration-normal);
70
+ /* AX.W05 — ONE iOS-spring vocabulary: every spring-flavored transition reads
71
+ a governed `--spring-*` register. The legacy apple-spring cubic-bezier
72
+ (+27.5% overshoot) was a SECOND authority beside the regen `--spring-*`
73
+ cohort; it is EXCISED. Its emphatic-overshoot register maps to the playful
74
+ `--spring-bouncy` (the closest `linear()` overshoot stop-set), so the VT
75
+ default + the cards/top-layer transitions share one spring primitive
76
+ (CPU + GPU sample the same curve). No cubic-bezier fallback seed survives —
77
+ the `linear()` spring degrades to `ease` where `linear()` is unsupported. */
78
+ --vt-ease: var(--spring-bouncy);
79
+ --vt-rise: 8px;
80
+
81
+ /* AT.W6-dock-c / AU.W8 — the dock layer-swap morph timing, minted ONCE so
82
+ both engine paths are timing-IDENTICAL: the FLIP fallback (via
83
+ `--dock-motion-resize`), the native View-Transition group (its
84
+ `animation-timing-function`), AND the runtime SpringProgress driver
85
+ (AU.W8.3) consume this same `(0.32, 0.7)` source curve. Retires the AQ.W6
86
+ fork where the VT path ran `--vt-ease` (apple-spring, +27.5% overshoot)
87
+ while the FLIP ran the snappy spring. `--vt-ease` still defaults the
88
+ other VT recipes (`.gl-list-item`).
89
+
90
+ AU.W8 — RETARGET snappy → dock. `--spring-snappy` (ζ=0.65, +6.8%) read as
91
+ mechanical: a stiff plateau at ~48% with too little overshoot to feel
92
+ alive ("not iOS-smooth"). AW.W2 then retuned the dock spring to the
93
+ iOS-control register: `--spring-dock` ((0.32, 0.7), ~+4.6%) settles snappy
94
+ with a restrained overshoot — the felt iOS dock morph, off the prior
95
+ playful +18.5% register. The runtime driver's DOCK_SPRING const MIRRORS the
96
+ (0.32, 0.7) PRESETS row, so the CSS token and the JS-driven morph are
97
+ bit-identical. */
98
+ --dock-resize-spring: var(--spring-dock);
99
+
100
+ /* AT.W7-dock-b — dock-control press micro-feedback spring. A TRANSFORM-ONLY
101
+ spring (`scale`/`rotate`) the dock controls apply to their hover/press
102
+ activation so the squish reads with a touch of spring-back rather than a
103
+ flat ease. STRICTLY transform-scoped: it must never touch the surface-tier
104
+ `[data-held]` fades (background/border/box-shadow), which stay on
105
+ `--duration-fast var(--ease-standard)`. The duration pairs with
106
+ `--duration-fast`; consumers retune the whole feel via this one token.
107
+
108
+ AY.W-DOCK2 (D6) — the register is `--spring-smooth`, the §6 easing-doctrine
109
+ transform-press register (tokens.css §2: transform hover/press/active →
110
+ `--spring-smooth`/`--spring-snappy`, NEVER `--spring-bouncy`; a press must
111
+ settle, never overshoot into a visible bounce). The prior `--spring-bouncy`
112
+ ROOT default was off-doctrine, shadowed for the four named controls by a
113
+ per-surface re-point in dock-controls.css — the exact per-surface fork the
114
+ doctrine kills. The re-point is now a DEAD byte-identical redeclaration and is
115
+ DELETED; the ROOT token IS the doctrine register, so any other consumer of
116
+ `--dock-press-spring` inherits the correct smooth register.
117
+
118
+ BA.W-GLASS-CAL Unit 3 — the duration leg re-times off the generic
119
+ `--duration-fast` (0.2s) onto `--spring-smooth-duration` (0.36s, the
120
+ smooth spring's OWN 2%-band envelope settle), so the press transform plays
121
+ at its physical settle rather than a generic clock. */
122
+ --dock-press-spring: var(--spring-smooth-duration) var(--spring-smooth);
123
+ }
@@ -1,90 +1,16 @@
1
- /* tokens/offsets-sizing.css
2
- §9 animation offsets · §10 sizing (control heights, dropdown, carousel, stack-overlap, touch-target floor).
3
- Carved from the tokens.css cascade root; @import-ed by tokens.css in
4
- cascade order. Same :root cascade context as its siblings. */
1
+ /* tokens/sizing.css
2
+ §10 sizing — the --ui-scale doctrine, control-height/font/glyph cohorts,
3
+ dropdown/carousel/stack-overlap, the dock geometry cascade (--dock-scale +
4
+ collapsed-pill + rail hairline + active-state ladder + iOS register + touch
5
+ floor), MetricBadge stacked geometry, the Configurator density + HIERARCHY
6
+ vocabulary, the single-column stage floor, the section tonal step, the
7
+ component-font override.
8
+ Carved (BB.W-CARVE3) from the former tokens/offsets-sizing.css §9/§10 split;
9
+ @import-ed by tokens.css immediately AFTER offsets.css at offsets-sizing's old
10
+ cascade slot — adjacent same-selector :root blocks resolve identically, so the
11
+ dist is byte-isomorphic. See docs/precepts/design-idioms.md
12
+ §cohesion-aware partials. */
5
13
  :root {
6
- /* ═══════════════════════════════════════════════
7
- §9 ANIMATION OFFSETS
8
- ═══════════════════════════════════════════════ */
9
- /* Hover lift offsets */
10
- --lift-sm: -1px;
11
- --lift-md: -2px;
12
- --lift-lg: -4px;
13
-
14
- /* Layout tokens */
15
- --mask-fade-width: 1rem;
16
- /* J.W3.C — dock content overflow caps. When dock content exceeds
17
- these dimensions, the inner `.dock-layers` (horizontal) /
18
- `.glass-dock.vertical` (rail) container scrolls with a
19
- `.scroll-fade-{x,y}` mask-fade so the boundary feathers rather
20
- than cliffs. Defaults clamp to 80vw / 80vh capped at sensible
21
- desktop widths; consumers override per-dock by setting either
22
- token directly on a `.glass-dock` instance. User findings 1 + 5a. */
23
- /* AX.W04 — `--dock-max-inline-size` is the canonical inline cap EVERY overflow
24
- strategy reads: `overflow="scroll"` scrolls past it, and `overflow="wrap"`
25
- wraps to N rows on the over-cap crossing (the dock shrink-wraps to content,
26
- `max-inline-size` caps that intrinsic width at this token). The prior
27
- `--dock-overflow-bp: 640px` viewport-breakpoint token (the magic-640
28
- snap-back) is DELETED — the wrap is content-driven, not viewport-coupled, so
29
- there is no breakpoint threshold to name. */
30
- --dock-max-inline-size: min(80vw, 64rem);
31
- --dock-max-block-size: min(80vh, 48rem);
32
-
33
- /* AB.W1.T1 — chassis max-block-size guardrail.
34
- Maximum block size a centred consumer-app card may consume while
35
- preserving the inline dock footprint. The recipe subtracts the
36
- consumer-owned `--dock-footer-space` (dock height + dock inset +
37
- card-edge inset) and `--page-padding-top` from the dynamic viewport,
38
- then takes one further rem of breathing room so the card never
39
- butts the dock — the user mandate is `≥ 1rem visible gap above
40
- dock`. Both consumer tokens carry safe fallbacks for callers that
41
- have not declared them.
42
-
43
- Consumers should shrink internal regions (meter, readout, timeline)
44
- before falling back to scroll. This token is a guardrail against
45
- chassis overflow, NOT a license to make the card scroll as the
46
- default solution; clamp-first / no-scroll-first is the canon.
47
- See DESIGN.md `## Chassis sizing — dock-adjusted viewport`. */
48
- --chassis-max-block-size: calc(
49
- 100dvh
50
- - var(--dock-footer-space, 5.75rem)
51
- - var(--page-padding-top, 0rem)
52
- - 1rem
53
- );
54
- /* R0G-2 (AO.W3/W4) — chassis mobile dial-reserve canon. instrument-
55
- chassis.css's mobile breakpoint reserves the dial's final box from
56
- frame 0 via these vars (with the same values as inline fallbacks, the
57
- safety net). Token-first home so the vars resolve canonically. */
58
- --instrument-dial-min-height-mobile: 24rem;
59
- --instrument-dial-meter-reserve-mobile: minmax(0, 1fr);
60
-
61
- --max-width-input: 24rem;
62
- --input-min-width-sm: 5rem;
63
- --min-width-input-sm: var(--input-min-width-sm);
64
- /* AU.W8b.4 — canonical popover width (Combobox list + anchor). Lifts the
65
- `w-[200px]` arbitrary-value wrap to the `w-popover` @theme utility. */
66
- --popover-width: 200px;
67
- /* AZ.R5-4 — the ONE panel inner-padding rung (the consumer-verified "the
68
- popover/dropdown content reads TIGHT" finding). The floating-panel +
69
- DropdownMenuContent recipes read THIS token for their inner pad instead of
70
- the prior hand-set `p-1`/literal, so a consumer retunes every teleported
71
- menu/panel surface from one override. The comfortable default is `0.375rem`
72
- (a half-rung over the prior 0.25rem tight floor — comfortable both modes
73
- without over-padding a dense menu list). PopoverContent keeps its own
74
- `--panel-padding-roomy` (1rem) for the prose-popover register. */
75
- --panel-padding: 0.375rem;
76
- --panel-padding-roomy: 1rem;
77
- --chart-height-compact: 15rem;
78
- --chart-height-default: 22.5rem;
79
- --chart-height-large: 25rem;
80
- --chart-margin: 1.25rem;
81
- --paper-texture-size: 200px 200px;
82
-
83
- /* Border opacity scale */
84
- --border-opacity-light: 0.15;
85
- --border-opacity-medium: 0.25;
86
- --border-opacity-strong: 0.6;
87
-
88
14
  /* ═══════════════════════════════════════════════
89
15
  §10 SIZING
90
16
  ═══════════════════════════════════════════════ */
@@ -272,8 +198,31 @@
272
198
  /* Library glyph ownership — `.dock-icon-button > svg` reads this so the dock
273
199
  icon glyph scales WITH the box (mirroring `.dark-mode-toggle-button > svg`).
274
200
  A consumer-passed explicit lucide size class still WINS (utility layer >
275
- component layer); this is a DEFAULT, not a ceiling. */
276
- --dock-icon-glyph: calc(1.25rem * var(--dock-scale));
201
+ component layer); this is a DEFAULT, not a ceiling.
202
+
203
+ BB.W-PERF-PRODUCER A′-6 — the glyph rides the per-DENSITY box, not a flat rem.
204
+ The value.js D5-1 companion trace: `density="spacious"` grew the shelf + pad +
205
+ gap but the glyph stayed 1.25rem (it rode `--dock-scale` only, NOT the
206
+ per-density `--dock-layer-height` axis density.css scales). Now the glyph is a
207
+ RATIO of `--dock-layer-height` (`--dock-icon-glyph-ratio`, default 0.5 → a
208
+ 2rem control → a 1rem glyph at compact, a 2.5rem control → 1.25rem at
209
+ comfortable, lockstep up the rungs). The `--dock-scale` coarse thread is
210
+ PRESERVED transitively — `--dock-layer-height` already rides it (density.css).
211
+ The WCAG glyph-floor holds via `max(…, --dock-icon-glyph-floor)` (a 16px floor
212
+ so a sub-1 density/coarse register can never drop the glyph below the legible
213
+ minimum). NOTE: `--dock-layer-height` is painted ONLY on `.glass-dock[data-density]`
214
+ (density.css) — at `:root` it is the inline fallback below, so this `:root`
215
+ declaration resolves the fallback ladder; density.css RE-RESOLVES `--dock-icon-glyph`
216
+ inside each `[data-density]` scope so the density-painted height flows in (the
217
+ substitution-vs-inheritance trap the overflow.css R5-1 sweep documents). The
218
+ toggle mirror `.dark-mode-toggle-button > svg` reads the SAME `--dock-icon-glyph`
219
+ so both glyphs move onto the density axis together. */
220
+ --dock-icon-glyph-ratio: 0.5;
221
+ --dock-icon-glyph-floor: 1rem;
222
+ --dock-icon-glyph: max(
223
+ calc(var(--dock-layer-height, calc(2.5rem * var(--dock-scale))) * var(--dock-icon-glyph-ratio)),
224
+ var(--dock-icon-glyph-floor)
225
+ );
277
226
 
278
227
  /* AX.W45-TUNE Q1 — the COLLAPSED-pill floor tokens. The collapsed summary
279
228
  used to fall to `--dock-layer-height` (the FULL control height, ~2.5rem) for
@@ -362,6 +311,18 @@
362
311
  Consumers retune the rail-tab size via this one handle. */
363
312
  --dock-layer-tab-size: calc(1.75rem * var(--dock-scale));
364
313
 
314
+ /* BA.W-DOCK-SECTIONS — the divider-seam rail knobs.
315
+ `--dock-rail-extend-length` (declared in rail-extend.css) was RE-SEMANTICIZED:
316
+ it is no longer a one-way connector length but the SYMMETRIC per-side overrun of
317
+ the seam line (the line's cross-extent = dock extent + 2× the knob, centered on
318
+ the seam). `--dock-rail-retract-stub` is the residual protrusion FRACTION the
319
+ chips leave past the dock edge on collapse (the macOS fan-out "retract INTO the
320
+ rail leaving a slight protrusion"; 0 = fully retracted, 1 = no retract). The
321
+ `--dock-section-zone-gap` is the inter-control rhythm inside a <DockSection> zone
322
+ (defaults to the dock's own `--dock-gap`, so the section grouping adds no box). */
323
+ --dock-rail-retract-stub: 0.35;
324
+ --dock-section-zone-gap: var(--dock-gap, 0.25rem);
325
+
365
326
  /* Dock active-state ladder (O.W6 Lane B)
366
327
  Token-overridable active paint for `.dock-icon-button`. Promoted
367
328
  from hardcoded `background: var(--muted); color: var(--foreground)`
@@ -494,7 +455,45 @@
494
455
  --configurator-preset-row-weight: 0.625rem; /* 10px — > a body row's 8px py-comfortable */
495
456
  --configurator-preset-row-gap: 0.5rem; /* 8px — generous chip gap */
496
457
 
458
+ /* 3. The DIVIDER register — dark-adaptive (BA.W-CONFIG-CHASSIS.1 / CFG-4).
459
+ The section + inter-row dividers used to be inline `border-border/40` and
460
+ `border-border/30` Tailwind alphas; over the W-DARK-MATERIAL dark
461
+ `glass-floating` plate (a luminous transmissive material, --card L16) those
462
+ near-equal-luminance hairlines effectively VANISHED — "the sections run
463
+ together". This ONE token is consumed by every divider rule (the
464
+ <ConfiguratorLayer> section border, the dividers-prop inter-row border,
465
+ Configurator.vue's aside/preset/footer borders, configurator.css) so the
466
+ divider weight is retuned from a single override.
467
+
468
+ The dark-LIFTING arm is the load-bearing half: the divider must read on
469
+ BOTH plates. On LIGHT it is the resting `--border` warm-neutral at the
470
+ prior ~40% weight; on DARK it LIFTS off `--border` (L34 over the L16 plate
471
+ — too close) toward the `--foreground` warm-ink (L90) at a higher α, so a
472
+ visible luminance step survives the dark glass. `light-dark()` carries the
473
+ arm in ONE declaration (the same :root cascade context as the surface-tint
474
+ family; an engine without `light-dark()` falls back to the dark-arm.css
475
+ `.dark` floor minted in lockstep). The SECTION divider runs a touch
476
+ heavier than the inter-row hairline (a section reads as a section without
477
+ a second heading rung). */
478
+ --configurator-divider: light-dark(
479
+ color-mix(in srgb, var(--border) 55%, transparent),
480
+ color-mix(in srgb, var(--foreground) 22%, transparent)
481
+ );
482
+ --configurator-divider-section: light-dark(
483
+ color-mix(in srgb, var(--border) 70%, transparent),
484
+ color-mix(in srgb, var(--foreground) 30%, transparent)
485
+ );
486
+ /* The optional faint section-header tonal step — a whisper-light warm wash
487
+ behind a <ConfiguratorLayer> section so it reads as a grouped section
488
+ WITHOUT a new heading rung (within the W-HIERARCHY register). Default off
489
+ (transparent) on light where the hairline carries it; a faint
490
+ foreground-over-transparent lift on dark where the divider alone is
491
+ subtle. */
492
+ --configurator-section-tint: light-dark(
493
+ transparent,
494
+ color-mix(in srgb, var(--foreground) 3%, transparent)
495
+ );
496
+
497
497
  /* Component font override (consumers override locally) */
498
498
  --select-font: inherit;
499
-
500
499
  }
@@ -21,14 +21,20 @@
21
21
  * (registrations + the specular magnitude cohort that reads them).
22
22
  */
23
23
 
24
- /* CSS @import rules must precede every other rule. The nine partials @import in
25
- cascade order: */
24
+ /* CSS @import rules must precede every other rule. The ten partials @import in
25
+ cascade order (offsets-sizing.css was carved into offsets.css + sizing.css at
26
+ BB.W-CARVE3 — adjacent same-selector :root blocks at the same cascade slot): */
26
27
  @import "./tokens/scheme-motion.css";
27
28
  @import "./tokens/color-radius.css";
28
29
  @import "./tokens/shadow.css";
29
30
  @import "./tokens/glass.css";
30
- @import "./tokens/offsets-sizing.css";
31
+ @import "./tokens/glass-fx.css";
32
+ @import "./tokens/glass-deep.css";
33
+ @import "./tokens/on-glass-fg.css";
34
+ @import "./tokens/offsets.css";
35
+ @import "./tokens/sizing.css";
31
36
  @import "./tokens/scale-paper.css";
37
+ @import "./tokens/scroll-tokens.css";
32
38
  @import "./tokens/light-dark.css";
33
39
  @import "./tokens/dark-arm.css";
34
40
  @import "./tokens/property-regs.css";
@@ -23,7 +23,7 @@
23
23
  .fade-slide-enter-active {
24
24
  transition:
25
25
  opacity var(--duration-normal) var(--ease-out),
26
- transform var(--duration-normal) var(--spring-smooth);
26
+ transform var(--spring-smooth-duration) var(--spring-smooth);
27
27
  }
28
28
  .fade-slide-leave-active {
29
29
  transition:
@@ -43,7 +43,7 @@
43
43
  .dialog-scale-enter-active {
44
44
  transition:
45
45
  opacity var(--duration-slow) var(--ease-out),
46
- transform var(--duration-slow) var(--spring-bouncy);
46
+ transform var(--spring-bouncy-duration) var(--spring-bouncy);
47
47
  }
48
48
  .dialog-scale-leave-active {
49
49
  transition:
@@ -63,7 +63,7 @@
63
63
  .pop-enter-active {
64
64
  transition:
65
65
  opacity var(--duration-fast) var(--ease-out),
66
- transform var(--duration-slow) var(--spring-bouncy);
66
+ transform var(--spring-bouncy-duration) var(--spring-bouncy);
67
67
  }
68
68
  .pop-leave-active {
69
69
  transition:
@@ -83,7 +83,7 @@
83
83
  .dropdown-enter-active {
84
84
  transition:
85
85
  opacity var(--duration-instant) var(--ease-out),
86
- transform var(--duration-normal) var(--spring-snappy);
86
+ transform var(--spring-snappy-duration) var(--spring-snappy);
87
87
  }
88
88
  .dropdown-leave-active {
89
89
  transition:
@@ -110,7 +110,7 @@
110
110
  .pane-swap-enter-active {
111
111
  transition:
112
112
  opacity var(--duration-normal) var(--ease-out),
113
- transform var(--duration-normal) var(--spring-smooth);
113
+ transform var(--spring-smooth-duration) var(--spring-smooth);
114
114
  }
115
115
  .pane-swap-leave-active {
116
116
  transition:
@@ -130,7 +130,7 @@
130
130
  .metric-swap-enter-active {
131
131
  transition:
132
132
  opacity var(--duration-normal) var(--ease-out),
133
- transform var(--duration-normal) var(--spring-smooth);
133
+ transform var(--spring-smooth-duration) var(--spring-smooth);
134
134
  }
135
135
  .metric-swap-leave-active {
136
136
  transition:
@@ -145,7 +145,7 @@
145
145
 
146
146
  /* ── Dock entrance utility ── */
147
147
  .dock-in {
148
- animation: dock-in var(--duration-panel) var(--spring-snappy) both;
148
+ animation: dock-in var(--spring-snappy-duration) var(--spring-snappy) both;
149
149
  transform-origin: center bottom;
150
150
  }
151
151