@mkbabb/glass-ui 4.0.1 → 4.2.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 (606) hide show
  1. package/dist/{CardAction-CW7a0m8M.js → CardAction-DlVP2evz.js} +72 -53
  2. package/dist/{CommandShortcut-DvZNQ_HF.js → CommandShortcut-By-VQcLO.js} +25 -14
  3. package/dist/{ConfiguratorRow-BR4l-ixA.js → ConfiguratorRow-YMXdINHx.js} +14 -14
  4. package/dist/ContextMenuContent-CMWn6huB.js +90 -0
  5. package/dist/{ContextMenuSubContent-xol4sD2q.js → ContextMenuSubContent-DvwWCUc0.js} +16 -16
  6. package/dist/{DataTable-CuKwF7wr.js → DataTable-C4tG3eIJ.js} +4 -4
  7. package/dist/DialogContent-D8U9ZfWS.js +121 -0
  8. package/dist/DialogFooter-DoLy0ewI.js +80 -0
  9. package/dist/DialogScrollContent-BMekN7gq.js +93 -0
  10. package/dist/{FadingScroll-DI6hQhT9.js → FadingScroll-P8B30rAD.js} +1 -1
  11. package/dist/HoverCardContent-DAmGYglo.js +88 -0
  12. package/dist/{HoverPopover-CbqbNwgU.js → HoverPopover-DYpBOzzF.js} +1 -1
  13. package/dist/{IconChip-BTD-nay5.js → IconChip-CQa7XZYc.js} +7 -5
  14. package/dist/{IconTooltip-Bl8gFZ8d.js → IconTooltip-_df8M3xm.js} +1 -1
  15. package/dist/Input-CyU4_hIC.js +57 -0
  16. package/dist/{MetricBadge-RHdBP72w.js → MetricBadge-DQt_dGah.js} +1 -1
  17. package/dist/{Notification-VUwexFUf.js → Notification-BlSPJhtZ.js} +4 -4
  18. package/dist/NumberFieldContent-Z3VxGu_6.js +140 -0
  19. package/dist/PagerDots-CYlqVFd4.js +196 -0
  20. package/dist/PaperBackdrop-DYWgrnh8.js +42 -0
  21. package/dist/{PopoverContent-DL7E6vJP.js → PopoverContent-BuKyHZSz.js} +2 -2
  22. package/dist/{Progress-DctG61iZ.js → Progress-C9SsdwIZ.js} +1 -1
  23. package/dist/{ScrollingText-yOpBzFYq.js → ScrollingText-DY3W1Jfh.js} +2 -2
  24. package/dist/SelectScrollDownButton-3mFHX_R-.js +260 -0
  25. package/dist/{SelectSeparator-DXswVdRz.js → SelectSeparator-CNRGG7Ew.js} +1 -1
  26. package/dist/Separator-Cf9-JFgi.js +44 -0
  27. package/dist/Switch-uf-UKPA2.js +49 -0
  28. package/dist/{Toaster-Bw4xR8xV.js → Toaster-ozrsR4mP.js} +2 -2
  29. package/dist/{ToggleGroupItem-pEM9vIhs.js → ToggleGroupItem-BpzaVzNm.js} +6 -6
  30. package/dist/TooltipProvider-QQVM_80r.js +109 -0
  31. package/dist/animated-digit.js +2 -2
  32. package/dist/api/index.d.ts +16 -32
  33. package/dist/api/types-extra.d.ts +33 -0
  34. package/dist/api.js +2 -2
  35. package/dist/aurora.js +629 -269
  36. package/dist/badge-Bt14yURi.js +72 -0
  37. package/dist/badge.js +1 -1
  38. package/dist/border-progress.js +49 -57
  39. package/dist/button-D1W9PrzI.js +130 -0
  40. package/dist/button.js +1 -1
  41. package/dist/canvas.js +2 -3
  42. package/dist/card.js +1 -1
  43. package/dist/carousel.js +235 -106
  44. package/dist/chipVariants-BJQ0I2kB.js +18 -0
  45. package/dist/collapsible.js +1 -1
  46. package/dist/color-B9jZdhJX.js +116 -0
  47. package/dist/color.js +2 -2
  48. package/dist/command.js +1 -1
  49. package/dist/completion-seal.d.ts +1 -0
  50. package/dist/completion-seal.js +89 -0
  51. package/dist/components/custom/aurora/Aurora.vue.d.ts +10 -5
  52. package/dist/components/custom/aurora/composables/color.d.ts +13 -0
  53. package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
  54. package/dist/components/custom/aurora/composables/glSetup.d.ts +1 -1
  55. package/dist/components/custom/aurora/composables/runtime.d.ts +12 -0
  56. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +12 -3
  57. package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +8 -0
  58. package/dist/components/custom/aurora/constants/presets.d.ts +47 -0
  59. package/dist/components/custom/aurora/constants/renderMode.d.ts +16 -8
  60. package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
  61. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -1
  62. package/dist/components/custom/aurora/index.d.ts +1 -1
  63. package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
  64. package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +14 -18
  65. package/dist/components/custom/border-progress/index.d.ts +1 -1
  66. package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +21 -0
  67. package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
  68. package/dist/components/custom/completion-seal/constants.d.ts +46 -0
  69. package/dist/components/custom/completion-seal/index.d.ts +4 -0
  70. package/dist/components/custom/concentric/Concentric.vue.d.ts +15 -12
  71. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +12 -0
  72. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +13 -0
  73. package/dist/components/custom/concentric/composables/levelField.d.ts +50 -0
  74. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +7 -3
  75. package/dist/components/custom/concentric/composables/useConcentric.d.ts +3 -3
  76. package/dist/components/custom/concentric/constants.d.ts +69 -24
  77. package/dist/components/custom/concentric/index.d.ts +2 -2
  78. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +2 -2
  79. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -1
  80. package/dist/components/custom/configurator/Configurator.vue.d.ts +23 -2
  81. package/dist/components/custom/configurator/index.d.ts +1 -1
  82. package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
  83. package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
  84. package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
  85. package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
  86. package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
  87. package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
  88. package/dist/components/custom/constellation/constants.d.ts +33 -0
  89. package/dist/components/custom/constellation/constellationField.d.ts +31 -1
  90. package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
  91. package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
  92. package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
  93. package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
  94. package/dist/components/custom/constellation/index.d.ts +5 -5
  95. package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
  96. package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
  97. package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
  98. package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
  99. package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
  100. package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
  101. package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
  102. package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
  103. package/dist/components/custom/deck/constants.d.ts +14 -0
  104. package/dist/components/custom/deck/index.d.ts +8 -0
  105. package/dist/components/custom/dock/DockDropdownTrigger.vue.d.ts +4 -3
  106. package/dist/components/custom/dock/DockIconButton.vue.d.ts +22 -0
  107. package/dist/components/custom/dock/DockPopoverTrigger.vue.d.ts +19 -0
  108. package/dist/components/custom/dock/DockStack.vue.d.ts +78 -0
  109. package/dist/components/custom/dock/GlassDock.vue.d.ts +21 -3
  110. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +18 -32
  111. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +78 -67
  112. package/dist/components/custom/dock/composables/index.d.ts +3 -0
  113. package/dist/components/custom/dock/composables/railProjection.d.ts +45 -0
  114. package/dist/components/custom/dock/composables/useDockContextSilhouette.d.ts +192 -0
  115. package/dist/components/custom/dock/composables/useDockFission.d.ts +158 -0
  116. package/dist/components/custom/dock/composables/useDockItemDrag.d.ts +18 -0
  117. package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
  118. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +49 -0
  119. package/dist/components/custom/dock/constants.d.ts +32 -17
  120. package/dist/components/custom/dock/index.d.ts +8 -2
  121. package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +15 -11
  122. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +69 -6
  123. package/dist/components/custom/dot-flow-field/composables/flowGLProgram.d.ts +8 -0
  124. package/dist/components/custom/dot-flow-field/composables/flowSetupGL.d.ts +9 -0
  125. package/dist/components/custom/dot-flow-field/composables/flowSetupGLFlow.d.ts +12 -0
  126. package/dist/components/custom/dot-flow-field/composables/flowSetupWGPU.d.ts +7 -0
  127. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +50 -9
  128. package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +6 -5
  129. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +23 -9
  130. package/dist/components/custom/dot-flow-field/constants.d.ts +92 -20
  131. package/dist/components/custom/dot-flow-field/index.d.ts +2 -2
  132. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -1
  133. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +31 -18
  134. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +2 -1
  135. package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
  136. package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
  137. package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +61 -0
  138. package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
  139. package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +34 -0
  140. package/dist/components/custom/dot-matrix/constants.d.ts +72 -0
  141. package/dist/components/custom/dot-matrix/index.d.ts +5 -0
  142. package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
  143. package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -0
  144. package/dist/components/custom/easing/EasingPicker.vue.d.ts +2 -2
  145. package/dist/components/custom/easing/composables/useEasingPicker.d.ts +5 -0
  146. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
  147. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +44 -47
  148. package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +24 -0
  149. package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +31 -0
  150. package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +56 -0
  151. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +61 -37
  152. package/dist/components/custom/fourier-field/constants.d.ts +114 -4
  153. package/dist/components/custom/fourier-field/index.d.ts +23 -18
  154. package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
  155. package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
  156. package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
  157. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +9 -1
  158. package/dist/components/custom/goo-blob/composables/easing.d.ts +1 -0
  159. package/dist/components/custom/goo-blob/composables/useBlobSatellites.d.ts +1 -0
  160. package/dist/components/custom/goo-blob/constants.d.ts +26 -1
  161. package/dist/components/custom/goo-blob/index.d.ts +1 -1
  162. package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
  163. package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
  164. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
  165. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -1
  166. package/dist/components/custom/goo-blob/types.d.ts +86 -1
  167. package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
  168. package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
  169. package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +79 -0
  170. package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +45 -0
  171. package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
  172. package/dist/components/custom/goo-dot-matrix/constants.d.ts +115 -0
  173. package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
  174. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +13 -0
  175. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +4 -0
  176. package/dist/components/custom/goo-filter/GooFilter.vue.d.ts +22 -0
  177. package/dist/components/custom/goo-filter/index.d.ts +1 -0
  178. package/dist/components/custom/handmark/brush.d.ts +17 -17
  179. package/dist/components/custom/handmark/constants.d.ts +28 -8
  180. package/dist/components/custom/handmark/geometry.d.ts +34 -1
  181. package/dist/components/custom/handmark/index.d.ts +1 -1
  182. package/dist/components/custom/icon-chip/types.d.ts +10 -0
  183. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +21 -2
  184. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
  185. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
  186. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  187. package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
  188. package/dist/components/custom/paper-backdrop/PaperBackdrop.vue.d.ts +18 -0
  189. package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
  190. package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +105 -0
  191. package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +18 -0
  192. package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +21 -0
  193. package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
  194. package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
  195. package/dist/components/custom/paper-grid/constants.d.ts +95 -0
  196. package/dist/components/custom/paper-grid/index.d.ts +5 -0
  197. package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
  198. package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
  199. package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
  200. package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
  201. package/dist/components/custom/search/index.d.ts +2 -0
  202. package/dist/components/custom/search/searchVariants.d.ts +19 -0
  203. package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
  204. package/dist/components/custom/selectable-chip/chipVariants.d.ts +39 -0
  205. package/dist/components/custom/selectable-chip/index.d.ts +2 -0
  206. package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +15 -0
  207. package/dist/components/custom/split-chars/SplitChars.vue.d.ts +39 -0
  208. package/dist/components/custom/split-chars/index.d.ts +1 -0
  209. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +8 -6
  210. package/dist/components/custom/tabs/constants.d.ts +28 -2
  211. package/dist/components/custom/timeline/ScrubberTimeline.vue.d.ts +16 -0
  212. package/dist/components/custom/timeline/geometry.d.ts +0 -8
  213. package/dist/components/custom/toggle-chip/index.d.ts +15 -4
  214. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +32 -17
  215. package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
  216. package/dist/components/ui/_shared/index.d.ts +2 -0
  217. package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
  218. package/dist/components/ui/_shared/useSurfaceAxis.d.ts +17 -3
  219. package/dist/components/ui/badge/Badge.vue.d.ts +14 -0
  220. package/dist/components/ui/badge/index.d.ts +1 -0
  221. package/dist/components/ui/button/Button.vue.d.ts +1 -0
  222. package/dist/components/ui/button/index.d.ts +1 -1
  223. package/dist/components/ui/card/Card.vue.d.ts +46 -1
  224. package/dist/components/ui/card/ScrollCard.vue.d.ts +1 -1
  225. package/dist/components/ui/card/index.d.ts +1 -1
  226. package/dist/components/ui/carousel/CarouselContent.vue.d.ts +2 -4
  227. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +1 -1
  228. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +1 -1
  229. package/dist/components/ui/command/CommandDialog.vue.d.ts +9 -3
  230. package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
  231. package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -1
  232. package/dist/components/ui/dialog/DialogContent.vue.d.ts +9 -0
  233. package/dist/components/ui/drawer/Drawer.vue.d.ts +33 -14
  234. package/dist/components/ui/drawer/constants.d.ts +8 -6
  235. package/dist/components/ui/drawer/index.d.ts +12 -2
  236. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
  237. package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
  238. package/dist/components/ui/input/Input.vue.d.ts +3 -0
  239. package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
  240. package/dist/components/ui/select/SelectContent.vue.d.ts +12 -0
  241. package/dist/components/ui/slider/Slider.vue.d.ts +9 -0
  242. package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
  243. package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
  244. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
  245. package/dist/composables/color/index.d.ts +2 -0
  246. package/dist/composables/color/useAccentTone.d.ts +34 -0
  247. package/dist/composables/dom/index.d.ts +1 -0
  248. package/dist/composables/dom/useDragVelocity.d.ts +46 -0
  249. package/dist/composables/glass/useVizChoreography.d.ts +123 -0
  250. package/dist/composables/glass/wave/index.d.ts +4 -0
  251. package/dist/composables/glass/wave/waveField.d.ts +115 -0
  252. package/dist/composables/glass/wave/waveField.glsl.d.ts +1 -0
  253. package/dist/composables/glass/wave/waveField.wgsl.d.ts +1 -0
  254. package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +105 -2
  255. package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
  256. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +40 -2
  257. package/dist/composables/glass/webgpu/index.d.ts +2 -1
  258. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +65 -7
  259. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +50 -2
  260. package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
  261. package/dist/composables/motion/core/index.d.ts +7 -0
  262. package/dist/composables/motion/core/useHaptic.d.ts +48 -0
  263. package/dist/composables/motion/core/writeVelocityWeight.d.ts +31 -0
  264. package/dist/composables/motion/index.d.ts +2 -0
  265. package/dist/composables/motion/scrollReader.d.ts +25 -0
  266. package/dist/composables/motion/springPresets.d.ts +19 -1
  267. package/dist/composables/motion/suite.d.ts +2 -2
  268. package/dist/composables/motion/useBloomUp.d.ts +97 -0
  269. package/dist/composables/motion/useCelebrationBurst.d.ts +50 -0
  270. package/dist/composables/motion/useCharStagger.d.ts +44 -0
  271. package/dist/composables/motion/useDockCtaReceive.d.ts +29 -22
  272. package/dist/composables/motion/useGooMorph.d.ts +72 -0
  273. package/dist/composables/motion/useLiquidFlex.d.ts +18 -0
  274. package/dist/composables/motion/useLiquidMorph.d.ts +108 -0
  275. package/dist/composables/motion/useLiquidPress.d.ts +12 -0
  276. package/dist/composables/motion/useLiquidReveal.d.ts +7 -4
  277. package/dist/composables/motion/useMorphField.d.ts +157 -0
  278. package/dist/composables/motion/useScrollChrome.d.ts +58 -0
  279. package/dist/composables/motion/useScrollPin.d.ts +49 -0
  280. package/dist/composables/motion/useScrollScene.d.ts +67 -0
  281. package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
  282. package/dist/composables/motion/useSpringPress.d.ts +5 -5
  283. package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
  284. package/dist/composables/sidebar/index.d.ts +4 -1
  285. package/dist/composables/sidebar/types.d.ts +68 -3
  286. package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
  287. package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
  288. package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
  289. package/dist/composables/virtual/index.d.ts +4 -0
  290. package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
  291. package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
  292. package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
  293. package/dist/concentric.js +552 -309
  294. package/dist/configurator.js +2 -2
  295. package/dist/confirm-dialog.js +62 -47
  296. package/dist/constellation.js +635 -235
  297. package/dist/context-menu.js +2 -2
  298. package/dist/controls.js +2 -2
  299. package/dist/createCanvasLifecycle-CuCrGRfq.js +173 -0
  300. package/dist/dark.js +1 -1
  301. package/dist/data-table.js +1 -1
  302. package/dist/deck.d.ts +1 -0
  303. package/dist/deck.js +105 -0
  304. package/dist/dialog.js +4 -3
  305. package/dist/dock.js +1320 -631
  306. package/dist/dockContext-gFVS2gMg.js +18 -0
  307. package/dist/dom.js +7 -6
  308. package/dist/dot-flow-field.js +1268 -387
  309. package/dist/dot-matrix.d.ts +1 -0
  310. package/dist/dot-matrix.js +774 -0
  311. package/dist/dotMatrixField-CRO0ZFk4.js +48 -0
  312. package/dist/drawer.js +106 -96
  313. package/dist/{dropdown-menu-CofSZuk8.js → dropdown-menu-CCfcCQ68.js} +83 -79
  314. package/dist/dropdown-menu.js +1 -1
  315. package/dist/easing.js +188 -176
  316. package/dist/expandable-container.js +43 -21
  317. package/dist/fading-scroll.js +1 -1
  318. package/dist/flow.glsl-DqEGRpl4.js +4 -0
  319. package/dist/forms.js +64 -62
  320. package/dist/fourier-field.js +1069 -178
  321. package/dist/fourier-math.js +1 -1
  322. package/dist/glass-panel.js +2 -2
  323. package/dist/glass-ui.css +1 -1
  324. package/dist/glass-ui.js +164 -119
  325. package/dist/goo-blob.js +175 -1230
  326. package/dist/goo-dot-matrix.d.ts +1 -0
  327. package/dist/goo-dot-matrix.js +811 -0
  328. package/dist/handmark.js +137 -94
  329. package/dist/header-ribbon.js +1 -1
  330. package/dist/hover-card.js +1 -1
  331. package/dist/hover-popover.js +1 -1
  332. package/dist/icon-chip.js +1 -1
  333. package/dist/icon-tooltip.js +1 -1
  334. package/dist/index.d.ts +5 -0
  335. package/dist/instrument-chassis.js +1 -1
  336. package/dist/keyboard.js +1 -1
  337. package/dist/label.js +1 -1
  338. package/dist/labeled-field.js +70 -60
  339. package/dist/metric-badge.js +1 -1
  340. package/dist/metric-cell.js +1 -1
  341. package/dist/metric-stack.js +12 -3
  342. package/dist/motion-core.js +59 -34
  343. package/dist/motion-curves.js +30 -14
  344. package/dist/motion.js +231 -96
  345. package/dist/notification.js +1 -1
  346. package/dist/number-field.js +1 -1
  347. package/dist/pager-dots.js +2 -91
  348. package/dist/paper-backdrop.js +1 -1
  349. package/dist/paper-grid.d.ts +1 -0
  350. package/dist/paper-grid.js +761 -0
  351. package/dist/paperGrid-CXCSMbZ1.js +191 -0
  352. package/dist/popover.js +1 -1
  353. package/dist/{presets-BW2b-fr1.js → presets-QvYgnFIZ.js} +14 -13
  354. package/dist/{procedural-color.glsl-CIFsJhwI.js → procedural-color.wgsl-C1Y5PkM6.js} +2 -2
  355. package/dist/progress.js +1 -1
  356. package/dist/pulse.js +2 -2
  357. package/dist/reactive.js +2 -2
  358. package/dist/{useCanvas2D-B8w_E3Rr.js → resolveCanvasColor-DsSJk06I.js} +16 -6
  359. package/dist/scrollReader-rc3Ns_NM.js +42 -0
  360. package/dist/scrolling-text.js +1 -1
  361. package/dist/search.js +162 -306
  362. package/dist/select.js +3 -3
  363. package/dist/selectable-chip.d.ts +1 -0
  364. package/dist/selectable-chip.js +48 -0
  365. package/dist/separator.js +1 -1
  366. package/dist/{sheet-tZMg0E0w.js → sheet-DUCIoOe0.js} +4 -4
  367. package/dist/sheet.js +1 -1
  368. package/dist/sidebar.js +216 -114
  369. package/dist/slider-CcICPe3u.js +149 -0
  370. package/dist/slider.js +1 -1
  371. package/dist/sortable-list.js +3 -3
  372. package/dist/spectrum-walk-cBNSx_zm.js +33 -0
  373. package/dist/springPresets-DfoQ6XRY.js +64 -0
  374. package/dist/stacked-icons.js +54 -39
  375. package/dist/styles/animations.css +13 -3
  376. package/dist/styles/cards.css +271 -2
  377. package/dist/styles/completion-seal.css +131 -0
  378. package/dist/styles/components.css +1 -4
  379. package/dist/styles/configurator.css +221 -1
  380. package/dist/styles/critical-partition.mjs +66 -11
  381. package/dist/styles/deferred.css +4 -0
  382. package/dist/styles/dock/adaptive-legibility.css +119 -0
  383. package/dist/styles/dock/cta-seat.css +87 -0
  384. package/dist/styles/dock/density.css +167 -6
  385. package/dist/styles/dock/fission-bridge.css +552 -0
  386. package/dist/styles/dock/layers.css +90 -78
  387. package/dist/styles/dock/morph-bridge.css +67 -18
  388. package/dist/styles/dock/morph.css +57 -118
  389. package/dist/styles/dock/overflow.css +12 -0
  390. package/dist/styles/dock/search.css +68 -0
  391. package/dist/styles/dock/shape.css +250 -0
  392. package/dist/styles/dock/shell.css +24 -8
  393. package/dist/styles/dock/stack-rail.css +352 -0
  394. package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
  395. package/dist/styles/dock-controls/icon-button.css +46 -0
  396. package/dist/styles/dock-controls/triggers.css +23 -1
  397. package/dist/styles/dock-controls.css +18 -0
  398. package/dist/styles/dock.css +27 -2
  399. package/dist/styles/drawer.css +166 -0
  400. package/dist/styles/glass/accent-tone.css +66 -0
  401. package/dist/styles/glass/control-surfaces.css +167 -0
  402. package/dist/styles/glass/glass-atom.css +244 -0
  403. package/dist/styles/glass/glass-capsule.css +143 -0
  404. package/dist/styles/glass/glass-chip.css +215 -0
  405. package/dist/styles/glass/ladder.css +67 -17
  406. package/dist/styles/glass/liquid-enter.css +252 -0
  407. package/dist/styles/glass/liquid-morph.css +850 -0
  408. package/dist/styles/glass/material.css +70 -1
  409. package/dist/styles/glass/reveal.css +22 -2
  410. package/dist/styles/glass/rim.css +31 -9
  411. package/dist/styles/glass/surfaces.css +81 -150
  412. package/dist/styles/glass.css +21 -0
  413. package/dist/styles/icon-chip.css +45 -0
  414. package/dist/styles/index.css +26 -0
  415. package/dist/styles/jubilance.css +65 -0
  416. package/dist/styles/motion/morph-field.css +229 -0
  417. package/dist/styles/paper.css +230 -14
  418. package/dist/styles/scroll-choreography.css +135 -78
  419. package/dist/styles/scroll-chrome.css +123 -0
  420. package/dist/styles/scroll-driven.css +38 -0
  421. package/dist/styles/segmented-tabs.css +110 -40
  422. package/dist/styles/select.css +151 -0
  423. package/dist/styles/theme/bridges.css +22 -0
  424. package/dist/styles/theme/radius.css +18 -1
  425. package/dist/styles/tokens/color-radius.css +14 -4
  426. package/dist/styles/tokens/dark-arm.css +94 -12
  427. package/dist/styles/tokens/glass-deep.css +33 -4
  428. package/dist/styles/tokens/glass-fx.css +122 -1
  429. package/dist/styles/tokens/glass.css +226 -34
  430. package/dist/styles/tokens/light-dark.css +3 -3
  431. package/dist/styles/tokens/offsets.css +27 -0
  432. package/dist/styles/tokens/property-regs.css +277 -0
  433. package/dist/styles/tokens/scale-paper.css +86 -30
  434. package/dist/styles/tokens/scheme-motion.css +106 -133
  435. package/dist/styles/tokens/scheme-spring.css +239 -0
  436. package/dist/styles/tokens/scroll-tokens.css +15 -15
  437. package/dist/styles/tokens/shadow.css +73 -13
  438. package/dist/styles/tokens/sizing-config.css +110 -0
  439. package/dist/styles/tokens/sizing.css +55 -104
  440. package/dist/styles/tokens.css +14 -2
  441. package/dist/styles/typography/semantic.css +18 -5
  442. package/dist/styles/utilities/a11y-overrides.css +20 -5
  443. package/dist/styles/utilities/base-misc.css +52 -0
  444. package/dist/styles/utilities/btn.css +84 -3
  445. package/dist/styles/utilities/components.css +31 -6
  446. package/dist/styles/utilities/metal.css +26 -0
  447. package/dist/switch.js +1 -1
  448. package/dist/tabs.js +199 -182
  449. package/dist/timeline.js +241 -206
  450. package/dist/toast.js +1 -1
  451. package/dist/toggle-chip.js +14 -41
  452. package/dist/toggle-group.js +1 -1
  453. package/dist/tooltip.js +1 -1
  454. package/dist/typewriter.js +2 -2
  455. package/dist/uniformBridgeWGPU-BCse1SHU.js +1268 -0
  456. package/dist/{useAnimatedNumber-BfUq2bUM.js → useAnimatedNumber-BntskVdQ.js} +1 -1
  457. package/dist/{useConfiguratorState-DNlOh6c8.js → useConfiguratorState-22BcULzF.js} +41 -38
  458. package/dist/useControlSize-DAZ062x7.js +9 -0
  459. package/dist/useDockCtaReceive-DX7RDb6_.js +88 -0
  460. package/dist/{useDragMorph-DgxnsVJz.js → useDragMorph-DGLSewwB.js} +4 -4
  461. package/dist/useDragVelocity-CjcfX3dA.js +57 -0
  462. package/dist/useFuzzySearch-0fTYOhS4.js +177 -0
  463. package/dist/useGooMorph-Cs13NgYL.js +104 -0
  464. package/dist/useGpuSubstrate-Ceet70xq.js +347 -0
  465. package/dist/useHaptic-CPz5BT9I.js +134 -0
  466. package/dist/{useLiquidFlex-mZPMiNXh.js → useLiquidFlex-Cc6PjVJD.js} +8 -3
  467. package/dist/useLiquidPress-CtOQ8Z0_.js +43 -0
  468. package/dist/useMorphField-ogBM7ubT.js +141 -0
  469. package/dist/usePointerVelocityField-BrkqZFhj.js +91 -0
  470. package/dist/useScrollChrome-JuImi1DM.js +258 -0
  471. package/dist/{useSpringMount-q1amq1SJ.js → useSpringMount-DFxtzmkR.js} +1 -1
  472. package/dist/useSpringPress-VM9RgVq3.js +36 -0
  473. package/dist/{useSurfaceAxis-g0NloYEF.js → useSurfaceAxis-Ci7Dnaw2.js} +1 -1
  474. package/dist/{useTouchGate-CBZTD4SD.js → useTouchGate-B1Lf9XqN.js} +1 -1
  475. package/dist/{vendor-CKmzio-i.js → vendor-B2qOlYY3.js} +24 -11
  476. package/dist/virtual.d.ts +1 -0
  477. package/dist/virtual.js +225 -0
  478. package/dist/watercolor-dot.js +107 -74
  479. package/dist/writeVelocityWeight-Bh83xZfs.js +19 -0
  480. package/package.json +140 -9
  481. package/src/styles/animations.css +13 -3
  482. package/src/styles/cards.css +271 -2
  483. package/src/styles/completion-seal.css +131 -0
  484. package/src/styles/configurator.css +221 -1
  485. package/src/styles/critical-partition.mjs +66 -11
  486. package/src/styles/dock/adaptive-legibility.css +119 -0
  487. package/src/styles/dock/cta-seat.css +87 -0
  488. package/src/styles/dock/density.css +167 -6
  489. package/src/styles/dock/fission-bridge.css +552 -0
  490. package/src/styles/dock/layers.css +90 -78
  491. package/src/styles/dock/morph-bridge.css +67 -18
  492. package/src/styles/dock/morph.css +57 -118
  493. package/src/styles/dock/overflow.css +12 -0
  494. package/src/styles/dock/search.css +68 -0
  495. package/src/styles/dock/shape.css +250 -0
  496. package/src/styles/dock/shell.css +24 -8
  497. package/src/styles/dock/stack-rail.css +352 -0
  498. package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
  499. package/src/styles/dock-controls/icon-button.css +46 -0
  500. package/src/styles/dock-controls/triggers.css +23 -1
  501. package/src/styles/dock-controls.css +18 -0
  502. package/src/styles/dock.css +27 -2
  503. package/src/styles/drawer.css +164 -0
  504. package/src/styles/glass/accent-tone.css +66 -0
  505. package/src/styles/glass/control-surfaces.css +167 -0
  506. package/src/styles/glass/glass-atom.css +244 -0
  507. package/src/styles/glass/glass-capsule.css +143 -0
  508. package/src/styles/glass/glass-chip.css +215 -0
  509. package/src/styles/glass/ladder.css +67 -17
  510. package/src/styles/glass/liquid-enter.css +252 -0
  511. package/src/styles/glass/liquid-morph.css +850 -0
  512. package/src/styles/glass/material.css +70 -1
  513. package/src/styles/glass/reveal.css +22 -2
  514. package/src/styles/glass/rim.css +31 -9
  515. package/src/styles/glass/surfaces.css +81 -150
  516. package/src/styles/glass.css +21 -0
  517. package/src/styles/icon-chip.css +45 -0
  518. package/src/styles/index.css +26 -0
  519. package/src/styles/jubilance.css +65 -0
  520. package/src/styles/motion/morph-field.css +229 -0
  521. package/src/styles/paper.css +230 -14
  522. package/src/styles/scroll-choreography.css +135 -78
  523. package/src/styles/scroll-chrome.css +123 -0
  524. package/src/styles/scroll-driven.css +38 -0
  525. package/src/styles/segmented-tabs.css +110 -36
  526. package/src/styles/select.css +151 -0
  527. package/src/styles/theme/bridges.css +22 -0
  528. package/src/styles/theme/radius.css +18 -1
  529. package/src/styles/tokens/color-radius.css +14 -4
  530. package/src/styles/tokens/dark-arm.css +94 -12
  531. package/src/styles/tokens/glass-deep.css +33 -4
  532. package/src/styles/tokens/glass-fx.css +122 -1
  533. package/src/styles/tokens/glass.css +226 -34
  534. package/src/styles/tokens/light-dark.css +3 -3
  535. package/src/styles/tokens/offsets.css +27 -0
  536. package/src/styles/tokens/property-regs.css +277 -0
  537. package/src/styles/tokens/scale-paper.css +86 -30
  538. package/src/styles/tokens/scheme-motion.css +106 -133
  539. package/src/styles/tokens/scheme-spring.css +239 -0
  540. package/src/styles/tokens/scroll-tokens.css +15 -15
  541. package/src/styles/tokens/shadow.css +73 -13
  542. package/src/styles/tokens/sizing-config.css +110 -0
  543. package/src/styles/tokens/sizing.css +55 -104
  544. package/src/styles/tokens.css +14 -2
  545. package/src/styles/typography/semantic.css +18 -5
  546. package/src/styles/utilities/a11y-overrides.css +20 -5
  547. package/src/styles/utilities/base-misc.css +52 -0
  548. package/src/styles/utilities/btn.css +84 -3
  549. package/src/styles/utilities/components.css +31 -6
  550. package/src/styles/utilities/metal.css +26 -0
  551. package/dist/ContextMenuContent-uWnVxDab.js +0 -85
  552. package/dist/DialogContent-DcKK8k9i.js +0 -103
  553. package/dist/DialogFooter-BZNX5aVr.js +0 -165
  554. package/dist/HoverCardContent-b2uaAMRR.js +0 -83
  555. package/dist/Input-h9v5LeXf.js +0 -55
  556. package/dist/NumberFieldContent-Cq7EzX-U.js +0 -138
  557. package/dist/PaperBackdrop-Vf3tlpvd.js +0 -31
  558. package/dist/SelectScrollDownButton-CrA8F0iV.js +0 -252
  559. package/dist/Separator-pKF0oA4M.js +0 -37
  560. package/dist/Switch-CwYNf8bo.js +0 -47
  561. package/dist/TooltipProvider-rzvnXz60.js +0 -104
  562. package/dist/badge-D9XWW4GT.js +0 -53
  563. package/dist/button-DYCUa-tH.js +0 -126
  564. package/dist/color-DweYl7pE.js +0 -86
  565. package/dist/components/custom/concentric/composables/ringField.d.ts +0 -44
  566. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
  567. package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
  568. package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
  569. package/dist/createCanvasLifecycle-CHD5XrDW.js +0 -82
  570. package/dist/dockContext-BNfyPLe9.js +0 -17
  571. package/dist/procedural-color.wgsl-CToRHugY.js +0 -224
  572. package/dist/resolveCanvasColor-CUyHr5Uu.js +0 -11
  573. package/dist/slider-DVb4HXU-.js +0 -142
  574. package/dist/springPresets-CFQGQfdl.js +0 -40
  575. package/dist/styles/dock/rail-extend.css +0 -397
  576. package/dist/useLiquidPress-kfb4KX79.js +0 -39
  577. package/dist/usePointerVelocityField-JbRd5CrM.js +0 -137
  578. package/dist/useRAFLoop-UYa4zoiN.js +0 -109
  579. package/dist/useSpringPress-BsqPr7FJ.js +0 -34
  580. package/src/styles/dock/rail-extend.css +0 -397
  581. /package/dist/{CollapsibleContent-68dEXIAl.js → CollapsibleContent-D7UNsXQr.js} +0 -0
  582. /package/dist/{InstrumentChassis-Bx0F_q5g.js → InstrumentChassis-UUJX0-mW.js} +0 -0
  583. /package/dist/{Label-C2ejNWeC.js → Label-B_HPqi_q.js} +0 -0
  584. /package/dist/{ModalOverlay-D1VrWyoi.js → ModalOverlay-DfAf7o15.js} +0 -0
  585. /package/dist/{SelectGroup-DwwjicPY.js → SelectGroup-Dcczq44n.js} +0 -0
  586. /package/dist/{_plugin-vue_export-helper-C1je1s0u.js → _plugin-vue_export-helper-gLzyemvl.js} +0 -0
  587. /package/dist/{compile-CQEFRTmx.js → compile-INR_tPk_.js} +0 -0
  588. /package/dist/{constants-BPOqYJAm.js → constants-BWj7DkMn.js} +0 -0
  589. /package/dist/{createContext-CpBNTRMI.js → createContext-Cd23P9j0.js} +0 -0
  590. /package/dist/{math-BINYmg5z.js → math-5RcIgCB4.js} +0 -0
  591. /package/dist/{menuItemVariants-D8VNHq22.js → menuItemVariants-DAXquKja.js} +0 -0
  592. /package/dist/{prng-Za0Rmgag.js → prng-B5tIXTtj.js} +0 -0
  593. /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-B4HO9LXG.js} +0 -0
  594. /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-DO8Vl4gs.js} +0 -0
  595. /package/dist/{useInterval-CvK1mL92.js → useInterval-BVUI-sez.js} +0 -0
  596. /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BEut54Tk.js} +0 -0
  597. /package/dist/{useResizeObserver-Bpoi7tRE.js → useResizeObserver-DdEn3v2f.js} +0 -0
  598. /package/dist/{useResolveTokenColor-vAylyR0x.js → useResolveTokenColor-ChOnCckA.js} +0 -0
  599. /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-A0M6qRl7.js} +0 -0
  600. /package/dist/{useSortable-DHjtZSEd.js → useSortable-DQV_UNDw.js} +0 -0
  601. /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-Bma3UlKA.js} +0 -0
  602. /package/dist/{useTimer-BHJOKr35.js → useTimer-BBLGPXR8.js} +0 -0
  603. /package/dist/{useUserInvalidAria-y5namzeE.js → useUserInvalidAria-EmmwWPOl.js} +0 -0
  604. /package/dist/{useViewportReady-anbac3m6.js → useViewportReady-C9pYnn7K.js} +0 -0
  605. /package/dist/{vReveal-Czsb7zQC.js → vReveal-CT1KtwZA.js} +0 -0
  606. /package/dist/{vSpecular-CQFmLNzA.js → vSpecular-EX7loENl.js} +0 -0
