@mkbabb/glass-ui 4.0.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/CardAction-8whJrLWt.js +268 -0
- package/dist/{CommandShortcut-DdtWXxOK.js → CommandShortcut-D3yxgHNn.js} +25 -14
- package/dist/ConfiguratorRow-CaP7U3ZA.js +143 -0
- package/dist/ContextMenuContent-B3ZsheLV.js +90 -0
- package/dist/{ContextMenuSubContent-B0Vs6atR.js → ContextMenuSubContent-DDRID3qC.js} +28 -33
- package/dist/{DataTable-C464Zbqd.js → DataTable-Bc9kUtu_.js} +4 -4
- package/dist/{DialogContent-DDE6pQBU.js → DialogContent-6JtTB5x2.js} +11 -8
- package/dist/DialogFooter-9phqcRIS.js +80 -0
- package/dist/DialogScrollContent-TTuovQst.js +93 -0
- package/dist/{FadingScroll-DwNnvKMs.js → FadingScroll-DLRbH5Xr.js} +1 -1
- package/dist/HoverCardContent-Bel1gdLZ.js +88 -0
- package/dist/{HoverPopover-Dpzwvc4t.js → HoverPopover-BcIxvyqZ.js} +2 -2
- package/dist/{IconChip-BDw1j5mu.js → IconChip-DhbdGdFQ.js} +2 -1
- package/dist/{IconTooltip-DSjasZIt.js → IconTooltip-B0zimd2H.js} +1 -1
- package/dist/Input-Cg9DF62r.js +57 -0
- package/dist/{MetricBadge-BpC0R_Ec.js → MetricBadge-RHdBP72w.js} +1 -1
- package/dist/Notification-CphK7AAm.js +43 -0
- package/dist/NumberFieldContent-D8cXeyO4.js +140 -0
- package/dist/PagerDots-Cjx96la-.js +98 -0
- package/dist/{PopoverContent-BTorlp--.js → PopoverContent-DL7E6vJP.js} +4 -4
- package/dist/{Progress-hAT4gqGH.js → Progress-CnqB7gLm.js} +4 -4
- package/dist/{ScrollingText-CUVFTWk2.js → ScrollingText-CTZbA_cG.js} +2 -2
- package/dist/{SelectScrollDownButton-C1jb3b3K.js → SelectScrollDownButton-DAKCBEdW.js} +65 -61
- package/dist/{SelectSeparator-DK2y1Bun.js → SelectSeparator-C2UGOkXF.js} +1 -1
- package/dist/Separator-DQcwC2TR.js +44 -0
- package/dist/Switch-B8RscmRu.js +49 -0
- package/dist/Toaster-D9qIHjBI.js +274 -0
- package/dist/ToggleGroupItem-BLtr3TJq.js +170 -0
- package/dist/TooltipProvider-BJ_Y5EGX.js +109 -0
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +21 -33
- package/dist/api/types-extra.d.ts +37 -0
- package/dist/api.js +1 -1
- package/dist/aurora.js +1231 -260
- package/dist/badge.js +1 -1
- package/dist/border-progress.d.ts +1 -0
- package/dist/border-progress.js +98 -0
- package/dist/button-5dY1Dvhd.js +125 -0
- package/dist/button.js +1 -1
- package/dist/canvas.js +2 -3
- package/dist/card.js +2 -2
- package/dist/carousel.js +93 -110
- package/dist/collapsible.js +1 -1
- package/dist/color-Cs0-oxYL.js +116 -0
- package/dist/color.js +2 -2
- package/dist/command.js +1 -1
- package/dist/compile-nZ1xVYTp.js +19 -0
- package/dist/completion-seal.d.ts +1 -0
- package/dist/completion-seal.js +89 -0
- package/dist/components/custom/aurora/Aurora.vue.d.ts +10 -5
- 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/color.d.ts +13 -0
- package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
- package/dist/components/custom/aurora/composables/runtime.d.ts +31 -0
- package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
- package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +60 -0
- package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +37 -0
- package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +20 -2
- package/dist/components/custom/aurora/constants/renderMode.d.ts +77 -18
- package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
- 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/spectrum-walk.d.ts +25 -0
- package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +18 -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/completion-seal/CompletionSeal.vue.d.ts +21 -0
- package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
- package/dist/components/custom/completion-seal/constants.d.ts +46 -0
- package/dist/components/custom/completion-seal/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 +18 -0
- package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +22 -0
- package/dist/components/custom/concentric/composables/ringField.d.ts +85 -0
- package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +14 -0
- package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
- package/dist/components/custom/concentric/constants.d.ts +67 -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/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
- package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
- package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
- package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
- package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
- package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
- package/dist/components/custom/constellation/constants.d.ts +33 -0
- package/dist/components/custom/constellation/constellationField.d.ts +31 -1
- package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
- package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
- package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
- package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
- package/dist/components/custom/constellation/index.d.ts +5 -5
- package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
- package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
- package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
- package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
- package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
- package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
- package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
- package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
- package/dist/components/custom/deck/constants.d.ts +14 -0
- package/dist/components/custom/deck/index.d.ts +8 -0
- package/dist/components/custom/dock/DockIconButton.vue.d.ts +25 -4
- package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
- package/dist/components/custom/dock/DockStack.vue.d.ts +65 -0
- package/dist/components/custom/dock/GlassDock.vue.d.ts +4 -2
- package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +155 -0
- package/dist/components/custom/dock/composables/index.d.ts +2 -0
- package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
- package/dist/components/custom/dock/composables/useDockShellProps.d.ts +11 -0
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
- package/dist/components/custom/dock/constants.d.ts +18 -14
- package/dist/components/custom/dock/index.d.ts +5 -2
- package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +42 -0
- package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +83 -0
- package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +39 -0
- package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +35 -0
- package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +31 -0
- package/dist/components/custom/dot-flow-field/constants.d.ts +69 -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 +4 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -0
- package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
- package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
- package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +52 -0
- package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
- package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +27 -0
- package/dist/components/custom/dot-matrix/constants.d.ts +58 -0
- package/dist/components/custom/dot-matrix/index.d.ts +5 -0
- package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
- package/dist/components/custom/dot-matrix/shaders/dot-matrix.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 +80 -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 +11 -0
- package/dist/components/custom/fourier-field/FourierField.vue.d.ts +43 -40
- package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +15 -0
- package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +20 -0
- package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +41 -0
- package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +42 -0
- package/dist/components/custom/fourier-field/constants.d.ts +64 -0
- package/dist/components/custom/fourier-field/index.d.ts +23 -18
- package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
- package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
- package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
- package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +1 -1
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +13 -3
- 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/constants.d.ts +1 -1
- package/dist/components/custom/goo-blob/index.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/types.d.ts +36 -0
- package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
- package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
- package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +50 -0
- package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +35 -0
- package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
- package/dist/components/custom/goo-dot-matrix/constants.d.ts +76 -0
- package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +11 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +3 -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/labeled-field/LabeledField.vue.d.ts +21 -2
- package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
- package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
- package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
- package/dist/components/custom/pager-dots/index.d.ts +2 -0
- package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
- package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
- package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +90 -0
- package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +16 -0
- package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +19 -0
- package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
- package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
- package/dist/components/custom/paper-grid/constants.d.ts +57 -0
- package/dist/components/custom/paper-grid/index.d.ts +5 -0
- package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
- package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
- package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
- package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
- package/dist/components/custom/search/index.d.ts +2 -0
- package/dist/components/custom/search/searchVariants.d.ts +19 -0
- package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
- package/dist/components/custom/selectable-chip/index.d.ts +2 -0
- package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +23 -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/split-chars/SplitChars.vue.d.ts +39 -0
- package/dist/components/custom/split-chars/index.d.ts +1 -0
- package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +12 -0
- package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
- package/dist/components/custom/tabs/constants.d.ts +20 -2
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +30 -17
- package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
- package/dist/components/ui/_shared/index.d.ts +2 -0
- package/dist/components/ui/_shared/menuItemVariants.d.ts +1 -1
- package/dist/components/ui/_shared/useControlSize.d.ts +46 -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 +79 -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 +3 -1
- 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/command/CommandDialog.vue.d.ts +9 -3
- package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
- package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -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/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
- 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/hover-card/HoverCardContent.vue.d.ts +3 -0
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/input/Input.vue.d.ts +3 -0
- package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
- package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
- package/dist/components/ui/select/SelectContent.vue.d.ts +4 -1
- package/dist/components/ui/sheet/index.d.ts +1 -1
- package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
- package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
- package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
- 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/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
- package/dist/composables/color/index.d.ts +2 -0
- package/dist/composables/color/useAccentTone.d.ts +34 -0
- 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/useVizChoreography.d.ts +123 -0
- package/dist/composables/glass/vSpecular.d.ts +2 -0
- package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +10 -0
- package/dist/composables/glass/webgl/shaders/flow.glsl.d.ts +1 -0
- package/dist/composables/glass/webgl/shaders/flow.wgsl.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 +75 -0
- package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +85 -0
- package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
- package/dist/composables/motion/core/index.d.ts +4 -0
- package/dist/composables/motion/index.d.ts +4 -0
- package/dist/composables/motion/scrollReader.d.ts +25 -0
- package/dist/composables/motion/springPresets.d.ts +20 -1
- package/dist/composables/motion/useCharStagger.d.ts +44 -0
- package/dist/composables/motion/useDockCtaReceive.d.ts +84 -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/useScrollChrome.d.ts +58 -0
- package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
- package/dist/composables/motion/useSpringPress.d.ts +5 -5
- package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
- package/dist/composables/sidebar/index.d.ts +4 -1
- package/dist/composables/sidebar/types.d.ts +68 -3
- package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
- package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
- package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
- package/dist/composables/virtual/index.d.ts +4 -0
- package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
- package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
- package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
- package/dist/concentric.d.ts +1 -0
- package/dist/concentric.js +836 -0
- package/dist/configurator.js +3 -2
- package/dist/confirm-dialog.js +62 -49
- package/dist/constellation.js +635 -235
- package/dist/context-menu.js +3 -3
- package/dist/controls.js +2 -2
- package/dist/createCanvasLifecycle-Gh45Ce-p.js +93 -0
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/deck.d.ts +1 -0
- package/dist/deck.js +105 -0
- package/dist/dialog.js +4 -3
- package/dist/dock.js +819 -568
- 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 +894 -0
- package/dist/dot-matrix.d.ts +1 -0
- package/dist/dot-matrix.js +630 -0
- package/dist/dotMatrixField-D_x9_1qq.js +48 -0
- package/dist/drawer.d.ts +1 -0
- package/dist/drawer.js +380 -0
- package/dist/{dropdown-menu-BJ7E9js_.js → dropdown-menu-aJmV5SqE.js} +82 -79
- package/dist/dropdown-menu.js +1 -1
- package/dist/easing.d.ts +1 -0
- package/dist/easing.js +475 -0
- package/dist/expandable-container.js +46 -21
- package/dist/fading-scroll.js +1 -1
- package/dist/flow.glsl-B2P7e0MT.js +4 -0
- package/dist/focus-scope.d.ts +1 -0
- package/dist/focus-scope.js +23 -0
- package/dist/forms.js +65 -63
- package/dist/fourier-field.js +831 -172
- 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 +187 -338
- package/dist/goo-blob.js +241 -692
- package/dist/goo-dot-matrix.d.ts +1 -0
- package/dist/goo-dot-matrix.js +591 -0
- 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 +3 -1
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +70 -60
- package/dist/metric-badge.js +1 -1
- package/dist/metric-cell.js +1 -1
- package/dist/metric-stack.js +14 -9
- package/dist/motion-core.js +58 -36
- package/dist/motion-curves.js +11 -1
- package/dist/motion.js +90 -53
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/pager-dots.js +2 -91
- package/dist/paper-backdrop.js +1 -1
- package/dist/paper-grid.d.ts +1 -0
- package/dist/paper-grid.js +788 -0
- package/dist/popover.js +1 -1
- package/dist/{presets-BW2b-fr1.js → presets-CvOUqtdY.js} +3 -3
- package/dist/{compile-EXXzEr1q.js → procedural-color.wgsl-m7Zgv35j.js} +2 -156
- package/dist/progress.js +1 -1
- package/dist/pulse.js +2 -2
- package/dist/reactive.js +1 -1
- package/dist/resolveCanvasColor-yPyIpJt9.js +93 -0
- package/dist/scrollReader-DI1NWxUw.js +42 -0
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +162 -308
- package/dist/select.js +3 -3
- package/dist/selectable-chip.d.ts +1 -0
- package/dist/selectable-chip.js +65 -0
- package/dist/separator.js +1 -1
- package/dist/{sheet-CquRYOAw.js → sheet-B2flBfLH.js} +5 -5
- package/dist/sheet.js +1 -1
- package/dist/sidebar.js +216 -114
- package/dist/{slider-DQ95MET2.js → slider-2A0rPn79.js} +3 -3
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +2 -2
- package/dist/spa-view.d.ts +1 -0
- package/dist/spa-view.js +46 -0
- package/dist/spectrum-walk-BVzA7Biz.js +33 -0
- package/dist/{springPresets-WXaLbu8u.js → springPresets-Ce7OYCm9.js} +12 -6
- package/dist/styles/animations.css +46 -12
- package/dist/styles/border-progress.css +109 -0
- package/dist/styles/cards.css +145 -0
- package/dist/styles/completion-seal.css +131 -0
- package/dist/styles/components.css +2 -3
- package/dist/styles/configurator.css +55 -0
- package/dist/styles/critical-partition.mjs +162 -0
- package/dist/styles/critical.css +12 -0
- package/dist/styles/deferred.css +33 -0
- package/dist/styles/dock/cta-seat.css +87 -0
- package/dist/styles/dock/density.css +198 -0
- package/dist/styles/dock/layers.css +101 -29
- package/dist/styles/dock/morph-bridge.css +54 -18
- package/dist/styles/dock/morph.css +132 -7
- package/dist/styles/dock/overflow.css +28 -2
- package/dist/styles/dock/search.css +68 -0
- package/dist/styles/dock/shape.css +124 -0
- package/dist/styles/dock/shell.css +77 -21
- package/dist/styles/dock/stack-rail.css +264 -0
- package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/dist/styles/dock-controls/icon-button.css +14 -0
- package/dist/styles/dock.css +43 -1
- package/dist/styles/drawer.css +81 -35
- package/dist/styles/glass/accent-tone.css +66 -0
- package/dist/styles/glass/control-surfaces.css +167 -0
- package/dist/styles/glass/deep.css +44 -0
- package/dist/styles/glass/ladder.css +147 -41
- package/dist/styles/glass/material.css +78 -15
- package/dist/styles/glass/reveal.css +136 -0
- package/dist/styles/glass/rim.css +110 -0
- package/dist/styles/glass/surfaces.css +148 -129
- package/dist/styles/glass-refract.css +96 -44
- package/dist/styles/glass-specular-track.css +7 -0
- package/dist/styles/glass.css +13 -0
- package/dist/styles/hover-popover.css +7 -6
- package/dist/styles/icon-chip.css +77 -15
- package/dist/styles/index.css +36 -9
- package/dist/styles/instrument-chassis.css +66 -3
- package/dist/styles/scroll-choreography.css +300 -0
- package/dist/styles/scroll-chrome.css +123 -0
- package/dist/styles/scroll-driven.css +38 -0
- package/dist/styles/segmented-tabs.css +81 -14
- package/dist/styles/theme/bridges.css +33 -0
- package/dist/styles/theme/literals.css +11 -2
- package/dist/styles/theme/radius.css +24 -2
- package/dist/styles/tokens/color-radius.css +13 -3
- package/dist/styles/tokens/dark-arm.css +137 -32
- package/dist/styles/tokens/glass-deep.css +100 -0
- package/dist/styles/tokens/glass-fx.css +376 -0
- package/dist/styles/tokens/glass.css +131 -351
- package/dist/styles/tokens/light-dark.css +16 -3
- package/dist/styles/tokens/offsets.css +143 -0
- package/dist/styles/tokens/on-glass-fg.css +39 -0
- package/dist/styles/tokens/property-regs.css +260 -0
- package/dist/styles/tokens/scale-paper.css +168 -96
- package/dist/styles/tokens/scheme-motion.css +114 -38
- package/dist/styles/tokens/scroll-tokens.css +123 -0
- package/dist/styles/tokens/sizing-config.css +110 -0
- package/{src/styles/tokens/offsets-sizing.css → dist/styles/tokens/sizing.css} +92 -204
- package/dist/styles/tokens.css +14 -3
- package/dist/styles/typography/semantic.css +26 -13
- package/dist/styles/typography/utilities.css +22 -7
- package/dist/styles/utilities/a11y-overrides.css +20 -5
- package/dist/styles/utilities/animate.css +27 -24
- package/dist/styles/utilities/base-misc.css +307 -0
- package/dist/styles/utilities/base.css +47 -261
- package/dist/styles/utilities/btn.css +17 -4
- package/dist/styles/utilities/components.css +31 -6
- package/dist/styles/utilities/metal.css +215 -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-chip.js +10 -10
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +2 -2
- package/dist/uniformBridgeWGPU-CtAKl45L.js +1204 -0
- package/dist/{useAnimatedNumber-C_3wZLx4.js → useAnimatedNumber-CLrxicG9.js} +1 -1
- package/dist/useConfiguratorState-4xblKfwd.js +162 -0
- package/dist/useControlSize-SH1UmJCi.js +9 -0
- package/dist/useDockCtaReceive-DfFkmgL1.js +82 -0
- package/dist/useDragMorph-BUgAC-zK.js +102 -0
- package/dist/useFuzzySearch-DIhcYtcw.js +177 -0
- package/dist/useGpuSubstrate-4pTcp6mX.js +294 -0
- package/dist/useLiquidPress-BooG97RY.js +39 -0
- package/dist/usePointerVelocityField-QLsy3_kv.js +91 -0
- package/dist/useScrollChrome-D66AVP7C.js +258 -0
- package/dist/useSpring-C0jyvEJB.js +40 -0
- package/dist/useSpringMount-BWDnKIwh.js +71 -0
- package/dist/useSpringPress-B1-Czp-V.js +36 -0
- package/dist/{useTouchGate-28Tk2-t2.js → useTouchGate-CBZTD4SD.js} +1 -1
- package/dist/useViewTransition-CUI1nAgn.js +95 -0
- package/dist/vSpecular-EX7loENl.js +68 -0
- package/dist/vendor-B2qOlYY3.js +239 -0
- package/dist/virtual.d.ts +1 -0
- package/dist/virtual.js +225 -0
- package/dist/watercolor-dot.js +117 -74
- package/package.json +252 -28
- package/src/styles/animations.css +46 -12
- package/src/styles/border-progress.css +109 -0
- package/src/styles/cards.css +145 -0
- package/src/styles/completion-seal.css +131 -0
- package/src/styles/configurator.css +55 -0
- package/src/styles/critical-partition.mjs +162 -0
- package/src/styles/dock/cta-seat.css +87 -0
- package/src/styles/dock/density.css +198 -0
- package/src/styles/dock/layers.css +101 -29
- package/src/styles/dock/morph-bridge.css +54 -18
- package/src/styles/dock/morph.css +132 -7
- package/src/styles/dock/overflow.css +28 -2
- package/src/styles/dock/search.css +68 -0
- package/src/styles/dock/shape.css +124 -0
- package/src/styles/dock/shell.css +77 -21
- package/src/styles/dock/stack-rail.css +264 -0
- package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/src/styles/dock-controls/icon-button.css +14 -0
- package/src/styles/dock.css +43 -1
- package/src/styles/drawer.css +81 -35
- package/src/styles/glass/accent-tone.css +66 -0
- package/src/styles/glass/control-surfaces.css +167 -0
- package/src/styles/glass/deep.css +44 -0
- package/src/styles/glass/ladder.css +147 -41
- package/src/styles/glass/material.css +78 -15
- package/src/styles/glass/reveal.css +136 -0
- package/src/styles/glass/rim.css +110 -0
- package/src/styles/glass/surfaces.css +148 -129
- package/src/styles/glass-refract.css +96 -44
- package/src/styles/glass-specular-track.css +7 -0
- package/src/styles/glass.css +13 -0
- package/src/styles/hover-popover.css +7 -6
- package/src/styles/icon-chip.css +77 -15
- package/src/styles/index.css +27 -0
- package/src/styles/instrument-chassis.css +66 -3
- package/src/styles/scroll-choreography.css +300 -0
- package/src/styles/scroll-chrome.css +123 -0
- package/src/styles/scroll-driven.css +38 -0
- package/src/styles/segmented-tabs.css +81 -14
- package/src/styles/theme/bridges.css +33 -0
- package/src/styles/theme/literals.css +11 -2
- package/src/styles/theme/radius.css +24 -2
- package/src/styles/tokens/color-radius.css +13 -3
- package/src/styles/tokens/dark-arm.css +137 -32
- package/src/styles/tokens/glass-deep.css +100 -0
- package/src/styles/tokens/glass-fx.css +376 -0
- package/src/styles/tokens/glass.css +131 -351
- package/src/styles/tokens/light-dark.css +16 -3
- package/src/styles/tokens/offsets.css +143 -0
- package/src/styles/tokens/on-glass-fg.css +39 -0
- package/src/styles/tokens/property-regs.css +260 -0
- package/src/styles/tokens/scale-paper.css +168 -96
- package/src/styles/tokens/scheme-motion.css +114 -38
- package/src/styles/tokens/scroll-tokens.css +123 -0
- package/src/styles/tokens/sizing-config.css +110 -0
- package/{dist/styles/tokens/offsets-sizing.css → src/styles/tokens/sizing.css} +92 -204
- package/src/styles/tokens.css +14 -3
- package/src/styles/typography/semantic.css +26 -13
- package/src/styles/typography/utilities.css +22 -7
- package/src/styles/utilities/a11y-overrides.css +20 -5
- package/src/styles/utilities/animate.css +27 -24
- package/src/styles/utilities/base-misc.css +307 -0
- package/src/styles/utilities/base.css +47 -261
- package/src/styles/utilities/btn.css +17 -4
- package/src/styles/utilities/components.css +31 -6
- package/src/styles/utilities/metal.css +215 -0
- package/src/styles/utilities.css +14 -7
- package/dist/CardAction-XH4YBVEK.js +0 -158
- package/dist/ContextMenuContent-ON3x7cuk.js +0 -85
- package/dist/DialogFooter-8eZbdmPc.js +0 -165
- package/dist/HoverCardContent-DkMaQzH5.js +0 -83
- package/dist/Input-DVG_J0ne.js +0 -55
- package/dist/Notification-DKjKsQq8.js +0 -100
- package/dist/NumberFieldContent-1VtwDSgf.js +0 -145
- package/dist/Separator-BArl4OaB.js +0 -37
- package/dist/Switch-Dr--uLGH.js +0 -47
- package/dist/Toaster-Bm_HQSpc.js +0 -263
- package/dist/ToggleGroupItem-Dzk9hWsF.js +0 -157
- package/dist/TooltipProvider-B3MkB_8P.js +0 -104
- package/dist/button-BNDWhAZb.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/color-DweYl7pE.js +0 -86
- package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
- package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
- package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
- package/dist/createLucideIcon-DydS2qgk.js +0 -43
- package/dist/minimize-2-BV31Ob_h.js +0 -38
- package/dist/resolveCanvasColor-BBiYfp8g.js +0 -11
- package/dist/search-BSGrf2Sk.js +0 -12
- package/dist/styles/dock/rail-extend.css +0 -397
- package/dist/useCanvas2D-ClrQuZtp.js +0 -96
- package/dist/useConfiguratorState-kiIlun8I.js +0 -303
- package/dist/useRAFLoop-CdwJ7284.js +0 -109
- 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/src/styles/dock/rail-extend.css +0 -397
- /package/dist/{CollapsibleContent-C_s6fG7r.js → CollapsibleContent-68dEXIAl.js} +0 -0
- /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-CxsHSyMj.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-CqwjnfLv.js} +0 -0
- /package/dist/{SelectGroup-Dcczq44n.js → SelectGroup-BFiod7X2.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/{constants-BPOqYJAm.js → constants--C2DkLW8.js} +0 -0
- /package/dist/{createContext-B2RaZ-b8.js → createContext-CpBNTRMI.js} +0 -0
- /package/dist/{math-DeuJwLFx.js → math-Eb0w3LqU.js} +0 -0
- /package/dist/{menuItemVariants-DWRQXBxJ.js → menuItemVariants-D8VNHq22.js} +0 -0
- /package/dist/{prng-Cg22zv8g.js → prng-B-d9eYX8.js} +0 -0
- /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-CmjB9E32.js} +0 -0
- /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-Dbozzjgm.js} +0 -0
- /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BPRp33Im.js} +0 -0
- /package/dist/{useLiquidFlex-C12hXwOZ.js → useLiquidFlex-UmA6LMZu.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/{useScrollProgress-D7bYU2RK.js → useScrollProgress-c3yxmH6a.js} +0 -0
- /package/dist/{useSurfaceAxis-CMnF2zHb.js → useSurfaceAxis-g0NloYEF.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
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/* utilities/base.css
|
|
2
|
-
The @layer components
|
|
2
|
+
The @layer components FORM/INTERACTION half — the @property fade pair (read by
|
|
3
|
+
the .fading-scroll rules in base-misc.css), section-description, labeled-field
|
|
4
|
+
(incl. the width-contract + error region), popover-content, scrollbar,
|
|
5
|
+
focus-ring, hairline-accent, interactive-item, tap-squish.
|
|
6
|
+
BB.W-CARVE3 carved the post-tap-squish tail (status-dot → kbd, incl. the
|
|
7
|
+
fading-scroll recipe) into the adjacent base-misc.css partial so each stays
|
|
8
|
+
under the no-god-module 500-line bound. The two adjacent same-`@layer
|
|
9
|
+
components` blocks compose identically — the dist is byte-isomorphic.
|
|
3
10
|
Carved from the utilities.css cascade root; @import-ed by utilities.css in
|
|
4
11
|
cascade order. See docs/precepts/design-idioms.md §cohesion-aware partials. */
|
|
5
12
|
|
|
@@ -127,8 +134,9 @@
|
|
|
127
134
|
(PopoverContent, DropdownMenuContent, SelectContent, etc.).
|
|
128
135
|
Covers radius + outline + popover-foreground; consumers compose
|
|
129
136
|
this with `.glass-floating` (bg + blur + border + shadow), with
|
|
130
|
-
`.
|
|
131
|
-
|
|
137
|
+
`.glass-reveal` (the spring-clocked data-state LIQUID-ENTER —
|
|
138
|
+
BB.W-LIQUID-REVEAL, off the retired `popover-animate`), and with the
|
|
139
|
+
per-host z-rung. The floating-tier shadow comes from
|
|
132
140
|
`--glass-shadow-floating` via `.glass-floating`, replacing the
|
|
133
141
|
`shadow-md`/`shadow-lg` literals that bypassed the canonical
|
|
134
142
|
cascade. */
|
|
@@ -278,264 +286,42 @@
|
|
|
278
286
|
}
|
|
279
287
|
}
|
|
280
288
|
|
|
281
|
-
/* ──
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
/* ── Scroll fade masks ──
|
|
319
|
-
Single-source `mask-image` (AV.W16 TW7): the `-webkit-` companion is
|
|
320
|
-
dropped — Tailwind v4's Lightning CSS build pipeline auto-prefixes per
|
|
321
|
-
the browserslist targets, mirroring the glass ladder's single-source
|
|
322
|
-
`backdrop-filter` (glass.css). NOTE: this is the consistency cut; it
|
|
323
|
-
does NOT conflict with W15's `@supports`-gated older-Safari mask
|
|
324
|
-
fallback (that fallback is the distinct case where the companion is
|
|
325
|
-
genuinely needed and W15 gates it). */
|
|
326
|
-
.scroll-fade-mask {
|
|
327
|
-
mask-image: linear-gradient(to right, transparent, black var(--mask-fade-width), black calc(100% - var(--mask-fade-width)), transparent);
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
.scroll-fade-top {
|
|
331
|
-
mask-image: linear-gradient(to bottom, transparent, black var(--mask-fade-width));
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
.scroll-fade-bottom {
|
|
335
|
-
mask-image: linear-gradient(to bottom, black calc(100% - var(--mask-fade-width)), transparent);
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
.scroll-fade-y {
|
|
339
|
-
mask-image: linear-gradient(to bottom, transparent, black var(--mask-fade-width), black calc(100% - var(--mask-fade-width)), transparent);
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
/* ── Fading scroll — the scroll-STATE-driven edge fade (BA.W-FADING-SCROLL) ──
|
|
343
|
-
`<FadingScroll>`'s recipe. SUPERSEDES the scroll-BLIND `.scroll-fade-*`
|
|
344
|
-
masks above (which feathered both edges unconditionally — the R8-08 "Shy"
|
|
345
|
-
defect). Here each edge's ramp width is a registered `--fade-start` /
|
|
346
|
-
`--fade-end` custom (above, default 0px = SHARP), driven by the
|
|
347
|
-
`scroll(self)` timeline so the start edge feathers only past `scroll > 0`
|
|
348
|
-
and the end edge only while trailing overflow remains.
|
|
349
|
-
|
|
350
|
-
The root IS the scroll port (the component sets overflow via the consumer's
|
|
351
|
-
utilities — `overflow-x-auto` / `overflow-y-auto` come from the class the
|
|
352
|
-
consumer passes; the axis floor below sets the OTHER axis). The 4-stop
|
|
353
|
-
mask reads the two customs; at rest both are 0px so the gradient is a flat
|
|
354
|
-
opaque pass-through (no feather). */
|
|
355
|
-
.fading-scroll {
|
|
356
|
-
/* The base mask is axis-specialized by the modifier classes below. The
|
|
357
|
-
default-x case uses the inline ramp; the y case the block ramp. */
|
|
358
|
-
mask-image: linear-gradient(
|
|
359
|
-
to right,
|
|
360
|
-
transparent 0,
|
|
361
|
-
black var(--fade-start),
|
|
362
|
-
black calc(100% - var(--fade-end)),
|
|
363
|
-
transparent 100%
|
|
364
|
-
);
|
|
365
|
-
}
|
|
366
|
-
.fading-scroll--x {
|
|
367
|
-
overflow-x: auto;
|
|
368
|
-
mask-image: linear-gradient(
|
|
369
|
-
to right,
|
|
370
|
-
transparent 0,
|
|
371
|
-
black var(--fade-start),
|
|
372
|
-
black calc(100% - var(--fade-end)),
|
|
373
|
-
transparent 100%
|
|
374
|
-
);
|
|
375
|
-
}
|
|
376
|
-
.fading-scroll--y {
|
|
377
|
-
overflow-y: auto;
|
|
378
|
-
mask-image: linear-gradient(
|
|
379
|
-
to bottom,
|
|
380
|
-
transparent 0,
|
|
381
|
-
black var(--fade-start),
|
|
382
|
-
black calc(100% - var(--fade-end)),
|
|
383
|
-
transparent 100%
|
|
384
|
-
);
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
/* The NATIVE primary path: drive the per-edge customs off a `scroll(self)`
|
|
388
|
-
timeline — ZERO JS on a supporting engine (the `scroll-driven.css` /
|
|
389
|
-
Baseline-Newly-Available bar). UNLIKE `scroll-driven.css` this is NOT
|
|
390
|
-
wrapped in `prefers-reduced-motion: no-preference` — the fade is a
|
|
391
|
-
LEGIBILITY cue, not motion, so it stays present under PRM (it merely stops
|
|
392
|
-
interpolating; the discrete overflow-edge presence stays correct, and the
|
|
393
|
-
registered customs make even the static endpoints land right). */
|
|
394
|
-
@supports (animation-timeline: scroll()) {
|
|
395
|
-
/* The start edge: from sharp (0) to feathered, completing within the
|
|
396
|
-
first `--fade-scroll-width` of scroll — so at `scroll = 0` the start is
|
|
397
|
-
SHARP and it ramps in only once the user genuinely scrolls past. */
|
|
398
|
-
@keyframes gl-fade-start-in {
|
|
399
|
-
from {
|
|
400
|
-
--fade-start: 0px;
|
|
401
|
-
}
|
|
402
|
-
to {
|
|
403
|
-
--fade-start: var(--fade-scroll-width);
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
/* The end edge: feathered while trailing overflow remains, ramping OUT to
|
|
407
|
-
sharp over the last `--fade-scroll-width` of scroll — so at the scroll
|
|
408
|
-
end (no trailing overflow) the end is SHARP. */
|
|
409
|
-
@keyframes gl-fade-end-out {
|
|
410
|
-
from {
|
|
411
|
-
--fade-end: var(--fade-scroll-width);
|
|
412
|
-
}
|
|
413
|
-
to {
|
|
414
|
-
--fade-end: 0px;
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
/* x axis — `scroll(self inline)`; two animations on the ONE element, each
|
|
418
|
-
gated by `animation-range` to the start / end sliver of the scroll
|
|
419
|
-
distance. `fadeStart`/`fadeEnd` props toggle their respective
|
|
420
|
-
animation off via the `[data-fade-*]` presence attrs. */
|
|
421
|
-
.fading-scroll--x[data-fade-start] {
|
|
422
|
-
animation: gl-fade-start-in linear both;
|
|
423
|
-
animation-timeline: scroll(self inline);
|
|
424
|
-
animation-range: 0 var(--fade-scroll-width);
|
|
425
|
-
}
|
|
426
|
-
.fading-scroll--x[data-fade-end] {
|
|
427
|
-
animation: gl-fade-end-out linear both;
|
|
428
|
-
animation-timeline: scroll(self inline);
|
|
429
|
-
animation-range: calc(100% - var(--fade-scroll-width)) 100%;
|
|
430
|
-
}
|
|
431
|
-
/* BOTH edges on one element compose as two named animations. */
|
|
432
|
-
.fading-scroll--x[data-fade-start][data-fade-end] {
|
|
433
|
-
animation:
|
|
434
|
-
gl-fade-start-in linear both,
|
|
435
|
-
gl-fade-end-out linear both;
|
|
436
|
-
animation-timeline: scroll(self inline), scroll(self inline);
|
|
437
|
-
animation-range:
|
|
438
|
-
0 var(--fade-scroll-width),
|
|
439
|
-
calc(100% - var(--fade-scroll-width)) 100%;
|
|
440
|
-
}
|
|
441
|
-
/* y axis — `scroll(self block)`. */
|
|
442
|
-
.fading-scroll--y[data-fade-start] {
|
|
443
|
-
animation: gl-fade-start-in linear both;
|
|
444
|
-
animation-timeline: scroll(self block);
|
|
445
|
-
animation-range: 0 var(--fade-scroll-width);
|
|
446
|
-
}
|
|
447
|
-
.fading-scroll--y[data-fade-end] {
|
|
448
|
-
animation: gl-fade-end-out linear both;
|
|
449
|
-
animation-timeline: scroll(self block);
|
|
450
|
-
animation-range: calc(100% - var(--fade-scroll-width)) 100%;
|
|
451
|
-
}
|
|
452
|
-
.fading-scroll--y[data-fade-start][data-fade-end] {
|
|
453
|
-
animation:
|
|
454
|
-
gl-fade-start-in linear both,
|
|
455
|
-
gl-fade-end-out linear both;
|
|
456
|
-
animation-timeline: scroll(self block), scroll(self block);
|
|
457
|
-
animation-range:
|
|
458
|
-
0 var(--fade-scroll-width),
|
|
459
|
-
calc(100% - var(--fade-scroll-width)) 100%;
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
/* ── Deferred section — render-skip an offscreen subtree (AQ.W3 §5) ──────
|
|
464
|
-
`content-visibility: auto` skips layout/paint/style of an offscreen
|
|
465
|
-
subtree — the INP-under-load lever (fourier γ, muster, speedtest, words).
|
|
466
|
-
`contain-intrinsic-size: auto <estimate>` is measurement-safe: the `auto`
|
|
467
|
-
prefix makes the engine REMEMBER the last-rendered size (no scroll-jump on
|
|
468
|
-
re-entry); plain `<estimate>` freezes the section + thrashes the scrollbar
|
|
469
|
-
— the trap this closes. Estimate is token-driven (`--deferred-section-
|
|
470
|
-
size`, default 30rem). `.deferred-section--cached` →
|
|
471
|
-
`content-visibility: hidden` (always skipped, state CACHED — cheaper to
|
|
472
|
-
re-show than `display:none`). Baseline Widely; unsupporting engines render
|
|
473
|
-
normally. JS HOOK: the engine fires `contentvisibilityautostatechange`
|
|
474
|
-
{ skipped } at the render-skip boundary — pair with `useRAFLoop`
|
|
475
|
-
pause/resume: `el.addEventListener('contentvisibilityautostatechange',
|
|
476
|
-
e => e.skipped ? loop.pause() : loop.resume())`. */
|
|
477
|
-
.deferred-section {
|
|
478
|
-
content-visibility: auto;
|
|
479
|
-
contain-intrinsic-size: auto var(--deferred-section-size, 30rem);
|
|
480
|
-
}
|
|
481
|
-
.deferred-section--cached {
|
|
482
|
-
content-visibility: hidden;
|
|
483
|
-
contain-intrinsic-size: auto var(--deferred-section-size, 30rem);
|
|
484
|
-
}
|
|
485
|
-
|
|
486
|
-
/* ── Card scroll-timeline host (AI.W1-α) ───────────────────────────────
|
|
487
|
-
Canonical scroll-overflow host that emits the `--card-scroll` named
|
|
488
|
-
scroll-timeline consumed by `<CardHeader shrink>`. Apply to the
|
|
489
|
-
scroll-overflow ancestor (typically the `<Card>` itself OR a wrapper
|
|
490
|
-
inside it that carries `overflow-y: auto`).
|
|
491
|
-
|
|
492
|
-
`contain: layout style paint` isolates the named timeline so child
|
|
493
|
-
animations respond to THIS host's scroll only — not to portal-
|
|
494
|
-
triggered layout shifts in ancestor containers (the load-bearing
|
|
495
|
-
isolation guarantee the value.js `PaneHeader.vue:18-29` comment
|
|
496
|
-
called out and the AI.W1 spec §1.2 ratified as canon).
|
|
497
|
-
|
|
498
|
-
Disambiguated from `.scroll-fade-*` (mask-image fade gradient at
|
|
499
|
-
the container's leading/trailing edge) — `.card-scroll-host` does
|
|
500
|
-
NOT paint any visual; it only emits the timeline. */
|
|
501
|
-
.card-scroll-host {
|
|
502
|
-
contain: layout style paint;
|
|
503
|
-
scroll-timeline: --card-scroll block;
|
|
504
|
-
}
|
|
505
|
-
|
|
506
|
-
/* ── Shimmer text effects ──
|
|
507
|
-
The text-fill + background-clip composition is load-bearing visual
|
|
508
|
-
(the gold gradient itself); only the `animation:` line is wrapped in
|
|
509
|
-
the PRM no-preference bracket so PRM users see the static gradient
|
|
510
|
-
without the slide animation. */
|
|
511
|
-
.gold-shimmer {
|
|
512
|
-
background: linear-gradient(90deg, var(--color-gold-dark), var(--color-gold-light), var(--color-gold), var(--color-gold-light), var(--color-gold-dark));
|
|
513
|
-
background-size: 250% 100%;
|
|
514
|
-
background-clip: text;
|
|
515
|
-
-webkit-background-clip: text;
|
|
516
|
-
color: transparent;
|
|
517
|
-
}
|
|
518
|
-
@media (prefers-reduced-motion: no-preference) {
|
|
519
|
-
.gold-shimmer {
|
|
520
|
-
animation: gold-shimmer-slide var(--duration-shimmer) linear infinite;
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
|
-
|
|
524
|
-
/* ── Keyboard key ── */
|
|
525
|
-
.kbd {
|
|
526
|
-
display: inline-flex;
|
|
527
|
-
align-items: center;
|
|
528
|
-
justify-content: center;
|
|
529
|
-
min-height: 1.5rem;
|
|
530
|
-
min-width: 1.5rem;
|
|
531
|
-
padding: 0 0.375rem;
|
|
532
|
-
font-family: var(--font-mono);
|
|
533
|
-
font-size: var(--type-micro);
|
|
534
|
-
background: var(--muted);
|
|
535
|
-
border: 1px solid var(--border);
|
|
536
|
-
border-radius: var(--radius-sm);
|
|
537
|
-
box-shadow: 0 1px 0 1px color-mix(in srgb, var(--border) 30%, transparent);
|
|
538
|
-
line-height: 1;
|
|
289
|
+
/* ── Glass-press — the interactive press register (BB.W-PRESS-UNIFY) ──
|
|
290
|
+
The CSS half of the `<Card :pressable>` / interactive-glass press. Two
|
|
291
|
+
coupled legs on ONE `--card-press-t` drive (the `useLiquidPress` writes the
|
|
292
|
+
JS-driven value; the CSS `:active` is the no-JS / SSR floor):
|
|
293
|
+
|
|
294
|
+
• The SCALE leg is the co-composed `.tap-squish` (the Card binds both
|
|
295
|
+
classes), so the no-JS press already scales to `--scale-press` on the
|
|
296
|
+
`--spring-smooth` clock and the JS reciprocal squish wins while engaged.
|
|
297
|
+
• The BRIGHTNESS leg reads the `--card-press-t` drive directly — a sub-
|
|
298
|
+
perceptual `filter: brightness()` lift so the glass reads as DEFORMING +
|
|
299
|
+
catching light under the press, not just shrinking (the W-MOTION-CANON P3
|
|
300
|
+
coupling — fade/brightness coupled WITH the transform on the same drive).
|
|
301
|
+
`filter` is compositor-safe (the P5 ban targets layout props only —
|
|
302
|
+
`proof:no-layout-animation` greens it), so the lift never re-layouts.
|
|
303
|
+
|
|
304
|
+
The brightness leg rides the `--card-press-t` VALUE (the typed press drive),
|
|
305
|
+
NOT a CSS transition — it tracks the JS spring frame-for-frame and degrades to
|
|
306
|
+
the resting 0 (no lift) when JS is off. The press surface is INTERACTIVE: the
|
|
307
|
+
cursor + a WCAG-2.5.5 touch floor (`min-block-size`) read here, not on the
|
|
308
|
+
static-card register. The interruptibility + the PRM-instant snap are the JS
|
|
309
|
+
driver's (`useLiquidPress` → the kf `SpringProgress` re-seat + the PRM policy);
|
|
310
|
+
this is the CSS floor the JS enhances. */
|
|
311
|
+
.glass-press {
|
|
312
|
+
cursor: pointer;
|
|
313
|
+
min-block-size: max(0px, var(--control-floor, 0px));
|
|
314
|
+
/* The coupled brightness lift on the press drive (rest 0 → ~4% at full
|
|
315
|
+
press). The drive is the JS-written `--card-press-t`; with JS off it stays
|
|
316
|
+
the `@property` 0 initial so the filter is a no-op (`brightness(1)`). */
|
|
317
|
+
filter: brightness(calc(1 + var(--card-press-t, 0) * 0.04));
|
|
318
|
+
}
|
|
319
|
+
/* The press-drive typed registration so a downstream `calc()` interpolates the
|
|
320
|
+
VALUE (number) and an unwired/SSR card is the static rest frame. */
|
|
321
|
+
@property --card-press-t {
|
|
322
|
+
syntax: "<number>";
|
|
323
|
+
inherits: true;
|
|
324
|
+
initial-value: 0;
|
|
539
325
|
}
|
|
540
326
|
|
|
541
327
|
}
|
|
@@ -49,12 +49,23 @@
|
|
|
49
49
|
Shared compound transition for interactive controls that animate their
|
|
50
50
|
surface (background-color/color/box-shadow/border-color) on the four-state
|
|
51
51
|
contract. Replaces the per-site
|
|
52
|
-
`transition-[background-color,color,box-shadow,border-color] duration-[var(--duration-
|
|
52
|
+
`transition-[background-color,color,box-shadow,border-color] duration-[var(--duration-control)] ease-[var(--ease-standard)]`
|
|
53
53
|
arbitrary wraps at ≥2 sites (TabsTrigger, SelectTrigger, Toggle `card`
|
|
54
|
-
variant).
|
|
54
|
+
variant).
|
|
55
|
+
|
|
56
|
+
BC.W-CONTROL-SMOOTH — the surface legs read the QUICK control clock
|
|
57
|
+
`--duration-control` (0.12s, the named iOS control-press surface beat,
|
|
58
|
+
scheme-motion.css), NOT the 0.2s calm `--duration-fast`. A control the user
|
|
59
|
+
actively pokes wants the ~100-120ms quick beat that tracks the cursor; the
|
|
60
|
+
prior 0.2s dragged the colour/border/shadow VISIBLY behind the press (the §F
|
|
61
|
+
"super laggy" read). The bezier `--ease-standard` STAYS (a colour cross-fade
|
|
62
|
+
on a spring wobbles — §6 binding); the property list stays SURFACE-ONLY (no
|
|
63
|
+
`transform` leg — the press-squish is `.tap-squish`/`useSpringPress`'s spring
|
|
64
|
+
job, the canonical split). One token re-times the whole 12-consumer control
|
|
65
|
+
family. */
|
|
55
66
|
@utility transition-control {
|
|
56
67
|
transition-property: background-color, color, box-shadow, border-color;
|
|
57
|
-
transition-duration: var(--duration-
|
|
68
|
+
transition-duration: var(--duration-control);
|
|
58
69
|
transition-timing-function: var(--ease-standard);
|
|
59
70
|
}
|
|
60
71
|
|
|
@@ -69,7 +80,9 @@
|
|
|
69
80
|
}
|
|
70
81
|
|
|
71
82
|
/* ── Sheet/drawer slide-out animation grammar ──
|
|
72
|
-
|
|
83
|
+
The sheet/drawer-panel analogue of the overlay enter (the popover-class
|
|
84
|
+
surfaces now ride the spring-clocked `.glass-reveal`, BB.W-LIQUID-REVEAL).
|
|
85
|
+
Pairs with
|
|
73
86
|
`slide-in-from-{top,right,bottom,left}-N` to compose side-keyed entries.
|
|
74
87
|
The open path uses --duration-panel (slow, deliberate); the close path
|
|
75
88
|
uses --duration-fast so dismiss feels snappy. R5 vocab.γ gap row 6;
|
|
@@ -31,11 +31,17 @@
|
|
|
31
31
|
background: var(--metric-badge-bg, var(--glass-bg-quiet));
|
|
32
32
|
backdrop-filter: var(--metric-badge-blur, var(--glass-blur-quiet));
|
|
33
33
|
box-shadow: var(--metric-badge-shadow, 0 1px 6px color-mix(in srgb, var(--shadow-color) 8%, transparent), var(--glass-highlight));
|
|
34
|
+
/* SPATIAL/EFFECTS split (motion-canon P1): the EFFECTS legs
|
|
35
|
+
(background/border-color/box-shadow) ride the bezier --ease-standard;
|
|
36
|
+
the SPATIAL hover-lift legs (translate/scale) ride the --spring-smooth
|
|
37
|
+
hover register on its own settle clock --spring-smooth-duration (the
|
|
38
|
+
ONE interactive transform register .btn-pill/.glass-btn settle on). */
|
|
34
39
|
transition:
|
|
35
40
|
background var(--duration-fast) var(--ease-standard),
|
|
36
41
|
border-color var(--duration-fast) var(--ease-standard),
|
|
37
42
|
box-shadow var(--duration-fast) var(--ease-standard),
|
|
38
|
-
|
|
43
|
+
translate var(--spring-smooth-duration) var(--spring-smooth),
|
|
44
|
+
scale var(--spring-smooth-duration) var(--spring-smooth);
|
|
39
45
|
}
|
|
40
46
|
|
|
41
47
|
.metric-badge > span {
|
|
@@ -49,11 +55,17 @@
|
|
|
49
55
|
|
|
50
56
|
.metric-badge:hover {
|
|
51
57
|
/* Hover lifts to the `resting` rung — one step up the canonical
|
|
52
|
-
ladder (audit U.W0.C-c §7.2).
|
|
58
|
+
ladder (audit U.W0.C-c §7.2). BC.W-AX-METRIC-HOVER lifts the badge
|
|
59
|
+
into a tactile VALUE-LIFT: it nudges UP (--metric-badge-hover-translate
|
|
60
|
+
-2px) + scales a hair more (1.04) + casts the cartoon-sticker offset
|
|
61
|
+
shadow (--shadow-cartoon-sm) — token-first, so a consumer zeroes the
|
|
62
|
+
lift from :root (--metric-badge-hover-translate: 0). Compositor-only
|
|
63
|
+
(translate/scale/box-shadow — proof:no-layout-animation holds). */
|
|
53
64
|
border-color: var(--metric-badge-hover-border, var(--glass-border-resting));
|
|
54
65
|
background: var(--metric-badge-hover-bg, var(--glass-bg-resting));
|
|
55
|
-
box-shadow: var(--metric-badge-hover-shadow,
|
|
56
|
-
|
|
66
|
+
box-shadow: var(--metric-badge-hover-shadow, var(--shadow-cartoon-sm), var(--glass-highlight));
|
|
67
|
+
translate: 0 var(--metric-badge-hover-translate, -2px);
|
|
68
|
+
scale: var(--metric-badge-hover-scale, 1.04);
|
|
57
69
|
}
|
|
58
70
|
|
|
59
71
|
.metric-badge:active {
|
|
@@ -212,7 +224,14 @@
|
|
|
212
224
|
backdrop-filter: var(--glass-blur-floating);
|
|
213
225
|
|
|
214
226
|
padding: 0 0.75rem;
|
|
215
|
-
height
|
|
227
|
+
/* BC.W-SEARCH-CUSTOM — the height reads the shared `--control-pill-h`
|
|
228
|
+
element-override seam (the SAME rung `.input-pill` reads), DEFAULTING to
|
|
229
|
+
`--control-h-sm` so a bare search bar is byte-identical to the HEAD
|
|
230
|
+
2.25rem pill. `controlSizeClass(size)` (_shared/useControlSize.ts) re-points
|
|
231
|
+
the seam per rung (sm→`--control-h-xs`-ish via the cohort, lg→`--control-h-lg`),
|
|
232
|
+
so the SearchBar/FuzzySearch `size` prop retunes the field height WITHOUT a
|
|
233
|
+
recipe fork — ONE substitution rung, the cohort is still the source. */
|
|
234
|
+
height: var(--control-pill-h, var(--control-h-sm));
|
|
216
235
|
max-width: var(--max-width-input);
|
|
217
236
|
width: 100%;
|
|
218
237
|
transition:
|
|
@@ -226,7 +245,13 @@
|
|
|
226
245
|
|
|
227
246
|
.input-bar-field {
|
|
228
247
|
font-family: var(--font-mono, monospace);
|
|
229
|
-
|
|
248
|
+
/* BC.W-SEARCH-CUSTOM — the field font reads the shared `--control-pill-text`
|
|
249
|
+
seam (the SAME rung `.input-pill` reads), DEFAULTING to `--control-text`
|
|
250
|
+
(≈ the prior `--type-small` register at scale 1 — byte-near-identical). The
|
|
251
|
+
`controlSizeClass("sm")` rung re-points it to `--control-text-sm` (quieter);
|
|
252
|
+
`default`/`lg` keep `--control-text`. So the search field type tracks the
|
|
253
|
+
cohort under `--ui-scale`, NOT a static `--type-small` literal. */
|
|
254
|
+
font-size: var(--control-pill-text, var(--control-text));
|
|
230
255
|
background: transparent;
|
|
231
256
|
border: none;
|
|
232
257
|
outline: none;
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════════════════
|
|
2
|
+
BB.W-METAL-SHIMMER — the brand-metal utility family
|
|
3
|
+
═══════════════════════════════════════════════════════════════════════════
|
|
4
|
+
ONE single-home partial for the gold·silver·bronze metal register (so a new
|
|
5
|
+
metal pop is ONE class, not a re-paste — the W-SUFFUSE icon-chip consolidation
|
|
6
|
+
discipline). Three registers, ALL metal-PARAMETERIZED off the SAME shared recipe
|
|
7
|
+
reading the `--metal-shimmer-color` channel + its four resolved stop slots:
|
|
8
|
+
|
|
9
|
+
• `.metal-{gold,silver,bronze}` — the text-clip metal gradient (the
|
|
10
|
+
`.gold-shimmer` recipe GENERALIZED): a `linear-gradient(90deg, dark, light,
|
|
11
|
+
base, light, dark)` band off the bound metal quad, `background-clip: text`.
|
|
12
|
+
• `.metal-{gold,silver,bronze}-border` — the swept metallic RIM (the §N6
|
|
13
|
+
selected-item-border consumer): the SAME `--metal-shimmer-color`-bound
|
|
14
|
+
gradient on a `border-image`-sliced rim, swept by the SAME keyframe.
|
|
15
|
+
• `.metal-rainbow-rim` — the prismatic gilt-figure / record-badge rim: it
|
|
16
|
+
COMPOSES W-GLASS-ACCENT's `--glass-accent` rim seam (it does NOT re-author
|
|
17
|
+
the rim) by binding the accent channel to a swept rainbow hue.
|
|
18
|
+
|
|
19
|
+
The PARAMETERIZATION: `--metal-shimmer-color` is the metal-NAME marker each
|
|
20
|
+
`.metal-{name}` SETS (`gold`/`silver`/`bronze`); the shared recipe resolves the
|
|
21
|
+
gradient off the four `--metal-stop-*` slots each class binds to its quad. The
|
|
22
|
+
`metal-shimmer-sweep` keyframe (animations.css) is PURE position — ZERO baked
|
|
23
|
+
metal color — so the SAME keyframe sweeps any of the three metals depending only
|
|
24
|
+
on which slots the class bound. A silver/bronze sweep is a NEW CLASS that binds
|
|
25
|
+
the slots, NEVER a forked keyframe (the N-copy this wave exists to kill).
|
|
26
|
+
|
|
27
|
+
THE PRM-STATIC BRACKET (the §6 calm register, the `.gold-shimmer` model byte-
|
|
28
|
+
faithfully): every utility paints the FULL static metal gradient at REST (the
|
|
29
|
+
load-bearing visual — the metal sheen itself); ONLY the `animation:` line sits
|
|
30
|
+
inside `@media (prefers-reduced-motion: no-preference)`. A PRM user sees the
|
|
31
|
+
full static metal gradient WITHOUT the slide — the metal still READS as metal,
|
|
32
|
+
the motion is the only thing gated. The sweep is a slow `--duration-metal` (6s)
|
|
33
|
+
one-pass — the disco family is GONE and STAYS gone (no sparkle/grain/ripple). */
|
|
34
|
+
|
|
35
|
+
@layer components {
|
|
36
|
+
/* ── The shared metal recipe (the metal-agnostic engine) ─────────────────
|
|
37
|
+
The four stop slots default to GOLD (the neutral metal — so a bare
|
|
38
|
+
`--metal-shimmer-color`-bearing surface paints gold, matching the
|
|
39
|
+
`.gold-shimmer` precedent); each `.metal-{name}` re-binds them to its quad.
|
|
40
|
+
The `--metal-shimmer-color` marker carries the metal NAME for the gate's
|
|
41
|
+
parameterization assert + for any consumer query. */
|
|
42
|
+
.metal-gold,
|
|
43
|
+
.metal-silver,
|
|
44
|
+
.metal-bronze {
|
|
45
|
+
--metal-stop-dark: var(--color-gold-dark);
|
|
46
|
+
--metal-stop-light: var(--color-gold-light);
|
|
47
|
+
--metal-stop-base: var(--color-gold);
|
|
48
|
+
background: linear-gradient(
|
|
49
|
+
90deg,
|
|
50
|
+
var(--metal-stop-dark),
|
|
51
|
+
var(--metal-stop-light),
|
|
52
|
+
var(--metal-stop-base),
|
|
53
|
+
var(--metal-stop-light),
|
|
54
|
+
var(--metal-stop-dark)
|
|
55
|
+
);
|
|
56
|
+
background-size: 250% 100%;
|
|
57
|
+
background-clip: text;
|
|
58
|
+
-webkit-background-clip: text;
|
|
59
|
+
color: transparent;
|
|
60
|
+
|
|
61
|
+
/* ── BC.W-AX-METAL-GLOW — the gold catch-light (the lit-metal halo) ──────
|
|
62
|
+
A soft glow halo of the metal's OWN base hue behind the gradient text-clip
|
|
63
|
+
so the gold reads as LIT metal (light catching its surface), not a flat
|
|
64
|
+
gradient fill. Because `background-clip: text` makes the text transparent,
|
|
65
|
+
a `filter: drop-shadow` follows the clipped glyph shape — the halo hugs the
|
|
66
|
+
letters. ONE recipe on the shared selector (every metal lit, never a per-
|
|
67
|
+
metal re-paste); the glow reads `--metal-stop-base` so gold halos gold,
|
|
68
|
+
silver halos silver, bronze halos bronze (NOT a fixed gold-on-every-metal
|
|
69
|
+
mismatch). The earned-gold register (Q2): `.metal-gold`'s base is
|
|
70
|
+
`--color-gold`, so the gold catch-light is the earned-gold warm glow.
|
|
71
|
+
|
|
72
|
+
PRM-STATIC: the glow paints HERE, at rest, OUTSIDE the no-preference
|
|
73
|
+
bracket — the lit metal reads for PRM users; ONLY the sweep `animation:`
|
|
74
|
+
is gated (the §6 calm register; the disco family stays gone — this is a
|
|
75
|
+
soft warm whisper bounded by `--metal-glow-opacity`, not a neon bloom). */
|
|
76
|
+
--metal-glow-blur: var(--metal-glow-blur-default, 0.5em);
|
|
77
|
+
--metal-glow-opacity: var(--metal-glow-opacity-default, 0.35);
|
|
78
|
+
filter: drop-shadow(
|
|
79
|
+
0 0 var(--metal-glow-blur)
|
|
80
|
+
color-mix(
|
|
81
|
+
in srgb,
|
|
82
|
+
var(--metal-stop-base) calc(var(--metal-glow-opacity) * 100%),
|
|
83
|
+
transparent
|
|
84
|
+
)
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* Per-metal: set the channel marker + re-bind the stop slots to the quad. */
|
|
89
|
+
.metal-gold {
|
|
90
|
+
--metal-shimmer-color: gold;
|
|
91
|
+
--metal-stop-dark: var(--color-gold-dark);
|
|
92
|
+
--metal-stop-light: var(--color-gold-light);
|
|
93
|
+
--metal-stop-base: var(--color-gold);
|
|
94
|
+
}
|
|
95
|
+
.metal-silver {
|
|
96
|
+
--metal-shimmer-color: silver;
|
|
97
|
+
--metal-stop-dark: var(--color-silver-dark);
|
|
98
|
+
--metal-stop-light: var(--color-silver-light);
|
|
99
|
+
--metal-stop-base: var(--color-silver);
|
|
100
|
+
}
|
|
101
|
+
.metal-bronze {
|
|
102
|
+
--metal-shimmer-color: bronze;
|
|
103
|
+
--metal-stop-dark: var(--color-bronze-dark);
|
|
104
|
+
--metal-stop-light: var(--color-bronze-light);
|
|
105
|
+
--metal-stop-base: var(--color-bronze);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/* ── The swept metallic RIM (the §N6 selected-item-border consumer) ───────
|
|
109
|
+
The SAME `--metal-shimmer-color`-bound gradient applied to a `border-image`
|
|
110
|
+
slice — a swept metallic RIM, not a text fill. `border-image` reads the same
|
|
111
|
+
`background`-position-swept gradient (the metal-shimmer-sweep keyframe drives
|
|
112
|
+
the `background-position`; the `border-image-source` references the SAME
|
|
113
|
+
gradient via the stop slots), so ONE keyframe drives both registers. The rim
|
|
114
|
+
sits over the surface's own background (no `background-clip: text`). */
|
|
115
|
+
.metal-gold-border,
|
|
116
|
+
.metal-silver-border,
|
|
117
|
+
.metal-bronze-border {
|
|
118
|
+
--metal-stop-dark: var(--color-gold-dark);
|
|
119
|
+
--metal-stop-light: var(--color-gold-light);
|
|
120
|
+
--metal-stop-base: var(--color-gold);
|
|
121
|
+
border: var(--metal-border-width, 2px) solid transparent;
|
|
122
|
+
border-image: linear-gradient(
|
|
123
|
+
90deg,
|
|
124
|
+
var(--metal-stop-dark),
|
|
125
|
+
var(--metal-stop-light),
|
|
126
|
+
var(--metal-stop-base),
|
|
127
|
+
var(--metal-stop-light),
|
|
128
|
+
var(--metal-stop-dark)
|
|
129
|
+
)
|
|
130
|
+
1;
|
|
131
|
+
/* The sweep rides a backing gradient `background-position` on the same band
|
|
132
|
+
(the `border-image` slice tracks the host's background extent); the
|
|
133
|
+
250% size + the position sweep give the rim its travelling sheen. */
|
|
134
|
+
background-image: linear-gradient(
|
|
135
|
+
90deg,
|
|
136
|
+
var(--metal-stop-dark),
|
|
137
|
+
var(--metal-stop-light),
|
|
138
|
+
var(--metal-stop-base),
|
|
139
|
+
var(--metal-stop-light),
|
|
140
|
+
var(--metal-stop-dark)
|
|
141
|
+
);
|
|
142
|
+
background-size: 250% 100%;
|
|
143
|
+
background-clip: border-box;
|
|
144
|
+
}
|
|
145
|
+
.metal-gold-border {
|
|
146
|
+
--metal-shimmer-color: gold;
|
|
147
|
+
--metal-stop-dark: var(--color-gold-dark);
|
|
148
|
+
--metal-stop-light: var(--color-gold-light);
|
|
149
|
+
--metal-stop-base: var(--color-gold);
|
|
150
|
+
}
|
|
151
|
+
.metal-silver-border {
|
|
152
|
+
--metal-shimmer-color: silver;
|
|
153
|
+
--metal-stop-dark: var(--color-silver-dark);
|
|
154
|
+
--metal-stop-light: var(--color-silver-light);
|
|
155
|
+
--metal-stop-base: var(--color-silver);
|
|
156
|
+
}
|
|
157
|
+
.metal-bronze-border {
|
|
158
|
+
--metal-shimmer-color: bronze;
|
|
159
|
+
--metal-stop-dark: var(--color-bronze-dark);
|
|
160
|
+
--metal-stop-light: var(--color-bronze-light);
|
|
161
|
+
--metal-stop-base: var(--color-bronze);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/* ── The prismatic rainbow rim (the gilt-figure / record-badge sheen) ─────
|
|
165
|
+
COMPOSES W-GLASS-ACCENT's `--glass-accent` rim seam (it binds the accent
|
|
166
|
+
channel, it does NOT re-author the rim `color-mix`/`::before`). The host is
|
|
167
|
+
a glass surface (carrying the `--glass-material-rim` ring + the
|
|
168
|
+
`--glass-border-accent` border W-GLASS-ACCENT minted); this utility drives
|
|
169
|
+
the accent through the spectrum so the rim sheen SHIFTS through the rainbow.
|
|
170
|
+
`--glass-accent` is a typed `<color>` `@property` (NOT animatable as a
|
|
171
|
+
conic per-frame), so the prismatic shift is the swept metal-gradient overlay
|
|
172
|
+
PLUS the accent engaged at a metal-warm hue — the rim reads as a shifting
|
|
173
|
+
metallic sheen over the W-GLASS-ACCENT rim. The accent STRENGTH lifts to a
|
|
174
|
+
rim whisper (the demo specimen engages ~45%, the accent's documented ceiling
|
|
175
|
+
for the rim/glint). The sweep is the SAME `metal-shimmer-sweep` over the
|
|
176
|
+
rainbow band on the host's own background. */
|
|
177
|
+
.metal-rainbow-rim {
|
|
178
|
+
/* Engage W-GLASS-ACCENT's rim seam at a warm-metal hue + the rim whisper
|
|
179
|
+
strength (the accent channel — NOT a second rim recipe). */
|
|
180
|
+
--glass-accent: var(--color-gold);
|
|
181
|
+
--glass-accent-strength: 45%;
|
|
182
|
+
--metal-shimmer-color: rainbow;
|
|
183
|
+
/* The swept prismatic band rides the host's own background-image (the rim
|
|
184
|
+
ring + border come from the W-GLASS-ACCENT seam the host already carries). */
|
|
185
|
+
background-image: linear-gradient(
|
|
186
|
+
90deg,
|
|
187
|
+
var(--rainbow-red),
|
|
188
|
+
var(--rainbow-orange),
|
|
189
|
+
var(--rainbow-yellow),
|
|
190
|
+
var(--rainbow-green),
|
|
191
|
+
var(--rainbow-blue),
|
|
192
|
+
var(--rainbow-indigo),
|
|
193
|
+
var(--rainbow-violet),
|
|
194
|
+
var(--rainbow-red)
|
|
195
|
+
);
|
|
196
|
+
background-size: 250% 100%;
|
|
197
|
+
background-clip: border-box;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/* ── The PRM-static bracket: the ONLY motion declaration ──────────────────
|
|
201
|
+
Every metal utility paints the static gradient above (un-bracketed — the
|
|
202
|
+
metal READS for PRM users); the `animation:` is the sole thing gated. The
|
|
203
|
+
slow `--duration-metal` (6s) clock — the calm dignified pass. */
|
|
204
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
205
|
+
.metal-gold,
|
|
206
|
+
.metal-silver,
|
|
207
|
+
.metal-bronze,
|
|
208
|
+
.metal-gold-border,
|
|
209
|
+
.metal-silver-border,
|
|
210
|
+
.metal-bronze-border,
|
|
211
|
+
.metal-rainbow-rim {
|
|
212
|
+
animation: metal-shimmer-sweep var(--duration-metal) linear infinite;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|