@mkbabb/glass-ui 3.13.0 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/CardAction-CW7a0m8M.js +253 -0
- package/dist/{CommandShortcut-RowNEO6i.js → CommandShortcut-DvZNQ_HF.js} +58 -53
- package/dist/ConfiguratorRow-BR4l-ixA.js +143 -0
- package/dist/{ContextMenuContent-CT3AS1WX.js → ContextMenuContent-uWnVxDab.js} +1 -1
- package/dist/{ContextMenuSubContent-BQmxTAdw.js → ContextMenuSubContent-xol4sD2q.js} +32 -37
- package/dist/{DataTable-BCddn3T3.js → DataTable-CuKwF7wr.js} +99 -97
- package/dist/DialogContent-DcKK8k9i.js +103 -0
- package/dist/{DialogFooter-Blu4t7tJ.js → DialogFooter-BZNX5aVr.js} +3 -3
- package/dist/FadingScroll-DI6hQhT9.js +76 -0
- package/dist/{HoverCardContent-Csywg3YF.js → HoverCardContent-b2uaAMRR.js} +1 -1
- package/dist/{HoverPopover-CISOJQuZ.js → HoverPopover-CbqbNwgU.js} +2 -2
- package/dist/IconChip-BTD-nay5.js +55 -0
- package/dist/{IconTooltip-DPzE09X9.js → IconTooltip-Bl8gFZ8d.js} +1 -1
- package/dist/{Input-DWQQIOC4.js → Input-h9v5LeXf.js} +1 -1
- package/dist/{MetricBadge-C9QMz1KT.js → MetricBadge-RHdBP72w.js} +1 -1
- package/dist/Notification-VUwexFUf.js +43 -0
- package/dist/NumberFieldContent-Cq7EzX-U.js +138 -0
- package/dist/PopoverContent-DL7E6vJP.js +127 -0
- package/dist/{Progress-DwlUKGbr.js → Progress-DctG61iZ.js} +98 -78
- package/dist/{ScrollingText-DfFrwSph.js → ScrollingText-yOpBzFYq.js} +2 -2
- package/dist/{SelectScrollDownButton-CiDUxfEj.js → SelectScrollDownButton-CrA8F0iV.js} +35 -20
- package/dist/{Switch-CsIuYP_e.js → Switch-CwYNf8bo.js} +1 -1
- package/dist/Toaster-Bw4xR8xV.js +274 -0
- package/dist/{ToggleGroupItem-D_AHlRw9.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 +16 -8
- package/dist/api/types-extra.d.ts +6 -0
- package/dist/api.js +2 -2
- package/dist/aurora.js +888 -230
- package/dist/badge.js +1 -1
- package/dist/border-progress.d.ts +1 -0
- package/dist/border-progress.js +106 -0
- package/dist/button-DYCUa-tH.js +126 -0
- package/dist/button.js +1 -1
- package/dist/canvas.js +2 -2
- package/dist/card.js +2 -2
- package/dist/carousel.d.ts +1 -1
- package/dist/carousel.js +90 -151
- package/dist/collapsible.js +1 -1
- package/dist/color-swatch.d.ts +1 -0
- package/dist/color-swatch.js +47 -0
- package/dist/color.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 +30 -2
- package/dist/components/custom/aurora/constants/renderMode.d.ts +63 -10
- 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 +3 -2
- 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/color-swatch/ColorSwatch.vue.d.ts +22 -0
- package/dist/components/custom/color-swatch/index.d.ts +1 -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/configurator/Configurator.vue.d.ts +19 -8
- package/dist/components/custom/constellation/Constellation.vue.d.ts +18 -206
- package/dist/components/custom/constellation/composables/useConstellation.d.ts +26 -0
- package/dist/components/custom/constellation/constellationField.d.ts +2 -369
- package/dist/components/custom/constellation/constellationTypes.d.ts +369 -0
- package/dist/components/custom/constellation/index.d.ts +1 -1
- 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/DockRail.vue.d.ts +17 -16
- package/dist/components/custom/dock/DockSection.vue.d.ts +69 -0
- package/dist/components/custom/dock/DockSeparator.vue.d.ts +49 -1
- package/dist/components/custom/dock/DockTabButton.vue.d.ts +5 -5
- 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/dock/constants.d.ts +35 -0
- package/dist/components/custom/dock/index.d.ts +2 -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/expandable-container/ExpandableContainer.vue.d.ts +10 -0
- package/dist/components/custom/fading-scroll/FadingScroll.vue.d.ts +25 -0
- package/dist/components/custom/fading-scroll/composables/useFadingScroll.d.ts +31 -0
- package/dist/components/custom/fading-scroll/constants.d.ts +19 -0
- package/dist/components/custom/fading-scroll/index.d.ts +2 -0
- package/dist/components/custom/fourier-field/FourierField.vue.d.ts +19 -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/fourier-field/index.d.ts +1 -1
- package/dist/components/custom/fourier-field/math.d.ts +17 -0
- package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +9 -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 +29 -12
- package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
- package/dist/components/custom/goo-blob/constants.d.ts +6 -1
- package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
- package/dist/components/custom/handmark/HandMark.vue.d.ts +29 -0
- package/dist/components/custom/handmark/brush.d.ts +269 -0
- package/dist/components/custom/handmark/composables/useHandMark.d.ts +89 -0
- package/dist/components/custom/handmark/constants.d.ts +39 -0
- package/dist/components/custom/handmark/freehand.d.ts +69 -0
- package/dist/components/custom/handmark/geometry.d.ts +52 -0
- package/dist/components/custom/handmark/index.d.ts +27 -0
- package/dist/components/custom/handmark/ink.d.ts +11 -0
- package/dist/components/custom/handmark/texture.d.ts +39 -0
- package/dist/components/custom/handmark/types.d.ts +62 -0
- package/dist/components/custom/icon-chip/IconChip.vue.d.ts +4 -0
- package/dist/components/custom/icon-chip/index.d.ts +2 -0
- package/dist/components/custom/icon-chip/types.d.ts +82 -0
- package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +17 -2
- package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
- package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +39 -0
- package/dist/components/custom/pager-dots/index.d.ts +2 -0
- 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 +29 -24
- package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
- package/dist/components/custom/tabs/composables/useTabIndicator.d.ts +30 -21
- package/dist/components/custom/tabs/constants.d.ts +9 -3
- package/dist/components/custom/tabs/index.d.ts +1 -1
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +15 -1
- package/dist/components/ui/_shared/index.d.ts +2 -0
- package/dist/components/ui/_shared/menuItemVariants.d.ts +19 -0
- package/dist/components/ui/_shared/useSurfaceAxis.d.ts +41 -0
- 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/carousel/index.d.ts +0 -1
- package/dist/components/ui/command/Command.vue.d.ts +4 -1
- package/dist/components/ui/dialog/DialogContent.vue.d.ts +8 -3
- package/dist/components/ui/drawer/Drawer.vue.d.ts +46 -33
- package/dist/components/ui/drawer/DrawerContent.vue.d.ts +12 -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 -1
- package/dist/components/ui/popover/PopoverContent.vue.d.ts +3 -0
- package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
- package/dist/components/ui/progress/ProgressSectioned.vue.d.ts +14 -3
- package/dist/components/ui/select/SelectContent.vue.d.ts +1 -1
- package/dist/components/ui/select/SelectTrigger.vue.d.ts +27 -4
- package/dist/components/ui/sheet/SheetContent.vue.d.ts +6 -0
- package/dist/components/ui/sheet/index.d.ts +1 -1
- package/dist/components/ui/skeleton/Skeleton.vue.d.ts +3 -0
- 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/dark/index.d.ts +1 -1
- package/dist/composables/dark/useGlobalDark.d.ts +23 -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/composables/motion/useViewTransition.d.ts +36 -1
- 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 +93 -95
- package/dist/context-menu.js +3 -3
- package/dist/controls.js +10 -4
- package/dist/createCanvasLifecycle-CHD5XrDW.js +82 -0
- package/dist/dark.d.ts +1 -1
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/dialog.js +2 -2
- package/dist/dock.js +738 -442
- package/dist/{dockContext-BegmJVmx.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-DzkkyBwX.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 +45 -38
- package/dist/fading-scroll.d.ts +1 -0
- package/dist/fading-scroll.js +2 -0
- 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 +135 -122
- package/dist/fourier-math.js +2 -2
- package/dist/glass-panel.js +39 -36
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +154 -362
- package/dist/goo-blob.js +838 -227
- package/dist/handmark.d.ts +1 -0
- package/dist/handmark.js +707 -0
- 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.d.ts +1 -0
- package/dist/icon-chip.js +2 -0
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +6 -6
- package/dist/{math-U6-RrLmV.js → math-BINYmg5z.js} +11 -3
- package/dist/{menuItemVariants-DPiEarb0.js → menuItemVariants-D8VNHq22.js} +10 -4
- package/dist/metric-badge.js +1 -1
- package/dist/metric-cell.js +25 -22
- package/dist/metric-stack.js +4 -8
- package/dist/motion-core.js +36 -35
- 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.d.ts +1 -0
- package/dist/pager-dots.js +91 -0
- package/dist/paper-backdrop.js +1 -1
- package/dist/popover.js +1 -1
- package/dist/{presets-BKVyQfbt.js → presets-BW2b-fr1.js} +14 -1
- package/dist/{compile-B7NGOBcP.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 +10 -12
- package/dist/select.js +3 -3
- package/dist/separator.js +1 -1
- package/dist/sheet-tZMg0E0w.js +218 -0
- package/dist/sheet.js +1 -1
- package/dist/{slider-B-JP2JlI.js → slider-DVb4HXU-.js} +7 -7
- 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 +40 -31
- 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/configurator.css +35 -0
- 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 +64 -0
- package/dist/styles/dock/layers.css +54 -30
- package/dist/styles/dock/morph.css +124 -7
- package/dist/styles/dock/overflow.css +31 -2
- package/dist/styles/dock/rail-extend.css +168 -71
- package/dist/styles/dock/section.css +59 -0
- package/dist/styles/dock/shell.css +83 -16
- package/dist/styles/dock-controls/icon-button.css +11 -1
- package/dist/styles/dock-controls/tab-button.css +24 -83
- package/dist/styles/dock-controls/triggers.css +7 -0
- package/dist/styles/dock.css +38 -3
- package/dist/styles/drawer.css +127 -35
- package/dist/styles/feedback-tone.css +104 -0
- package/dist/styles/glass/deep.css +44 -0
- package/dist/styles/glass/ladder.css +154 -52
- 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/surface-axis.css +113 -0
- package/dist/styles/glass/surfaces.css +189 -15
- package/dist/styles/glass-refract.css +96 -44
- package/dist/styles/glass-specular-track.css +7 -0
- package/dist/styles/glass.css +8 -2
- package/dist/styles/hover-popover.css +7 -6
- package/dist/styles/icon-chip.css +211 -0
- package/dist/styles/index.css +78 -4
- package/dist/styles/instrument-chassis.css +107 -2
- package/dist/styles/menu.css +127 -0
- package/dist/styles/scroll-choreography.css +300 -0
- package/dist/styles/segmented-tabs.css +188 -86
- package/dist/styles/select.css +50 -0
- package/dist/styles/theme/bridges.css +22 -1
- package/dist/styles/theme/literals.css +11 -2
- package/dist/styles/theme/radius.css +6 -1
- package/dist/styles/tokens/color-radius.css +40 -13
- package/dist/styles/tokens/dark-arm.css +200 -20
- package/dist/styles/tokens/glass-deep.css +75 -0
- package/dist/styles/tokens/glass-fx.css +333 -0
- package/dist/styles/tokens/glass.css +95 -315
- package/dist/styles/tokens/light-dark.css +64 -22
- 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 +130 -10
- package/dist/styles/tokens/scale-paper.css +155 -84
- package/dist/styles/tokens/scheme-motion.css +102 -46
- package/dist/styles/tokens/scroll-tokens.css +123 -0
- package/dist/styles/tokens/{offsets-sizing.css → sizing.css} +88 -89
- package/dist/styles/tokens.css +9 -3
- package/dist/styles/transitions.css +7 -7
- package/dist/styles/typography/scale.css +153 -0
- package/dist/styles/typography/semantic.css +220 -0
- package/dist/styles/typography/utilities.css +174 -0
- package/dist/styles/typography.css +23 -507
- package/dist/styles/utilities/a11y-overrides.css +33 -4
- package/dist/styles/utilities/animate.css +27 -24
- package/dist/styles/utilities/base-misc.css +255 -0
- package/dist/styles/utilities/base.css +100 -138
- package/dist/styles/utilities/btn.css +21 -202
- package/dist/styles/utilities/metal.css +189 -0
- package/dist/styles/utilities.css +14 -7
- package/dist/styles/view-transition.css +4 -1
- package/dist/switch.js +1 -1
- package/dist/tabs.js +275 -191
- package/dist/timeline.js +2 -2
- package/dist/toast.js +1 -1
- package/dist/toggle-chip.js +3 -1
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{useAnimatedNumber-C5I3wWd8.js → useAnimatedNumber-BfUq2bUM.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/{useGlobalDark-yhL4Wp-s.js → useGlobalDark-C28t0VWJ.js} +22 -3
- package/dist/useLiquidPress-kfb4KX79.js +39 -0
- package/dist/usePointerVelocityField-JbRd5CrM.js +137 -0
- package/dist/{useRAFLoop-Bxv0o6L5.js → useRAFLoop-UYa4zoiN.js} +1 -1
- package/dist/useSpring-C0jyvEJB.js +40 -0
- package/dist/useSpringMount-q1amq1SJ.js +71 -0
- package/dist/useSpringPress-BsqPr7FJ.js +34 -0
- package/dist/useSurfaceAxis-g0NloYEF.js +7 -0
- package/dist/{useTouchGate-Dg7MQI1G.js → useTouchGate-CBZTD4SD.js} +1 -1
- package/dist/vReveal-Czsb7zQC.js +10 -0
- package/dist/vSpecular-CQFmLNzA.js +68 -0
- package/dist/vendor-CKmzio-i.js +226 -0
- package/dist/watercolor-dot.js +12 -5
- package/package.json +193 -25
- package/src/styles/animations.css +40 -31
- package/src/styles/border-progress.css +109 -0
- package/src/styles/cards.css +76 -0
- package/src/styles/configurator.css +35 -0
- package/src/styles/critical-partition.mjs +140 -0
- package/src/styles/dock/density.css +64 -0
- package/src/styles/dock/layers.css +54 -30
- package/src/styles/dock/morph.css +124 -7
- package/src/styles/dock/overflow.css +31 -2
- package/src/styles/dock/rail-extend.css +168 -71
- package/src/styles/dock/section.css +59 -0
- package/src/styles/dock/shell.css +83 -16
- package/src/styles/dock-controls/icon-button.css +11 -1
- package/src/styles/dock-controls/tab-button.css +24 -83
- package/src/styles/dock-controls/triggers.css +7 -0
- package/src/styles/dock.css +38 -3
- package/src/styles/drawer.css +123 -35
- package/src/styles/feedback-tone.css +104 -0
- package/src/styles/glass/deep.css +44 -0
- package/src/styles/glass/ladder.css +154 -52
- 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/surface-axis.css +113 -0
- package/src/styles/glass/surfaces.css +189 -15
- package/src/styles/glass-refract.css +96 -44
- package/src/styles/glass-specular-track.css +7 -0
- package/src/styles/glass.css +8 -2
- package/src/styles/hover-popover.css +7 -6
- package/src/styles/icon-chip.css +211 -0
- package/src/styles/index.css +78 -4
- package/src/styles/instrument-chassis.css +107 -2
- package/src/styles/menu.css +127 -0
- package/src/styles/scroll-choreography.css +300 -0
- package/src/styles/segmented-tabs.css +184 -84
- package/src/styles/select.css +50 -0
- package/src/styles/theme/bridges.css +22 -1
- package/src/styles/theme/literals.css +11 -2
- package/src/styles/theme/radius.css +6 -1
- package/src/styles/tokens/color-radius.css +40 -13
- package/src/styles/tokens/dark-arm.css +200 -20
- package/src/styles/tokens/glass-deep.css +75 -0
- package/src/styles/tokens/glass-fx.css +333 -0
- package/src/styles/tokens/glass.css +95 -315
- package/src/styles/tokens/light-dark.css +64 -22
- 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 +130 -10
- package/src/styles/tokens/scale-paper.css +155 -84
- package/src/styles/tokens/scheme-motion.css +102 -46
- package/src/styles/tokens/scroll-tokens.css +123 -0
- package/src/styles/tokens/{offsets-sizing.css → sizing.css} +88 -89
- package/src/styles/tokens.css +9 -3
- package/src/styles/transitions.css +7 -7
- package/src/styles/typography/scale.css +153 -0
- package/src/styles/typography/semantic.css +220 -0
- package/src/styles/typography/utilities.css +174 -0
- package/src/styles/typography.css +23 -507
- package/src/styles/utilities/a11y-overrides.css +33 -4
- package/src/styles/utilities/animate.css +27 -24
- package/src/styles/utilities/base-misc.css +255 -0
- package/src/styles/utilities/base.css +100 -138
- package/src/styles/utilities/btn.css +21 -202
- package/src/styles/utilities/metal.css +189 -0
- package/src/styles/utilities.css +14 -7
- package/src/styles/view-transition.css +4 -1
- package/dist/CardAction-Cj2eycQ2.js +0 -157
- package/dist/DialogContent-Dl9WkAoS.js +0 -100
- package/dist/Notification-DdwNxIrI.js +0 -100
- package/dist/NumberFieldContent-CqaN-SvN.js +0 -145
- package/dist/PopoverContent-BYwt2-4x.js +0 -121
- package/dist/TabsList-Dttss653.js +0 -105
- package/dist/Toaster-D6q4HtXu.js +0 -263
- package/dist/button-ChXMfsud.js +0 -81
- 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/components/custom/underline/GlassUnderline.vue.d.ts +0 -84
- package/dist/components/custom/underline/index.d.ts +0 -2
- package/dist/components/custom/underline/types.d.ts +0 -56
- package/dist/components/ui/carousel/CarouselDots.vue.d.ts +0 -4
- 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/sheet-1fChZjtw.js +0 -214
- package/dist/underline.d.ts +0 -1
- package/dist/underline.js +0 -85
- package/dist/useCanvas2D-ClrQuZtp.js +0 -96
- package/dist/useConfiguratorState-DAoeHVue.js +0 -287
- package/dist/useSpecularTracking-Bo5su68i.js +0 -32
- package/dist/useSpringMount-CI2jOstM.js +0 -108
- package/dist/vReveal-CqaCz_mC.js +0 -44
- package/dist/x-BUwTKe50.js +0 -10
- /package/dist/{CollapsibleContent-CP9qF1v4.js → CollapsibleContent-68dEXIAl.js} +0 -0
- /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-Bx0F_q5g.js} +0 -0
- /package/dist/{Label-r3WzWrsj.js → Label-C2ejNWeC.js} +0 -0
- /package/dist/{ModalOverlay-DVLI2VRr.js → ModalOverlay-D1VrWyoi.js} +0 -0
- /package/dist/{PaperBackdrop-DIXTtVq6.js → PaperBackdrop-Vf3tlpvd.js} +0 -0
- /package/dist/{SelectGroup-aumMgWLs.js → SelectGroup-DwwjicPY.js} +0 -0
- /package/dist/{SelectSeparator-BQ_1Fcbp.js → SelectSeparator-DXswVdRz.js} +0 -0
- /package/dist/{Separator-0JE6LtNu.js → Separator-pKF0oA4M.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-ok8pgSl5.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
- /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
- /package/dist/{color-CUYeFbgd.js → color-DweYl7pE.js} +0 -0
- /package/dist/{constants-CS75AWHG.js → constants-BPOqYJAm.js} +0 -0
- /package/dist/{createContext-BM46COQ-.js → createContext-CpBNTRMI.js} +0 -0
- /package/dist/{prng-D27-B3tK.js → prng-Za0Rmgag.js} +0 -0
- /package/dist/{resolveCanvasColor-BBiYfp8g.js → resolveCanvasColor-CUyHr5Uu.js} +0 -0
- /package/dist/{springPresets--YdWTHtm.js → springPresets-CFQGQfdl.js} +0 -0
- /package/dist/{useIntersectionPause-Cc-H9ees.js → useIntersectionPause-Bj4sPkMh.js} +0 -0
- /package/dist/{useInterval-iHludrxk.js → useInterval-CvK1mL92.js} +0 -0
- /package/dist/{useKeyboardShortcuts-Be3w_Rwk.js → useKeyboardShortcuts-BXWXOZ-9.js} +0 -0
- /package/dist/{useLiquidFlex-BL0lLLN2.js → useLiquidFlex-mZPMiNXh.js} +0 -0
- /package/dist/{useResizeObserver-BhgdhOIj.js → useResizeObserver-Bpoi7tRE.js} +0 -0
- /package/dist/{useResolveTokenColor-Dvn2RZJW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
- /package/dist/{useScrollProgress-Dlvx-L3v.js → useScrollProgress-D7bYU2RK.js} +0 -0
- /package/dist/{useSortable-muI29agz.js → useSortable-DHjtZSEd.js} +0 -0
- /package/dist/{useTextHighlight-DmRYkOBx.js → useTextHighlight-CWEi25hf.js} +0 -0
- /package/dist/{useTimer-Dzarvzuk.js → useTimer-BHJOKr35.js} +0 -0
- /package/dist/{useUserInvalidAria-B2h6jAM_.js → useUserInvalidAria-y5namzeE.js} +0 -0
- /package/dist/{useViewportReady-B40FK4Pa.js → useViewportReady-anbac3m6.js} +0 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/* tokens/offsets.css
|
|
2
|
+
§9 animation offsets — hover-lift offsets, the layout tokens, the public
|
|
3
|
+
--fade-scroll-width ramp, the dock content-overflow caps, the chassis
|
|
4
|
+
max-block-size/mobile dial-reserve, the popover width, the panel inner-padding
|
|
5
|
+
rung, the chart geometry.
|
|
6
|
+
Carved (BB.W-CARVE3) from the former tokens/offsets-sizing.css §9/§10 split;
|
|
7
|
+
@import-ed by tokens.css at offsets-sizing's old cascade slot, immediately
|
|
8
|
+
before sizing.css — adjacent same-selector :root blocks resolve identically,
|
|
9
|
+
so the dist is byte-isomorphic. See docs/precepts/design-idioms.md
|
|
10
|
+
§cohesion-aware partials. */
|
|
11
|
+
:root {
|
|
12
|
+
/* ═══════════════════════════════════════════════
|
|
13
|
+
§9 ANIMATION OFFSETS
|
|
14
|
+
═══════════════════════════════════════════════ */
|
|
15
|
+
/* Hover lift offsets */
|
|
16
|
+
--lift-sm: -1px;
|
|
17
|
+
--lift-md: -2px;
|
|
18
|
+
--lift-lg: -4px;
|
|
19
|
+
|
|
20
|
+
/* Layout tokens */
|
|
21
|
+
/* BA.W-FADING-SCROLL — `--fade-scroll-width` is the public edge-fade ramp
|
|
22
|
+
width knob for `<FadingScroll>` (inheriting, retunable on any ancestor).
|
|
23
|
+
It superseded the scroll-BLIND `.scroll-fade-*` static masks' knob
|
|
24
|
+
`--mask-fade-width`, which retired in a CLEAN BREAK (no alias) at the
|
|
25
|
+
4.1.0 cut — BB.W-SCROLL-FADE-RETIRE — alongside the static utilities. */
|
|
26
|
+
--fade-scroll-width: 1rem;
|
|
27
|
+
/* J.W3.C — dock content overflow caps. When dock content exceeds
|
|
28
|
+
these dimensions, the inner `.dock-layers` (horizontal) /
|
|
29
|
+
`.glass-dock.vertical` (rail) container scrolls with a
|
|
30
|
+
`.scroll-fade-{x,y}` mask-fade so the boundary feathers rather
|
|
31
|
+
than cliffs. Defaults clamp to 80vw / 80vh capped at sensible
|
|
32
|
+
desktop widths; consumers override per-dock by setting either
|
|
33
|
+
token directly on a `.glass-dock` instance. User findings 1 + 5a. */
|
|
34
|
+
/* AX.W04 — `--dock-max-inline-size` is the canonical inline cap EVERY overflow
|
|
35
|
+
strategy reads: `overflow="scroll"` scrolls past it, and `overflow="wrap"`
|
|
36
|
+
wraps to N rows on the over-cap crossing (the dock shrink-wraps to content,
|
|
37
|
+
`max-inline-size` caps that intrinsic width at this token). The prior
|
|
38
|
+
`--dock-overflow-bp: 640px` viewport-breakpoint token (the magic-640
|
|
39
|
+
snap-back) is DELETED — the wrap is content-driven, not viewport-coupled, so
|
|
40
|
+
there is no breakpoint threshold to name. */
|
|
41
|
+
--dock-max-inline-size: min(80vw, 64rem);
|
|
42
|
+
--dock-max-block-size: min(80vh, 48rem);
|
|
43
|
+
|
|
44
|
+
/* AB.W1.T1 — chassis max-block-size guardrail.
|
|
45
|
+
Maximum block size a centred consumer-app card may consume while
|
|
46
|
+
preserving the inline dock footprint. The recipe subtracts the
|
|
47
|
+
consumer-owned `--dock-footer-space` (dock height + dock inset +
|
|
48
|
+
card-edge inset) and `--page-padding-top` from the dynamic viewport,
|
|
49
|
+
then takes one further rem of breathing room so the card never
|
|
50
|
+
butts the dock — the user mandate is `≥ 1rem visible gap above
|
|
51
|
+
dock`. Both consumer tokens carry safe fallbacks for callers that
|
|
52
|
+
have not declared them.
|
|
53
|
+
|
|
54
|
+
Consumers should shrink internal regions (meter, readout, timeline)
|
|
55
|
+
before falling back to scroll. This token is a guardrail against
|
|
56
|
+
chassis overflow, NOT a license to make the card scroll as the
|
|
57
|
+
default solution; clamp-first / no-scroll-first is the canon.
|
|
58
|
+
See DESIGN.md `## Chassis sizing — dock-adjusted viewport`. */
|
|
59
|
+
--chassis-max-block-size: calc(
|
|
60
|
+
100dvh
|
|
61
|
+
- var(--dock-footer-space, 5.75rem)
|
|
62
|
+
- var(--page-padding-top, 0rem)
|
|
63
|
+
- 1rem
|
|
64
|
+
);
|
|
65
|
+
/* R0G-2 (AO.W3/W4) — chassis mobile dial-reserve canon. instrument-
|
|
66
|
+
chassis.css's mobile breakpoint reserves the dial's final box from
|
|
67
|
+
frame 0 via these vars (with the same values as inline fallbacks, the
|
|
68
|
+
safety net). Token-first home so the vars resolve canonically. */
|
|
69
|
+
--instrument-dial-min-height-mobile: 24rem;
|
|
70
|
+
--instrument-dial-meter-reserve-mobile: minmax(0, 1fr);
|
|
71
|
+
/* BB.W-DESKTOP-RESERVE (B3) — the chassis WIDE-AXIS (desktop) dial reserve
|
|
72
|
+
canon, the complement of the mobile rung above. The mobile reflow
|
|
73
|
+
reserves the dial box from frame 0 via the rung above; the WIDE box axis
|
|
74
|
+
had NO library reserve, so on desktop a `1fr` meter row collapsed to its
|
|
75
|
+
pre-hydration intrinsic `<canvas>` size and grew on hydration, pushing
|
|
76
|
+
the results card + dock down (the measured desktop-1440 CLS the speedtest
|
|
77
|
+
App.vue interim authored a local `min-block-size` to cure). This rung is
|
|
78
|
+
the library home: the dial cell reserves its settled height from frame 0
|
|
79
|
+
on the wide axis, so the inner card mounts into an already-correct
|
|
80
|
+
envelope (CLS≈0, no post-hydration growth).
|
|
81
|
+
|
|
82
|
+
The default IS `--chassis-max-block-size` — the library's own
|
|
83
|
+
chassis-sizing guardrail (the dock-adjusted dynamic-viewport budget a
|
|
84
|
+
centred consumer card clamps to), a pure CSS calc that resolves at first
|
|
85
|
+
paint with NO JS. This is the DESKTOP DIAL: a consumer whose meter is a
|
|
86
|
+
different block-size retunes THIS token (the speedtest-specific value
|
|
87
|
+
stays in speedtest — presets-in-consumers). A consumer deletes its local
|
|
88
|
+
App.vue wide-axis interim once it consumes this rung. Both knobs are CSS
|
|
89
|
+
custom properties (token-first), the inline fallback in
|
|
90
|
+
instrument-chassis.css carries the contract if the token is unset. */
|
|
91
|
+
--instrument-dial-min-block-size-desktop: var(--chassis-max-block-size);
|
|
92
|
+
|
|
93
|
+
--max-width-input: 24rem;
|
|
94
|
+
--input-min-width-sm: 5rem;
|
|
95
|
+
--min-width-input-sm: var(--input-min-width-sm);
|
|
96
|
+
/* AU.W8b.4 — canonical popover width (Combobox list + anchor). Lifts the
|
|
97
|
+
`w-[200px]` arbitrary-value wrap to the `w-popover` @theme utility. */
|
|
98
|
+
--popover-width: 200px;
|
|
99
|
+
/* AZ.R5-4 — the ONE panel inner-padding rung (the consumer-verified "the
|
|
100
|
+
popover/dropdown content reads TIGHT" finding). The floating-panel +
|
|
101
|
+
DropdownMenuContent recipes read THIS token for their inner pad instead of
|
|
102
|
+
the prior hand-set `p-1`/literal, so a consumer retunes every teleported
|
|
103
|
+
menu/panel surface from one override. The comfortable default is `0.375rem`
|
|
104
|
+
(a half-rung over the prior 0.25rem tight floor — comfortable both modes
|
|
105
|
+
without over-padding a dense menu list). BB.W-CARD-PAD — the dead
|
|
106
|
+
`--panel-padding-roomy` (1rem) is DELETED here (clean break, no alias): it
|
|
107
|
+
had ZERO `var(--panel-padding-roomy)` consumers (the prose-popover register
|
|
108
|
+
it claimed to back never read it — PopoverContent paints `p-4` directly), so
|
|
109
|
+
it was an orphan declaration the golden-padding cut prunes. */
|
|
110
|
+
--panel-padding: 0.375rem;
|
|
111
|
+
--chart-height-compact: 15rem;
|
|
112
|
+
--chart-height-default: 22.5rem;
|
|
113
|
+
--chart-height-large: 25rem;
|
|
114
|
+
--chart-margin: 1.25rem;
|
|
115
|
+
--paper-texture-size: 200px 200px;
|
|
116
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/* tokens/on-glass-fg.css
|
|
2
|
+
The surface-aware FOREGROUND register (BB.W-ON-GLASS-FG — N13). Carved out of
|
|
3
|
+
tokens/glass.css to keep that partial under the no-god-module bound; @import-ed
|
|
4
|
+
by tokens.css in cascade order AFTER glass.css (the rungs derive against the
|
|
5
|
+
glass-bg-quiet composite, so they must resolve after the §8 ladder). Same :root
|
|
6
|
+
cascade context as its sibling token partials.
|
|
7
|
+
|
|
8
|
+
A THREE-RUNG on-glass family whose contrast TARGET is the COMPOSITED content-
|
|
9
|
+
tier glass FILL, not the canvas. The glass-first MAXIMAL default (AX.W54) makes
|
|
10
|
+
a caption/well/track rendering over a TRANSLUCENT content plate the common case;
|
|
11
|
+
--muted-foreground (= --neutral-5, "AA vs page") collapses on its OWN surface
|
|
12
|
+
(the speedtest ask measured 1.15-3.29:1 in dark theme — the "whisper collapse").
|
|
13
|
+
|
|
14
|
+
This is the THIRD state the BA adaptive-glass seam never expressed (the SAME
|
|
15
|
+
--glass-tint-* cascade context, NOT a fork): (a) bright/darkened plate → full
|
|
16
|
+
ink (the @container bright bucket + the overlay band, shipped — glass/ladder.css);
|
|
17
|
+
(b) opaque canvas → page-muted (--neutral-5, kept); (c) THIS — calm translucent
|
|
18
|
+
glass plate → a register BETWEEN page-muted and full-ink (legible-AND-subordinate;
|
|
19
|
+
a caption stays quieter than body ink WHILE clearing AA on the composited plate).
|
|
20
|
+
|
|
21
|
+
The values are DERIVED against the LIBRARY composite (--card over --neutral-0
|
|
22
|
+
through --glass-bg-quiet at --glass-tint-strength-floor), warm-amber (the BA.W-
|
|
23
|
+
NO-GRAY identity, OKLab gray floor cleared at the warm hue) — NOT copied from
|
|
24
|
+
the slides deck.css §1 reference (the deck's NC-State-red warm-cream literals
|
|
25
|
+
hsl(24 6% 44%)/hsl(45 12% 64%) are a CONSUMER divergence; the library re-derives).
|
|
26
|
+
NO ppmycota/demo hue. The page-muted register (--muted-foreground/-strong) is
|
|
27
|
+
UNTOUCHED — the on-glass rungs are NET-NEW; the glass/ladder.css calm-tier rule
|
|
28
|
+
re-points --muted-foreground → these on the engaged plate, no per-site edit.
|
|
29
|
+
|
|
30
|
+
PLAIN PER-MODE ARM idiom (light here, dark in tokens/dark-arm.css) — NOT
|
|
31
|
+
light-dark(): the house pattern every explicit-color token follows (a re-
|
|
32
|
+
resolution under .dark, not a single-declaration light-dark() that an inset-
|
|
33
|
+
shadow downstream could collapse — the light-dark() inset-shadow trap). */
|
|
34
|
+
:root {
|
|
35
|
+
--on-glass-muted: hsl(30 26% 35%); /* the muted caption rung over the composited cream plate (5.76:1 vs plate; darker than --neutral-5 L40) */
|
|
36
|
+
--on-glass-muted-strong: hsl(28 28% 28%); /* the -strong secondary rung, one step more present (7.79:1 vs plate) */
|
|
37
|
+
--input-on-glass: hsl(36 40% 92%); /* the form-well fill over glass — grounded warm so the input TEXT (--foreground) reads against a stable base (14.9:1) */
|
|
38
|
+
--progress-track-on-glass: hsl(34 24% 84%); /* the recessed meter track over glass — a warm channel distinct from the fill silhouette */
|
|
39
|
+
}
|
|
@@ -30,10 +30,9 @@
|
|
|
30
30
|
wrapper that reads it for a sympathetic tint (matches the
|
|
31
31
|
`--phase-color` inheritance pattern).
|
|
32
32
|
|
|
33
|
-
• --ripple-radius (
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
onto a non-pressed child).
|
|
33
|
+
• --ripple-radius — RETIRED at BA.W-GLASS-CAL (H2a) with the disco recipe
|
|
34
|
+
family: the typed press-ripple was `btn-audacious`-private and has no
|
|
35
|
+
surviving consumer (the calm CTA register's press is the §6 scale beat).
|
|
37
36
|
═══════════════════════════════════════════════ */
|
|
38
37
|
|
|
39
38
|
@property --progress-crescendo {
|
|
@@ -42,16 +41,25 @@
|
|
|
42
41
|
initial-value: 0%;
|
|
43
42
|
}
|
|
44
43
|
|
|
45
|
-
|
|
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 {
|
|
46
54
|
syntax: "<percentage>";
|
|
47
|
-
inherits:
|
|
55
|
+
inherits: false;
|
|
48
56
|
initial-value: 0%;
|
|
49
57
|
}
|
|
50
58
|
|
|
51
|
-
@property --
|
|
52
|
-
syntax: "<
|
|
53
|
-
inherits:
|
|
54
|
-
initial-value:
|
|
59
|
+
@property --phase-tint-amount {
|
|
60
|
+
syntax: "<percentage>";
|
|
61
|
+
inherits: true;
|
|
62
|
+
initial-value: 0%;
|
|
55
63
|
}
|
|
56
64
|
|
|
57
65
|
/* ═══════════════════════════════════════════════
|
|
@@ -98,6 +106,71 @@
|
|
|
98
106
|
initial-value: 0;
|
|
99
107
|
}
|
|
100
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
|
+
|
|
101
174
|
/* AX.W54 — the GLASS-FIRST single knob. `--glass-level` is the ONE clarity
|
|
102
175
|
scalar threaded through BOTH glass ladders at their single sites (the
|
|
103
176
|
`--glass-bg-*` opacity recipe + the `--glass-blur-*` radii). It is a typed,
|
|
@@ -121,6 +194,27 @@
|
|
|
121
194
|
initial-value: 1;
|
|
122
195
|
}
|
|
123
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
|
+
|
|
124
218
|
/* AX.W51 D18 — the master comfortable-sizing scalar registered typed. The
|
|
125
219
|
`<number>` syntax guarantees `calc(<base> * var(--ui-scale))` is always valid (a
|
|
126
220
|
malformed override CLAMPS to the initial value 1, not an invalidated calc — the
|
|
@@ -159,6 +253,13 @@
|
|
|
159
253
|
--glass-specular-intensity-rest: 0;
|
|
160
254
|
--glass-specular-intensity-hover: 0.1;
|
|
161
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;
|
|
162
263
|
}
|
|
163
264
|
|
|
164
265
|
/* Over the deep canvas `plus-lighter` still lifts, so the dark arm runs a touch
|
|
@@ -166,4 +267,23 @@
|
|
|
166
267
|
.dark {
|
|
167
268
|
--glass-specular-intensity-hover: 0.08;
|
|
168
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;
|
|
169
289
|
}
|
|
@@ -51,6 +51,14 @@
|
|
|
51
51
|
wants a whisper of squish, not a bounce. A consumer dials the elasticity
|
|
52
52
|
(or to 1 for none) without touching source. */
|
|
53
53
|
--tab-indicator-max-stretch: 1.08;
|
|
54
|
+
/* BA.W-TABS — the indicator's OWN travel clock, re-pointed off the generic
|
|
55
|
+
`--duration-normal` (0.3s, which dragged a ~190ms sub-pixel undershoot tail
|
|
56
|
+
past the ~100ms 90%-travel point — the R10-2 "too slow" read) onto the
|
|
57
|
+
CALIBRATED `--spring-snappy-duration` (the W-GLASS-CAL Unit 3 per-spring
|
|
58
|
+
2%-band envelope-settle clock for the snappy curve, ~0.34s). The glide +
|
|
59
|
+
squish both read this ONE clock so they cannot desync; consume, never
|
|
60
|
+
re-mint the spring-duration primitive (W-GLASS-CAL owns it). */
|
|
61
|
+
--tab-indicator-duration: var(--spring-snappy-duration);
|
|
54
62
|
--opacity-disabled: 0.5;
|
|
55
63
|
--opacity-icon-muted: 0.8;
|
|
56
64
|
|
|
@@ -59,6 +67,20 @@
|
|
|
59
67
|
0 0 8px color-mix(in srgb, var(--ring) 15%, transparent);
|
|
60
68
|
--focus-ring: var(--focus-ring-shadow);
|
|
61
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
|
+
|
|
62
84
|
/* ═══════════════════════════════════════════════
|
|
63
85
|
§12 PAPER TEXTURES
|
|
64
86
|
═══════════════════════════════════════════════ */
|
|
@@ -72,6 +94,45 @@
|
|
|
72
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");
|
|
73
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");
|
|
74
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
|
+
|
|
75
136
|
/* ═══════════════════════════════════════════════
|
|
76
137
|
§13 GOLD (accent family kept for consumers using it)
|
|
77
138
|
═══════════════════════════════════════════════ */
|
|
@@ -92,6 +153,68 @@
|
|
|
92
153
|
--color-gold-dark: var(--gold-dark);
|
|
93
154
|
--color-gold-deep: var(--gold-deep);
|
|
94
155
|
|
|
156
|
+
/* ═══════════════════════════════════════════════
|
|
157
|
+
§13b SILVER (the structure metal — BA.W-ATLAS-RECONCILE C-3, d6 register C)
|
|
158
|
+
═══════════════════════════════════════════════ */
|
|
159
|
+
/* The cool polished-steel STRUCTURE quad — gold's mirror for the industrial
|
|
160
|
+
housing register (the InstrumentChassis `variant="structure"` consumer #2).
|
|
161
|
+
Gold ships; the structure metal never did. The cascade EXACTLY mirrors gold's
|
|
162
|
+
(scale-paper raw → bridges `--color-silver*` alias → both dark arms).
|
|
163
|
+
|
|
164
|
+
BA.W-NO-GRAY NAMED EXCEPTION (the ONE sanctioned cool-neutral). W-NO-GRAY
|
|
165
|
+
moved the library's NEUTRAL ladder to a warm OKLab H~70° register (no gray).
|
|
166
|
+
Silver is DELIBERATELY COOL near-achromatic (hue ~255, the blue-steel of a
|
|
167
|
+
milled panel) — it is NOT a neutral, it is a brand METAL identity (like gold).
|
|
168
|
+
Calibrated AGAINST the new warm floor: the very-low chroma (C ≤ 0.016) reads
|
|
169
|
+
as polished metal, not a tinted cast, and the cool hue distinguishes it from
|
|
170
|
+
the warm-cream glass plate so the structure register reads as a DIFFERENT
|
|
171
|
+
material, not a desaturated default. Recorded as the warm-floor exception in
|
|
172
|
+
the W-ATLAS-RECONCILE DELTA. */
|
|
173
|
+
--silver: oklch(0.760 0.012 255);
|
|
174
|
+
--silver-light: oklch(0.902 0.010 255);
|
|
175
|
+
--silver-dark: oklch(0.582 0.014 255);
|
|
176
|
+
/* The mode-INVARIANT deep structure plate (mirrors `--gold-deep`'s contract —
|
|
177
|
+
a fixed dark cool-steel so a white label clears ≥4.5:1 in BOTH modes; it does
|
|
178
|
+
NOT flip with `--foreground`). The would-be saturated CTA twin of the metal. */
|
|
179
|
+
--silver-deep: oklch(0.462 0.016 258);
|
|
180
|
+
|
|
181
|
+
--color-silver: var(--silver);
|
|
182
|
+
--color-silver-light: var(--silver-light);
|
|
183
|
+
--color-silver-dark: var(--silver-dark);
|
|
184
|
+
--color-silver-deep: var(--silver-deep);
|
|
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
|
+
|
|
95
218
|
/* ═══════════════════════════════════════════════
|
|
96
219
|
§14 RAINBOW PALETTE — oklch (AV.W16 TW2; mode-independent, no .dark
|
|
97
220
|
mirror; hue preserved from the prior hsl() cadence)
|
|
@@ -229,6 +352,32 @@
|
|
|
229
352
|
--metric-row-label-clamp-cqi: 5cqi;
|
|
230
353
|
--metric-row-label-clamp-max: 2.75rem;
|
|
231
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
|
+
|
|
232
381
|
/* ═══════════════════════════════════════════════
|
|
233
382
|
§2.D INSTRUMENT-CLUSTER COMPOSITION RHYTHM
|
|
234
383
|
|
|
@@ -279,88 +428,10 @@
|
|
|
279
428
|
--table-head-h: calc(3rem * var(--table-density));
|
|
280
429
|
--table-head-px: calc(1rem * var(--table-density));
|
|
281
430
|
|
|
282
|
-
/*
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
knob a token so a consumer retunes without editing library source.
|
|
289
|
-
|
|
290
|
-
SCROLL-DRIVEN (scroll-driven.css). Values mirror the JS-fallback
|
|
291
|
-
composable defaults (`useScrollProgress` / `useStaggerReveal`) so the
|
|
292
|
-
native CSS path and the fallback path read identically — no visual seam
|
|
293
|
-
at the `@supports` boundary.
|
|
294
|
-
|
|
295
|
-
TOP-LAYER (animations.css §TOP-LAYER). The `@starting-style` entry/exit
|
|
296
|
-
grammar for native `<dialog>` / `[popover]` glass surfaces. The backdrop dim
|
|
297
|
-
uses the house alpha-derivative `color-mix(in srgb, var(--background) Npct,
|
|
298
|
-
transparent)` (AZ.W-ADAPTIVE-AUTO A5-1). It is NOT the `hsl(var(--background)
|
|
299
|
-
/ α)` channel form: `--background` is a COMPLETE `hsl()` color
|
|
300
|
-
(`= hsl(48 12% 98%)`), so `hsl(var(--background) / α)` double-wraps to
|
|
301
|
-
`hsl(hsl(…) / α)` — invalid, never paints (the modal dim was silently dead).
|
|
302
|
-
The genuine channel form would require `--background` declared as a bare
|
|
303
|
-
`H S% L%` triple, which it never is — hence the alpha-derivative mix.
|
|
304
|
-
|
|
305
|
-
VIEW-TRANSITION (view-transition.css). The shared `.gl-list-item` group
|
|
306
|
-
recipe + the `--vt-*` axes the `useViewTransition` substrate consumers
|
|
307
|
-
(dock layer swap, muster J's verdict re-rank) tune their swap against.
|
|
308
|
-
═══════════════════════════════════════════════ */
|
|
309
|
-
--scroll-progress-scroller: root;
|
|
310
|
-
--scroll-reveal-rise: 6px;
|
|
311
|
-
--scroll-reveal-range-end: 60%;
|
|
312
|
-
|
|
313
|
-
--top-layer-enter-scale: 0.96;
|
|
314
|
-
--top-layer-backdrop-blur: 8px;
|
|
315
|
-
--top-layer-backdrop-dim: 0.5;
|
|
316
|
-
|
|
317
|
-
--vt-duration: var(--duration-normal);
|
|
318
|
-
/* AX.W05 — ONE iOS-spring vocabulary: every spring-flavored transition reads
|
|
319
|
-
a governed `--spring-*` register. The legacy apple-spring cubic-bezier
|
|
320
|
-
(+27.5% overshoot) was a SECOND authority beside the regen `--spring-*`
|
|
321
|
-
cohort; it is EXCISED. Its emphatic-overshoot register maps to the playful
|
|
322
|
-
`--spring-bouncy` (the closest `linear()` overshoot stop-set), so the VT
|
|
323
|
-
default + the cards/top-layer transitions share one spring primitive
|
|
324
|
-
(CPU + GPU sample the same curve). No cubic-bezier fallback seed survives —
|
|
325
|
-
the `linear()` spring degrades to `ease` where `linear()` is unsupported. */
|
|
326
|
-
--vt-ease: var(--spring-bouncy);
|
|
327
|
-
--vt-rise: 8px;
|
|
328
|
-
|
|
329
|
-
/* AT.W6-dock-c / AU.W8 — the dock layer-swap morph timing, minted ONCE so
|
|
330
|
-
both engine paths are timing-IDENTICAL: the FLIP fallback (via
|
|
331
|
-
`--dock-motion-resize`), the native View-Transition group (its
|
|
332
|
-
`animation-timing-function`), AND the runtime SpringProgress driver
|
|
333
|
-
(AU.W8.3) consume this same `(0.32, 0.7)` source curve. Retires the AQ.W6
|
|
334
|
-
fork where the VT path ran `--vt-ease` (apple-spring, +27.5% overshoot)
|
|
335
|
-
while the FLIP ran the snappy spring. `--vt-ease` still defaults the
|
|
336
|
-
other VT recipes (`.gl-list-item`).
|
|
337
|
-
|
|
338
|
-
AU.W8 — RETARGET snappy → dock. `--spring-snappy` (ζ=0.65, +6.8%) read as
|
|
339
|
-
mechanical: a stiff plateau at ~48% with too little overshoot to feel
|
|
340
|
-
alive ("not iOS-smooth"). AW.W2 then retuned the dock spring to the
|
|
341
|
-
iOS-control register: `--spring-dock` ((0.32, 0.7), ~+4.6%) settles snappy
|
|
342
|
-
with a restrained overshoot — the felt iOS dock morph, off the prior
|
|
343
|
-
playful +18.5% register. The runtime driver's DOCK_SPRING const MIRRORS the
|
|
344
|
-
(0.32, 0.7) PRESETS row, so the CSS token and the JS-driven morph are
|
|
345
|
-
bit-identical. */
|
|
346
|
-
--dock-resize-spring: var(--spring-dock);
|
|
347
|
-
|
|
348
|
-
/* AT.W7-dock-b — dock-control press micro-feedback spring. A TRANSFORM-ONLY
|
|
349
|
-
spring (`scale`/`rotate`) the dock controls apply to their hover/press
|
|
350
|
-
activation so the squish reads with a touch of spring-back rather than a
|
|
351
|
-
flat ease. STRICTLY transform-scoped: it must never touch the surface-tier
|
|
352
|
-
`[data-held]` fades (background/border/box-shadow), which stay on
|
|
353
|
-
`--duration-fast var(--ease-standard)`. The duration pairs with
|
|
354
|
-
`--duration-fast`; consumers retune the whole feel via this one token.
|
|
355
|
-
|
|
356
|
-
AY.W-DOCK2 (D6) — the register is `--spring-smooth`, the §6 easing-doctrine
|
|
357
|
-
transform-press register (tokens.css §2: transform hover/press/active →
|
|
358
|
-
`--spring-smooth`/`--spring-snappy`, NEVER `--spring-bouncy`; a press must
|
|
359
|
-
settle, never overshoot into a visible bounce). The prior `--spring-bouncy`
|
|
360
|
-
ROOT default was off-doctrine, shadowed for the four named controls by a
|
|
361
|
-
per-surface re-point in dock-controls.css — the exact per-surface fork the
|
|
362
|
-
doctrine kills. The re-point is now a DEAD byte-identical redeclaration and is
|
|
363
|
-
DELETED; the ROOT token IS the doctrine register, so any other consumer of
|
|
364
|
-
`--dock-press-spring` inherits the correct smooth register. */
|
|
365
|
-
--dock-press-spring: var(--duration-fast) 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. */
|
|
366
437
|
}
|