@@ -1,5 +1,10 @@
1
1
  /* tokens/scheme-motion.css
2
- §-1 color-scheme · §0 font · §1 duration · §2 easing (spring linear()) · §2.A ambient-motion · §2.B/§2.C · §3 z-index.
2
+ §-1 color-scheme · §0 font · §1 duration · §2.W/§2.X motion-weight + cartoon-punch ·
3
+ §2.A ambient-motion · §2.B/§2.C · §3 z-index.
4
+ The §2 EASING block (spring linear() curves + per-spring duration clocks +
5
+ goo-flow curves + cubic-bezier cores/aliases) is carved into the adjacent
6
+ scheme-spring.css to hold the no-god-module 500-line bound; it @imports
7
+ IMMEDIATELY AFTER this file (same :root cascade slot).
3
8
  Carved from the tokens.css cascade root; @import-ed by tokens.css in
4
9
  cascade order. Same :root cascade context as its siblings. */
5
10
  :root {
@@ -74,6 +79,20 @@
74
79
  §1 DURATION
75
80
  ═══════════════════════════════════════════════ */
76
81
  --duration-instant: 0.1s;
82
+ /* BC.W-CONTROL-SMOOTH — the named control-press SURFACE clock (the W-GLASS-CAL
83
+ per-register-clock discipline). An interactive control the user actively pokes
84
+ (hover-in, press, toggle) wants the iOS quick ~100-120ms surface beat, NOT the
85
+ 0.2s calm card-crossfade beat — at 0.2s the colour/border/shadow easing drags
86
+ VISIBLY behind the pointer (the §F "super laggy" read). 0.12s brackets the iOS
87
+ 100-120ms quick-control register (apple-ios27.md). `transition-control` (btn.css)
88
+ reads THIS so the whole control family re-times from one `:root` override, and
89
+ the surface beat now tracks the press-squish window (the press is `tap-squish`/
90
+ `useSpringPress`'s coupled transform leg on the spring's own clock — P3 fade-
91
+ coupled-to-transform). The bezier `--ease-standard` STAYS for the surface legs
92
+ (a colour cross-fade on a spring wobbles, §6 binding); only the DURATION shortens.
93
+ The CALM card register keeps `--duration-fast`/`--duration-normal` — a `<Card>` is
94
+ not an interactive control. */
95
+ --duration-control: 0.12s;
77
96
  --duration-fast: 0.2s;
78
97
  --duration-normal: 0.3s;
79
98
  --duration-slow: 0.45s;
@@ -131,138 +150,55 @@
131
150
  --motion-stagger-relaxed: 120ms;
132
151
 
133
152
  /* ═══════════════════════════════════════════════
134
- §2 EASING — Spring curves via linear()
135
-
136
- Generated from `scripts/regen-spring-tokens.mjs` — DO NOT hand-edit.
137
- To tune a spring: edit the PRESETS table in the script and re-run
138
- `node scripts/regen-spring-tokens.mjs`. The script invokes
139
- `springLinearStops()` from `@mkbabb/keyframes.js` which solves the
140
- analytic second-order damped harmonic oscillator and emits CSS
141
- `linear()` stops; this is the single source of truth tying each
142
- (response, ζ) pair to its serialized curve.
143
-
144
- iOS-canonical (response, dampingFraction) per AL-X4 §3:
145
- smooth: (0.50s, ζ=0.86) — gentle settle, sub-perceptual overshoot ~0.5%
146
- snappy: (0.35s, ζ=0.65) — quick crisp, overshoot ~+6.8%
147
- bouncy: (0.50s, ζ=0.45) — emphatic overshoot ~+20.5%
148
- gentle: (0.70s, ζ=1.00) — patient critically-damped
149
- dock: (0.32s, ζ=0.70) — dock expand/collapse morph, overshoot ~+4.6%
150
-
151
- Note on `smooth`: at ζ=0.86 the analytic solver produces a peak
152
- of 1.00498 (+0.5%) at the 24% slot — mathematically present but
153
- sub-perceptual. I keep ζ=0.86 rather than promoting to ζ=1.0
154
- because true critical damping is `gentle`'s register, and
155
- `smooth` wants a slightly faster visual settle than `gentle`'s
156
- patient curve. The 0.5% peak does not read as overshoot to the
157
- eye but does narrowly distinguish `smooth` from `gentle`.
158
-
159
- ── EASING DOCTRINE (AX.W52 §6 — which easing fits which job) ──
160
- ONE recorded rule so the animation easing stops forking live. This
161
- FORMALIZES the already-correct `transitions.css` idiom (enter=spring,
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`).
209
-
210
- The BUTTON family (`.btn-pill` / `.tap-squish` / `.glass-btn` /
211
- `btn-interactive`) UNIFIES its `scale` transform leg onto ONE register —
212
- `--spring-smooth` — so hover + press read as one motion language (the
213
- hover lift is the restrained `--scale-hover-btn` = 1.05, not the 1.08
214
- `--scale-hover`). Springs read alive on TRANSFORM and ENTER (overshoot =
215
- physicality); a spring on a COLOR or an EXIT reads as a wobble/hesitation.
216
- `--ease-apple` is the ambient-only register (consumed solely by the Pulse
217
- aura `--animate-ambient-pulse-easing` — NOT a second smooth-ease authority
218
- for interactive transforms; those use `--spring-smooth`).
219
- ═══════════════════════════════════════════════ */
220
- --spring-smooth: linear(0, 0.09804 2.041%, 0.29288 4.082%, 0.49447 6.122%, 0.66436 8.163%, 0.79208 10.204%, 0.88050 12.245%, 0.93754 14.286%, 0.97182 16.327%, 0.99083 18.367%, 1.00027 20.408%, 1.00413 22.449%, 1.00502 24.490%, 1.00453 26.531%, 1.00355 28.571%, 1.00254 30.612%, 1.00169 32.653%, 1.00105 34.694%, 1.00060 36.735%, 1.00031 38.776%, 1.00014 40.816%, 1.00005 42.857%, 1.00000 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);
221
- --spring-snappy: linear(0, 0.10438 2.041%, 0.32622 4.082%, 0.56668 6.122%, 0.77153 8.163%, 0.91961 10.204%, 1.01073 12.245%, 1.05549 14.286%, 1.06804 16.327%, 1.06171 18.367%, 1.04686 20.408%, 1.03044 22.449%, 1.01629 24.490%, 1.00596 26.531%, 0.99954 28.571%, 0.99633 30.612%, 0.99537 32.653%, 0.99575 34.694%, 0.99674 36.735%, 0.99786 38.776%, 0.99884 40.816%, 0.99956 42.857%, 1.00001 44.898%, 1.00024 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);
222
- --spring-bouncy: linear(0, 0.11105 2.041%, 0.36430 4.082%, 0.65496 6.122%, 0.90929 8.163%, 1.08828 10.204%, 1.18289 12.245%, 1.20482 14.286%, 1.17641 16.327%, 1.12214 18.367%, 1.06276 20.408%, 1.01239 22.449%, 0.97809 24.490%, 0.96099 26.531%, 0.95826 28.571%, 0.96514 30.612%, 0.97666 32.653%, 0.98873 34.694%, 0.99867 36.735%, 1.00520 38.776%, 1.00825 40.816%, 1.00847 42.857%, 1.00686 44.898%, 1.00443 46.939%, 1.00199 48.980%, 1.00004 51.020%, 0.99880 53.061%, 0.99827 55.102%, 0.99829 57.143%, 0.99866 59.184%, 0.99916 61.224%, 0.99966 63.265%, 1.00004 65.306%, 1.00027 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);
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);
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);
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
-
248
- /* Core cubic-bezier (exits, fallbacks, non-spring uses) */
249
- --motion-ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
250
- --motion-ease-out: cubic-bezier(0, 0, 0.2, 1);
251
- --motion-ease-in: cubic-bezier(0.4, 0, 1, 1);
252
- --motion-ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
253
-
254
- --ease-standard: var(--motion-ease-standard);
255
- --ease-out: var(--motion-ease-out);
256
- --ease-in: var(--motion-ease-in);
257
- --ease-out-expo: var(--motion-ease-out-expo);
258
-
259
- /* Apple-inspired — micro-interactions, switches, dock hover */
260
- --motion-ease-apple: cubic-bezier(0.25, 0.1, 0.25, 1);
261
-
262
- --ease-apple: var(--motion-ease-apple);
263
- --ease-spring: var(--spring-snappy);
264
- --ease-decelerate: var(--ease-out);
265
- --ease-accelerate: var(--ease-in);
153
+ §2.W BD.W-MOTION-WEIGHT — the GOVERNING motion scalar (rest decl)
154
+
155
+ The universal driver-motion governor (the @property reg lives in
156
+ property-regs.css §18 beside --ui-scale). 0 = still, 1 = full cel. Rest
157
+ 1/φ ≈ 0.618: present, alive, never manic (§L4/§L6). DRIVER-scoped: a surface
158
+ the finger/route moved INHERITS this; an OBSERVER surface (auto-carousel
159
+ content, list reorder under scroll) pins it to 0 LOCALLY. It co-scales squash
160
+ depth, overshoot share, anticipation pull-back, and cartoon-shadow travel
161
+ together so they read as ONE proportioned deformation.
162
+
163
+ The SQUISH CAP is derived SITE-LOCALLY at the consuming element (the JS
164
+ getters in useDockOrientationMorph / useTabIndicator / useTabDragMorph /
165
+ useLiquidPress read `--motion-weight` off their OWN element and return
166
+ `1 + (cap_token − 1)·(weight + (1−weight)·flexVel)/0.618`), NEVER a `:root`
167
+ calc token — an unregistered `:root` cap calc over var(--motion-weight) is
168
+ substituted at :root (0.618) and inherits the FROZEN text, so a child's
169
+ scoped weight→0 would never re-evaluate it (the spike's load-bearing
170
+ correction). The cap reads the EXISTING `--*-max-stretch` token directly with
171
+ a (weight/0.618) factor — zero new `--*-stretch-k` coefficient cohort. */
172
+ --motion-weight: 0.618;
173
+
174
+ /* ═══════════════════════════════════════════════
175
+ §2.X BD.W-CARTOON-PUNCH — the third pole, a RAW shaped linear()
176
+
177
+ A single damped spring is monotone-from-one-side — it CANNOT dip below origin
178
+ then overshoot past it. iOS-27's loudest moments want ANTICIPATION (pull back
179
+ before launch) AND EXAGGERATION (punch past the spring fence). So it ships as
180
+ a hand-shaped linear() raw token: dip ~−4% BELOW origin (anticipation — a
181
+ thing no damped spring can do), cross 1.0, punch to ~1.22 (deliberately past
182
+ the ≤12% spring overshoot fence — which is WHY it is a register, not a
183
+ spring), settle. Exactly ONE sign change before the peak + a monotone settle
184
+ after (the shape-sanity fence).
185
+
186
+ NOT generated by regen-spring-tokens.mjs (which emits only (response,ζ)
187
+ springs from springPresets.ts), NOT a SPRING_PRESETS row, NOT a MOTION_CURVES
188
+ entry (MotionCurveKind is the closed spring|bezier union; a shaped linear()
189
+ with a negative leg is neither). A raw --ease-* property — zero engine
190
+ extension, zero TS change. Drives TRANSFORM/opacity ONLY (compositor-safe,
191
+ both engines — Baseline 17.2+, plain linear(), no -webkit prefix). The surface
192
+ composing it carries `--motion-weight: 1` in the SAME recipe (the loud-register
193
+ coupling — so the punch is never accidentally muted to ~+13.6% by inheriting
194
+ the rest 0.618). PRM zeroes the weight → the amplitude collapses (the springs
195
+ keep their own respectReducedMotion endpoint-snap). */
196
+ --ease-cartoon-punch: linear(
197
+ 0, -0.012, -0.038 12%, -0.018 18%,
198
+ 0.18 34%, 0.62 46%, 0.98 56%,
199
+ 1.14 64%, 1.22 70%,
200
+ 1.16 78%, 1.06 86%, 1.012 92%, 1
201
+ );
266
202
 
