@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
|
@@ -24,7 +24,7 @@ body {
|
|
|
24
24
|
font-family: var(--font-display);
|
|
25
25
|
font-size: var(--type-display-audacious);
|
|
26
26
|
line-height: var(--type-leading-display);
|
|
27
|
-
letter-spacing: var(--type-tracking-
|
|
27
|
+
letter-spacing: var(--type-tracking-display);
|
|
28
28
|
font-optical-sizing: auto;
|
|
29
29
|
font-weight: 600;
|
|
30
30
|
/* AQ.W3 §W3.3 — balance multi-line display headlines. Text-only (no box) so
|
|
@@ -60,7 +60,7 @@ body {
|
|
|
60
60
|
font-family: var(--font-display);
|
|
61
61
|
font-size: var(--type-display-hero);
|
|
62
62
|
line-height: var(--type-leading-display);
|
|
63
|
-
letter-spacing: var(--type-tracking-
|
|
63
|
+
letter-spacing: var(--type-tracking-display);
|
|
64
64
|
font-optical-sizing: auto;
|
|
65
65
|
font-weight: 600;
|
|
66
66
|
text-wrap: balance; /* AQ.W3 §W3.3 */
|
|
@@ -70,7 +70,7 @@ body {
|
|
|
70
70
|
font-family: var(--font-display);
|
|
71
71
|
font-size: var(--type-display-mega);
|
|
72
72
|
line-height: var(--type-leading-display);
|
|
73
|
-
letter-spacing: var(--type-tracking-
|
|
73
|
+
letter-spacing: var(--type-tracking-display);
|
|
74
74
|
font-optical-sizing: auto;
|
|
75
75
|
font-weight: 600;
|
|
76
76
|
text-wrap: balance; /* AQ.W3 §W3.3 */
|
|
@@ -80,7 +80,7 @@ body {
|
|
|
80
80
|
font-family: var(--font-display);
|
|
81
81
|
font-size: var(--type-display-5);
|
|
82
82
|
line-height: var(--type-leading-display);
|
|
83
|
-
letter-spacing: var(--type-tracking-
|
|
83
|
+
letter-spacing: var(--type-tracking-display);
|
|
84
84
|
font-optical-sizing: auto;
|
|
85
85
|
font-weight: 600;
|
|
86
86
|
text-wrap: balance; /* AQ.W3 §W3.3 */
|
|
@@ -90,7 +90,7 @@ body {
|
|
|
90
90
|
font-family: var(--font-display);
|
|
91
91
|
font-size: var(--type-display-4);
|
|
92
92
|
line-height: var(--type-leading-display);
|
|
93
|
-
letter-spacing: var(--type-tracking-
|
|
93
|
+
letter-spacing: var(--type-tracking-display);
|
|
94
94
|
font-optical-sizing: auto;
|
|
95
95
|
font-weight: 600;
|
|
96
96
|
text-wrap: balance; /* AQ.W3 §W3.3 */
|
|
@@ -100,7 +100,7 @@ body {
|
|
|
100
100
|
font-family: var(--font-display);
|
|
101
101
|
font-size: var(--type-display-3);
|
|
102
102
|
line-height: var(--type-leading-display);
|
|
103
|
-
letter-spacing: var(--type-tracking-
|
|
103
|
+
letter-spacing: var(--type-tracking-display);
|
|
104
104
|
font-optical-sizing: auto;
|
|
105
105
|
font-weight: 600;
|
|
106
106
|
text-wrap: balance; /* AQ.W3 §W3.3 */
|
|
@@ -110,7 +110,7 @@ body {
|
|
|
110
110
|
font-family: var(--font-display);
|
|
111
111
|
font-size: var(--type-display-2);
|
|
112
112
|
line-height: var(--type-leading-display);
|
|
113
|
-
letter-spacing: var(--type-tracking-
|
|
113
|
+
letter-spacing: var(--type-tracking-display);
|
|
114
114
|
font-optical-sizing: auto;
|
|
115
115
|
font-weight: 600;
|
|
116
116
|
text-wrap: balance; /* AQ.W3 §W3.3 */
|
|
@@ -120,7 +120,7 @@ body {
|
|
|
120
120
|
font-family: var(--font-display);
|
|
121
121
|
font-size: var(--type-display-1);
|
|
122
122
|
line-height: var(--type-leading-display);
|
|
123
|
-
letter-spacing: var(--type-tracking-
|
|
123
|
+
letter-spacing: var(--type-tracking-display);
|
|
124
124
|
font-optical-sizing: auto;
|
|
125
125
|
font-weight: 600;
|
|
126
126
|
text-wrap: balance; /* AQ.W3 §W3.3 */
|
|
@@ -157,13 +157,26 @@ body {
|
|
|
157
157
|
/* Canonical dock control label register — text labels INSIDE
|
|
158
158
|
`.dock-tab-button` (Start, Next, Submit, …) that want an emphatic character
|
|
159
159
|
without `.text-heading`'s `font-weight: 700` (which reads as literal bold in
|
|
160
|
-
a dock pill).
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
160
|
+
a dock pill). Weight 400 — Plus Jakarta reads heavier than its numeric weight
|
|
161
|
+
at pill size, so regular is the not-bold register.
|
|
162
|
+
|
|
163
|
+
BC.W-AX-DOCK-COCKPIT — the label TRACKS the control height by ratio (the
|
|
164
|
+
dock-oversize chronic close, speedtest A-9): the font is a PROPORTION of the
|
|
165
|
+
control (`calc(var(--dock-control-size) * var(--dock-label-ratio))`) so a
|
|
166
|
+
tighter control (the `[data-preset="cockpit"]` 2.75rem floor + compact chrome)
|
|
167
|
+
carries a proportionally tighter label — never the fixed `--type-subheading`
|
|
168
|
+
rung that read OVERSIZE on a tight pill. The explicit `--dock-label-size` knob
|
|
169
|
+
STILL wins when set (the dock.css audacious-mobile carve precedent, KEPT — the
|
|
170
|
+
ratio is the FALLBACK). The `--dock-label-ratio` default reproduces
|
|
171
|
+
`--type-subheading` at the comfortable `2.5rem` control (sizing.css), so the
|
|
172
|
+
bare default is byte-near-identical; the `--dock-control-size` fallback `2.5rem`
|
|
173
|
+
mirrors the comfortable rung for a label outside a density-painted scope. */
|
|
164
174
|
@utility dock-label {
|
|
165
175
|
font-family: var(--font-text);
|
|
166
|
-
font-size: var(
|
|
176
|
+
font-size: var(
|
|
177
|
+
--dock-label-size,
|
|
178
|
+
calc(var(--dock-control-size, 2.5rem) * var(--dock-label-ratio))
|
|
179
|
+
);
|
|
167
180
|
line-height: var(--type-leading-body);
|
|
168
181
|
font-weight: 400;
|
|
169
182
|
letter-spacing: var(--type-tracking-normal);
|
|
@@ -26,12 +26,24 @@
|
|
|
26
26
|
/* ═══════════════════════════════════════════════
|
|
27
27
|
MONO variants
|
|
28
28
|
═══════════════════════════════════════════════ */
|
|
29
|
+
/* BB.W-EYEBROW-UNION — THE canonical mono-caption EYEBROW vocabulary, declared
|
|
30
|
+
ONCE. The pure color-agnostic register: mono · caption-size · uppercase ·
|
|
31
|
+
tracking-CAPS. The prior drift (tracking-WIDER 0.05em, weight-500, both off the
|
|
32
|
+
`.section-label` canon-by-usage) is RECONCILED onto the canon's secondary axes
|
|
33
|
+
(clean break, no alias): the tracking folds to `--type-tracking-caps` (0.1em),
|
|
34
|
+
the weight-500 drops (a per-use choice a site states inline via `font-medium`,
|
|
35
|
+
not a fork in the eyebrow register), and color stays UNBAKED so a consumer
|
|
36
|
+
pairs any ink (`text-foreground`/`text-muted-foreground`/an accent) — the 17
|
|
37
|
+
`text-mono-caption text-foreground` sites keep their ink. `.section-label`
|
|
38
|
+
(below) COMPOSES this vocabulary + bakes the muted ink (the colored canon);
|
|
39
|
+
the menu caption reads the `--menu-section-*` knobs that DEFAULT to these same
|
|
40
|
+
tokens (the sanctioned override layer). proof:eyebrow-union locks the
|
|
41
|
+
single-source-ness. */
|
|
29
42
|
@utility text-mono-caption {
|
|
30
43
|
font-family: var(--font-mono);
|
|
31
44
|
font-size: var(--type-caption);
|
|
32
|
-
letter-spacing: var(--type-tracking-
|
|
45
|
+
letter-spacing: var(--type-tracking-caps);
|
|
33
46
|
text-transform: uppercase;
|
|
34
|
-
font-weight: 500;
|
|
35
47
|
}
|
|
36
48
|
|
|
37
49
|
@utility text-mono-small {
|
|
@@ -110,13 +122,16 @@
|
|
|
110
122
|
}
|
|
111
123
|
}
|
|
112
124
|
|
|
113
|
-
/* Section label (mono, small caps)
|
|
125
|
+
/* Section label (mono, small caps) — the COLORED eyebrow canon. Composes the
|
|
126
|
+
ONE `text-mono-caption` vocabulary (mono · caption · uppercase ·
|
|
127
|
+
tracking-caps) + bakes the muted ink. BB.W-EYEBROW-UNION: this is the
|
|
128
|
+
canon-by-usage register (the StorySection eyebrow column + Section.vue's
|
|
129
|
+
`label` tone + the `.section-label--tinted` accent build on it); it now
|
|
130
|
+
COMPOSES the vocabulary rather than re-declaring it, so a tracking/size
|
|
131
|
+
change to the eyebrow is ONE edit (the `text-mono-caption` rule). */
|
|
114
132
|
.section-label {
|
|
115
|
-
|
|
116
|
-
font-size: var(--type-caption);
|
|
133
|
+
@apply text-mono-caption;
|
|
117
134
|
color: var(--muted-foreground);
|
|
118
|
-
text-transform: uppercase;
|
|
119
|
-
letter-spacing: var(--type-tracking-caps);
|
|
120
135
|
}
|
|
121
136
|
|
|
122
137
|
/* Section-accent eyebrow (AZ.W-SUFFUSE D3-7 / D1-8). ONE coherent
|
|
@@ -114,7 +114,7 @@ html.no-transition *:not([data-allow-motion])::after {
|
|
|
114
114
|
`min-block/inline-size` only RAISES — a larger explicit size is never lost. */
|
|
115
115
|
@media (pointer: coarse) {
|
|
116
116
|
[data-size="icon"],
|
|
117
|
-
|
|
117
|
+
[data-part="trigger"],
|
|
118
118
|
.segmented-tabs__trigger {
|
|
119
119
|
min-block-size: var(--touch-target, 2.75rem);
|
|
120
120
|
min-inline-size: var(--touch-target, 2.75rem);
|
|
@@ -160,10 +160,25 @@ html.no-transition *:not([data-allow-motion])::after {
|
|
|
160
160
|
translate: -50% -50%;
|
|
161
161
|
min-width: var(--touch-target, 2.75rem);
|
|
162
162
|
min-height: var(--touch-target, 2.75rem);
|
|
163
|
-
/*
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
163
|
+
/* BC.W-RADIO-FIX — the swallow-fix (the §F headline binding bug).
|
|
164
|
+
An absolutely-positioned `::before` over the atom with
|
|
165
|
+
`pointer-events: auto` becomes the topmost hit target across the
|
|
166
|
+
whole 44px box and INTERCEPTS the real pointer event before it
|
|
167
|
+
reaches the host's listener — reka's RadioGroupItem / Checkbox /
|
|
168
|
+
Switch / SliderRoot bind their toggle/drag handler on the HOST
|
|
169
|
+
button (Radio.vue `onClick`), and the swallowing overlay was the
|
|
170
|
+
root of "radios don't work" (a synthetic .click() on the host
|
|
171
|
+
still fired, but a real coarse tap landed on the pseudo and
|
|
172
|
+
no-op'd). `pointer-events: none` frees the pointer to fall
|
|
173
|
+
through to the host so the tap reaches reka on EVERY input path,
|
|
174
|
+
while the 44px GEOMETRY still satisfies the WCAG-2.5.5 readback
|
|
175
|
+
(getComputedStyle reads min-width/height, not pointer-events —
|
|
176
|
+
the hit FLOOR is the box, never a pointer-swallowing overlay).
|
|
177
|
+
The same integrity discipline `useDockClickIntegrity` applies to
|
|
178
|
+
the dock + the Slider's own `.slider-thumb.touch-hit-area::before`
|
|
179
|
+
override already discovered (AY.W-SCALE2) — now ONE source for
|
|
180
|
+
the whole six-atom hit-area family. */
|
|
181
|
+
pointer-events: none;
|
|
167
182
|
}
|
|
168
183
|
}
|
|
169
184
|
}
|
|
@@ -1,26 +1,29 @@
|
|
|
1
1
|
/* utilities/animate.css
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
/* ── Popover/dropdown shared animation ──
|
|
6
|
-
`@utility` form (V.W3.T8 / A5 §5.9 standardisation): data-state animation
|
|
7
|
-
pair for popover-class containers (Popover, DropdownMenu, ContextMenu,
|
|
8
|
-
Tooltip, HoverCard, Select). Composed alongside `.slide-in-from-side`
|
|
9
|
-
for direction-keyed entries. */
|
|
10
|
-
@utility popover-animate {
|
|
11
|
-
@apply data-[state=open]:animate-in data-[state=closed]:animate-out
|
|
12
|
-
data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0
|
|
13
|
-
data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95;
|
|
14
|
-
}
|
|
2
|
+
BB.W-LIQUID-REVEAL — the popover/dropdown shared enter recipe RETIRED.
|
|
3
|
+
@import-ed by utilities.css in cascade order. See
|
|
4
|
+
docs/precepts/design-idioms.md §cohesion-aware partials. */
|
|
15
5
|
|
|
16
|
-
/* ──
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
6
|
+
/* ── RETIRED at BB.W-LIQUID-REVEAL (clean break, no alias — BB inv-7 no-legacy) ──
|
|
7
|
+
*
|
|
8
|
+
* `@utility popover-animate` (the tw-animate-css fixed-bezier zoom-95 + fade-0 enter)
|
|
9
|
+
* AND `@utility slide-in-from-side` (the data-side directional slide) are DELETED.
|
|
10
|
+
* They were the generic cubic-bezier zoom-95 over the same `--duration-normal` wall
|
|
11
|
+
* clock for every surface — "presses spring, reveals don't" (the §6/W-MOTION-CANON
|
|
12
|
+
* half-applied enter). The SPRING-CLOCKED LIQUID-ENTER recipe `.glass-reveal`
|
|
13
|
+
* (src/styles/glass/reveal.css) REPLACES both:
|
|
14
|
+
* - the scale+fade ride `--spring-snappy` + `--spring-snappy-duration` (the
|
|
15
|
+
* W-GLASS-CAL Unit 3 per-spring clock) with the coupled `filter: blur(4px)→0`
|
|
16
|
+
* light-bending decongest (the iOS-27 bloom);
|
|
17
|
+
* - the directional `slide-in-from-side` folds onto `.glass-reveal`'s `data-side`
|
|
18
|
+
* compositor `translate` leg (on the SAME spring clock).
|
|
19
|
+
*
|
|
20
|
+
* The ≥8 reka portaled overlays (Dialog/Popover/Tooltip/HoverCard/DropdownMenu/
|
|
21
|
+
* ContextMenu/Combobox/Select) compose `.glass-reveal` directly; the
|
|
22
|
+
* `useLiquidReveal` JS leaf (composables/motion/useLiquidReveal.ts) is the
|
|
23
|
+
* source-rect bloom REFINEMENT (the dialog-from-button / dock-from-pill case).
|
|
24
|
+
*
|
|
25
|
+
* Do NOT re-add an unlayered `@utility popover-animate`/`slide-in-from-side` — the
|
|
26
|
+
* recipe is `@layer components` `.glass-reveal`; an unlayered utility would win the
|
|
27
|
+
* cascade over it (the AZ dock-rail `@layer`-loses-to-utility trap). Machine-locked
|
|
28
|
+
* by proof:liquid-reveal R3 (the negative — no enrolled surface retains
|
|
29
|
+
* popover-animate). */
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
/* utilities/base-misc.css
|
|
2
|
+
The @layer components FORM/INTERACTION TAIL — status-dot, depth-text,
|
|
3
|
+
preserve-3d, ios input fix, fading-scroll (scroll-state-driven edge fade) +
|
|
4
|
+
the @supports (animation-timeline: scroll()) native path, deferred-section,
|
|
5
|
+
card-scroll-host, gold-shimmer, kbd.
|
|
6
|
+
BB.W-CARVE3 carved this off utilities/base.css (the post-tap-squish tail) so
|
|
7
|
+
each partial stays under the no-god-module 500-line bound. @import-ed by
|
|
8
|
+
utilities.css IMMEDIATELY AFTER base.css — two adjacent same-`@layer
|
|
9
|
+
components` blocks compose identically, so the dist is byte-isomorphic. The
|
|
10
|
+
@property --fade-start/--fade-end registrations the .fading-scroll rules read
|
|
11
|
+
stay in base.css (source-order BEFORE this partial). See
|
|
12
|
+
docs/precepts/design-idioms.md §cohesion-aware partials. */
|
|
13
|
+
|
|
14
|
+
@layer components {
|
|
15
|
+
/* ── Status dot indicator ── */
|
|
16
|
+
.status-dot {
|
|
17
|
+
display: inline-block;
|
|
18
|
+
width: 0.5rem;
|
|
19
|
+
height: 0.5rem;
|
|
20
|
+
border-radius: var(--radius-pill);
|
|
21
|
+
flex-shrink: 0;
|
|
22
|
+
transition:
|
|
23
|
+
color var(--duration-fast) var(--ease-standard),
|
|
24
|
+
background var(--duration-fast) var(--ease-standard),
|
|
25
|
+
box-shadow var(--duration-fast) var(--ease-standard);
|
|
26
|
+
}
|
|
27
|
+
/* ── Depth text (layered offset stamp) ──
|
|
28
|
+
AW.W26 — composes the `--text-shadow-depth` @theme identity token (the
|
|
29
|
+
hard offset stack + soft ambient tail) instead of a hand-rolled multi-stop
|
|
30
|
+
literal. The token holds the stack inside the `@theme` defs (gate 4) and
|
|
31
|
+
re-tints under `.dark` via `--shadow`/`--shadow-color` BY CONSTRUCTION. */
|
|
32
|
+
.depth-text {
|
|
33
|
+
--depth-color-primary: var(--primary);
|
|
34
|
+
|
|
35
|
+
color: var(--depth-color-primary);
|
|
36
|
+
text-shadow: var(--text-shadow-depth);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* ── 3D preserve ── */
|
|
40
|
+
.preserve-3d {
|
|
41
|
+
transform-style: preserve-3d;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* ── iOS input font-size fix (prevent auto-zoom) ── */
|
|
45
|
+
.ios input,
|
|
46
|
+
.ios select,
|
|
47
|
+
.ios textarea,
|
|
48
|
+
.ios [contenteditable] {
|
|
49
|
+
font-size: max(1rem, 1em);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* ── Fading scroll — the scroll-STATE-driven edge fade (BA.W-FADING-SCROLL) ──
|
|
53
|
+
`<FadingScroll>`'s recipe. Each edge's ramp width is a registered
|
|
54
|
+
`--fade-start` / `--fade-end` custom (above, default 0px = SHARP), driven
|
|
55
|
+
by the
|
|
56
|
+
`scroll(self)` timeline so the start edge feathers only past `scroll > 0`
|
|
57
|
+
and the end edge only while trailing overflow remains.
|
|
58
|
+
|
|
59
|
+
The root IS the scroll port (the component sets overflow via the consumer's
|
|
60
|
+
utilities — `overflow-x-auto` / `overflow-y-auto` come from the class the
|
|
61
|
+
consumer passes; the axis floor below sets the OTHER axis). The 4-stop
|
|
62
|
+
mask reads the two customs; at rest both are 0px so the gradient is a flat
|
|
63
|
+
opaque pass-through (no feather). */
|
|
64
|
+
.fading-scroll {
|
|
65
|
+
/* The base mask is axis-specialized by the modifier classes below. The
|
|
66
|
+
default-x case uses the inline ramp; the y case the block ramp. */
|
|
67
|
+
mask-image: linear-gradient(
|
|
68
|
+
to right,
|
|
69
|
+
transparent 0,
|
|
70
|
+
black var(--fade-start),
|
|
71
|
+
black calc(100% - var(--fade-end)),
|
|
72
|
+
transparent 100%
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
.fading-scroll--x {
|
|
76
|
+
overflow-x: auto;
|
|
77
|
+
mask-image: linear-gradient(
|
|
78
|
+
to right,
|
|
79
|
+
transparent 0,
|
|
80
|
+
black var(--fade-start),
|
|
81
|
+
black calc(100% - var(--fade-end)),
|
|
82
|
+
transparent 100%
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
.fading-scroll--y {
|
|
86
|
+
overflow-y: auto;
|
|
87
|
+
mask-image: linear-gradient(
|
|
88
|
+
to bottom,
|
|
89
|
+
transparent 0,
|
|
90
|
+
black var(--fade-start),
|
|
91
|
+
black calc(100% - var(--fade-end)),
|
|
92
|
+
transparent 100%
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* The NATIVE primary path: drive the per-edge customs off a `scroll(self)`
|
|
97
|
+
timeline — ZERO JS on a supporting engine (the `scroll-driven.css` /
|
|
98
|
+
Baseline-Newly-Available bar). UNLIKE `scroll-driven.css` this is NOT
|
|
99
|
+
wrapped in `prefers-reduced-motion: no-preference` — the fade is a
|
|
100
|
+
LEGIBILITY cue, not motion, so it stays present under PRM (it merely stops
|
|
101
|
+
interpolating; the discrete overflow-edge presence stays correct, and the
|
|
102
|
+
registered customs make even the static endpoints land right). */
|
|
103
|
+
@supports (animation-timeline: scroll()) {
|
|
104
|
+
/* The start edge: from sharp (0) to feathered, completing within the
|
|
105
|
+
first `--fade-scroll-width` of scroll — so at `scroll = 0` the start is
|
|
106
|
+
SHARP and it ramps in only once the user genuinely scrolls past. */
|
|
107
|
+
@keyframes gl-fade-start-in {
|
|
108
|
+
from {
|
|
109
|
+
--fade-start: 0px;
|
|
110
|
+
}
|
|
111
|
+
to {
|
|
112
|
+
--fade-start: var(--fade-scroll-width);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/* The end edge: feathered while trailing overflow remains, ramping OUT to
|
|
116
|
+
sharp over the last `--fade-scroll-width` of scroll — so at the scroll
|
|
117
|
+
end (no trailing overflow) the end is SHARP. */
|
|
118
|
+
@keyframes gl-fade-end-out {
|
|
119
|
+
from {
|
|
120
|
+
--fade-end: var(--fade-scroll-width);
|
|
121
|
+
}
|
|
122
|
+
to {
|
|
123
|
+
--fade-end: 0px;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/* x axis — `scroll(self inline)`; two animations on the ONE element, each
|
|
127
|
+
gated by `animation-range` to the start / end sliver of the scroll
|
|
128
|
+
distance. `fadeStart`/`fadeEnd` props toggle their respective
|
|
129
|
+
animation off via the `[data-fade-*]` presence attrs. */
|
|
130
|
+
.fading-scroll--x[data-fade-start] {
|
|
131
|
+
animation: gl-fade-start-in linear both;
|
|
132
|
+
animation-timeline: scroll(self inline);
|
|
133
|
+
animation-range: 0 var(--fade-scroll-width);
|
|
134
|
+
}
|
|
135
|
+
.fading-scroll--x[data-fade-end] {
|
|
136
|
+
animation: gl-fade-end-out linear both;
|
|
137
|
+
animation-timeline: scroll(self inline);
|
|
138
|
+
animation-range: calc(100% - var(--fade-scroll-width)) 100%;
|
|
139
|
+
}
|
|
140
|
+
/* BOTH edges on one element compose as two named animations. */
|
|
141
|
+
.fading-scroll--x[data-fade-start][data-fade-end] {
|
|
142
|
+
animation:
|
|
143
|
+
gl-fade-start-in linear both,
|
|
144
|
+
gl-fade-end-out linear both;
|
|
145
|
+
animation-timeline: scroll(self inline), scroll(self inline);
|
|
146
|
+
animation-range:
|
|
147
|
+
0 var(--fade-scroll-width),
|
|
148
|
+
calc(100% - var(--fade-scroll-width)) 100%;
|
|
149
|
+
}
|
|
150
|
+
/* y axis — `scroll(self block)`. */
|
|
151
|
+
.fading-scroll--y[data-fade-start] {
|
|
152
|
+
animation: gl-fade-start-in linear both;
|
|
153
|
+
animation-timeline: scroll(self block);
|
|
154
|
+
animation-range: 0 var(--fade-scroll-width);
|
|
155
|
+
}
|
|
156
|
+
.fading-scroll--y[data-fade-end] {
|
|
157
|
+
animation: gl-fade-end-out linear both;
|
|
158
|
+
animation-timeline: scroll(self block);
|
|
159
|
+
animation-range: calc(100% - var(--fade-scroll-width)) 100%;
|
|
160
|
+
}
|
|
161
|
+
.fading-scroll--y[data-fade-start][data-fade-end] {
|
|
162
|
+
animation:
|
|
163
|
+
gl-fade-start-in linear both,
|
|
164
|
+
gl-fade-end-out linear both;
|
|
165
|
+
animation-timeline: scroll(self block), scroll(self block);
|
|
166
|
+
animation-range:
|
|
167
|
+
0 var(--fade-scroll-width),
|
|
168
|
+
calc(100% - var(--fade-scroll-width)) 100%;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/* ── Deferred section — render-skip an offscreen subtree (AQ.W3 §5) ──────
|
|
173
|
+
`content-visibility: auto` skips layout/paint/style of an offscreen
|
|
174
|
+
subtree — the INP-under-load lever (fourier γ, muster, speedtest, words).
|
|
175
|
+
`contain-intrinsic-size: auto <estimate>` is measurement-safe: the `auto`
|
|
176
|
+
prefix makes the engine REMEMBER the last-rendered size (no scroll-jump on
|
|
177
|
+
re-entry); plain `<estimate>` freezes the section + thrashes the scrollbar
|
|
178
|
+
— the trap this closes. Estimate is token-driven (`--deferred-section-
|
|
179
|
+
size`, default 30rem). `.deferred-section--cached` →
|
|
180
|
+
`content-visibility: hidden` (always skipped, state CACHED — cheaper to
|
|
181
|
+
re-show than `display:none`). Baseline Widely; unsupporting engines render
|
|
182
|
+
normally. JS HOOK: the engine fires `contentvisibilityautostatechange`
|
|
183
|
+
{ skipped } at the render-skip boundary — pair with `useRAFLoop`
|
|
184
|
+
pause/resume: `el.addEventListener('contentvisibilityautostatechange',
|
|
185
|
+
e => e.skipped ? loop.pause() : loop.resume())`. */
|
|
186
|
+
.deferred-section {
|
|
187
|
+
content-visibility: auto;
|
|
188
|
+
contain-intrinsic-size: auto var(--deferred-section-size, 30rem);
|
|
189
|
+
}
|
|
190
|
+
.deferred-section--cached {
|
|
191
|
+
content-visibility: hidden;
|
|
192
|
+
contain-intrinsic-size: auto var(--deferred-section-size, 30rem);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/* ── Card scroll-timeline host (AI.W1-α) ───────────────────────────────
|
|
196
|
+
Canonical scroll-overflow host that emits the `--card-scroll` named
|
|
197
|
+
scroll-timeline consumed by `<CardHeader shrink>`. Apply to the
|
|
198
|
+
scroll-overflow ancestor (typically the `<Card>` itself OR a wrapper
|
|
199
|
+
inside it that carries `overflow-y: auto`).
|
|
200
|
+
|
|
201
|
+
`contain: layout style paint` isolates the named timeline so child
|
|
202
|
+
animations respond to THIS host's scroll only — not to portal-
|
|
203
|
+
triggered layout shifts in ancestor containers (the load-bearing
|
|
204
|
+
isolation guarantee the value.js `PaneHeader.vue:18-29` comment
|
|
205
|
+
called out and the AI.W1 spec §1.2 ratified as canon).
|
|
206
|
+
|
|
207
|
+
Disambiguated from `.fading-scroll` (the `<FadingScroll>` mask-image
|
|
208
|
+
edge fade at the container's leading/trailing edge) — `.card-scroll-host`
|
|
209
|
+
does NOT paint any visual; it only emits the timeline. */
|
|
210
|
+
.card-scroll-host {
|
|
211
|
+
contain: layout style paint;
|
|
212
|
+
scroll-timeline: --card-scroll block;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/* ── Stable scroll gutter — the no-shift discipline for overlay-hosting
|
|
216
|
+
route scrollers (BC.W-DROPDOWN-FIX) ──────────────────────────────────
|
|
217
|
+
An app-shell route scroller that hosts portaled picker/menu overlays
|
|
218
|
+
(Select / DropdownMenu / any reka overlay that locks body scroll on open)
|
|
219
|
+
RESERVES a stable scrollbar gutter so the lock-induced scrollbar removal
|
|
220
|
+
removes no layout space — the centred content does not reflow and the
|
|
221
|
+
trigger does not twitch left/right (USER-DEFECTS §F, the classic
|
|
222
|
+
space-taking-scrollbar reflow).
|
|
223
|
+
|
|
224
|
+
PRESETS-IN-CONSUMERS: the library ships the named discipline; the CONSUMER
|
|
225
|
+
app-shell opts its OWN route scroller in (the demo `.demo-main-scroller`
|
|
226
|
+
is the reference adoption). glass-ui does not force `scrollbar-gutter` on
|
|
227
|
+
every consumer's scroller — it provides this utility + the canon note.
|
|
228
|
+
|
|
229
|
+
Baseline-newly-available: Chrome 94+, Firefox 97+, Safari 18.2+ — a
|
|
230
|
+
non-supporting engine ignores the property (the gutter just isn't
|
|
231
|
+
reserved, the legacy behaviour). */
|
|
232
|
+
.scroll-gutter-stable {
|
|
233
|
+
scrollbar-gutter: stable;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/* ── Shimmer text effects ──
|
|
237
|
+
BB.W-METAL-SHIMMER — the gold-only `gold-shimmer-slide` is RETIRED (clean
|
|
238
|
+
break, no alias); `.gold-shimmer` re-points onto the metal-PARAMETERIZED
|
|
239
|
+
`metal-shimmer-sweep` keyframe with `--metal-shimmer-color: gold`. The gold
|
|
240
|
+
gradient stops + the `background-size`/`background-clip` + the PRM bracket are
|
|
241
|
+
byte-PRESERVED — the gold READ is unchanged; only the keyframe NAME generalizes.
|
|
242
|
+
The text-fill + background-clip composition is load-bearing visual (the gold
|
|
243
|
+
gradient itself); only the `animation:` line is wrapped in the PRM no-preference
|
|
244
|
+
bracket so PRM users see the static gradient without the slide. */
|
|
245
|
+
.gold-shimmer {
|
|
246
|
+
--metal-shimmer-color: gold;
|
|
247
|
+
background: linear-gradient(90deg, var(--color-gold-dark), var(--color-gold-light), var(--color-gold), var(--color-gold-light), var(--color-gold-dark));
|
|
248
|
+
background-size: 250% 100%;
|
|
249
|
+
background-clip: text;
|
|
250
|
+
-webkit-background-clip: text;
|
|
251
|
+
color: transparent;
|
|
252
|
+
}
|
|
253
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
254
|
+
.gold-shimmer {
|
|
255
|
+
animation: metal-shimmer-sweep var(--duration-shimmer) linear infinite;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/* ── Keyboard key ── */
|
|
260
|
+
.kbd {
|
|
261
|
+
display: inline-flex;
|
|
262
|
+
align-items: center;
|
|
263
|
+
justify-content: center;
|
|
264
|
+
min-height: 1.5rem;
|
|
265
|
+
min-width: 1.5rem;
|
|
266
|
+
padding: 0 0.375rem;
|
|
267
|
+
font-family: var(--font-mono);
|
|
268
|
+
font-size: var(--type-micro);
|
|
269
|
+
background: var(--muted);
|
|
270
|
+
border: 1px solid var(--border);
|
|
271
|
+
border-radius: var(--radius-sm);
|
|
272
|
+
box-shadow: 0 1px 0 1px color-mix(in srgb, var(--border) 30%, transparent);
|
|
273
|
+
line-height: 1;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/* ── @utility ghost-slot (BC.W-GHOST-DASHED) ────────────────────────────────
|
|
279
|
+
The ONE dashed-outline placeholder register: everywhere a slot is empty / a
|
|
280
|
+
thing is a placeholder / an affordance is "add something here", the surface
|
|
281
|
+
reads this — a dashed-outline plate, consistently rounded (--radius-card),
|
|
282
|
+
calm-muted, that reads unmistakably "this is a placeholder, not a filled
|
|
283
|
+
surface." The 6 ad-hoc `rounded-{md,2xl,card} border border-dashed
|
|
284
|
+
border-border bg-{card,background}` forks (three radii, three hosts, three
|
|
285
|
+
pads) COLLAPSE onto this ONE register: ONE radius, ONE faint-wash host, ONE
|
|
286
|
+
muted ink, ONE warm dashed hairline.
|
|
287
|
+
|
|
288
|
+
WARM-NOT-GREY (BA.W-NO-GRAY): the dashed hairline is the warm-ink at 22%
|
|
289
|
+
(a color-mix off --foreground, the warm identity), NEVER a grey
|
|
290
|
+
`border-border` — the ghost must read warm-material, not grey.
|
|
291
|
+
|
|
292
|
+
GLASS-ADJACENT, not opaque: the host is a faint glass-wash (the rebuilt W55
|
|
293
|
+
material reads THROUGH it), NOT a flat opaque `bg-card` slab — so the ghost
|
|
294
|
+
reads "empty," not "filled," and the D1 grey-plate regression cannot re-enter
|
|
295
|
+
through the placeholder.
|
|
296
|
+
|
|
297
|
+
THE FENCE (binding both ways): this is the RECTANGULAR-placeholder register.
|
|
298
|
+
The `WatercolorDot variant="ghost"` (the seeded-blob SILHOUETTE traced as a
|
|
299
|
+
dashed stroke — the empty-PALETTE-slot affordance) is a DISTINCT register;
|
|
300
|
+
neither forks the other. .ghost-slot is never applied to a blob-silhouette
|
|
301
|
+
slot, and the watercolor ghost never adopts this rectangle recipe. */
|
|
302
|
+
@utility ghost-slot {
|
|
303
|
+
border: 1px dashed color-mix(in srgb, var(--foreground) 22%, transparent);
|
|
304
|
+
border-radius: var(--radius-card);
|
|
305
|
+
background: color-mix(in oklab, var(--glass-bg-wash), transparent 40%);
|
|
306
|
+
color: var(--muted-foreground);
|
|
307
|
+
}
|