@mkbabb/glass-ui 3.13.0 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/CardAction-CW7a0m8M.js +253 -0
- package/dist/{CommandShortcut-RowNEO6i.js → CommandShortcut-DvZNQ_HF.js} +58 -53
- package/dist/ConfiguratorRow-BR4l-ixA.js +143 -0
- package/dist/{ContextMenuContent-CT3AS1WX.js → ContextMenuContent-uWnVxDab.js} +1 -1
- package/dist/{ContextMenuSubContent-BQmxTAdw.js → ContextMenuSubContent-xol4sD2q.js} +32 -37
- package/dist/{DataTable-BCddn3T3.js → DataTable-CuKwF7wr.js} +99 -97
- package/dist/DialogContent-DcKK8k9i.js +103 -0
- package/dist/{DialogFooter-Blu4t7tJ.js → DialogFooter-BZNX5aVr.js} +3 -3
- package/dist/FadingScroll-DI6hQhT9.js +76 -0
- package/dist/{HoverCardContent-Csywg3YF.js → HoverCardContent-b2uaAMRR.js} +1 -1
- package/dist/{HoverPopover-CISOJQuZ.js → HoverPopover-CbqbNwgU.js} +2 -2
- package/dist/IconChip-BTD-nay5.js +55 -0
- package/dist/{IconTooltip-DPzE09X9.js → IconTooltip-Bl8gFZ8d.js} +1 -1
- package/dist/{Input-DWQQIOC4.js → Input-h9v5LeXf.js} +1 -1
- package/dist/{MetricBadge-C9QMz1KT.js → MetricBadge-RHdBP72w.js} +1 -1
- package/dist/Notification-VUwexFUf.js +43 -0
- package/dist/NumberFieldContent-Cq7EzX-U.js +138 -0
- package/dist/PopoverContent-DL7E6vJP.js +127 -0
- package/dist/{Progress-DwlUKGbr.js → Progress-DctG61iZ.js} +98 -78
- package/dist/{ScrollingText-DfFrwSph.js → ScrollingText-yOpBzFYq.js} +2 -2
- package/dist/{SelectScrollDownButton-CiDUxfEj.js → SelectScrollDownButton-CrA8F0iV.js} +35 -20
- package/dist/{Switch-CsIuYP_e.js → Switch-CwYNf8bo.js} +1 -1
- package/dist/Toaster-Bw4xR8xV.js +274 -0
- package/dist/{ToggleGroupItem-D_AHlRw9.js → ToggleGroupItem-pEM9vIhs.js} +50 -37
- package/dist/{TooltipProvider-B3MkB_8P.js → TooltipProvider-rzvnXz60.js} +1 -1
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +16 -8
- package/dist/api/types-extra.d.ts +6 -0
- package/dist/api.js +2 -2
- package/dist/aurora.js +888 -230
- package/dist/badge.js +1 -1
- package/dist/border-progress.d.ts +1 -0
- package/dist/border-progress.js +106 -0
- package/dist/button-DYCUa-tH.js +126 -0
- package/dist/button.js +1 -1
- package/dist/canvas.js +2 -2
- package/dist/card.js +2 -2
- package/dist/carousel.d.ts +1 -1
- package/dist/carousel.js +90 -151
- package/dist/collapsible.js +1 -1
- package/dist/color-swatch.d.ts +1 -0
- package/dist/color-swatch.js +47 -0
- package/dist/color.js +1 -1
- package/dist/command.js +1 -1
- package/dist/compile-CQEFRTmx.js +19 -0
- package/dist/components/custom/aurora/composables/atoms-fields.d.ts +39 -0
- package/dist/components/custom/aurora/composables/auroraFallbackGround.d.ts +108 -0
- package/dist/components/custom/aurora/composables/runtime.d.ts +19 -0
- package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
- package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +51 -0
- package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +29 -0
- package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +30 -2
- package/dist/components/custom/aurora/constants/renderMode.d.ts +63 -10
- package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/oil-modes.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/procedural-color.wgsl.d.ts +4 -0
- package/dist/components/custom/aurora/index.d.ts +3 -2
- package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +46 -0
- package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +22 -0
- package/dist/components/custom/border-progress/constants.d.ts +59 -0
- package/dist/components/custom/border-progress/index.d.ts +4 -0
- package/dist/components/custom/color-swatch/ColorSwatch.vue.d.ts +22 -0
- package/dist/components/custom/color-swatch/index.d.ts +1 -0
- package/dist/components/custom/concentric/Concentric.vue.d.ts +39 -0
- package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +11 -0
- package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +13 -0
- package/dist/components/custom/concentric/composables/ringField.d.ts +44 -0
- package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +13 -0
- package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
- package/dist/components/custom/concentric/constants.d.ts +43 -0
- package/dist/components/custom/concentric/index.d.ts +5 -0
- package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +4 -0
- package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -0
- package/dist/components/custom/configurator/Configurator.vue.d.ts +19 -8
- package/dist/components/custom/constellation/Constellation.vue.d.ts +18 -206
- package/dist/components/custom/constellation/composables/useConstellation.d.ts +26 -0
- package/dist/components/custom/constellation/constellationField.d.ts +2 -369
- package/dist/components/custom/constellation/constellationTypes.d.ts +369 -0
- package/dist/components/custom/constellation/index.d.ts +1 -1
- package/dist/components/custom/dock/DockIconButton.vue.d.ts +13 -4
- package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
- package/dist/components/custom/dock/DockRail.vue.d.ts +17 -16
- package/dist/components/custom/dock/DockSection.vue.d.ts +69 -0
- package/dist/components/custom/dock/DockSeparator.vue.d.ts +49 -1
- package/dist/components/custom/dock/DockTabButton.vue.d.ts +5 -5
- package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +75 -0
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
- package/dist/components/custom/dock/constants.d.ts +35 -0
- package/dist/components/custom/dock/index.d.ts +2 -0
- package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +38 -0
- package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +41 -0
- package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +24 -0
- package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +34 -0
- package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +18 -0
- package/dist/components/custom/dot-flow-field/constants.d.ts +48 -0
- package/dist/components/custom/dot-flow-field/index.d.ts +5 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +20 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -0
- package/dist/components/custom/easing/EasingConfigurator.vue.d.ts +33 -0
- package/dist/components/custom/easing/EasingPicker.vue.d.ts +49 -0
- package/dist/components/custom/easing/composables/useEasingPicker.d.ts +75 -0
- package/dist/components/custom/easing/constants.d.ts +28 -0
- package/dist/components/custom/easing/index.d.ts +3 -0
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +10 -0
- package/dist/components/custom/fading-scroll/FadingScroll.vue.d.ts +25 -0
- package/dist/components/custom/fading-scroll/composables/useFadingScroll.d.ts +31 -0
- package/dist/components/custom/fading-scroll/constants.d.ts +19 -0
- package/dist/components/custom/fading-scroll/index.d.ts +2 -0
- package/dist/components/custom/fourier-field/FourierField.vue.d.ts +19 -2
- package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +39 -0
- package/dist/components/custom/fourier-field/constants.d.ts +7 -0
- package/dist/components/custom/fourier-field/index.d.ts +1 -1
- package/dist/components/custom/fourier-field/math.d.ts +17 -0
- package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +9 -1
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +4 -2
- package/dist/components/custom/goo-blob/composables/uniformBridgeWGPU.d.ts +24 -0
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +29 -12
- package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
- package/dist/components/custom/goo-blob/constants.d.ts +6 -1
- package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
- package/dist/components/custom/handmark/HandMark.vue.d.ts +29 -0
- package/dist/components/custom/handmark/brush.d.ts +269 -0
- package/dist/components/custom/handmark/composables/useHandMark.d.ts +89 -0
- package/dist/components/custom/handmark/constants.d.ts +39 -0
- package/dist/components/custom/handmark/freehand.d.ts +69 -0
- package/dist/components/custom/handmark/geometry.d.ts +52 -0
- package/dist/components/custom/handmark/index.d.ts +27 -0
- package/dist/components/custom/handmark/ink.d.ts +11 -0
- package/dist/components/custom/handmark/texture.d.ts +39 -0
- package/dist/components/custom/handmark/types.d.ts +62 -0
- package/dist/components/custom/icon-chip/IconChip.vue.d.ts +4 -0
- package/dist/components/custom/icon-chip/index.d.ts +2 -0
- package/dist/components/custom/icon-chip/types.d.ts +82 -0
- package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +17 -2
- package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
- package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +39 -0
- package/dist/components/custom/pager-dots/index.d.ts +2 -0
- package/dist/components/custom/spa-view/SpaView.vue.d.ts +50 -0
- package/dist/components/custom/spa-view/index.d.ts +2 -0
- package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +29 -24
- package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
- package/dist/components/custom/tabs/composables/useTabIndicator.d.ts +30 -21
- package/dist/components/custom/tabs/constants.d.ts +9 -3
- package/dist/components/custom/tabs/index.d.ts +1 -1
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +15 -1
- package/dist/components/ui/_shared/index.d.ts +2 -0
- package/dist/components/ui/_shared/menuItemVariants.d.ts +19 -0
- package/dist/components/ui/_shared/useSurfaceAxis.d.ts +41 -0
- package/dist/components/ui/badge/index.d.ts +1 -1
- package/dist/components/ui/button/Button.vue.d.ts +5 -2
- package/dist/components/ui/button/index.d.ts +2 -2
- package/dist/components/ui/card/Card.vue.d.ts +34 -4
- package/dist/components/ui/card/CardHeader.vue.d.ts +42 -16
- package/dist/components/ui/card/ScrollCard.vue.d.ts +33 -0
- package/dist/components/ui/card/ScrollCardHeader.vue.d.ts +17 -0
- package/dist/components/ui/card/index.d.ts +2 -0
- package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
- package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
- package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +2 -2
- package/dist/components/ui/carousel/index.d.ts +0 -1
- package/dist/components/ui/command/Command.vue.d.ts +4 -1
- package/dist/components/ui/dialog/DialogContent.vue.d.ts +8 -3
- package/dist/components/ui/drawer/Drawer.vue.d.ts +46 -33
- package/dist/components/ui/drawer/DrawerContent.vue.d.ts +12 -8
- package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +2 -2
- package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +1 -1
- package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +2 -2
- package/dist/components/ui/drawer/composables/drawerSnapContext.d.ts +26 -0
- package/dist/components/ui/drawer/composables/useDrawerSnap.d.ts +17 -0
- package/dist/components/ui/drawer/constants.d.ts +45 -0
- package/dist/components/ui/drawer/index.d.ts +23 -15
- package/dist/components/ui/focus-scope/FocusScope.vue.d.ts +20 -0
- package/dist/components/ui/focus-scope/index.d.ts +2 -0
- package/dist/components/ui/index.d.ts +1 -1
- package/dist/components/ui/popover/PopoverContent.vue.d.ts +3 -0
- package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
- package/dist/components/ui/progress/ProgressSectioned.vue.d.ts +14 -3
- package/dist/components/ui/select/SelectContent.vue.d.ts +1 -1
- package/dist/components/ui/select/SelectTrigger.vue.d.ts +27 -4
- package/dist/components/ui/sheet/SheetContent.vue.d.ts +6 -0
- package/dist/components/ui/sheet/index.d.ts +1 -1
- package/dist/components/ui/skeleton/Skeleton.vue.d.ts +3 -0
- package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
- package/dist/components/ui/toast/Toast.vue.d.ts +5 -2
- package/dist/components/ui/toast/use-toast.d.ts +14 -0
- package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
- package/dist/composables/dark/index.d.ts +1 -1
- package/dist/composables/dark/useGlobalDark.d.ts +23 -1
- package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +13 -6
- package/dist/composables/glass/index.d.ts +5 -2
- package/dist/composables/glass/useSpecularPointer.d.ts +33 -0
- package/dist/composables/glass/useSpecularTracking.d.ts +20 -0
- package/dist/composables/glass/vSpecular.d.ts +2 -0
- package/dist/composables/glass/webgl/shaders/flow.glsl.d.ts +1 -0
- package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +16 -0
- package/dist/composables/glass/webgpu/index.d.ts +2 -0
- package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +54 -0
- package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +84 -0
- package/dist/composables/motion/core/index.d.ts +1 -0
- package/dist/composables/motion/index.d.ts +4 -0
- package/dist/composables/motion/useDockCtaReceive.d.ts +59 -0
- package/dist/composables/motion/useDragMorph.d.ts +77 -0
- package/dist/composables/motion/useLiquidFlex.d.ts +11 -0
- package/dist/composables/motion/useLiquidPress.d.ts +71 -0
- package/dist/composables/motion/useLiquidReveal.d.ts +51 -0
- package/dist/composables/motion/useNumericTransition.d.ts +3 -3
- package/dist/composables/motion/usePointerVelocityField.d.ts +98 -0
- package/dist/composables/motion/useViewTransition.d.ts +36 -1
- package/dist/concentric.d.ts +1 -0
- package/dist/concentric.js +562 -0
- package/dist/configurator.js +3 -2
- package/dist/confirm-dialog.js +22 -24
- package/dist/constellation.js +93 -95
- package/dist/context-menu.js +3 -3
- package/dist/controls.js +10 -4
- package/dist/createCanvasLifecycle-CHD5XrDW.js +82 -0
- package/dist/dark.d.ts +1 -1
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/dialog.js +2 -2
- package/dist/dock.js +738 -442
- package/dist/{dockContext-BegmJVmx.js → dockContext-BNfyPLe9.js} +1 -1
- package/dist/dom.js +5 -5
- package/dist/dot-flow-field.d.ts +1 -0
- package/dist/dot-flow-field.js +604 -0
- package/dist/drawer.d.ts +1 -0
- package/dist/drawer.js +380 -0
- package/dist/{dropdown-menu-DzkkyBwX.js → dropdown-menu-CofSZuk8.js} +14 -15
- package/dist/dropdown-menu.js +1 -1
- package/dist/easing.d.ts +1 -0
- package/dist/easing.js +463 -0
- package/dist/expandable-container.js +45 -38
- package/dist/fading-scroll.d.ts +1 -0
- package/dist/fading-scroll.js +2 -0
- package/dist/focus-scope.d.ts +1 -0
- package/dist/focus-scope.js +23 -0
- package/dist/forms.js +7 -7
- package/dist/fourier-field.js +135 -122
- package/dist/fourier-math.js +2 -2
- package/dist/glass-panel.js +39 -36
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +154 -362
- package/dist/goo-blob.js +838 -227
- package/dist/handmark.d.ts +1 -0
- package/dist/handmark.js +707 -0
- package/dist/header-ribbon.js +1 -1
- package/dist/hover-card.js +1 -1
- package/dist/hover-popover.js +1 -1
- package/dist/icon-chip.d.ts +1 -0
- package/dist/icon-chip.js +2 -0
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +6 -6
- package/dist/{math-U6-RrLmV.js → math-BINYmg5z.js} +11 -3
- package/dist/{menuItemVariants-DPiEarb0.js → menuItemVariants-D8VNHq22.js} +10 -4
- package/dist/metric-badge.js +1 -1
- package/dist/metric-cell.js +25 -22
- package/dist/metric-stack.js +4 -8
- package/dist/motion-core.js +36 -35
- package/dist/motion-curves.js +1 -1
- package/dist/motion.js +157 -55
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/pager-dots.d.ts +1 -0
- package/dist/pager-dots.js +91 -0
- package/dist/paper-backdrop.js +1 -1
- package/dist/popover.js +1 -1
- package/dist/{presets-BKVyQfbt.js → presets-BW2b-fr1.js} +14 -1
- package/dist/{compile-B7NGOBcP.js → procedural-color.glsl-CIFsJhwI.js} +1 -155
- package/dist/procedural-color.wgsl-CToRHugY.js +224 -0
- package/dist/progress.js +1 -1
- package/dist/pulse.js +1 -1
- package/dist/reactive.js +2 -2
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +10 -12
- package/dist/select.js +3 -3
- package/dist/separator.js +1 -1
- package/dist/sheet-tZMg0E0w.js +218 -0
- package/dist/sheet.js +1 -1
- package/dist/{slider-B-JP2JlI.js → slider-DVb4HXU-.js} +7 -7
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +3 -3
- package/dist/spa-view.d.ts +1 -0
- package/dist/spa-view.js +46 -0
- package/dist/styles/animations.css +40 -31
- package/dist/styles/border-progress.css +109 -0
- package/dist/styles/cards.css +76 -0
- package/dist/styles/components.css +1 -1
- package/dist/styles/configurator.css +35 -0
- package/dist/styles/critical-partition.mjs +140 -0
- package/dist/styles/critical.css +12 -0
- package/dist/styles/deferred.css +31 -0
- package/dist/styles/dock/density.css +64 -0
- package/dist/styles/dock/layers.css +54 -30
- package/dist/styles/dock/morph.css +124 -7
- package/dist/styles/dock/overflow.css +31 -2
- package/dist/styles/dock/rail-extend.css +168 -71
- package/dist/styles/dock/section.css +59 -0
- package/dist/styles/dock/shell.css +83 -16
- package/dist/styles/dock-controls/icon-button.css +11 -1
- package/dist/styles/dock-controls/tab-button.css +24 -83
- package/dist/styles/dock-controls/triggers.css +7 -0
- package/dist/styles/dock.css +38 -3
- package/dist/styles/drawer.css +127 -35
- package/dist/styles/feedback-tone.css +104 -0
- package/dist/styles/glass/deep.css +44 -0
- package/dist/styles/glass/ladder.css +154 -52
- package/dist/styles/glass/material.css +78 -15
- package/dist/styles/glass/reveal.css +136 -0
- package/dist/styles/glass/rim.css +100 -0
- package/dist/styles/glass/surface-axis.css +113 -0
- package/dist/styles/glass/surfaces.css +189 -15
- package/dist/styles/glass-refract.css +96 -44
- package/dist/styles/glass-specular-track.css +7 -0
- package/dist/styles/glass.css +8 -2
- package/dist/styles/hover-popover.css +7 -6
- package/dist/styles/icon-chip.css +211 -0
- package/dist/styles/index.css +78 -4
- package/dist/styles/instrument-chassis.css +107 -2
- package/dist/styles/menu.css +127 -0
- package/dist/styles/scroll-choreography.css +300 -0
- package/dist/styles/segmented-tabs.css +188 -86
- package/dist/styles/select.css +50 -0
- package/dist/styles/theme/bridges.css +22 -1
- package/dist/styles/theme/literals.css +11 -2
- package/dist/styles/theme/radius.css +6 -1
- package/dist/styles/tokens/color-radius.css +40 -13
- package/dist/styles/tokens/dark-arm.css +200 -20
- package/dist/styles/tokens/glass-deep.css +75 -0
- package/dist/styles/tokens/glass-fx.css +333 -0
- package/dist/styles/tokens/glass.css +95 -315
- package/dist/styles/tokens/light-dark.css +64 -22
- package/dist/styles/tokens/offsets.css +116 -0
- package/dist/styles/tokens/on-glass-fg.css +39 -0
- package/dist/styles/tokens/property-regs.css +130 -10
- package/dist/styles/tokens/scale-paper.css +155 -84
- package/dist/styles/tokens/scheme-motion.css +102 -46
- package/dist/styles/tokens/scroll-tokens.css +123 -0
- package/dist/styles/tokens/{offsets-sizing.css → sizing.css} +88 -89
- package/dist/styles/tokens.css +9 -3
- package/dist/styles/transitions.css +7 -7
- package/dist/styles/typography/scale.css +153 -0
- package/dist/styles/typography/semantic.css +220 -0
- package/dist/styles/typography/utilities.css +174 -0
- package/dist/styles/typography.css +23 -507
- package/dist/styles/utilities/a11y-overrides.css +33 -4
- package/dist/styles/utilities/animate.css +27 -24
- package/dist/styles/utilities/base-misc.css +255 -0
- package/dist/styles/utilities/base.css +100 -138
- package/dist/styles/utilities/btn.css +21 -202
- package/dist/styles/utilities/metal.css +189 -0
- package/dist/styles/utilities.css +14 -7
- package/dist/styles/view-transition.css +4 -1
- package/dist/switch.js +1 -1
- package/dist/tabs.js +275 -191
- package/dist/timeline.js +2 -2
- package/dist/toast.js +1 -1
- package/dist/toggle-chip.js +3 -1
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{useAnimatedNumber-C5I3wWd8.js → useAnimatedNumber-BfUq2bUM.js} +1 -1
- package/dist/useCanvas2D-B8w_E3Rr.js +83 -0
- package/dist/useConfiguratorState-DNlOh6c8.js +161 -0
- package/dist/useDragMorph-DgxnsVJz.js +102 -0
- package/dist/{useGlobalDark-yhL4Wp-s.js → useGlobalDark-C28t0VWJ.js} +22 -3
- package/dist/useLiquidPress-kfb4KX79.js +39 -0
- package/dist/usePointerVelocityField-JbRd5CrM.js +137 -0
- package/dist/{useRAFLoop-Bxv0o6L5.js → useRAFLoop-UYa4zoiN.js} +1 -1
- package/dist/useSpring-C0jyvEJB.js +40 -0
- package/dist/useSpringMount-q1amq1SJ.js +71 -0
- package/dist/useSpringPress-BsqPr7FJ.js +34 -0
- package/dist/useSurfaceAxis-g0NloYEF.js +7 -0
- package/dist/{useTouchGate-Dg7MQI1G.js → useTouchGate-CBZTD4SD.js} +1 -1
- package/dist/vReveal-Czsb7zQC.js +10 -0
- package/dist/vSpecular-CQFmLNzA.js +68 -0
- package/dist/vendor-CKmzio-i.js +226 -0
- package/dist/watercolor-dot.js +12 -5
- package/package.json +193 -25
- package/src/styles/animations.css +40 -31
- package/src/styles/border-progress.css +109 -0
- package/src/styles/cards.css +76 -0
- package/src/styles/configurator.css +35 -0
- package/src/styles/critical-partition.mjs +140 -0
- package/src/styles/dock/density.css +64 -0
- package/src/styles/dock/layers.css +54 -30
- package/src/styles/dock/morph.css +124 -7
- package/src/styles/dock/overflow.css +31 -2
- package/src/styles/dock/rail-extend.css +168 -71
- package/src/styles/dock/section.css +59 -0
- package/src/styles/dock/shell.css +83 -16
- package/src/styles/dock-controls/icon-button.css +11 -1
- package/src/styles/dock-controls/tab-button.css +24 -83
- package/src/styles/dock-controls/triggers.css +7 -0
- package/src/styles/dock.css +38 -3
- package/src/styles/drawer.css +123 -35
- package/src/styles/feedback-tone.css +104 -0
- package/src/styles/glass/deep.css +44 -0
- package/src/styles/glass/ladder.css +154 -52
- package/src/styles/glass/material.css +78 -15
- package/src/styles/glass/reveal.css +136 -0
- package/src/styles/glass/rim.css +100 -0
- package/src/styles/glass/surface-axis.css +113 -0
- package/src/styles/glass/surfaces.css +189 -15
- package/src/styles/glass-refract.css +96 -44
- package/src/styles/glass-specular-track.css +7 -0
- package/src/styles/glass.css +8 -2
- package/src/styles/hover-popover.css +7 -6
- package/src/styles/icon-chip.css +211 -0
- package/src/styles/index.css +78 -4
- package/src/styles/instrument-chassis.css +107 -2
- package/src/styles/menu.css +127 -0
- package/src/styles/scroll-choreography.css +300 -0
- package/src/styles/segmented-tabs.css +184 -84
- package/src/styles/select.css +50 -0
- package/src/styles/theme/bridges.css +22 -1
- package/src/styles/theme/literals.css +11 -2
- package/src/styles/theme/radius.css +6 -1
- package/src/styles/tokens/color-radius.css +40 -13
- package/src/styles/tokens/dark-arm.css +200 -20
- package/src/styles/tokens/glass-deep.css +75 -0
- package/src/styles/tokens/glass-fx.css +333 -0
- package/src/styles/tokens/glass.css +95 -315
- package/src/styles/tokens/light-dark.css +64 -22
- package/src/styles/tokens/offsets.css +116 -0
- package/src/styles/tokens/on-glass-fg.css +39 -0
- package/src/styles/tokens/property-regs.css +130 -10
- package/src/styles/tokens/scale-paper.css +155 -84
- package/src/styles/tokens/scheme-motion.css +102 -46
- package/src/styles/tokens/scroll-tokens.css +123 -0
- package/src/styles/tokens/{offsets-sizing.css → sizing.css} +88 -89
- package/src/styles/tokens.css +9 -3
- package/src/styles/transitions.css +7 -7
- package/src/styles/typography/scale.css +153 -0
- package/src/styles/typography/semantic.css +220 -0
- package/src/styles/typography/utilities.css +174 -0
- package/src/styles/typography.css +23 -507
- package/src/styles/utilities/a11y-overrides.css +33 -4
- package/src/styles/utilities/animate.css +27 -24
- package/src/styles/utilities/base-misc.css +255 -0
- package/src/styles/utilities/base.css +100 -138
- package/src/styles/utilities/btn.css +21 -202
- package/src/styles/utilities/metal.css +189 -0
- package/src/styles/utilities.css +14 -7
- package/src/styles/view-transition.css +4 -1
- package/dist/CardAction-Cj2eycQ2.js +0 -157
- package/dist/DialogContent-Dl9WkAoS.js +0 -100
- package/dist/Notification-DdwNxIrI.js +0 -100
- package/dist/NumberFieldContent-CqaN-SvN.js +0 -145
- package/dist/PopoverContent-BYwt2-4x.js +0 -121
- package/dist/TabsList-Dttss653.js +0 -105
- package/dist/Toaster-D6q4HtXu.js +0 -263
- package/dist/button-ChXMfsud.js +0 -81
- package/dist/check-njhk-vfu.js +0 -7
- package/dist/chevron-down-DKkxb4VV.js +0 -7
- package/dist/chevron-right-CPXbqQQz.js +0 -7
- package/dist/chevron-up-n_24SqI-.js +0 -7
- package/dist/components/custom/underline/GlassUnderline.vue.d.ts +0 -84
- package/dist/components/custom/underline/index.d.ts +0 -2
- package/dist/components/custom/underline/types.d.ts +0 -56
- package/dist/components/ui/carousel/CarouselDots.vue.d.ts +0 -4
- package/dist/createLucideIcon-DydS2qgk.js +0 -43
- package/dist/minimize-2-BV31Ob_h.js +0 -38
- package/dist/search-BSGrf2Sk.js +0 -12
- package/dist/sheet-1fChZjtw.js +0 -214
- package/dist/underline.d.ts +0 -1
- package/dist/underline.js +0 -85
- package/dist/useCanvas2D-ClrQuZtp.js +0 -96
- package/dist/useConfiguratorState-DAoeHVue.js +0 -287
- package/dist/useSpecularTracking-Bo5su68i.js +0 -32
- package/dist/useSpringMount-CI2jOstM.js +0 -108
- package/dist/vReveal-CqaCz_mC.js +0 -44
- package/dist/x-BUwTKe50.js +0 -10
- /package/dist/{CollapsibleContent-CP9qF1v4.js → CollapsibleContent-68dEXIAl.js} +0 -0
- /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-Bx0F_q5g.js} +0 -0
- /package/dist/{Label-r3WzWrsj.js → Label-C2ejNWeC.js} +0 -0
- /package/dist/{ModalOverlay-DVLI2VRr.js → ModalOverlay-D1VrWyoi.js} +0 -0
- /package/dist/{PaperBackdrop-DIXTtVq6.js → PaperBackdrop-Vf3tlpvd.js} +0 -0
- /package/dist/{SelectGroup-aumMgWLs.js → SelectGroup-DwwjicPY.js} +0 -0
- /package/dist/{SelectSeparator-BQ_1Fcbp.js → SelectSeparator-DXswVdRz.js} +0 -0
- /package/dist/{Separator-0JE6LtNu.js → Separator-pKF0oA4M.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-ok8pgSl5.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
- /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
- /package/dist/{color-CUYeFbgd.js → color-DweYl7pE.js} +0 -0
- /package/dist/{constants-CS75AWHG.js → constants-BPOqYJAm.js} +0 -0
- /package/dist/{createContext-BM46COQ-.js → createContext-CpBNTRMI.js} +0 -0
- /package/dist/{prng-D27-B3tK.js → prng-Za0Rmgag.js} +0 -0
- /package/dist/{resolveCanvasColor-BBiYfp8g.js → resolveCanvasColor-CUyHr5Uu.js} +0 -0
- /package/dist/{springPresets--YdWTHtm.js → springPresets-CFQGQfdl.js} +0 -0
- /package/dist/{useIntersectionPause-Cc-H9ees.js → useIntersectionPause-Bj4sPkMh.js} +0 -0
- /package/dist/{useInterval-iHludrxk.js → useInterval-CvK1mL92.js} +0 -0
- /package/dist/{useKeyboardShortcuts-Be3w_Rwk.js → useKeyboardShortcuts-BXWXOZ-9.js} +0 -0
- /package/dist/{useLiquidFlex-BL0lLLN2.js → useLiquidFlex-mZPMiNXh.js} +0 -0
- /package/dist/{useResizeObserver-BhgdhOIj.js → useResizeObserver-Bpoi7tRE.js} +0 -0
- /package/dist/{useResolveTokenColor-Dvn2RZJW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
- /package/dist/{useScrollProgress-Dlvx-L3v.js → useScrollProgress-D7bYU2RK.js} +0 -0
- /package/dist/{useSortable-muI29agz.js → useSortable-DHjtZSEd.js} +0 -0
- /package/dist/{useTextHighlight-DmRYkOBx.js → useTextHighlight-CWEi25hf.js} +0 -0
- /package/dist/{useTimer-Dzarvzuk.js → useTimer-BHJOKr35.js} +0 -0
- /package/dist/{useUserInvalidAria-B2h6jAM_.js → useUserInvalidAria-y5namzeE.js} +0 -0
- /package/dist/{useViewportReady-B40FK4Pa.js → useViewportReady-anbac3m6.js} +0 -0
|
@@ -0,0 +1,255 @@
|
|
|
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
|
+
/* ── Shimmer text effects ──
|
|
216
|
+
BB.W-METAL-SHIMMER — the gold-only `gold-shimmer-slide` is RETIRED (clean
|
|
217
|
+
break, no alias); `.gold-shimmer` re-points onto the metal-PARAMETERIZED
|
|
218
|
+
`metal-shimmer-sweep` keyframe with `--metal-shimmer-color: gold`. The gold
|
|
219
|
+
gradient stops + the `background-size`/`background-clip` + the PRM bracket are
|
|
220
|
+
byte-PRESERVED — the gold READ is unchanged; only the keyframe NAME generalizes.
|
|
221
|
+
The text-fill + background-clip composition is load-bearing visual (the gold
|
|
222
|
+
gradient itself); only the `animation:` line is wrapped in the PRM no-preference
|
|
223
|
+
bracket so PRM users see the static gradient without the slide. */
|
|
224
|
+
.gold-shimmer {
|
|
225
|
+
--metal-shimmer-color: gold;
|
|
226
|
+
background: linear-gradient(90deg, var(--color-gold-dark), var(--color-gold-light), var(--color-gold), var(--color-gold-light), var(--color-gold-dark));
|
|
227
|
+
background-size: 250% 100%;
|
|
228
|
+
background-clip: text;
|
|
229
|
+
-webkit-background-clip: text;
|
|
230
|
+
color: transparent;
|
|
231
|
+
}
|
|
232
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
233
|
+
.gold-shimmer {
|
|
234
|
+
animation: metal-shimmer-sweep var(--duration-shimmer) linear infinite;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/* ── Keyboard key ── */
|
|
239
|
+
.kbd {
|
|
240
|
+
display: inline-flex;
|
|
241
|
+
align-items: center;
|
|
242
|
+
justify-content: center;
|
|
243
|
+
min-height: 1.5rem;
|
|
244
|
+
min-width: 1.5rem;
|
|
245
|
+
padding: 0 0.375rem;
|
|
246
|
+
font-family: var(--font-mono);
|
|
247
|
+
font-size: var(--type-micro);
|
|
248
|
+
background: var(--muted);
|
|
249
|
+
border: 1px solid var(--border);
|
|
250
|
+
border-radius: var(--radius-sm);
|
|
251
|
+
box-shadow: 0 1px 0 1px color-mix(in srgb, var(--border) 30%, transparent);
|
|
252
|
+
line-height: 1;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
}
|
|
@@ -1,7 +1,52 @@
|
|
|
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. */
|
|
12
|
+
|
|
13
|
+
/* ═══════════════════════════════════════════════
|
|
14
|
+
§FADING-SCROLL — the per-edge mask-width interpolation customs (BA.W-FADING-SCROLL)
|
|
15
|
+
|
|
16
|
+
`<FadingScroll>`'s scroll-state-driven edge fade is a `mask-image` whose two
|
|
17
|
+
per-edge ramp widths are these registered `@property <length-percentage>`
|
|
18
|
+
customs. Registered (not bare custom props) so they INTERPOLATE smoothly off
|
|
19
|
+
the `scroll(self)` timeline below — an unregistered custom would jump between
|
|
20
|
+
the textual `0px` / `var(--fade-scroll-width)` endpoints rather than feathering.
|
|
21
|
+
`inherits: false`: each scroll port owns its own edge state (an ancestor must
|
|
22
|
+
never push a fade-width onto an unrelated descendant strip — mirrors the
|
|
23
|
+
`--progress-crescendo` / `--ripple-radius` non-inheriting registrations).
|
|
24
|
+
`initial-value: 0px` = the SHARP floor: an at-rest, no-overflow edge has NO
|
|
25
|
+
feather (the R8-08 "Shy" defect — the static `.scroll-fade-*` mask half-erased
|
|
26
|
+
the first card's chrome at rest — is structurally impossible because the
|
|
27
|
+
default is sharp and the timeline OPENS the feather only on real scroll).
|
|
28
|
+
|
|
29
|
+
These customs are INTERNAL (not a public token). The public knob is
|
|
30
|
+
`--fade-scroll-width` (offsets-sizing.css). Co-registered HERE (the consuming
|
|
31
|
+
CSS file) per the `@property --dock-morph-t` in dock.css precedent — a
|
|
32
|
+
component's typed property rides its own recipe file.
|
|
33
|
+
|
|
34
|
+
Co-written by the `useFadingScroll` JS fallback (the dual-path single writer):
|
|
35
|
+
the native `scroll(self)` timeline below owns these customs on a supporting
|
|
36
|
+
engine, the composable writes the SAME two customs when it is absent. Never
|
|
37
|
+
both — the composable feature-detect-gates OFF under timeline support.
|
|
38
|
+
═══════════════════════════════════════════════ */
|
|
39
|
+
@property --fade-start {
|
|
40
|
+
syntax: "<length-percentage>";
|
|
41
|
+
inherits: false;
|
|
42
|
+
initial-value: 0px;
|
|
43
|
+
}
|
|
44
|
+
@property --fade-end {
|
|
45
|
+
syntax: "<length-percentage>";
|
|
46
|
+
inherits: false;
|
|
47
|
+
initial-value: 0px;
|
|
48
|
+
}
|
|
49
|
+
|
|
5
50
|
@layer components {
|
|
6
51
|
/* ── Section description (V.W3.T7) ──────────────────────────────
|
|
7
52
|
Canonical recipe for the `<Section>` primitive's description
|
|
@@ -40,6 +85,23 @@
|
|
|
40
85
|
without `:has()`/`:user-invalid` (not a live+dead alias). */
|
|
41
86
|
.labeled-field {
|
|
42
87
|
--field-label-color: var(--muted-foreground);
|
|
88
|
+
/* THE WIDTH CONTRACT (BA.W-CONFIG-CHASSIS.1, S1 / CFG-1). The
|
|
89
|
+
labeled-field root claims FULL inline width + lays its label/control
|
|
90
|
+
stack out as a column, so a slotted control (a Slider whose inner
|
|
91
|
+
`.glass-slider` resolves `width: 100%`) has a DEFINITE width to
|
|
92
|
+
resolve against — never the content-sized 0 the bare `display:block`
|
|
93
|
+
default produced inside the configurator row's flex slot. This is the
|
|
94
|
+
half that survives the `hide-label` register: with the visible label
|
|
95
|
+
rendered `sr-only`, the label was the only intrinsic width
|
|
96
|
+
contributor, so the field collapsed; `width:100%` makes the field own
|
|
97
|
+
its inline axis regardless of label visibility. `min-width:0` lets it
|
|
98
|
+
shrink below content min inside a constrained row. Standalone use is
|
|
99
|
+
unaffected (a `<LabeledField>` outside a flex parent fills its block
|
|
100
|
+
container exactly as the prior `display:block` did). */
|
|
101
|
+
display: flex;
|
|
102
|
+
flex-direction: column;
|
|
103
|
+
inline-size: 100%;
|
|
104
|
+
min-inline-size: 0;
|
|
43
105
|
}
|
|
44
106
|
.labeled-field:has(:user-invalid),
|
|
45
107
|
.labeled-field.has-error {
|
|
@@ -72,8 +134,9 @@
|
|
|
72
134
|
(PopoverContent, DropdownMenuContent, SelectContent, etc.).
|
|
73
135
|
Covers radius + outline + popover-foreground; consumers compose
|
|
74
136
|
this with `.glass-floating` (bg + blur + border + shadow), with
|
|
75
|
-
`.
|
|
76
|
-
|
|
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
|
|
77
140
|
`--glass-shadow-floating` via `.glass-floating`, replacing the
|
|
78
141
|
`shadow-md`/`shadow-lg` literals that bypassed the canonical
|
|
79
142
|
cascade. */
|
|
@@ -223,143 +286,42 @@
|
|
|
223
286
|
}
|
|
224
287
|
}
|
|
225
288
|
|
|
226
|
-
/* ──
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
height: 0.5rem;
|
|
231
|
-
border-radius: var(--radius-pill);
|
|
232
|
-
flex-shrink: 0;
|
|
233
|
-
transition:
|
|
234
|
-
color var(--duration-fast) var(--ease-standard),
|
|
235
|
-
background var(--duration-fast) var(--ease-standard),
|
|
236
|
-
box-shadow var(--duration-fast) var(--ease-standard);
|
|
237
|
-
}
|
|
238
|
-
/* ── Depth text (layered offset stamp) ──
|
|
239
|
-
AW.W26 — composes the `--text-shadow-depth` @theme identity token (the
|
|
240
|
-
hard offset stack + soft ambient tail) instead of a hand-rolled multi-stop
|
|
241
|
-
literal. The token holds the stack inside the `@theme` defs (gate 4) and
|
|
242
|
-
re-tints under `.dark` via `--shadow`/`--shadow-color` BY CONSTRUCTION. */
|
|
243
|
-
.depth-text {
|
|
244
|
-
--depth-color-primary: var(--primary);
|
|
245
|
-
|
|
246
|
-
color: var(--depth-color-primary);
|
|
247
|
-
text-shadow: var(--text-shadow-depth);
|
|
248
|
-
}
|
|
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):
|
|
249
293
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
.ios [contenteditable] {
|
|
260
|
-
font-size: max(1rem, 1em);
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
/* ── Scroll fade masks ──
|
|
264
|
-
Single-source `mask-image` (AV.W16 TW7): the `-webkit-` companion is
|
|
265
|
-
dropped — Tailwind v4's Lightning CSS build pipeline auto-prefixes per
|
|
266
|
-
the browserslist targets, mirroring the glass ladder's single-source
|
|
267
|
-
`backdrop-filter` (glass.css). NOTE: this is the consistency cut; it
|
|
268
|
-
does NOT conflict with W15's `@supports`-gated older-Safari mask
|
|
269
|
-
fallback (that fallback is the distinct case where the companion is
|
|
270
|
-
genuinely needed and W15 gates it). */
|
|
271
|
-
.scroll-fade-mask {
|
|
272
|
-
mask-image: linear-gradient(to right, transparent, black var(--mask-fade-width), black calc(100% - var(--mask-fade-width)), transparent);
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
.scroll-fade-top {
|
|
276
|
-
mask-image: linear-gradient(to bottom, transparent, black var(--mask-fade-width));
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
.scroll-fade-bottom {
|
|
280
|
-
mask-image: linear-gradient(to bottom, black calc(100% - var(--mask-fade-width)), transparent);
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
.scroll-fade-y {
|
|
284
|
-
mask-image: linear-gradient(to bottom, transparent, black var(--mask-fade-width), black calc(100% - var(--mask-fade-width)), transparent);
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
/* ── Deferred section — render-skip an offscreen subtree (AQ.W3 §5) ──────
|
|
288
|
-
`content-visibility: auto` skips layout/paint/style of an offscreen
|
|
289
|
-
subtree — the INP-under-load lever (fourier γ, muster, speedtest, words).
|
|
290
|
-
`contain-intrinsic-size: auto <estimate>` is measurement-safe: the `auto`
|
|
291
|
-
prefix makes the engine REMEMBER the last-rendered size (no scroll-jump on
|
|
292
|
-
re-entry); plain `<estimate>` freezes the section + thrashes the scrollbar
|
|
293
|
-
— the trap this closes. Estimate is token-driven (`--deferred-section-
|
|
294
|
-
size`, default 30rem). `.deferred-section--cached` →
|
|
295
|
-
`content-visibility: hidden` (always skipped, state CACHED — cheaper to
|
|
296
|
-
re-show than `display:none`). Baseline Widely; unsupporting engines render
|
|
297
|
-
normally. JS HOOK: the engine fires `contentvisibilityautostatechange`
|
|
298
|
-
{ skipped } at the render-skip boundary — pair with `useRAFLoop`
|
|
299
|
-
pause/resume: `el.addEventListener('contentvisibilityautostatechange',
|
|
300
|
-
e => e.skipped ? loop.pause() : loop.resume())`. */
|
|
301
|
-
.deferred-section {
|
|
302
|
-
content-visibility: auto;
|
|
303
|
-
contain-intrinsic-size: auto var(--deferred-section-size, 30rem);
|
|
304
|
-
}
|
|
305
|
-
.deferred-section--cached {
|
|
306
|
-
content-visibility: hidden;
|
|
307
|
-
contain-intrinsic-size: auto var(--deferred-section-size, 30rem);
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
/* ── Card scroll-timeline host (AI.W1-α) ───────────────────────────────
|
|
311
|
-
Canonical scroll-overflow host that emits the `--card-scroll` named
|
|
312
|
-
scroll-timeline consumed by `<CardHeader shrink>`. Apply to the
|
|
313
|
-
scroll-overflow ancestor (typically the `<Card>` itself OR a wrapper
|
|
314
|
-
inside it that carries `overflow-y: auto`).
|
|
315
|
-
|
|
316
|
-
`contain: layout style paint` isolates the named timeline so child
|
|
317
|
-
animations respond to THIS host's scroll only — not to portal-
|
|
318
|
-
triggered layout shifts in ancestor containers (the load-bearing
|
|
319
|
-
isolation guarantee the value.js `PaneHeader.vue:18-29` comment
|
|
320
|
-
called out and the AI.W1 spec §1.2 ratified as canon).
|
|
321
|
-
|
|
322
|
-
Disambiguated from `.scroll-fade-*` (mask-image fade gradient at
|
|
323
|
-
the container's leading/trailing edge) — `.card-scroll-host` does
|
|
324
|
-
NOT paint any visual; it only emits the timeline. */
|
|
325
|
-
.card-scroll-host {
|
|
326
|
-
contain: layout style paint;
|
|
327
|
-
scroll-timeline: --card-scroll block;
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
/* ── Shimmer text effects ──
|
|
331
|
-
The text-fill + background-clip composition is load-bearing visual
|
|
332
|
-
(the gold gradient itself); only the `animation:` line is wrapped in
|
|
333
|
-
the PRM no-preference bracket so PRM users see the static gradient
|
|
334
|
-
without the slide animation. */
|
|
335
|
-
.gold-shimmer {
|
|
336
|
-
background: linear-gradient(90deg, var(--color-gold-dark), var(--color-gold-light), var(--color-gold), var(--color-gold-light), var(--color-gold-dark));
|
|
337
|
-
background-size: 250% 100%;
|
|
338
|
-
background-clip: text;
|
|
339
|
-
-webkit-background-clip: text;
|
|
340
|
-
color: transparent;
|
|
341
|
-
}
|
|
342
|
-
@media (prefers-reduced-motion: no-preference) {
|
|
343
|
-
.gold-shimmer {
|
|
344
|
-
animation: gold-shimmer-slide var(--duration-shimmer) linear infinite;
|
|
345
|
-
}
|
|
346
|
-
}
|
|
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.
|
|
347
303
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
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;
|
|
363
325
|
}
|
|
364
326
|
|
|
365
327
|
}
|