267
203
  /* ═══════════════════════════════════════════════
268
204
  §2.A AMBIENT MOTION — Pulse aura tokens
@@ -388,3 +324,40 @@
388
324
  --z-debug: 99999;
389
325
 
390
326
  }
327
+
328
+ /* ═══════════════════════════════════════════════
329
+ BD.W-MOTION-WEIGHT — the driver / observer carve (design.md §L4, gate C8)
330
+
331
+ The governing weight rests at the 1/φ centroid. LOUD DRIVERS — the dock morph
332
+ stage, an earned celebration — pin it to 1 so even a SLOW user-driven morph
333
+ rides the full squish/overshoot register (iOS reserves the weighty bounce for
334
+ what the user drives). CALM OBSERVERS — a programmatic reorder, an auto-advancing
335
+ carousel — pin it to 0: auto-motion that springs reads cheap. A single
336
+ element-scoped assignment, the same seam the PRM carve uses, inheriting down. */
337
+ .liquid-stage {
338
+ --motion-weight: 1;
339
+ }
340
+ :where([data-reorder], [data-autoplay]) {
341
+ --motion-weight: 0;
342
+ }
343
+
344
+ /* ═══════════════════════════════════════════════
345
+ BD.W-MOTION-WEIGHT / BD.W-CARTOON-PUNCH — the PRM carve
346
+
347
+ ONE assignment zeroes ALL of the goo that rides on top of the springs. Because
348
+ every squish/punch/shadow-travel reads through `--motion-weight` (the site-local
349
+ cap collapses to `1 + (cap−1)·0 == 1.0`, the inert-cast travel/spread collapse to
350
+ their rest, the §2c velocity boost is gated by the same weight), this single line
351
+ zeroes the squash, the overshoot share, the anticipation pull, the cartoon-shadow
352
+ travel, AND the velocity boost together. The springs keep their own
353
+ `respectReducedMotion` endpoint-snap in SpringProgress; the weight zeroes only the
354
+ GOO. The fade survives. `--ease-cartoon-punch` re-aliases to the non-overshooting
355
+ standard ease (belt-and-suspenders — the weight=0 already kills the punch
356
+ amplitude on a weight-scaled surface; the alias also removes the curve shape for
357
+ any consumer driving a non-amplitude leg). */
358
+ @media (prefers-reduced-motion: reduce) {
359
+ :root {
360
+ --motion-weight: 0;
361
+ --ease-cartoon-punch: var(--ease-standard);
362
+ }
363
+ }
@@ -0,0 +1,239 @@
1
+ /* tokens/scheme-spring.css
2
+ §2 EASING — Spring curves via linear() · per-spring duration clocks ·
3
+ goo-morph dwell-flow curves · cubic-bezier cores + aliases.
4
+
5
+ Carved from scheme-motion.css's §2 EASING block to hold the no-god-module
6
+ 500-line bound (BD.W-CUT re-grew scheme-motion past it). @import-ed by
7
+ tokens.css IMMEDIATELY AFTER scheme-motion.css — adjacent same-selector
8
+ :root{} at the SAME cascade slot, so the spring/easing tokens resolve in the
9
+ same order their consumers (color-radius and the later partials) expect.
10
+ Custom properties resolve order-independently within :root, so the split is
11
+ byte-isomorphic at the cascade. */
12
+ :root {
13
+ /* ═══════════════════════════════════════════════
14
+ §2 EASING — Spring curves via linear()
15
+
16
+ Generated from `scripts/regen-spring-tokens.mjs` — DO NOT hand-edit.
17
+ To tune a spring: edit the PRESETS table in the script and re-run
18
+ `node scripts/regen-spring-tokens.mjs`. The script invokes
19
+ `springLinearStops()` from `@mkbabb/keyframes.js` which solves the
20
+ analytic second-order damped harmonic oscillator and emits CSS
21
+ `linear()` stops; this is the single source of truth tying each
22
+ (response, ζ) pair to its serialized curve.
23
+
24
+ iOS-canonical (response, dampingFraction) per AL-X4 §3 (BC.W-SPRING-EASE
25
+ eased `snappy`+`bouncy` to fill their clocks + minted the `press` register):
26
+ smooth: (0.50s, ζ=0.86) — gentle settle, sub-perceptual overshoot ~0.5%
27
+ snappy: (0.42s, ζ=0.78) — quick crisp, eased to fill its clock, overshoot ~+2.0%
28
+ bouncy: (0.50s, ζ=0.55) — emphatic, overshoot ~+12.6% (the Apple 12-18% band)
29
+ gentle: (0.70s, ζ=1.00) — patient critically-damped
30
+ dock: (0.56s, ζ=0.58) — the WEIGHTY iOS-27 gooey morph (collapse/expand + V↔H + fission), slow inertial settle, audacious overshoot ~+11%
31
+ press: (0.15s, ζ=0.86) — the iOS interactive tap-press, sub-100ms answer, ~+0.5%
32
+
33
+ Note on `smooth`: at ζ=0.86 the analytic solver produces a peak
34
+ of 1.00498 (+0.5%) at the 24% slot — mathematically present but
35
+ sub-perceptual. I keep ζ=0.86 rather than promoting to ζ=1.0
36
+ because true critical damping is `gentle`'s register, and
37
+ `smooth` wants a slightly faster visual settle than `gentle`'s
38
+ patient curve. The 0.5% peak does not read as overshoot to the
39
+ eye but does narrowly distinguish `smooth` from `gentle`.
40
+
41
+ ── EASING DOCTRINE (AX.W52 §6 — which easing fits which job) ──
42
+ ONE recorded rule so the animation easing stops forking live. This
43
+ FORMALIZES the already-correct `transitions.css` idiom (enter=spring,
44
+ exit=bezier) as the house rule every recipe reaches for.
45
+
46
+ BB.W-MOTION-CANON — the table embodies ONE principle (Material 3's
47
+ spatial-vs-effects split, codified in `docs/precepts/motion-canon.md`
48
+ as P1): a SPATIAL channel (the box MOVES/RESHAPES — position, SIZE,
49
+ rotation, corners) rides a `--spring-<name>` (overshoot = physicality);
50
+ an EFFECTS channel (the surface RE-TINTS — color, opacity, box-shadow)
51
+ rides a bezier `--ease-*` (a colour cross-fade reads as a wobble on a
52
+ spring). Each row below is tagged [SPATIAL] (spring) or [EFFECTS]
53
+ (bezier) so the rule is legible, not implicit. The canon doc is the
54
+ canonical home; this table is the SOURCE it re-states:
55
+
56
+ | Transition kind | Tier | Easing |
57
+ |--------------------------------------------------|-----------|--------------------------|
58
+ | Surface props (bg, border, color, box-shadow, | [EFFECTS] | `--ease-standard` (bezier|
59
+ | opacity) | | — a colour cross-fade |
60
+ | | | reads as a wobble on a |
61
+ | | | spring) |
62
+ | Transform — hover/press/active (scale, translate,| [SPATIAL] | `--spring-smooth` (the |
63
+ | rotate) | | ONE button/interactive |
64
+ | | | scale register) or |
65
+ | | | `--spring-snappy` |
66
+ | Size / morph (dock V↔H, indicator size- | [SPATIAL] | `--spring-dock` / |
67
+ | correction, reveal source-rect bloom) | | `--spring-snappy`, |
68
+ | | | expressed as a |
69
+ | | | COMPOSITOR transform |
70
+ | | | (P5) — NEVER an |
71
+ | | | animated width/height |
72
+ | Enter (mount, popover open, dialog in, reveal) | [SPATIAL] | `--spring-bouncy` / |
73
+ | | | `--spring-snappy` |
74
+ | Bold decelerating arrival (the SOTA arrival — | [SPATIAL] | `--ease-out-expo` |
75
+ | reveal draw-on, big-distance settle) | | (cubic-bezier(.16,1, |
76
+ | | | .3,1); the house expo) |
77
+ | Exit (unmount, close) | [EFFECTS] | `--ease-out` / |
78
+ | | | `--ease-standard` |
79
+ | | | (bezier, NO overshoot —|
80
+ | | | an exit must never |
81
+ | | | overshoot past gone) |
82
+ | Position-tracked (specular pointer follow) | [EFFECTS] | `--ease-standard` |
83
+
84
+ The SOTA arrival ease is the EXISTING `--ease-out-expo` (alias →
85
+ `--motion-ease-out-expo` = `cubic-bezier(0.16, 1, 0.3, 1)`, the house
86
+ expo with the value.js `easeOutExpo` JS twin in the MOTION_CURVES table)
87
+ — NOT a net-new token. The motion canon NAMES it as the arrival register;
88
+ it is not re-minted (a duplicate alias would fail proof:animation-
89
+ coherence's EASING-TABLE-BOUND arm — the curve already has its canonical
90
+ + alias row in `curves.ts`).
91
+
92
+ The BUTTON family (`.btn-pill` / `.tap-squish` / `.glass-btn` /
93
+ `btn-interactive`) UNIFIES its `scale` transform leg onto ONE register —
94
+ `--spring-smooth` — so hover + press read as one motion language (the
95
+ hover lift is the restrained `--scale-hover-btn` = 1.05, not the 1.08
96
+ `--scale-hover`). Springs read alive on TRANSFORM and ENTER (overshoot =
97
+ physicality); a spring on a COLOR or an EXIT reads as a wobble/hesitation.
98
+ `--ease-apple` is the ambient-only register (consumed solely by the Pulse
99
+ aura `--animate-ambient-pulse-easing` — NOT a second smooth-ease authority
100
+ for interactive transforms; those use `--spring-smooth`).
101
+ ═══════════════════════════════════════════════ */
102
+ --spring-smooth: linear(0, 0.09979 2.041%, 0.30180 4.082%, 0.51333 6.122%, 0.69190 8.163%, 0.82461 10.204%, 0.91382 12.245%, 0.96822 14.286%, 0.99774 16.327%, 1.01113 18.367%, 1.01507 20.408%, 1.01416 22.449%, 1.01127 24.490%, 1.00802 26.531%, 1.00518 28.571%, 1.00302 30.612%, 1.00154 32.653%, 1.00062 34.694%, 1.00010 36.735%, 0.99986 38.776%, 1.00000 40.816%, 1.00000 42.857%, 1.00000 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);
103
+ --spring-snappy: linear(0, 0.10159 2.041%, 0.31119 4.082%, 0.53355 6.122%, 0.72176 8.163%, 0.86005 10.204%, 0.95002 12.245%, 1.00115 14.286%, 1.02488 16.327%, 1.03150 18.367%, 1.02891 20.408%, 1.02249 22.449%, 1.01542 24.490%, 1.00934 26.531%, 1.00480 28.571%, 1.00181 30.612%, 1.00009 32.653%, 0.99926 34.694%, 0.99901 36.735%, 0.99907 38.776%, 0.99927 40.816%, 0.99949 42.857%, 0.99969 44.898%, 0.99984 46.939%, 0.99993 48.980%, 0.99999 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);
104
+ --spring-bouncy: linear(0, 0.10599 2.041%, 0.33511 4.082%, 0.58672 6.122%, 0.80212 8.163%, 0.95655 10.204%, 1.04836 12.245%, 1.08867 14.286%, 1.09341 16.327%, 1.07802 18.367%, 1.05470 20.408%, 1.03159 22.449%, 1.01303 24.490%, 1.00049 26.531%, 0.99363 28.571%, 0.99114 30.612%, 0.99150 32.653%, 0.99333 34.694%, 0.99560 36.735%, 0.99767 38.776%, 0.99924 40.816%, 1.00023 42.857%, 1.00072 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);
105
+ --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);
106
+ --spring-dock: linear(0, 0.10470 2.041%, 0.32797 4.082%, 0.57059 6.122%, 0.77747 8.163%, 0.92676 10.204%, 1.01801 12.245%, 1.06194 14.286%, 1.07303 16.327%, 1.06501 18.367%, 1.04857 20.408%, 1.03088 22.449%, 1.01588 24.490%, 1.00510 26.531%, 0.99855 28.571%, 0.99542 30.612%, 0.99467 32.653%, 0.99528 34.694%, 0.99649 36.735%, 0.99778 38.776%, 0.99887 40.816%, 0.99965 42.857%, 1.00012 44.898%, 1.00034 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);
107
+ --spring-press: linear(0, 0.09979 2.041%, 0.30180 4.082%, 0.51333 6.122%, 0.69190 8.163%, 0.82461 10.204%, 0.91382 12.245%, 0.96822 14.286%, 0.99774 16.327%, 1.01113 18.367%, 1.01507 20.408%, 1.01416 22.449%, 1.01127 24.490%, 1.00802 26.531%, 1.00518 28.571%, 1.00302 30.612%, 1.00154 32.653%, 1.00062 34.694%, 1.00010 36.735%, 0.99986 38.776%, 0.99978 40.816%, 0.99978 42.857%, 0.99982 44.898%, 0.99987 46.939%, 0.99991 48.980%, 0.99995 51.020%, 0.99997 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);
108
+ --spring-timeline-head: linear(0, 0.10159 2.041%, 0.31119 4.082%, 0.53355 6.122%, 0.72176 8.163%, 0.86005 10.204%, 0.95002 12.245%, 1.00115 14.286%, 1.02488 16.327%, 1.03150 18.367%, 1.02891 20.408%, 1.02249 22.449%, 1.01542 24.490%, 1.00934 26.531%, 1.00480 28.571%, 1.00181 30.612%, 1.00009 32.653%, 0.99926 34.694%, 0.99901 36.735%, 0.99907 38.776%, 0.99927 40.816%, 0.99949 42.857%, 0.99969 44.898%, 0.99984 46.939%, 0.99993 48.980%, 0.99999 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);
109
+ --spring-timeline-fill: linear(0, 0.09920 2.041%, 0.29878 4.082%, 0.50690 6.122%, 0.68248 8.163%, 0.81346 10.204%, 0.90241 12.245%, 0.95775 14.286%, 0.98897 16.327%, 1.00435 18.367%, 1.01023 20.408%, 1.01098 22.449%, 1.00939 24.490%, 1.00707 26.531%, 1.00484 28.571%, 1.00304 30.612%, 1.00173 32.653%, 1.00087 34.694%, 1.00034 36.735%, 1.00006 38.776%, 0.99992 40.816%, 1.00000 42.857%, 1.00000 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);
110
+ --spring-timeline-press: 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.00009 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);
111
+
112
+ /* ── PER-SPRING DURATION CLOCK (BA.W-GLASS-CAL Unit 3) ──
113
+ Generated from `scripts/regen-spring-tokens.mjs` — DO NOT hand-edit.
114
+ Each `--spring-<name>-duration` is the spring's OWN 2%-band envelope-settle
115
+ time `t_s = -ln(0.02) / (ζ·ωₙ)` (ωₙ = 2π/response), derived from the SAME
116
+ (response, ζ) PRESETS table the `--spring-*` `linear()` curves above
117
+ derive from — never a hand value.
118
+
119
+ WHY: the `--spring-<name>` curve is NORMALIZED to 0..1 and discards the
120
+ spring's settle time. Pairing it with a generic `--duration-*` clock
121
+ (0.2/0.3/0.45s) re-timed EVERY spring to the same wall clock — snappy
122
+ (response 0.35s) and smooth (0.5s) both ran 300ms, so the crisp snappy
123
+ register dragged a dead sub-pixel tail (the R10-2 read: within-1px at
124
+ ~109ms but the transition ran 300ms). These clocks re-time UNDER each
125
+ register to its own settle WITHOUT touching the §6 register canon (which
126
+ spring fits which job): a `transition` pairs `--spring-<name>` with the
127
+ matching `--spring-<name>-duration`. */
128
+ --spring-smooth-duration: 0.45s;
129
+ --spring-snappy-duration: 0.4s;
130
+ --spring-bouncy-duration: 0.62s;
131
+ --spring-gentle-duration: 0.51s;
132
+ --spring-dock-duration: 0.66s;
133
+ --spring-press-duration: 0.16s;
134
+ --spring-timeline-head-duration: 0.29s;
135
+ --spring-timeline-fill-duration: 0.35s;
136
+ --spring-timeline-press-duration: 0.2s;
137
+
138
+ /* ── DECK SLIDE-TRANSITION CURVE (BC.W-DECK) ──
139
+ The full-viewport keyboard-paged deck's slide transition rides the SAME
140
+ `--spring-smooth` register the deck's `DECK_SPRING` samples (the calm-settle
141
+ `.smooth` family; the (response, ζ) pair lives in deck/constants.ts) — an
142
+ ALIAS, NOT a new spring family (the donor's own fence + the W-GLASS-CAL spring
143
+ fence). `--spring-deck: var(--spring-smooth)` so a deck slide reads as a calm
144
+ settle, not a bounce; the JS half (`installDeckSpring`) consumes keyframes.js
145
+ `springTimingFunction(DECK_SPRING)` for the count-up easing. */
146
+ --spring-deck: var(--spring-smooth);
147
+
148
+ /* ── GOO-MORPH SLIDE-TRANSITION FLOW CURVES (BD.W-GOO-CAROUSEL-DECK) ──
149
+ The per-consumer dwell-flow curves the ONE `useGooMorph` engine reads off its
150
+ `tokenPrefix` (`--{prefix}-flow`/`-duration`/`-max-stretch`). These are NOT new
151
+ spring presets — they are the SAME geometry-law DWELL shape the dot-pip worm
152
+ (`--pager-worm-flow`, defined just below) ships: a curve that rises to ~mid by ~46% of
153
+ the clock, DWELLS at the midpoint (the FAT metaball NECK held open across the gap),
154
+ then contracts. The dwell is what makes the morph read as weighty liquid rather than
155
+ a fast flicker (the W-GLASS-CAL spring fence: a normalized spring `linear()`
156
+ front-loads — reaches ~0.5 by ~6% REGARDLESS of ζ — so the neck would collapse in
157
+ ~150ms then sit dead; the dwell curve spreads `--goo-t`'s 0→1 across the REAL clock).
158
+
159
+ --carousel-goo-flow: the drag register — the dwell shape with a gentle terminal
160
+ overshoot (+1.5%, the snappy LAND); the plate necks across the gap then snaps. */
161
+ --carousel-goo-flow: linear(
162
+ 0, 0.02206 4.167%, 0.07922 8.333%, 0.15799 12.5%, 0.24486 16.667%,
163
+ 0.32632 20.833%, 0.38889 25%, 0.41905 29.167%, 0.43667 33.333%,
164
+ 0.4575 37.5%, 0.47833 41.667%, 0.49917 45.833%, 0.52 50%, 0.54083 54.167%,
165
+ 0.56167 58.333%, 0.58373 62.5%, 0.62943 66.667%, 0.69424 70.833%,
166
+ 0.76859 75%, 0.84373 79.167%, 0.91191 83.333%, 0.96658 87.5%,
167
+ 1.0023 91.667%, 1.01466 95.833%, 1
168
+ );
169
+ --carousel-goo-duration: 0.95s; /* the card-plate clock — faster than the dot's 1.8s
170
+ (a card-plate morph is bigger, reads heavy sooner) yet still slow enough to dwell. */
171
+ --carousel-goo-max-stretch: 1.24; /* the plate swell — raised (1.16→1.24) for a more
172
+ decisive welling neck across the gap (JUDGE-2 §3: the merge read SUBTLE). Still
173
+ LOWER than the dot's 1.45 (a wide plate stretching 1.45 reads as taffy). */
174
+
175
+ /* --deck-goo-flow: the calmer presentation register — the SAME dwell shape with NO
176
+ terminal overshoot (a full-viewport slide must not bounce — the vestibular floor;
177
+ the curve clamps at 1.0, no >1 stops). */
178
+ --deck-goo-flow: linear(
179
+ 0, 0.02206 4.167%, 0.07922 8.333%, 0.15799 12.5%, 0.24486 16.667%,
180
+ 0.32632 20.833%, 0.38889 25%, 0.41905 29.167%, 0.43667 33.333%,
181
+ 0.4575 37.5%, 0.47833 41.667%, 0.49917 45.833%, 0.52 50%, 0.54083 54.167%,
182
+ 0.56167 58.333%, 0.58373 62.5%, 0.64 66.667%, 0.71 70.833%,
183
+ 0.78 75%, 0.85 79.167%, 0.91 83.333%, 0.96 87.5%,
184
+ 0.985 91.667%, 0.997 95.833%, 1
185
+ );
186
+ --deck-goo-duration: 1.1s; /* the full-viewport register — slow + dignified. */
187
+ --deck-goo-max-stretch: 1.1; /* the gentlest swell — a big slide necks barely. */
188
+
189
+ /* --pager-worm-flow: the dot-pip worm register (BD.W-PAGER-GOO-MORPH) — the SAME
190
+ geometry-law DWELL shape as the carousel/deck siblings (the metaball NECK held open
191
+ across the gap), with a gentle terminal overshoot (+1.5%, the bouncy LAND). Homed
192
+ HERE beside its goo-flow family (the curve-definition home — a `linear()` SHIPS in
193
+ the §2 EASING register, never serialized inline in the SFC) so the three goo-morph
194
+ dwell curves live as ONE charted family. NOT a normalized spring: `springLinearStops`
195
+ front-loads (reaches ~0.5 by ~6% REGARDLESS of ζ), so a `--spring-bouncy` would
196
+ collapse the neck in ~150ms; this dwell spreads `--worm-t`'s 0→1 across the REAL
197
+ 1.8s clock (the FAT NECK alive ~830ms — JUDGE-1 ≥700ms bar). */
198
+ --pager-worm-flow: linear(
199
+ 0, 0.02206 4.167%, 0.07922 8.333%, 0.15799 12.5%, 0.24486 16.667%,
200
+ 0.32632 20.833%, 0.38889 25%, 0.41905 29.167%, 0.43667 33.333%,
201
+ 0.4575 37.5%, 0.47833 41.667%, 0.49917 45.833%, 0.52 50%, 0.54083 54.167%,
202
+ 0.56167 58.333%, 0.58373 62.5%, 0.62943 66.667%, 0.69424 70.833%,
203
+ 0.76859 75%, 0.84373 79.167%, 0.91191 83.333%, 0.96658 87.5%,
204
+ 1.0023 91.667%, 1.01466 95.833%, 1
205
+ );
206
+ --pager-worm-duration: 1.8s; /* the dot's OWN clock — slow + weighty (motion-canon P4);
207
+ the flow above dwells across the whole clock so the neck is alive for ~1s. */
208
+ --pager-worm-max-stretch: 1.45; /* the velocity-swell — a VISIBLE liquid squish (the
209
+ worm narrows ≈1/1.45≈0.69× cross-axis at peak swell, on top of the floored pinch). */
210
+
211
+ /* Core cubic-bezier (exits, fallbacks, non-spring uses) */
212
+ --motion-ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
213
+ --motion-ease-out: cubic-bezier(0, 0, 0.2, 1);
214
+ --motion-ease-in: cubic-bezier(0.4, 0, 1, 1);
215
+ --motion-ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
216
+
217
+ --ease-standard: var(--motion-ease-standard);
218
+ --ease-out: var(--motion-ease-out);
219
+ --ease-in: var(--motion-ease-in);
220
+ --ease-out-expo: var(--motion-ease-out-expo);
221
+
222
+ /* Apple-inspired — micro-interactions, switches, dock hover */
223
+ --motion-ease-apple: cubic-bezier(0.25, 0.1, 0.25, 1);
224
+
225
+ --ease-apple: var(--motion-ease-apple);
226
+ --ease-spring: var(--spring-snappy);
227
+ --ease-decelerate: var(--ease-out);
228
+ --ease-accelerate: var(--ease-in);
229
+
230
+ /* BC.W-MOTION-PRESETS — the brand "convergence-reveal" / partial-sum settle.
231
+ The Fourier partial sum converges ONTO its target with a decaying Gibbs
232
+ ripple — a monotone critically-damped approach, NO sustained overshoot past
233
+ terminal. That curve IS `gentle` (ζ=1.0, overshoot 0), so this is the ALIAS
234
+ reuse: `--ease-convergence` resolves to `--spring-gentle` (no new
235
+ SPRING_PRESETS row, no second curve). The settle clock is the per-spring
236
+ `--spring-gentle-duration`. The N-term build-up is the `useStagger`
237
+ orchestration ON this curve (a documented recipe, not a new primitive). */
238
+ --ease-convergence: var(--spring-gentle);
239
+ }
@@ -41,13 +41,13 @@
41
41
  --scroll-cascade-range-end: 45%;
