@mkbabb/glass-ui 4.0.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.
- package/README.md +3 -1
- package/dist/CardAction-CW7a0m8M.js +253 -0
- package/dist/{CommandShortcut-DdtWXxOK.js → CommandShortcut-DvZNQ_HF.js} +4 -4
- package/dist/ConfiguratorRow-BR4l-ixA.js +143 -0
- package/dist/{ContextMenuContent-ON3x7cuk.js → ContextMenuContent-uWnVxDab.js} +1 -1
- package/dist/{ContextMenuSubContent-B0Vs6atR.js → ContextMenuSubContent-xol4sD2q.js} +32 -37
- package/dist/{DataTable-C464Zbqd.js → DataTable-CuKwF7wr.js} +4 -4
- package/dist/{DialogContent-DDE6pQBU.js → DialogContent-DcKK8k9i.js} +5 -5
- package/dist/{DialogFooter-8eZbdmPc.js → DialogFooter-BZNX5aVr.js} +3 -3
- package/dist/{FadingScroll-DwNnvKMs.js → FadingScroll-DI6hQhT9.js} +1 -1
- package/dist/{HoverCardContent-DkMaQzH5.js → HoverCardContent-b2uaAMRR.js} +1 -1
- package/dist/{HoverPopover-Dpzwvc4t.js → HoverPopover-CbqbNwgU.js} +2 -2
- package/dist/{IconChip-BDw1j5mu.js → IconChip-BTD-nay5.js} +3 -2
- package/dist/{IconTooltip-DSjasZIt.js → IconTooltip-Bl8gFZ8d.js} +1 -1
- package/dist/{Input-DVG_J0ne.js → Input-h9v5LeXf.js} +1 -1
- package/dist/{MetricBadge-BpC0R_Ec.js → MetricBadge-RHdBP72w.js} +1 -1
- package/dist/Notification-VUwexFUf.js +43 -0
- package/dist/NumberFieldContent-Cq7EzX-U.js +138 -0
- package/dist/{PopoverContent-BTorlp--.js → PopoverContent-DL7E6vJP.js} +4 -4
- package/dist/{Progress-hAT4gqGH.js → Progress-DctG61iZ.js} +4 -4
- package/dist/{ScrollingText-CUVFTWk2.js → ScrollingText-yOpBzFYq.js} +2 -2
- package/dist/{SelectScrollDownButton-C1jb3b3K.js → SelectScrollDownButton-CrA8F0iV.js} +18 -19
- package/dist/Toaster-Bw4xR8xV.js +274 -0
- package/dist/{ToggleGroupItem-Dzk9hWsF.js → ToggleGroupItem-pEM9vIhs.js} +50 -37
- package/dist/{TooltipProvider-B3MkB_8P.js → TooltipProvider-rzvnXz60.js} +1 -1
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +8 -3
- package/dist/api/types-extra.d.ts +6 -0
- package/dist/aurora.js +885 -242
- package/dist/badge.js +1 -1
- package/dist/border-progress.d.ts +1 -0
- package/dist/border-progress.js +106 -0
- package/dist/{button-BNDWhAZb.js → button-DYCUa-tH.js} +71 -26
- package/dist/button.js +1 -1
- package/dist/canvas.js +2 -2
- package/dist/card.js +2 -2
- package/dist/carousel.js +93 -110
- package/dist/collapsible.js +1 -1
- package/dist/command.js +1 -1
- package/dist/compile-CQEFRTmx.js +19 -0
- package/dist/components/custom/aurora/composables/atoms-fields.d.ts +39 -0
- package/dist/components/custom/aurora/composables/auroraFallbackGround.d.ts +108 -0
- package/dist/components/custom/aurora/composables/runtime.d.ts +19 -0
- package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
- package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +51 -0
- package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +29 -0
- package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +2 -2
- package/dist/components/custom/aurora/constants/renderMode.d.ts +63 -12
- package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/oil-modes.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/procedural-color.wgsl.d.ts +4 -0
- package/dist/components/custom/aurora/index.d.ts +2 -1
- package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +46 -0
- package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +22 -0
- package/dist/components/custom/border-progress/constants.d.ts +59 -0
- package/dist/components/custom/border-progress/index.d.ts +4 -0
- package/dist/components/custom/concentric/Concentric.vue.d.ts +39 -0
- package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +11 -0
- package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +13 -0
- package/dist/components/custom/concentric/composables/ringField.d.ts +44 -0
- package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +13 -0
- package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
- package/dist/components/custom/concentric/constants.d.ts +43 -0
- package/dist/components/custom/concentric/index.d.ts +5 -0
- package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +4 -0
- package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -0
- package/dist/components/custom/dock/DockIconButton.vue.d.ts +13 -4
- package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
- package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +75 -0
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
- package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +38 -0
- package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +41 -0
- package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +24 -0
- package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +34 -0
- package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +18 -0
- package/dist/components/custom/dot-flow-field/constants.d.ts +48 -0
- package/dist/components/custom/dot-flow-field/index.d.ts +5 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +20 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -0
- package/dist/components/custom/easing/EasingConfigurator.vue.d.ts +33 -0
- package/dist/components/custom/easing/EasingPicker.vue.d.ts +49 -0
- package/dist/components/custom/easing/composables/useEasingPicker.d.ts +75 -0
- package/dist/components/custom/easing/constants.d.ts +28 -0
- package/dist/components/custom/easing/index.d.ts +3 -0
- package/dist/components/custom/fourier-field/FourierField.vue.d.ts +12 -2
- package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +39 -0
- package/dist/components/custom/fourier-field/constants.d.ts +7 -0
- package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +1 -1
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +4 -2
- package/dist/components/custom/goo-blob/composables/uniformBridgeWGPU.d.ts +24 -0
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +18 -11
- package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
- package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
- package/dist/components/custom/handmark/HandMark.vue.d.ts +1 -1
- package/dist/components/custom/icon-chip/types.d.ts +11 -1
- package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +3 -1
- package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
- package/dist/components/custom/spa-view/SpaView.vue.d.ts +50 -0
- package/dist/components/custom/spa-view/index.d.ts +2 -0
- package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +10 -0
- package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +1 -1
- package/dist/components/ui/_shared/menuItemVariants.d.ts +1 -1
- package/dist/components/ui/badge/index.d.ts +1 -1
- package/dist/components/ui/button/Button.vue.d.ts +5 -2
- package/dist/components/ui/button/index.d.ts +2 -2
- package/dist/components/ui/card/Card.vue.d.ts +34 -4
- package/dist/components/ui/card/CardHeader.vue.d.ts +42 -16
- package/dist/components/ui/card/ScrollCard.vue.d.ts +33 -0
- package/dist/components/ui/card/ScrollCardHeader.vue.d.ts +17 -0
- package/dist/components/ui/card/index.d.ts +2 -0
- package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
- package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
- package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +2 -2
- package/dist/components/ui/command/Command.vue.d.ts +1 -1
- package/dist/components/ui/drawer/Drawer.vue.d.ts +46 -33
- package/dist/components/ui/drawer/DrawerContent.vue.d.ts +7 -8
- package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +2 -2
- package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +1 -1
- package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +2 -2
- package/dist/components/ui/drawer/composables/drawerSnapContext.d.ts +26 -0
- package/dist/components/ui/drawer/composables/useDrawerSnap.d.ts +17 -0
- package/dist/components/ui/drawer/constants.d.ts +45 -0
- package/dist/components/ui/drawer/index.d.ts +23 -15
- package/dist/components/ui/focus-scope/FocusScope.vue.d.ts +20 -0
- package/dist/components/ui/focus-scope/index.d.ts +2 -0
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
- package/dist/components/ui/select/SelectContent.vue.d.ts +1 -1
- package/dist/components/ui/sheet/index.d.ts +1 -1
- package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
- package/dist/components/ui/toast/Toast.vue.d.ts +5 -2
- package/dist/components/ui/toast/use-toast.d.ts +14 -0
- package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
- package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +13 -6
- package/dist/composables/glass/index.d.ts +5 -2
- package/dist/composables/glass/useSpecularPointer.d.ts +33 -0
- package/dist/composables/glass/useSpecularTracking.d.ts +20 -0
- package/dist/composables/glass/vSpecular.d.ts +2 -0
- package/dist/composables/glass/webgl/shaders/flow.glsl.d.ts +1 -0
- package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +16 -0
- package/dist/composables/glass/webgpu/index.d.ts +2 -0
- package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +54 -0
- package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +84 -0
- package/dist/composables/motion/core/index.d.ts +1 -0
- package/dist/composables/motion/index.d.ts +4 -0
- package/dist/composables/motion/useDockCtaReceive.d.ts +59 -0
- package/dist/composables/motion/useDragMorph.d.ts +77 -0
- package/dist/composables/motion/useLiquidFlex.d.ts +11 -0
- package/dist/composables/motion/useLiquidPress.d.ts +71 -0
- package/dist/composables/motion/useLiquidReveal.d.ts +51 -0
- package/dist/composables/motion/useNumericTransition.d.ts +3 -3
- package/dist/composables/motion/usePointerVelocityField.d.ts +98 -0
- package/dist/concentric.d.ts +1 -0
- package/dist/concentric.js +562 -0
- package/dist/configurator.js +3 -2
- package/dist/confirm-dialog.js +22 -24
- package/dist/constellation.js +11 -11
- package/dist/context-menu.js +3 -3
- package/dist/controls.js +1 -1
- package/dist/createCanvasLifecycle-CHD5XrDW.js +82 -0
- package/dist/data-table.js +1 -1
- package/dist/dialog.js +2 -2
- package/dist/dock.js +564 -457
- package/dist/{dockContext-Bu1Avy-a.js → dockContext-BNfyPLe9.js} +1 -1
- package/dist/dom.js +5 -5
- package/dist/dot-flow-field.d.ts +1 -0
- package/dist/dot-flow-field.js +604 -0
- package/dist/drawer.d.ts +1 -0
- package/dist/drawer.js +380 -0
- package/dist/{dropdown-menu-BJ7E9js_.js → dropdown-menu-CofSZuk8.js} +14 -15
- package/dist/dropdown-menu.js +1 -1
- package/dist/easing.d.ts +1 -0
- package/dist/easing.js +463 -0
- package/dist/expandable-container.js +7 -4
- package/dist/fading-scroll.js +1 -1
- package/dist/focus-scope.d.ts +1 -0
- package/dist/focus-scope.js +23 -0
- package/dist/forms.js +7 -7
- package/dist/fourier-field.js +128 -116
- package/dist/fourier-math.js +1 -1
- package/dist/glass-panel.js +2 -2
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +149 -341
- package/dist/goo-blob.js +830 -224
- package/dist/handmark.js +2 -2
- package/dist/header-ribbon.js +1 -1
- package/dist/hover-card.js +1 -1
- package/dist/hover-popover.js +1 -1
- package/dist/icon-chip.js +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/instrument-chassis.js +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +6 -6
- package/dist/metric-badge.js +1 -1
- package/dist/metric-cell.js +1 -1
- package/dist/metric-stack.js +4 -8
- package/dist/motion-core.js +36 -36
- package/dist/motion-curves.js +1 -1
- package/dist/motion.js +157 -55
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/pager-dots.js +1 -1
- package/dist/paper-backdrop.js +1 -1
- package/dist/popover.js +1 -1
- package/dist/{compile-EXXzEr1q.js → procedural-color.glsl-CIFsJhwI.js} +1 -155
- package/dist/procedural-color.wgsl-CToRHugY.js +224 -0
- package/dist/progress.js +1 -1
- package/dist/pulse.js +1 -1
- package/dist/reactive.js +2 -2
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +9 -11
- package/dist/select.js +3 -3
- package/dist/separator.js +1 -1
- package/dist/{sheet-CquRYOAw.js → sheet-tZMg0E0w.js} +5 -5
- package/dist/sheet.js +1 -1
- package/dist/{slider-DQ95MET2.js → slider-DVb4HXU-.js} +3 -3
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +3 -3
- package/dist/spa-view.d.ts +1 -0
- package/dist/spa-view.js +46 -0
- package/dist/styles/animations.css +33 -9
- package/dist/styles/border-progress.css +109 -0
- package/dist/styles/cards.css +76 -0
- package/dist/styles/components.css +1 -1
- package/dist/styles/critical-partition.mjs +140 -0
- package/dist/styles/critical.css +12 -0
- package/dist/styles/deferred.css +31 -0
- package/dist/styles/dock/density.css +45 -0
- package/dist/styles/dock/layers.css +54 -30
- package/dist/styles/dock/morph.css +124 -7
- package/dist/styles/dock/overflow.css +16 -2
- package/dist/styles/dock/shell.css +54 -16
- package/dist/styles/dock.css +32 -0
- package/dist/styles/drawer.css +81 -35
- package/dist/styles/glass/deep.css +44 -0
- package/dist/styles/glass/ladder.css +87 -31
- package/dist/styles/glass/material.css +78 -15
- package/dist/styles/glass/reveal.css +136 -0
- package/dist/styles/glass/rim.css +100 -0
- package/dist/styles/glass/surfaces.css +101 -3
- package/dist/styles/glass-refract.css +96 -44
- package/dist/styles/glass-specular-track.css +7 -0
- package/dist/styles/glass.css +3 -0
- package/dist/styles/hover-popover.css +7 -6
- package/dist/styles/icon-chip.css +77 -15
- package/dist/styles/index.css +21 -9
- package/dist/styles/instrument-chassis.css +66 -3
- package/dist/styles/scroll-choreography.css +300 -0
- package/dist/styles/segmented-tabs.css +31 -0
- package/dist/styles/theme/bridges.css +11 -0
- package/dist/styles/theme/literals.css +11 -2
- package/dist/styles/theme/radius.css +6 -1
- package/dist/styles/tokens/dark-arm.css +98 -26
- package/dist/styles/tokens/glass-deep.css +75 -0
- package/dist/styles/tokens/glass-fx.css +333 -0
- package/dist/styles/tokens/glass.css +39 -319
- package/dist/styles/tokens/light-dark.css +15 -2
- package/dist/styles/tokens/offsets.css +116 -0
- package/dist/styles/tokens/on-glass-fg.css +39 -0
- package/dist/styles/tokens/property-regs.css +127 -0
- package/dist/styles/tokens/scale-paper.css +117 -89
- package/dist/styles/tokens/scheme-motion.css +70 -32
- package/dist/styles/tokens/scroll-tokens.css +123 -0
- package/dist/styles/tokens/{offsets-sizing.css → sizing.css} +37 -100
- package/dist/styles/tokens.css +9 -3
- package/dist/styles/typography/semantic.css +8 -8
- package/dist/styles/typography/utilities.css +22 -7
- package/dist/styles/utilities/animate.css +27 -24
- package/dist/styles/utilities/base-misc.css +255 -0
- package/dist/styles/utilities/base.css +47 -261
- package/dist/styles/utilities/btn.css +3 -1
- package/dist/styles/utilities/metal.css +189 -0
- package/dist/styles/utilities.css +14 -7
- package/dist/switch.js +1 -1
- package/dist/tabs.js +220 -107
- package/dist/timeline.js +2 -2
- package/dist/toast.js +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/useCanvas2D-B8w_E3Rr.js +83 -0
- package/dist/useConfiguratorState-DNlOh6c8.js +161 -0
- package/dist/useDragMorph-DgxnsVJz.js +102 -0
- package/dist/useLiquidPress-kfb4KX79.js +39 -0
- package/dist/usePointerVelocityField-JbRd5CrM.js +137 -0
- package/dist/useSpring-C0jyvEJB.js +40 -0
- package/dist/useSpringMount-q1amq1SJ.js +71 -0
- package/dist/useSpringPress-BsqPr7FJ.js +34 -0
- package/dist/{useTouchGate-28Tk2-t2.js → useTouchGate-CBZTD4SD.js} +1 -1
- package/dist/vSpecular-CQFmLNzA.js +68 -0
- package/dist/vendor-CKmzio-i.js +226 -0
- package/dist/watercolor-dot.js +2 -2
- package/package.json +126 -22
- package/src/styles/animations.css +33 -9
- package/src/styles/border-progress.css +109 -0
- package/src/styles/cards.css +76 -0
- package/src/styles/critical-partition.mjs +140 -0
- package/src/styles/dock/density.css +45 -0
- package/src/styles/dock/layers.css +54 -30
- package/src/styles/dock/morph.css +124 -7
- package/src/styles/dock/overflow.css +16 -2
- package/src/styles/dock/shell.css +54 -16
- package/src/styles/dock.css +32 -0
- package/src/styles/drawer.css +81 -35
- package/src/styles/glass/deep.css +44 -0
- package/src/styles/glass/ladder.css +87 -31
- package/src/styles/glass/material.css +78 -15
- package/src/styles/glass/reveal.css +136 -0
- package/src/styles/glass/rim.css +100 -0
- package/src/styles/glass/surfaces.css +101 -3
- package/src/styles/glass-refract.css +96 -44
- package/src/styles/glass-specular-track.css +7 -0
- package/src/styles/glass.css +3 -0
- package/src/styles/hover-popover.css +7 -6
- package/src/styles/icon-chip.css +77 -15
- package/src/styles/index.css +12 -0
- package/src/styles/instrument-chassis.css +66 -3
- package/src/styles/scroll-choreography.css +300 -0
- package/src/styles/segmented-tabs.css +31 -0
- package/src/styles/theme/bridges.css +11 -0
- package/src/styles/theme/literals.css +11 -2
- package/src/styles/theme/radius.css +6 -1
- package/src/styles/tokens/dark-arm.css +98 -26
- package/src/styles/tokens/glass-deep.css +75 -0
- package/src/styles/tokens/glass-fx.css +333 -0
- package/src/styles/tokens/glass.css +39 -319
- package/src/styles/tokens/light-dark.css +15 -2
- package/src/styles/tokens/offsets.css +116 -0
- package/src/styles/tokens/on-glass-fg.css +39 -0
- package/src/styles/tokens/property-regs.css +127 -0
- package/src/styles/tokens/scale-paper.css +117 -89
- package/src/styles/tokens/scheme-motion.css +70 -32
- package/src/styles/tokens/scroll-tokens.css +123 -0
- package/src/styles/tokens/{offsets-sizing.css → sizing.css} +37 -100
- package/src/styles/tokens.css +9 -3
- package/src/styles/typography/semantic.css +8 -8
- package/src/styles/typography/utilities.css +22 -7
- package/src/styles/utilities/animate.css +27 -24
- package/src/styles/utilities/base-misc.css +255 -0
- package/src/styles/utilities/base.css +47 -261
- package/src/styles/utilities/btn.css +3 -1
- package/src/styles/utilities/metal.css +189 -0
- package/src/styles/utilities.css +14 -7
- package/dist/CardAction-XH4YBVEK.js +0 -158
- package/dist/Notification-DKjKsQq8.js +0 -100
- package/dist/NumberFieldContent-1VtwDSgf.js +0 -145
- package/dist/Toaster-Bm_HQSpc.js +0 -263
- package/dist/check-njhk-vfu.js +0 -7
- package/dist/chevron-down-DKkxb4VV.js +0 -7
- package/dist/chevron-right-CPXbqQQz.js +0 -7
- package/dist/chevron-up-n_24SqI-.js +0 -7
- package/dist/createLucideIcon-DydS2qgk.js +0 -43
- package/dist/minimize-2-BV31Ob_h.js +0 -38
- package/dist/search-BSGrf2Sk.js +0 -12
- package/dist/useCanvas2D-ClrQuZtp.js +0 -96
- package/dist/useConfiguratorState-kiIlun8I.js +0 -303
- package/dist/useSpecularTracking-Bo5su68i.js +0 -32
- package/dist/useSpringMount-CvopqiFr.js +0 -108
- package/dist/useViewTransition-COsPjQVZ.js +0 -47
- package/dist/x-BUwTKe50.js +0 -10
- /package/dist/{CollapsibleContent-C_s6fG7r.js → CollapsibleContent-68dEXIAl.js} +0 -0
- /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-Bx0F_q5g.js} +0 -0
- /package/dist/{Label-Ck9SWEKM.js → Label-C2ejNWeC.js} +0 -0
- /package/dist/{ModalOverlay-CkPRRgl_.js → ModalOverlay-D1VrWyoi.js} +0 -0
- /package/dist/{PaperBackdrop-nBKe0vkB.js → PaperBackdrop-Vf3tlpvd.js} +0 -0
- /package/dist/{SelectGroup-Dcczq44n.js → SelectGroup-DwwjicPY.js} +0 -0
- /package/dist/{SelectSeparator-DK2y1Bun.js → SelectSeparator-DXswVdRz.js} +0 -0
- /package/dist/{Separator-BArl4OaB.js → Separator-pKF0oA4M.js} +0 -0
- /package/dist/{Switch-Dr--uLGH.js → Switch-CwYNf8bo.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-CBt_VvXa.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
- /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
- /package/dist/{createContext-B2RaZ-b8.js → createContext-CpBNTRMI.js} +0 -0
- /package/dist/{math-DeuJwLFx.js → math-BINYmg5z.js} +0 -0
- /package/dist/{menuItemVariants-DWRQXBxJ.js → menuItemVariants-D8VNHq22.js} +0 -0
- /package/dist/{prng-Cg22zv8g.js → prng-Za0Rmgag.js} +0 -0
- /package/dist/{resolveCanvasColor-BBiYfp8g.js → resolveCanvasColor-CUyHr5Uu.js} +0 -0
- /package/dist/{springPresets-WXaLbu8u.js → springPresets-CFQGQfdl.js} +0 -0
- /package/dist/{useAnimatedNumber-C_3wZLx4.js → useAnimatedNumber-BfUq2bUM.js} +0 -0
- /package/dist/{useInterval-CNdua40W.js → useInterval-CvK1mL92.js} +0 -0
- /package/dist/{useLiquidFlex-C12hXwOZ.js → useLiquidFlex-mZPMiNXh.js} +0 -0
- /package/dist/{useRAFLoop-CdwJ7284.js → useRAFLoop-UYa4zoiN.js} +0 -0
- /package/dist/{useResizeObserver-V6nq5gJb.js → useResizeObserver-Bpoi7tRE.js} +0 -0
- /package/dist/{useResolveTokenColor-NUG2zYAW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
- /package/dist/{useSortable-BVqlJRBR.js → useSortable-DHjtZSEd.js} +0 -0
- /package/dist/{useSurfaceAxis-CMnF2zHb.js → useSurfaceAxis-g0NloYEF.js} +0 -0
- /package/dist/{useTextHighlight-NmBM5V_4.js → useTextHighlight-CWEi25hf.js} +0 -0
- /package/dist/{useTimer-B_PAasDL.js → useTimer-BHJOKr35.js} +0 -0
- /package/dist/{useUserInvalidAria-CDfJuakL.js → useUserInvalidAria-y5namzeE.js} +0 -0
- /package/dist/{useViewportReady-CvBcCYDf.js → useViewportReady-anbac3m6.js} +0 -0
- /package/dist/{vReveal-D9k0jADx.js → vReveal-Czsb7zQC.js} +0 -0
|
@@ -41,6 +41,21 @@
|
|
|
41
41
|
initial-value: 0%;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
+
/* BB.W-BORDER-PROGRESS — the masked-conic BORDER ring's sweep fill. The conic
|
|
45
|
+
gradient (border-progress.css) reads `--border-progress-fill` as the swept
|
|
46
|
+
extent (`conic-gradient(…, transparent var(--border-progress-fill), …)`), so a
|
|
47
|
+
determinate progress INTERPOLATES the border ring (a bare unregistered var()
|
|
48
|
+
snaps the sweep; the registered typed <percentage> lets the engine animate the
|
|
49
|
+
gradient stop). `inherits: false` — each ring owns its own fill (the per-surface
|
|
50
|
+
ownership the specular cohort uses; a ringed parent must not push its fill onto a
|
|
51
|
+
child). `initial-value: 0%` is the safe resting ring (the unregistered fallback
|
|
52
|
+
paints it; the cross-fade collapses to it on a non-supporting engine). */
|
|
53
|
+
@property --border-progress-fill {
|
|
54
|
+
syntax: "<percentage>";
|
|
55
|
+
inherits: false;
|
|
56
|
+
initial-value: 0%;
|
|
57
|
+
}
|
|
58
|
+
|
|
44
59
|
@property --phase-tint-amount {
|
|
45
60
|
syntax: "<percentage>";
|
|
46
61
|
inherits: true;
|
|
@@ -91,6 +106,71 @@
|
|
|
91
106
|
initial-value: 0;
|
|
92
107
|
}
|
|
93
108
|
|
|
109
|
+
/* BB.W-LENSING — the per-surface EDGE-glint angle channel. `--specular-angle` is
|
|
110
|
+
the pointer angle-from-center the edge-glint conic sweep reads (material.css);
|
|
111
|
+
`useSpecularPointer` writes it (the angle feed). `inherits: false` — the
|
|
112
|
+
per-element ownership discipline of the specular cohort above (each pseudo owns
|
|
113
|
+
its typed value; a parent's angle must never bleed into a child glass surface).
|
|
114
|
+
`initial-value: 0deg` is the static rest position (the rim glint sits top when
|
|
115
|
+
unwired — no ambient drift, no blowout). */
|
|
116
|
+
@property --specular-angle {
|
|
117
|
+
syntax: "<angle>";
|
|
118
|
+
inherits: false;
|
|
119
|
+
initial-value: 0deg;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/* BB.W-LENSING `--glass-refract` axis — RETIRED (DDR-LENS-BAKE, glass-refract.css).
|
|
123
|
+
The axis drove the `feDisplacementMap` `scale` by splicing `var(--glass-refract)`
|
|
124
|
+
between a head/tail `url()` pair. That construction never parsed as a
|
|
125
|
+
`backdrop-filter` (it emitted three tokens, not one url) AND broke consumer bundlers
|
|
126
|
+
(the tail `url("'…")` mis-resolved as a file path); a CSS url() string token cannot
|
|
127
|
+
carry a substituted `var()`, so a dynamic `scale` inside the mandatory single
|
|
128
|
+
self-contained data-URI is structurally impossible. The `scale` is now BAKED at 28
|
|
129
|
+
(the resting bend, byte-identical) — no axis, no `@property` reg. */
|
|
130
|
+
|
|
131
|
+
/* BB.W-GLASS-ACCENT — the THIRD disjoint glass axis: the per-INSTANCE
|
|
132
|
+
CHROMATIC-RIM tint. `--glass-accent` is a complete `<color>` (a consumer DATA
|
|
133
|
+
hue) that OKLab-tints a glass surface's RIM (the `--glass-material-rim` inset
|
|
134
|
+
ring + the per-rung `--glass-border-*`) and the `::before` specular catch-light
|
|
135
|
+
CORE — so the §F1 data-keyed colored hover (a chart cell whose surface glows
|
|
136
|
+
with that datum's series hue) is a ONE-LINE seam (`--glass-accent: <hue>;
|
|
137
|
+
--glass-accent-strength: <N%>` on the instance), not a hand-threaded
|
|
138
|
+
`border-color` + inline catch-light per consumer.
|
|
139
|
+
|
|
140
|
+
DISTINCT-not-fork of W55's `--glass-tint-source` (the WHOLE-PLATE BACKGROUND
|
|
141
|
+
legibility darken toward `--glass-tint-ink`): the accent is the RIM+GLINT
|
|
142
|
+
chromatic DECORATION axis (toward a consumer DATA hue, per-instance), it NEVER
|
|
143
|
+
writes the W55 cohort and NEVER tints the plate background. Three disjoint glass
|
|
144
|
+
axes: LEVEL (opacity+blur, AX.W54) · TINT (whole-plate legibility, W55) · ACCENT
|
|
145
|
+
(per-instance chromatic rim+glint, this wave).
|
|
146
|
+
|
|
147
|
+
• --glass-accent (<color>) — the consumer data hue. `inherits: true` (the
|
|
148
|
+
`--glass-level`-style cascading scalar — a host sets it on an ancestor to tint
|
|
149
|
+
a sub-tree; a consumer sets it per-INSTANCE on the surface). `initial-value:
|
|
150
|
+
transparent` is the NEUTRAL IDENTITY: a `color-mix(in oklab, X, transparent N)`
|
|
151
|
+
is byte-identical X at the resting end, so an UNSET surface paints exactly
|
|
152
|
+
today's warm-ink rim + warm-cream catch-light (the W2 neutral-fallback floor).
|
|
153
|
+
|
|
154
|
+
• --glass-accent-strength (<percentage>) — the bounded knob. `inherits: true`
|
|
155
|
+
(rides the accent down the same sub-tree). `initial-value: 0%` so the mix is a
|
|
156
|
+
provable no-op when unset (`color-mix(in oklab, X, <accent> 0%)` === X). The
|
|
157
|
+
consumer-set ceiling is a WHISPER at the rim, not a flooded plate — the demo
|
|
158
|
+
specimens engage ~40-55% (the rim/glint reads the hue while the warm-cream core
|
|
159
|
+
+ the AA legibility survive; the `--glass-tint-strength-aa` ≤24% bounding
|
|
160
|
+
precedent, lifted here because the accent rides the THIN rim/glint not the
|
|
161
|
+
whole plate). A malformed override CLAMPS to 0% (the typed fail-safe). */
|
|
162
|
+
@property --glass-accent {
|
|
163
|
+
syntax: "<color>";
|
|
164
|
+
inherits: true;
|
|
165
|
+
initial-value: transparent;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
@property --glass-accent-strength {
|
|
169
|
+
syntax: "<percentage>";
|
|
170
|
+
inherits: true;
|
|
171
|
+
initial-value: 0%;
|
|
172
|
+
}
|
|
173
|
+
|
|
94
174
|
/* AX.W54 — the GLASS-FIRST single knob. `--glass-level` is the ONE clarity
|
|
95
175
|
scalar threaded through BOTH glass ladders at their single sites (the
|
|
96
176
|
`--glass-bg-*` opacity recipe + the `--glass-blur-*` radii). It is a typed,
|
|
@@ -114,6 +194,27 @@
|
|
|
114
194
|
initial-value: 1;
|
|
115
195
|
}
|
|
116
196
|
|
|
197
|
+
/* BB.W-DEEP-GLASS — the OPT-IN deep-glass DEPTH scalar. `--glass-depth` is the
|
|
198
|
+
`--glass-level` TWIN for the deep tier: a typed INHERITING <number> so a host
|
|
199
|
+
sets it on any ancestor to retune the deep tier's depth (the cascading-scalar
|
|
200
|
+
idiom, distinct from the per-element `inherits: false` specular cohort). The
|
|
201
|
+
deep recipe (tokens/glass-deep.css) LERPs both the blur radius AND the saturate
|
|
202
|
+
between the calm `floating` endpoint (depth 0 ≡ the calm ceiling) and the Apple-
|
|
203
|
+
deep endpoint (depth 1 ≡ saturate 1.5 / blur 16px), so the deep blur is
|
|
204
|
+
`--glass-depth`-DRIVEN (the D1 axis assert — never a baked literal) and animates
|
|
205
|
+
smoothly. `initial-value: 1` is the resting deep magnitude: a `.glass-deep`
|
|
206
|
+
surface paints at the full Apple-deep register by default; a consumer dials
|
|
207
|
+
`--glass-depth: 0.5` to land it half-way to the calm floating rung. SEPARATE
|
|
208
|
+
from `--glass-level` (opacity+blur clarity), `--glass-tint-*` (legibility), and
|
|
209
|
+
`--glass-refract` (lens displacement) — the disjoint depth axis. The deep tier
|
|
210
|
+
COMPOSES `--glass-level` too (the deep blur scales it), so the opaque escape +
|
|
211
|
+
the a11y brackets reach the deep plate through the ONE level path. */
|
|
212
|
+
@property --glass-depth {
|
|
213
|
+
syntax: "<number>";
|
|
214
|
+
inherits: true;
|
|
215
|
+
initial-value: 1;
|
|
216
|
+
}
|
|
217
|
+
|
|
117
218
|
/* AX.W51 D18 — the master comfortable-sizing scalar registered typed. The
|
|
118
219
|
`<number>` syntax guarantees `calc(<base> * var(--ui-scale))` is always valid (a
|
|
119
220
|
malformed override CLAMPS to the initial value 1, not an invalidated calc — the
|
|
@@ -152,6 +253,13 @@
|
|
|
152
253
|
--glass-specular-intensity-rest: 0;
|
|
153
254
|
--glass-specular-intensity-hover: 0.1;
|
|
154
255
|
--glass-specular-intensity-active: 0.16;
|
|
256
|
+
/* BB.W-BUTTON-GLASS (d) — the BUTTON-SCOPED hover gleam bump. The lit glass
|
|
257
|
+
button should read a notch brighter at the grazing edge than the global
|
|
258
|
+
hover whisper (0.10). `.btn-glass` re-points its own
|
|
259
|
+
`--glass-specular-intensity-hover` to this knob (surfaces.css), so ONLY the
|
|
260
|
+
button lifts — the global cohort above is UNTOUCHED. A consumer retints the
|
|
261
|
+
button gleam from this ONE override. */
|
|
262
|
+
--glass-specular-btn-hover: 0.14;
|
|
155
263
|
}
|
|
156
264
|
|
|
157
265
|
/* Over the deep canvas `plus-lighter` still lifts, so the dark arm runs a touch
|
|
@@ -159,4 +267,23 @@
|
|
|
159
267
|
.dark {
|
|
160
268
|
--glass-specular-intensity-hover: 0.08;
|
|
161
269
|
--glass-specular-intensity-active: 0.12;
|
|
270
|
+
/* The button bump rides a touch softer in dark too (the dark hover is 0.08;
|
|
271
|
+
the button reads ~0.11, still a notch above the global whisper). */
|
|
272
|
+
--glass-specular-btn-hover: 0.11;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/* BB.W-BUTTON-GLASS (b)/(e) — the press DRIVE scalar. ONE typed 0..1 custom
|
|
276
|
+
property Button.vue writes off the `useSpringPress` spring (0 released → 1
|
|
277
|
+
pressed, with the ~5% overshoot the spring carries). It is the SINGLE drive the
|
|
278
|
+
press SQUISH (the `useLiquidFlex` reciprocal X/Y deform), the coupled specular/
|
|
279
|
+
brightness lift, and the optional `.glass-refract` lens-swell all read — the "one
|
|
280
|
+
drive, the glass deforms under press" read. Registered typed so a `transition`/
|
|
281
|
+
downstream `calc()` interpolates the VALUE (number), not the text. `inherits:
|
|
282
|
+
true` so the host-written value reaches the `.glass-material::before` pseudo +
|
|
283
|
+
the coupled rules. `initial-value: 0` so an unwired/SSR button is the static
|
|
284
|
+
rest frame (the no-JS CSS `.tap-squish` scale floor still presses). */
|
|
285
|
+
@property --glass-btn-press-t {
|
|
286
|
+
syntax: "<number>";
|
|
287
|
+
inherits: true;
|
|
288
|
+
initial-value: 0;
|
|
162
289
|
}
|
|
@@ -67,6 +67,20 @@
|
|
|
67
67
|
0 0 8px color-mix(in srgb, var(--ring) 15%, transparent);
|
|
68
68
|
--focus-ring: var(--focus-ring-shadow);
|
|
69
69
|
|
|
70
|
+
/* BB.W-INVALID-RING — the destructive twin of --focus-ring-shadow. The
|
|
71
|
+
aria-invalid ring is ONE register: every form control (Input/Textarea/
|
|
72
|
+
NumberField via `.input-pill`, SelectTrigger, ComboboxInput, TagsInput)
|
|
73
|
+
reads `box-shadow: var(--invalid-ring)` instead of re-spelling the recipe
|
|
74
|
+
inline. ONE geometry (the SAME `--focus-ring-width`), ONE tint knob
|
|
75
|
+
(`--invalid-ring-tint`, the documented retint axis), resolving
|
|
76
|
+
`var(--destructive)` so a dark `--destructive` re-anchor flows through. A
|
|
77
|
+
consumer retints every invalid ring library-wide from a single
|
|
78
|
+
`:root { --invalid-ring-tint: … }` override — the token-first axis
|
|
79
|
+
`--focus-ring-shadow` already grants the focus ring. */
|
|
80
|
+
--invalid-ring-tint: 35%;
|
|
81
|
+
--invalid-ring: 0 0 0 var(--focus-ring-width)
|
|
82
|
+
color-mix(in srgb, var(--destructive) var(--invalid-ring-tint), transparent);
|
|
83
|
+
|
|
70
84
|
/* ═══════════════════════════════════════════════
|
|
71
85
|
§12 PAPER TEXTURES
|
|
72
86
|
═══════════════════════════════════════════════ */
|
|
@@ -80,6 +94,45 @@
|
|
|
80
94
|
--paper-clean-texture: url("data:image/svg+xml,%3Csvg width='200' height='200' viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
|
|
81
95
|
--paper-aged-texture: url("data:image/svg+xml,%3Csvg width='200' height='200' viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.5' numOctaves='5' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E");
|
|
82
96
|
|
|
97
|
+
/* BB.W-PAPER-GRID-TEXTURE — the GEOMETRIC half of the paper-cascade, the
|
|
98
|
+
peer of the organic turbulence above. Where `--paper-*-texture` are
|
|
99
|
+
feTurbulence grain fields, this is a two-frequency engineering-paper
|
|
100
|
+
grid: a 32px MINOR cell + a 128px MAJOR rule (the 4×-major blueprint
|
|
101
|
+
vocabulary the demo `.story-bg-grid` speaks, re-expressed as a library
|
|
102
|
+
token so a document-register card can opt its INTERIOR ground into the
|
|
103
|
+
line-field, not only the page margin). Unlike the organic SVG textures
|
|
104
|
+
(a baked-at-parse `opacity` URI), the grid is a STATIC `background-image`
|
|
105
|
+
gradient-STACK — a one-time compositor-cached paint, NEVER a per-frame
|
|
106
|
+
repaint. The line INK reads a `color-mix(… var(--foreground) N%, …)` so
|
|
107
|
+
it composes against the warm ink identity and re-tints with `--foreground`
|
|
108
|
+
in lockstep — never a hardcoded `hsl()` (the no-gray / token-first
|
|
109
|
+
floor). The ambient through-card strength is the ONE knob
|
|
110
|
+
`--paper-grid-opacity` (~0.08, the ask's "felt THROUGH the card ~0.08"):
|
|
111
|
+
the MINOR line ink scales off it directly and the MAJOR rule rides
|
|
112
|
+
`* 1.6` (the demo's 7%→12% engineering-paper weight step), so a consumer
|
|
113
|
+
retunes the whole grid from the single strength knob. (The strength lives
|
|
114
|
+
in the ink alpha, not a layer `opacity`, because the utility paints the
|
|
115
|
+
grid on the card's HOST `background-image` to avoid the two-pseudo-budget
|
|
116
|
+
contention with the grain `::after` / specular `::before` — see
|
|
117
|
+
cards.css.) */
|
|
118
|
+
--paper-grid-opacity: 0.08;
|
|
119
|
+
--paper-grid-texture-size: 32px;
|
|
120
|
+
--paper-grid-line: color-mix(
|
|
121
|
+
in srgb,
|
|
122
|
+
var(--foreground) calc(var(--paper-grid-opacity) * 100%),
|
|
123
|
+
transparent
|
|
124
|
+
);
|
|
125
|
+
--paper-grid-line-major: color-mix(
|
|
126
|
+
in srgb,
|
|
127
|
+
var(--foreground) calc(var(--paper-grid-opacity) * 160%),
|
|
128
|
+
transparent
|
|
129
|
+
);
|
|
130
|
+
--paper-grid-texture:
|
|
131
|
+
linear-gradient(to right, var(--paper-grid-line-major) 1px, transparent 1px),
|
|
132
|
+
linear-gradient(to bottom, var(--paper-grid-line-major) 1px, transparent 1px),
|
|
133
|
+
linear-gradient(to right, var(--paper-grid-line) 1px, transparent 1px),
|
|
134
|
+
linear-gradient(to bottom, var(--paper-grid-line) 1px, transparent 1px);
|
|
135
|
+
|
|
83
136
|
/* ═══════════════════════════════════════════════
|
|
84
137
|
§13 GOLD (accent family kept for consumers using it)
|
|
85
138
|
═══════════════════════════════════════════════ */
|
|
@@ -130,6 +183,38 @@
|
|
|
130
183
|
--color-silver-dark: var(--silver-dark);
|
|
131
184
|
--color-silver-deep: var(--silver-deep);
|
|
132
185
|
|
|
186
|
+
/* ═══════════════════════════════════════════════
|
|
187
|
+
§13c BRONZE (the THIRD brand-metal — BB.W-METAL-SHIMMER)
|
|
188
|
+
═══════════════════════════════════════════════ */
|
|
189
|
+
/* The warm-brown patina quad — the third member of the gold·silver·bronze
|
|
190
|
+
brand-metal TRIAD (the medal triad, the gilt/aged "third place" figure, the
|
|
191
|
+
record-badge register). Gold (warm-yellow ~84°) + silver (cool-steel ~255°)
|
|
192
|
+
are the two poles; bronze is the warm-amber-brown ~54° register between them.
|
|
193
|
+
The cascade EXACTLY mirrors gold's and silver's (scale-paper raw → bridges
|
|
194
|
+
`--color-bronze*` alias → both dark arms); `-deep` is mode-invariant.
|
|
195
|
+
|
|
196
|
+
BA.W-NO-GRAY brand-metal EXCEPTION — bronze is the THIRD metal on the SAME
|
|
197
|
+
sanction silver carries (the ONE cool-neutral exception). Bronze is a WARM
|
|
198
|
+
metal identity with chroma ABOVE the warm floor: each rung resolves OKLab
|
|
199
|
+
C 0.072-0.112 (far above the STRONG_FLOOR 0.020) at hue ~49-60°, so it reads
|
|
200
|
+
as polished bronze MATERIAL, never a desaturated brown CAST (the W-NO-GRAY
|
|
201
|
+
"warm-not-tinted" bar). It is NOT a neutral — a low-chroma bronze would BE a
|
|
202
|
+
neutral and break the brand-metal read; the chroma is the metal. The hue sits
|
|
203
|
+
between gold and red-orange so it distinguishes from a dark gold at the rim. */
|
|
204
|
+
--bronze: oklch(0.620 0.092 54.0);
|
|
205
|
+
--bronze-light: oklch(0.760 0.112 60.0);
|
|
206
|
+
--bronze-dark: oklch(0.500 0.082 50.0);
|
|
207
|
+
/* The mode-INVARIANT deep bronze plate (mirrors `--gold-deep`/`--silver-deep`'s
|
|
208
|
+
contract — a fixed dark bronze so a white label clears ≥4.5:1 in BOTH modes;
|
|
209
|
+
it does NOT flip with `--foreground`). 8.36:1 white in light / 4.79:1 in dark
|
|
210
|
+
on the dark-arm-lifted rungs. The would-be saturated CTA twin of the metal. */
|
|
211
|
+
--bronze-deep: oklch(0.430 0.072 50.0);
|
|
212
|
+
|
|
213
|
+
--color-bronze: var(--bronze);
|
|
214
|
+
--color-bronze-light: var(--bronze-light);
|
|
215
|
+
--color-bronze-dark: var(--bronze-dark);
|
|
216
|
+
--color-bronze-deep: var(--bronze-deep);
|
|
217
|
+
|
|
133
218
|
/* ═══════════════════════════════════════════════
|
|
134
219
|
§14 RAINBOW PALETTE — oklch (AV.W16 TW2; mode-independent, no .dark
|
|
135
220
|
mirror; hue preserved from the prior hsl() cadence)
|
|
@@ -267,6 +352,32 @@
|
|
|
267
352
|
--metric-row-label-clamp-cqi: 5cqi;
|
|
268
353
|
--metric-row-label-clamp-max: 2.75rem;
|
|
269
354
|
|
|
355
|
+
/* BB.W-CONTROL-TOKENS — the two CONSUMER-reach knobs (the no-`:deep`
|
|
356
|
+
precept, Design Axis 2). MetricRow internals a consumer must reach are
|
|
357
|
+
exposed as tokens, never an internal a `:deep()` overrides.
|
|
358
|
+
|
|
359
|
+
• `--metric-row-label-align` — the label `text-align`. Default `left`
|
|
360
|
+
(byte-identical to the prior render). A cert-grid consumer building a
|
|
361
|
+
labelled ledger sets `right` at `:root`/a parent/per-row for a
|
|
362
|
+
right-aligned fixed seam — cascades into `.metric-row__label` with no
|
|
363
|
+
`:deep()`.
|
|
364
|
+
• `--metric-row-icon-color` — the leading-glyph ink (the MetricCell
|
|
365
|
+
`iconColor`→IconChip precedent, mirrored as a token since MetricRow
|
|
366
|
+
ships a raw `<component :is>`). The per-row `phaseColor` prop seeds it
|
|
367
|
+
inline so today's consumers paint unchanged; un-set, the component
|
|
368
|
+
fallback (`inherit`) keeps the icon on the inherited cascade. A consumer
|
|
369
|
+
wanting a DISTINCT icon ink from the phase tint overrides it directly.
|
|
370
|
+
|
|
371
|
+
Both carry their byte-identical defaults — `left` (the prior render) /
|
|
372
|
+
`inherit` (the prior un-tinted glyph). Declaring them here keeps the
|
|
373
|
+
`--metric-row-*` family discoverable in one home; the component-level
|
|
374
|
+
`var(…, fallback)` read preserves the same default if the token is ever
|
|
375
|
+
un-declared (the defense-in-depth back-compat floor). A per-row
|
|
376
|
+
`phaseColor` prop still wins over the `:root` `--metric-row-icon-color`
|
|
377
|
+
(inline cascades higher), so today's phase-tinted icons are unchanged. */
|
|
378
|
+
--metric-row-label-align: left;
|
|
379
|
+
--metric-row-icon-color: inherit;
|
|
380
|
+
|
|
270
381
|
/* ═══════════════════════════════════════════════
|
|
271
382
|
§2.D INSTRUMENT-CLUSTER COMPOSITION RHYTHM
|
|
272
383
|
|
|
@@ -317,93 +428,10 @@
|
|
|
317
428
|
--table-head-h: calc(3rem * var(--table-density));
|
|
318
429
|
--table-head-px: calc(1rem * var(--table-density));
|
|
319
430
|
|
|
320
|
-
/*
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
knob a token so a consumer retunes without editing library source.
|
|
327
|
-
|
|
328
|
-
SCROLL-DRIVEN (scroll-driven.css). Values mirror the JS-fallback
|
|
329
|
-
composable defaults (`useScrollProgress` / `useStaggerReveal`) so the
|
|
330
|
-
native CSS path and the fallback path read identically — no visual seam
|
|
331
|
-
at the `@supports` boundary.
|
|
332
|
-
|
|
333
|
-
TOP-LAYER (animations.css §TOP-LAYER). The `@starting-style` entry/exit
|
|
334
|
-
grammar for native `<dialog>` / `[popover]` glass surfaces. The backdrop dim
|
|
335
|
-
uses the house alpha-derivative `color-mix(in srgb, var(--background) Npct,
|
|
336
|
-
transparent)` (AZ.W-ADAPTIVE-AUTO A5-1). It is NOT the `hsl(var(--background)
|
|
337
|
-
/ α)` channel form: `--background` is a COMPLETE `hsl()` color
|
|
338
|
-
(`= hsl(48 12% 98%)`), so `hsl(var(--background) / α)` double-wraps to
|
|
339
|
-
`hsl(hsl(…) / α)` — invalid, never paints (the modal dim was silently dead).
|
|
340
|
-
The genuine channel form would require `--background` declared as a bare
|
|
341
|
-
`H S% L%` triple, which it never is — hence the alpha-derivative mix.
|
|
342
|
-
|
|
343
|
-
VIEW-TRANSITION (view-transition.css). The shared `.gl-list-item` group
|
|
344
|
-
recipe + the `--vt-*` axes the `useViewTransition` substrate consumers
|
|
345
|
-
(dock layer swap, muster J's verdict re-rank) tune their swap against.
|
|
346
|
-
═══════════════════════════════════════════════ */
|
|
347
|
-
--scroll-progress-scroller: root;
|
|
348
|
-
--scroll-reveal-rise: 6px;
|
|
349
|
-
--scroll-reveal-range-end: 60%;
|
|
350
|
-
|
|
351
|
-
--top-layer-enter-scale: 0.96;
|
|
352
|
-
--top-layer-backdrop-blur: 8px;
|
|
353
|
-
--top-layer-backdrop-dim: 0.5;
|
|
354
|
-
|
|
355
|
-
--vt-duration: var(--duration-normal);
|
|
356
|
-
/* AX.W05 — ONE iOS-spring vocabulary: every spring-flavored transition reads
|
|
357
|
-
a governed `--spring-*` register. The legacy apple-spring cubic-bezier
|
|
358
|
-
(+27.5% overshoot) was a SECOND authority beside the regen `--spring-*`
|
|
359
|
-
cohort; it is EXCISED. Its emphatic-overshoot register maps to the playful
|
|
360
|
-
`--spring-bouncy` (the closest `linear()` overshoot stop-set), so the VT
|
|
361
|
-
default + the cards/top-layer transitions share one spring primitive
|
|
362
|
-
(CPU + GPU sample the same curve). No cubic-bezier fallback seed survives —
|
|
363
|
-
the `linear()` spring degrades to `ease` where `linear()` is unsupported. */
|
|
364
|
-
--vt-ease: var(--spring-bouncy);
|
|
365
|
-
--vt-rise: 8px;
|
|
366
|
-
|
|
367
|
-
/* AT.W6-dock-c / AU.W8 — the dock layer-swap morph timing, minted ONCE so
|
|
368
|
-
both engine paths are timing-IDENTICAL: the FLIP fallback (via
|
|
369
|
-
`--dock-motion-resize`), the native View-Transition group (its
|
|
370
|
-
`animation-timing-function`), AND the runtime SpringProgress driver
|
|
371
|
-
(AU.W8.3) consume this same `(0.32, 0.7)` source curve. Retires the AQ.W6
|
|
372
|
-
fork where the VT path ran `--vt-ease` (apple-spring, +27.5% overshoot)
|
|
373
|
-
while the FLIP ran the snappy spring. `--vt-ease` still defaults the
|
|
374
|
-
other VT recipes (`.gl-list-item`).
|
|
375
|
-
|
|
376
|
-
AU.W8 — RETARGET snappy → dock. `--spring-snappy` (ζ=0.65, +6.8%) read as
|
|
377
|
-
mechanical: a stiff plateau at ~48% with too little overshoot to feel
|
|
378
|
-
alive ("not iOS-smooth"). AW.W2 then retuned the dock spring to the
|
|
379
|
-
iOS-control register: `--spring-dock` ((0.32, 0.7), ~+4.6%) settles snappy
|
|
380
|
-
with a restrained overshoot — the felt iOS dock morph, off the prior
|
|
381
|
-
playful +18.5% register. The runtime driver's DOCK_SPRING const MIRRORS the
|
|
382
|
-
(0.32, 0.7) PRESETS row, so the CSS token and the JS-driven morph are
|
|
383
|
-
bit-identical. */
|
|
384
|
-
--dock-resize-spring: var(--spring-dock);
|
|
385
|
-
|
|
386
|
-
/* AT.W7-dock-b — dock-control press micro-feedback spring. A TRANSFORM-ONLY
|
|
387
|
-
spring (`scale`/`rotate`) the dock controls apply to their hover/press
|
|
388
|
-
activation so the squish reads with a touch of spring-back rather than a
|
|
389
|
-
flat ease. STRICTLY transform-scoped: it must never touch the surface-tier
|
|
390
|
-
`[data-held]` fades (background/border/box-shadow), which stay on
|
|
391
|
-
`--duration-fast var(--ease-standard)`. The duration pairs with
|
|
392
|
-
`--duration-fast`; consumers retune the whole feel via this one token.
|
|
393
|
-
|
|
394
|
-
AY.W-DOCK2 (D6) — the register is `--spring-smooth`, the §6 easing-doctrine
|
|
395
|
-
transform-press register (tokens.css §2: transform hover/press/active →
|
|
396
|
-
`--spring-smooth`/`--spring-snappy`, NEVER `--spring-bouncy`; a press must
|
|
397
|
-
settle, never overshoot into a visible bounce). The prior `--spring-bouncy`
|
|
398
|
-
ROOT default was off-doctrine, shadowed for the four named controls by a
|
|
399
|
-
per-surface re-point in dock-controls.css — the exact per-surface fork the
|
|
400
|
-
doctrine kills. The re-point is now a DEAD byte-identical redeclaration and is
|
|
401
|
-
DELETED; the ROOT token IS the doctrine register, so any other consumer of
|
|
402
|
-
`--dock-press-spring` inherits the correct smooth register.
|
|
403
|
-
|
|
404
|
-
BA.W-GLASS-CAL Unit 3 — the duration leg re-times off the generic
|
|
405
|
-
`--duration-fast` (0.2s) onto `--spring-smooth-duration` (0.36s, the
|
|
406
|
-
smooth spring's OWN 2%-band envelope settle), so the press transform plays
|
|
407
|
-
at its physical settle rather than a generic clock. */
|
|
408
|
-
--dock-press-spring: var(--spring-smooth-duration) var(--spring-smooth);
|
|
431
|
+
/* §20 PLATFORM MOTION (AQ.W5) — the scroll-driven/choreography + TOP-LAYER +
|
|
432
|
+
VIEW-TRANSITION + dock-spring motion knobs — carved WHOLE to
|
|
433
|
+
tokens/scroll-tokens.css at BB.W-CARVE4 (a contiguous tail carve at the §19/§20
|
|
434
|
+
seam; §20 is the file's last section, so the partial @import-s IMMEDIATELY
|
|
435
|
+
AFTER this one — the dist is byte-isomorphic). The paper/control/display/metal/
|
|
436
|
+
timeline/metric/table families above stay. */
|
|
409
437
|
}
|
|
@@ -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
|
-
|
|
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,17 +82,24 @@
|
|
|
72
82
|
--duration-xxl: 1.5s;
|
|
73
83
|
--duration-shimmer-fast: 3s;
|
|
74
84
|
--duration-shimmer: 5s;
|
|
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;
|
|
75
91
|
/* BA.W-GLASS-CAL (H2a) — `--duration-sparkle` (600ms) DELETED with the disco
|
|
76
92
|
recipe retirement: the sparkle-sweep keyframe + its sole `btn-audacious`
|
|
77
93
|
consumer are gone. */
|
|
78
94
|
|
|
79
95
|
/* AH.W5-e (FA-8 §4d) — motion-duration + staged-reveal canon.
|
|
80
96
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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.) */
|
|
86
103
|
|
|
87
104
|
/* Staged-entrance pairing — opacity + transform Vue <Transition> arms
|
|
88
105
|
in the celebratory headline + result-row reveals. Partners with
|
|
@@ -99,17 +116,6 @@
|
|
|
99
116
|
glyphs cleanly. Load-bearing — zeroing either collapses the shimmer to
|
|
100
117
|
an imperceptible blow-through. */
|
|
101
118
|
|
|
102
|
-
/* CompleteBadge staged-reveal cluster — the disc / ring / check curve
|
|
103
|
-
fires at three asymmetric durations + delays per the A4-AF staged-
|
|
104
|
-
variety design intent. Promoting the magic numbers makes the
|
|
105
|
-
staged-variety visible at the canon. */
|
|
106
|
-
--motion-duration-badge-disc: 420ms;
|
|
107
|
-
--motion-duration-badge-ring: 560ms;
|
|
108
|
-
--motion-duration-badge-check: 380ms;
|
|
109
|
-
--motion-delay-badge-disc: 80ms;
|
|
110
|
-
--motion-delay-badge-ring: 220ms;
|
|
111
|
-
--motion-delay-badge-check: 460ms;
|
|
112
|
-
|
|
113
119
|
/* Staggered-reveal increment canon — three perceptually-distinct tiers for
|
|
114
120
|
per-row/per-cell/per-bar cascades:
|
|
115
121
|
• tight (40ms) — dense row cascades, sub-perceptual gap
|
|
@@ -153,21 +159,53 @@
|
|
|
153
159
|
── EASING DOCTRINE (AX.W52 §6 — which easing fits which job) ──
|
|
154
160
|
ONE recorded rule so the animation easing stops forking live. This
|
|
155
161
|
FORMALIZES the already-correct `transitions.css` idiom (enter=spring,
|
|
156
|
-
exit=bezier) as the house rule every recipe reaches for
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
|
169
|
-
|
|
170
|
-
|
|
|
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`).
|
|
171
209
|
|
|
172
210
|
The BUTTON family (`.btn-pill` / `.tap-squish` / `.glass-btn` /
|
|
173
211
|
`btn-interactive`) UNIFIES its `scale` transform leg onto ONE register —
|