42
42
  --scroll-cascade-column-stagger: 60ms;
43
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). */
44
+ height is the Nvh temporal space the sticky stage advances its phases across.
45
+ The phase windows the stage's internal phases key off (grid-reveal 0..reveal-end,
46
+ expand reveal-end..expand-end, settle expand-end..100% — the Codrops phased-
47
+ sequence shape) live in scroll-choreography.css as the `-frac` numerators
48
+ (`--scroll-pin-phase-reveal-end-frac` 0.382 / `--scroll-pin-phase-expand-end-frac`
49
+ 0.9), the form the calc()s consume. */
48
50
  --scroll-pin-stage-height: 320vh;
49
- --scroll-pin-phase-reveal-end: 45%;
50
- --scroll-pin-phase-expand-end: 90%;
51
51
  --scroll-pin-lift: 2.5rem;
52
52
 
53
53
  /* TOP-LAYER (animations.css §TOP-LAYER). The `@starting-style` entry/exit
@@ -82,19 +82,19 @@
82
82
  both engine paths are timing-IDENTICAL: the FLIP fallback (via
83
83
  `--dock-motion-resize`), the native View-Transition group (its
84
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
85
+ (AU.W8.3) consume this same source curve. Retires the AQ.W6
86
86
  fork where the VT path ran `--vt-ease` (apple-spring, +27.5% overshoot)
87
87
  while the FLIP ran the snappy spring. `--vt-ease` still defaults the
88
88
  other VT recipes (`.gl-list-item`).
89
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. */
90
+ BD.W-DOCK-CORE — the WEIGHTY iOS-27 re-tune. `--spring-dock` is now the
91
+ slow inertial gooey-morph register: (0.56s, ζ=0.58), an audacious overshoot
92
+ ~+11% then a deliberate settle over the 0.6s analytic clock — the
93
+ liquid-weight law (collapse/expand + V↔H + fission all share it). The prior
94
+ tight (0.32, 0.7) near-critical snap (~+4.6%) is retired. The runtime
95
+ driver's DOCK_SPRING const DERIVES from the `dock` PRESETS row via
96
+ `springPreset("dock")` (the no-second-authority fence — ONE table row, the
97
+ CSS token + the JS-driven morph + the const all flow from it). */
98
98
  --dock-resize-spring: var(--spring-dock);
99
99
 
100
100
  /* AT.W7-dock-b — dock-control press micro-feedback spring. A TRANSFORM-ONLY