@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
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
(AZ.W-CARVE partial 3 of 5; carved out of dock-controls.css).
|
|
3
3
|
|
|
4
4
|
The base rule (density-keyed height knob, padding, glass hover/active/press
|
|
5
|
-
cohort), the PRIMARY tier (the
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
edge-light/edge-shadow cross-control comma-group over tab + icon button).
|
|
5
|
+
cohort), the PRIMARY tier (the structural shell — taller min-height + wider
|
|
6
|
+
padding + a stronger base tint; the disco grain/halo RETIRED at BA.W-GLASS-CAL,
|
|
7
|
+
it now inherits the base glass hover register), and the SECONDARY tier (the
|
|
8
|
+
quieter edge-light/edge-shadow cross-control comma-group over tab + icon button).
|
|
9
9
|
Opens its OWN `@layer components`; @import-ed after dark-mode-toggle.css. */
|
|
10
10
|
|
|
11
11
|
@layer components {
|
|
@@ -29,6 +29,14 @@
|
|
|
29
29
|
padding-block: var(--dock-tab-padding-block, 0.375rem);
|
|
30
30
|
border: none;
|
|
31
31
|
background: transparent;
|
|
32
|
+
/* BA.W-DOCK-GEOMETRY — the control-plate clearance inset (DC-2). The tab's
|
|
33
|
+
OWN padding already insets a content box within the row-locked border box;
|
|
34
|
+
`background-clip: content-box` realizes that as a PAINTED-plate inset, so
|
|
35
|
+
the hover (×1.1) / active pill clears the cross-axis clip edge with margin
|
|
36
|
+
— the same plate-inset-within-cell principle the icon-button consumes via
|
|
37
|
+
`--dock-control-safe-inset`. The text + min-height keep the box at the row;
|
|
38
|
+
only the painted fill insets (no box growth, no glyph reflow). */
|
|
39
|
+
background-clip: content-box;
|
|
32
40
|
border-radius: var(--dock-control-radius, var(--radius-pill));
|
|
33
41
|
/* Default font-size carries through to text-only tab content; consumers
|
|
34
42
|
wrapping content in an explicit type utility (e.g. `text-hero`,
|
|
@@ -86,91 +94,24 @@
|
|
|
86
94
|
|
|
87
95
|
/* Tier — primary ────────────────────────────────────────────
|
|
88
96
|
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
* <DockTabButton>
|
|
101
|
-
* consumer passes `data-tier="primary"`. The dock-local rules below
|
|
102
|
-
* are STRICTLY the dock extension: structural shell (padding, base
|
|
103
|
-
* surface tint, min-height) + phase-tint extensions (hover radial
|
|
104
|
-
* uses `--phase-color`, plus the `[data-phase]` `::before` halo).
|
|
97
|
+
* BA.W-GLASS-CAL (H2a) — the disco COLLAPSED. The primary tier was a SECOND
|
|
98
|
+
* disco surface: it composed `@utility btn-audacious` (auto-attached by
|
|
99
|
+
* <DockTabButton> on `data-tier="primary"`) PLUS a dock-local phase-grain
|
|
100
|
+
* (the `--glass-grain-opacity-disco` + `--paper-clean-texture`/`--phase-color`
|
|
101
|
+
* radial hover) PLUS a `[data-phase]` `::before` rest-halo. With the disco
|
|
102
|
+
* retired, the primary tier keeps ONLY its STRUCTURAL shell (taller min-height,
|
|
103
|
+
* wider padding, the slightly-stronger base tint that distinguishes it from the
|
|
104
|
+
* secondary tier) and inherits the plain de-red'd dock-control glass hover
|
|
105
|
+
* register from the base `.dock-tab-button` rule above (bg → `--dock-control-
|
|
106
|
+
* hover-bg`, scale → `--scale-hover-dock`, the specular gleam — the SAME register
|
|
107
|
+
* `.dock-icon-button` speaks). No grain, no phase-radial, no rest-halo. The
|
|
108
|
+
* <DockTabButton> auto-attach of `btn-audacious` is removed (the utility is gone).
|
|
105
109
|
*/
|
|
106
110
|
.dock-tab-button[data-tier="primary"] {
|
|
107
111
|
--dock-tab-min-height: 4rem;
|
|
108
112
|
padding-inline: 1.5rem;
|
|
109
113
|
background: color-mix(in srgb, var(--card) 60%, transparent);
|
|
110
114
|
color: var(--foreground);
|
|
111
|
-
|
|
112
|
-
/* Phase-tint hover override — same disco-grain composition as
|
|
113
|
-
* `btn-audacious`, but the radial uses `--phase-color` (instrument-
|
|
114
|
-
* cluster axis) instead of the canonical `--primary`. The `--paper-
|
|
115
|
-
* clean-texture` overlay and `--glass-specular` shadow stack are
|
|
116
|
-
* inherited from the underlying `btn-audacious` utility. */
|
|
117
|
-
/* AX.W52 D19 — the phase-tint hover radial DEMOTED: the prior
|
|
118
|
-
* `ellipse at 30% 30%` at 18% was a loud top-LEFT corner hotspot. Toned to
|
|
119
|
-
* 8% and the anchor shifted off the hard corner toward a softer top-biased
|
|
120
|
-
* ellipse (`40% 25%`) with a tighter `transparent 55%` falloff, so it reads
|
|
121
|
-
* as a surface lift rather than a corner glow — the disco hover identity
|
|
122
|
-
* survives, the egregious corner bloom does not. */
|
|
123
|
-
&:hover:not(:disabled) {
|
|
124
|
-
--glass-grain-opacity: var(--glass-grain-opacity-disco, 0.08);
|
|
125
|
-
background-image:
|
|
126
|
-
var(--paper-clean-texture),
|
|
127
|
-
radial-gradient(
|
|
128
|
-
ellipse at 40% 25%,
|
|
129
|
-
color-mix(
|
|
130
|
-
in srgb,
|
|
131
|
-
var(--phase-color, var(--foreground)) 8%,
|
|
132
|
-
transparent
|
|
133
|
-
),
|
|
134
|
-
transparent 55%
|
|
135
|
-
);
|
|
136
|
-
background-blend-mode: overlay, normal;
|
|
137
|
-
background-size: var(--paper-texture-size), auto;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/* Q.W3.A.4 — phase-tint backplate halo at the pill wrapper.
|
|
141
|
-
*
|
|
142
|
-
* An inner glyph wrapper's own halo would be clipped by the pill's
|
|
143
|
-
* `overflow: hidden` and never escape the glyph box. This `::before`
|
|
144
|
-
* lifts the phase-tint to the pill itself so the glow composes with the
|
|
145
|
-
* whole CTA. Scoped to active phases — at idle / ready the pill stays
|
|
146
|
-
* neutral and inherits the W2.7 reservation ("disco fires on hover
|
|
147
|
-
* only"). */
|
|
148
|
-
/* AX.W52 D19 — the REST phase-halo `::before` (fires during a speedtest run
|
|
149
|
-
* on the most prominent dock control) DEMOTED on the same axis as the hover
|
|
150
|
-
* radial: 18%→8%, the hard `30% 30%` corner shifted to a softer `40% 25%`
|
|
151
|
-
* top-biased ellipse with a tighter `transparent 55%` falloff, and the
|
|
152
|
-
* `opacity: 1` dropped to 0.5 so the persistent run-time halo is a subtle
|
|
153
|
-
* surface lift, not a corner bloom that washes the pill for the whole run. */
|
|
154
|
-
&[data-phase]:not([data-phase="ready"]):not([data-phase="idle"])::before {
|
|
155
|
-
content: "";
|
|
156
|
-
position: absolute;
|
|
157
|
-
inset: 0;
|
|
158
|
-
border-radius: inherit;
|
|
159
|
-
background: radial-gradient(
|
|
160
|
-
ellipse at 40% 25%,
|
|
161
|
-
color-mix(
|
|
162
|
-
in srgb,
|
|
163
|
-
var(--phase-color, var(--foreground)) 8%,
|
|
164
|
-
transparent
|
|
165
|
-
)
|
|
166
|
-
0%,
|
|
167
|
-
transparent 55%
|
|
168
|
-
);
|
|
169
|
-
pointer-events: none;
|
|
170
|
-
z-index: -1;
|
|
171
|
-
opacity: 0.5;
|
|
172
|
-
transition: opacity var(--duration-fast) var(--ease-standard);
|
|
173
|
-
}
|
|
174
115
|
}
|
|
175
116
|
|
|
176
117
|
/* Tier — secondary ──────────────────────────────────────────
|
|
@@ -26,6 +26,13 @@
|
|
|
26
26
|
cursor: pointer;
|
|
27
27
|
border: none;
|
|
28
28
|
background: transparent;
|
|
29
|
+
/* BA.W-DOCK-GEOMETRY — the control-plate clearance inset (DC-2). As on the
|
|
30
|
+
tab button: the trigger's OWN padding insets a content box within the
|
|
31
|
+
row-locked border box, and `background-clip: content-box` realizes that
|
|
32
|
+
as a PAINTED-plate inset so the hover (×1.1) / open pill clears the
|
|
33
|
+
cross-axis clip edge — the same plate-inset-within-cell principle the
|
|
34
|
+
icon-button consumes via `--dock-control-safe-inset`. No box growth. */
|
|
35
|
+
background-clip: content-box;
|
|
29
36
|
border-radius: var(--dock-control-radius, var(--radius-pill));
|
|
30
37
|
/* Shares the dock-icon-button legibility base (`--dock-fg-on-aurora`). */
|
|
31
38
|
color: color-mix(
|
package/dist/styles/dock.css
CHANGED
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
@import "./dock/layer-group.css";
|
|
42
42
|
@import "./dock/overflow.css";
|
|
43
43
|
@import "./dock/rail-extend.css";
|
|
44
|
+
@import "./dock/section.css";
|
|
44
45
|
@import "./dock/morph-bridge.css";
|
|
45
46
|
|
|
46
47
|
/* AX.W01 — the SINGLE morph scalar. `useLayerTransition` writes it once per frame
|
|
@@ -66,6 +67,38 @@
|
|
|
66
67
|
initial-value: 0;
|
|
67
68
|
}
|
|
68
69
|
|
|
70
|
+
/* BB.W-DOCK-MORPH-FAMILY (e) — the `@property`-registered dock-scale axis. The
|
|
71
|
+
dock-scale cascade is `--dock-scale: calc(var(--ui-scale) * var(--dock-local-scale,
|
|
72
|
+
1))` (tokens/sizing.css). UNregistered, that `calc()` substitutes ONCE at `:root`
|
|
73
|
+
against the `:root` identity `--dock-local-scale: 1`, so a consumer-scope
|
|
74
|
+
`--dock-local-scale` override is INHERITED but never RE-EVALUATED — the dock keeps
|
|
75
|
+
`--dock-scale: calc(1 * 1)` and stays at the unscaled base (the 3rd recurrence of
|
|
76
|
+
the AX.W55 substitution-vs-inheritance trap; the documented-but-broken `:root`
|
|
77
|
+
preset). Registering `--dock-local-scale` as an INHERITING `@property <number>`
|
|
78
|
+
makes a registered inheriting custom property re-substitute PER-ELEMENT, so a
|
|
79
|
+
`--dock-local-scale` override on ANY dock scope re-evaluates the `calc()` at that
|
|
80
|
+
scope and threads the whole geometry cascade (box·pad·gap·tab·tile·glyph) down in
|
|
81
|
+
lockstep — the `:root` preset made real (the `@property --dock-morph-t` house
|
|
82
|
+
idiom above is the precedent). `--dock-scale` itself is ALSO registered (the
|
|
83
|
+
derived axis) so its `calc()` re-resolves per-element when `--dock-local-scale`
|
|
84
|
+
shifts. ADDITIVE ONLY: `initial-value: 1` is the identity, so at the default
|
|
85
|
+
`--dock-local-scale: 1` the resolved `--dock-scale` is byte-IDENTICAL to HEAD (no
|
|
86
|
+
rung re-tune); the `@media (pointer: coarse)` re-declare (overflow.css) STAYS the
|
|
87
|
+
`:root`-equivalent re-resolve, and this registration is the complementary
|
|
88
|
+
non-`:root`-scope thread. DOCK_SPRING is untouched (this is a token registration,
|
|
89
|
+
not a clock). */
|
|
90
|
+
@property --dock-local-scale {
|
|
91
|
+
syntax: "<number>";
|
|
92
|
+
inherits: true;
|
|
93
|
+
initial-value: 1;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@property --dock-scale {
|
|
97
|
+
syntax: "<number>";
|
|
98
|
+
inherits: true;
|
|
99
|
+
initial-value: 1;
|
|
100
|
+
}
|
|
101
|
+
|
|
69
102
|
@layer components {
|
|
70
103
|
:where(
|
|
71
104
|
.glass-dock,
|
|
@@ -81,10 +114,12 @@
|
|
|
81
114
|
--dock-motion-fast: var(--duration-fast) var(--ease-standard);
|
|
82
115
|
--dock-motion-standard: var(--duration-normal) var(--ease-standard);
|
|
83
116
|
/* AT.W6-dock-c — the FLIP-fallback timing. `--dock-resize-spring` (the
|
|
84
|
-
`--spring-
|
|
117
|
+
`--spring-dock` linear()) is the single source curve the native
|
|
85
118
|
View-Transition path ALSO consumes, so the morph is timing-identical
|
|
86
|
-
across engines.
|
|
87
|
-
|
|
119
|
+
across engines. BA.W-GLASS-CAL Unit 3 — the duration leg re-times off
|
|
120
|
+
the generic `--duration-normal` (0.3s) onto `--spring-dock-duration`
|
|
121
|
+
(0.28s, the dock spring's OWN 2%-band envelope settle). */
|
|
122
|
+
--dock-motion-resize: var(--spring-dock-duration) var(--dock-resize-spring);
|
|
88
123
|
}
|
|
89
124
|
|
|
90
125
|
/* Shared four-state contract — the focus-visible ring + disabled paint are
|
package/dist/styles/drawer.css
CHANGED
|
@@ -1,21 +1,35 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* drawer.css — Detented bottom-sheet grammar (AN.W3).
|
|
2
|
+
* drawer.css — Detented bottom-sheet grammar (AN.W3; BB.W-DRAWER-ABROGATE).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* the
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
4
|
+
* THE HOUSE owns the snap math end-to-end now (vaul-vue ABROGATED). The Drawer
|
|
5
|
+
* family composes the reka `DialogRoot`/`DialogPortal`/`DialogContent` headless
|
|
6
|
+
* substrate (the SAME vueuse-free substrate every other compound wrapper binds),
|
|
7
|
+
* and the snap settle is driven by ONE house `SpringProgress` on the `DRAWER_SNAP`
|
|
8
|
+
* register (`useDrawerSnap.ts`, the §6 dock-morph `linear()` clock — NOT a bespoke
|
|
9
|
+
* `cubic-bezier(.32,.72,0,1)` transition; that was vaul's). The engine writes the
|
|
10
|
+
* `--glass-drawer-t` snap-fraction scalar (0 = closed/offscreen, 1 = the fullest
|
|
11
|
+
* detent) the content root reads as its translate; this file owns the LOOK: the
|
|
12
|
+
* glass sheet surface, the rounded peek handle, the snap-stop indicator rules, and
|
|
13
|
+
* the detent-fill geometry. This file is the substrate so a consumer mounting
|
|
14
|
+
* `<Drawer mode="live-behind">` does not re-author the three detents from scratch.
|
|
10
15
|
*
|
|
11
16
|
* Token-first — every visual axis reads a custom property. Consumers retune
|
|
12
17
|
* the sheet by overriding the rungs below, never by editing this file.
|
|
13
18
|
*/
|
|
14
19
|
|
|
20
|
+
/* The snap-fraction scalar the house `useDrawerSnap` engine writes per frame. The
|
|
21
|
+
* content root's inline `transform` reads it (DrawerContent.vue) — typed so the
|
|
22
|
+
* default (1 = fully open) keeps a no-snap content-sized sheet seated open. */
|
|
23
|
+
@property --glass-drawer-t {
|
|
24
|
+
syntax: "<number>";
|
|
25
|
+
inherits: false;
|
|
26
|
+
initial-value: 1;
|
|
27
|
+
}
|
|
28
|
+
|
|
15
29
|
:root {
|
|
16
30
|
/* Detent grammar knobs — overridable per-consumer */
|
|
17
31
|
--drawer-handle-w: 2.25rem;
|
|
18
|
-
--drawer-handle-h: 0.3125rem; /* 5px —
|
|
32
|
+
--drawer-handle-h: 0.3125rem; /* 5px — the iOS grip hit-target rhythm */
|
|
19
33
|
--drawer-handle-color: var(--muted-foreground);
|
|
20
34
|
--drawer-handle-opacity: 0.45;
|
|
21
35
|
--drawer-handle-opacity-active: 0.85;
|
|
@@ -23,14 +37,15 @@
|
|
|
23
37
|
}
|
|
24
38
|
|
|
25
39
|
/*
|
|
26
|
-
* The sheet surface.
|
|
27
|
-
* DrawerContent.vue so the glass tier + the snap transform feel live in one
|
|
40
|
+
* The sheet surface. The glass tier + the snap-translate feel live in one
|
|
28
41
|
* token-driven place. The fixed/inset/z-index layout stays here too.
|
|
29
42
|
*
|
|
30
|
-
* NOTE:
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
43
|
+
* NOTE: the snap motion is the house `useDrawerSnap` `SpringProgress` writing
|
|
44
|
+
* `--glass-drawer-t`, which the content root's inline `transform` reads (the §6
|
|
45
|
+
* doctrine — ONE motion vocabulary, no `transition: transform` curve injected on
|
|
46
|
+
* `[data-glass-drawer]`). `touch-action: none` on the handle keeps the drag gesture
|
|
47
|
+
* from scrolling the page. We layer border-radius + glass surface on top of the
|
|
48
|
+
* spring-driven translate.
|
|
34
49
|
*/
|
|
35
50
|
.glass-drawer {
|
|
36
51
|
position: fixed;
|
|
@@ -61,24 +76,72 @@
|
|
|
61
76
|
}
|
|
62
77
|
|
|
63
78
|
/*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* `
|
|
79
|
+
* BA.W-SURFACE-AXIS — the shared {glass·veil·opaque} surface decoration ON TOP of
|
|
80
|
+
* the `.glass-drawer` recipe. `.glass-drawer` is UNLAYERED (this file), so the
|
|
81
|
+
* `@layer components` `[data-surface]` seam in glass/surface-axis.css would LOSE
|
|
82
|
+
* to it (an unlayered rule always beats a layered one — the AZ.W-DOCK-RAIL
|
|
83
|
+
* cascade-win trap). The fix is the SAME-LAYER carve: these `.glass-drawer[data-
|
|
84
|
+
* surface=…]` rules sit unlayered alongside `.glass-drawer` and win by specificity
|
|
85
|
+
* (attr+class > class), composing the SAME veil/opaque deltas the shared seam
|
|
86
|
+
* declares — NO `glass-drawer`-local recipe fork (they read the same `--veil-*` /
|
|
87
|
+
* `--glass-level` machinery). The `glass` rung is the identity (no rule).
|
|
88
|
+
*/
|
|
89
|
+
.glass-drawer[data-surface="veil"] {
|
|
90
|
+
--veil-bg: color-mix(
|
|
91
|
+
in oklab,
|
|
92
|
+
var(--glass-bg-quiet),
|
|
93
|
+
var(--glass-tint-source) var(--glass-tint-strength)
|
|
94
|
+
);
|
|
95
|
+
--veil-blur: var(--glass-blur-quiet);
|
|
96
|
+
background: var(--veil-bg);
|
|
97
|
+
-webkit-backdrop-filter: var(--veil-blur);
|
|
98
|
+
|
|
99
|
+
backdrop-filter: var(--veil-blur);
|
|
100
|
+
-webkit-backdrop-filter: var(--veil-blur);
|
|
101
|
+
border: none;
|
|
102
|
+
box-shadow: none;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.glass-drawer[data-surface="opaque"] {
|
|
106
|
+
/* The solid-card escape. The `.glass-drawer` background reads the `:root`-baked
|
|
107
|
+
`--glass-bg-overlay` token (which substitutes `--glass-level` at :root), so a
|
|
108
|
+
per-element `--glass-level: 0` cannot re-resolve it — the substitution-vs-
|
|
109
|
+
inheritance trap (mirrors surface-axis.css). Set the SOLID plate AT THE
|
|
110
|
+
ELEMENT; still flip the level/tint knobs for a nested glass descendant. */
|
|
111
|
+
--glass-level: 0;
|
|
112
|
+
--glass-tint-strength: 0%;
|
|
113
|
+
/* The SOLID --card plate via the house color-mix idiom (solid --card, expressed
|
|
114
|
+
as the cohesion-sanctioned mix the token ladder speaks — NOT the bare
|
|
115
|
+
`var(--card)` the cohesion D1 check forbids for the always-on drawer plate;
|
|
116
|
+
this is the EXPLICIT opt-out behind `surface="opaque"`, not the default). */
|
|
117
|
+
background: color-mix(in srgb, var(--card), transparent 0%);
|
|
118
|
+
-webkit-backdrop-filter: none;
|
|
119
|
+
|
|
120
|
+
backdrop-filter: none;
|
|
121
|
+
-webkit-backdrop-filter: none;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/*
|
|
125
|
+
* Detented (snap-point) sheets fill the viewport height. The house engine positions
|
|
126
|
+
* the sheet by translating it along its drag axis by `(1 - --glass-drawer-t) * 100%`
|
|
127
|
+
* (DrawerContent.vue's inline transform) — so for a snap fraction to read as that
|
|
128
|
+
* fraction OF THE VIEWPORT, the sheet's top must sit at the viewport top when fully
|
|
129
|
+
* open (translate 0). A `height: auto` content sheet would instead translate
|
|
130
|
+
* off-screen. The content root tags the multi-detent case via
|
|
131
|
+
* `[data-glass-drawer-snap-points=true]`; we fill height there and let the content
|
|
70
132
|
* scroll inside.
|
|
71
133
|
*/
|
|
72
|
-
.glass-drawer[data-
|
|
134
|
+
.glass-drawer[data-glass-drawer-snap-points="true"] {
|
|
73
135
|
height: 100%;
|
|
74
136
|
max-height: 100%;
|
|
75
137
|
margin-top: 0;
|
|
76
138
|
}
|
|
77
139
|
|
|
78
|
-
/*
|
|
79
|
-
Bottom is the default
|
|
80
|
-
so a top/side
|
|
81
|
-
|
|
140
|
+
/* Direction variants — the content root tags itself with the drag axis
|
|
141
|
+
(`data-glass-drawer-direction`). Bottom is the default; the others ride the same
|
|
142
|
+
surface so a top/side sheet inherits the grammar. The side-lens (left/right) is
|
|
143
|
+
the BB-2 full-slide axis — it pins to its edge + fills the cross axis. */
|
|
144
|
+
.glass-drawer[data-glass-drawer-direction="top"] {
|
|
82
145
|
bottom: auto;
|
|
83
146
|
top: 0;
|
|
84
147
|
margin-top: 0;
|
|
@@ -88,11 +151,35 @@
|
|
|
88
151
|
border-radius: 0 0 var(--radius-panel) var(--radius-panel);
|
|
89
152
|
}
|
|
90
153
|
|
|
154
|
+
.glass-drawer[data-glass-drawer-direction="left"],
|
|
155
|
+
.glass-drawer[data-glass-drawer-direction="right"] {
|
|
156
|
+
inset-inline: auto;
|
|
157
|
+
inset-block: 0;
|
|
158
|
+
height: 100%;
|
|
159
|
+
max-height: 100%;
|
|
160
|
+
width: min(24rem, 92vw);
|
|
161
|
+
margin: 0;
|
|
162
|
+
border: 1px solid var(--glass-border-overlay);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.glass-drawer[data-glass-drawer-direction="left"] {
|
|
166
|
+
left: 0;
|
|
167
|
+
border-left: 0;
|
|
168
|
+
border-radius: 0 var(--radius-panel) var(--radius-panel) 0;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.glass-drawer[data-glass-drawer-direction="right"] {
|
|
172
|
+
right: 0;
|
|
173
|
+
border-right: 0;
|
|
174
|
+
border-radius: var(--radius-panel) 0 0 var(--radius-panel);
|
|
175
|
+
}
|
|
176
|
+
|
|
91
177
|
/*
|
|
92
178
|
* Peek handle — the rounded grip at the top of the sheet. It is the visual
|
|
93
|
-
* affordance the user drags to cycle peek → half → full.
|
|
94
|
-
* the
|
|
95
|
-
*
|
|
179
|
+
* affordance the user drags to cycle peek → half → full. The house snap engine
|
|
180
|
+
* (`useDrawerSnap`) binds the pointer-drag gesture directly on this handle (the
|
|
181
|
+
* `[data-glass-drawer-handle]` element) and flags it `[data-dragging]` while a drag
|
|
182
|
+
* is in flight, so the grip intensifies "live" during the gesture.
|
|
96
183
|
*/
|
|
97
184
|
.glass-drawer-handle {
|
|
98
185
|
flex-shrink: 0;
|
|
@@ -114,10 +201,11 @@
|
|
|
114
201
|
width var(--duration-fast) var(--ease-out);
|
|
115
202
|
}
|
|
116
203
|
|
|
117
|
-
/* While the sheet is being dragged
|
|
118
|
-
so the affordance reads as "live".
|
|
119
|
-
|
|
120
|
-
|
|
204
|
+
/* While the sheet is being dragged the house engine flags the handle
|
|
205
|
+
`[data-dragging]`; intensify the grip so the affordance reads as "live".
|
|
206
|
+
`:active` covers the pointer-held case + `[data-dragging]` covers the captured
|
|
207
|
+
drag; the hover lift is the rest affordance. */
|
|
208
|
+
.glass-drawer-handle[data-dragging] .glass-drawer-grip,
|
|
121
209
|
.glass-drawer-handle:active .glass-drawer-grip,
|
|
122
210
|
.glass-drawer:hover .glass-drawer-grip {
|
|
123
211
|
opacity: var(--drawer-handle-opacity-active);
|
|
@@ -130,7 +218,8 @@
|
|
|
130
218
|
* `.glass-drawer-snap-rule` to a separator element inside the sheet; it reads as
|
|
131
219
|
* the detent boundary line without competing with the content. This is the
|
|
132
220
|
* "snap-stop visual indicator" the spec asks for, expressed as an opt-in class
|
|
133
|
-
* (the detents themselves are positional, owned by
|
|
221
|
+
* (the detents themselves are positional, owned by the house snap engine; the
|
|
222
|
+
* RULE is the look).
|
|
134
223
|
*/
|
|
135
224
|
.glass-drawer-snap-rule {
|
|
136
225
|
height: 1px;
|
|
@@ -139,8 +228,11 @@
|
|
|
139
228
|
background-color: var(--drawer-snap-rule-color);
|
|
140
229
|
}
|
|
141
230
|
|
|
142
|
-
/* Reduced-motion —
|
|
143
|
-
|
|
231
|
+
/* Reduced-motion — the house `SpringProgress` snaps the detent deterministically
|
|
232
|
+
under `prefers-reduced-motion: reduce` (its `respectReducedMotion` jumps the
|
|
233
|
+
`--glass-drawer-t` scalar to target in one frame, zero motion frames); here we
|
|
234
|
+
only suppress the grip's affordance animation so the handle does not pulse for
|
|
235
|
+
PRM users. */
|
|
144
236
|
@media (prefers-reduced-motion: reduce) {
|
|
145
237
|
.glass-drawer-grip {
|
|
146
238
|
transition: none;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/* feedback-tone.css — the ONE shared tinted-glass tone recipe (BA.W-FEEDBACK-TONE).
|
|
2
|
+
|
|
3
|
+
THE COLLAPSE: Toast, Notification, and Alert each carried an INDEPENDENT tone map
|
|
4
|
+
(the Toast variant map painted SOLID `bg-{success,warning,info,destructive}` opaque
|
|
5
|
+
token plates over a `glass-floating` base; the Notification type map painted
|
|
6
|
+
`bg-<tone>/90` near-opaque slabs; Alert alone was correct in SHAPE — glass-wash plate
|
|
7
|
+
+ tone-on-rim — but HARDCODED its `border-<tone>/40` rim per variant). Three tone
|
|
8
|
+
maps, three calibration sites, and TWO of them painted a colored SLAB that occluded
|
|
9
|
+
the backdrop (the R8-12/R8-13 "not glassy at all" defect; the blur track survived but
|
|
10
|
+
was inert behind a 100%-opaque plate).
|
|
11
|
+
|
|
12
|
+
This file mints the tone register ONCE. Every feedback tone reads as COLORED GLASS:
|
|
13
|
+
a tinted-glass wash (the rung bg mixed a BOUNDED % toward the tone, the SAME
|
|
14
|
+
`color-mix(in oklab, <rung bg>, <tint> <strength>)` seam the W55 `--glass-tint-*`
|
|
15
|
+
legibility lift and the `--veil-bg` plate already run — ZERO new compositing path) +
|
|
16
|
+
a tone-keyed rim + a full-chroma glyph. The backdrop STILL shows through (α stays
|
|
17
|
+
translucent, the W2 π floor < ~0.92). The body ink stays `--foreground` /
|
|
18
|
+
`--card-foreground` for legibility (the Alert discipline — body never tone-tinted),
|
|
19
|
+
so the tone is ONE deliberate color event per surface (the AZ.W-SUFFUSE one-color-
|
|
20
|
+
event idiom), never a full-bleed fill.
|
|
21
|
+
|
|
22
|
+
THE ONE KNOB: `--feedback-tone-strength` tints all four tones at once (the bounded
|
|
23
|
+
mix %, the toast-glass §A band). The four tone hues map to the HOUSE tokens
|
|
24
|
+
`--success` / `--warning` / `--info` / `--destructive` (presets-in-consumers — NO new
|
|
25
|
+
colors). A consumer recalibrates the tone weight with ONE override.
|
|
26
|
+
|
|
27
|
+
THE RUNG: the register reads `--feedback-tone-rung` (default the floating-chrome rung
|
|
28
|
+
`--glass-bg-floating`, the Toast/Notification overlay register). Alert RE-POINTS it to
|
|
29
|
+
`--glass-bg-wash` on its own surface (a content panel rides wash, not floating — the
|
|
30
|
+
register difference is correct; only the tone SOURCE unifies, not the rung). The rung
|
|
31
|
+
reads `--glass-bg-*` DIRECTLY (the same tokens W-SURFACE-AXIS's glass arm routes), so
|
|
32
|
+
the tone tint rides ON the glass surface — a re-point, not a fork.
|
|
33
|
+
|
|
34
|
+
THE SUBSTITUTION TRAP (the recurring AX.W55 / dock-scale class): `--feedback-tone-rung`
|
|
35
|
+
resolves the `--glass-bg-floating` token, which BAKES `var(--glass-level)` at its
|
|
36
|
+
`:root` declaration (level=1). A descendant `--glass-level: 0` does NOT re-resolve the
|
|
37
|
+
baked rung — but that is the CORRECT register here: a feedback surface IS translucent
|
|
38
|
+
glass by design; the `opaque`/level-0 escape is W-SURFACE-AXIS's `[data-surface]`
|
|
39
|
+
concern, not a tone-register knob. The tone register composes the tint AT THE ELEMENT
|
|
40
|
+
off the resolved rung, so the `color-mix` re-resolves whenever `--tone`/`--feedback-
|
|
41
|
+
tone-strength`/the rung change (the W55 element-level tint discipline). */
|
|
42
|
+
@layer components {
|
|
43
|
+
:root {
|
|
44
|
+
/* The bounded mix % — the tone wash strength. 18% reads as colored GLASS
|
|
45
|
+
(the backdrop shows through, the silhouette is unmistakably tinted) without
|
|
46
|
+
tipping toward a slab; the toast-glass §A band is ≈12–22%. ONE knob retunes
|
|
47
|
+
all four tones. */
|
|
48
|
+
--feedback-tone-strength: 18%;
|
|
49
|
+
/* The rung the tint mixes over — the floating-chrome register (Toast /
|
|
50
|
+
Notification). Alert re-points it to the wash rung on its own surface. */
|
|
51
|
+
--feedback-tone-rung: var(--glass-bg-floating);
|
|
52
|
+
/* The rim weight — a tone-keyed border, a thin tinted rim (not a loud edge). */
|
|
53
|
+
--feedback-tone-border-strength: 40%;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* ── The parametric register ──────────────────────────────────────────────────
|
|
57
|
+
A surface declares `--tone` (one of the four house tokens) + composes
|
|
58
|
+
`.feedback-tone`; the tinted-glass wash + the tone-keyed rim resolve off the ONE
|
|
59
|
+
recipe. The glyph carries the FULL-chroma tone (`[&>svg]` via the consumer's own
|
|
60
|
+
class, or the `.feedback-tone-glyph` helper below). The `default` (un-toned)
|
|
61
|
+
surface simply omits `.feedback-tone` — the bare glass rung paints.
|
|
62
|
+
|
|
63
|
+
`--tone` has NO `:root` default ON PURPOSE: a `.feedback-tone` surface with no
|
|
64
|
+
`--tone` set would mix the rung toward `initial` (transparent) — a no-op wash, the
|
|
65
|
+
same as the bare rung; this is the safe degenerate, not a paint bug. Every real
|
|
66
|
+
consumer sets `--tone` via its `.feedback-tone-<name>` register. */
|
|
67
|
+
.feedback-tone {
|
|
68
|
+
background: color-mix(
|
|
69
|
+
in oklab,
|
|
70
|
+
var(--feedback-tone-rung),
|
|
71
|
+
var(--tone) var(--feedback-tone-strength)
|
|
72
|
+
);
|
|
73
|
+
border-color: color-mix(
|
|
74
|
+
in oklab,
|
|
75
|
+
transparent,
|
|
76
|
+
var(--tone) var(--feedback-tone-border-strength)
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/* The four house tone registers — each binds `--tone` to its house token. A surface
|
|
81
|
+
maps its variant/type onto the matching class (Toast `variant` /
|
|
82
|
+
Notification `type` / Alert `variant`); the `error` notification type maps to the
|
|
83
|
+
destructive tone (the three-maps-into-one collapse — `error` IS destructive). */
|
|
84
|
+
.feedback-tone-success {
|
|
85
|
+
--tone: var(--success);
|
|
86
|
+
}
|
|
87
|
+
.feedback-tone-warning {
|
|
88
|
+
--tone: var(--warning);
|
|
89
|
+
}
|
|
90
|
+
.feedback-tone-info {
|
|
91
|
+
--tone: var(--info);
|
|
92
|
+
}
|
|
93
|
+
.feedback-tone-destructive {
|
|
94
|
+
--tone: var(--destructive);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/* The glyph helper — the leading status glyph carries the FULL-chroma tone (the one
|
|
98
|
+
color event's saturated note over the tinted wash). A consumer composes it on its
|
|
99
|
+
icon, or reads `var(--tone)` directly in an arbitrary `[&>svg]:text-(--tone)`
|
|
100
|
+
utility. */
|
|
101
|
+
.feedback-tone-glyph {
|
|
102
|
+
color: var(--tone);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/* glass/deep.css — BB.W-DEEP-GLASS — the OPT-IN `.glass-deep` decoration.
|
|
2
|
+
*
|
|
3
|
+
* The deep-glass register: the maximal iOS-27 Liquid-Glass tier ABOVE the
|
|
4
|
+
* W-GLASS-CAL calm default (the Apple `saturate(1.8) blur(20px)` family, landed
|
|
5
|
+
* at the budget-clearing 16px / saturate 1.5; tokens/glass-deep.css). `.glass-deep`
|
|
6
|
+
* is the OPT-IN surface — a consumer adds it to a glass surface that wants the
|
|
7
|
+
* thick refractive liquid read (the hero glass, the dock, the CTA); the bare
|
|
8
|
+
* content default is UNCHANGED (the calm default is the user's call).
|
|
9
|
+
*
|
|
10
|
+
* ── The token-substitution model (the `.glass-opaque` precedent) ───────────
|
|
11
|
+
* `.glass-deep` is a DECORATION ON a base `.glass-*` rung, NOT a parallel solid/
|
|
12
|
+
* blur recipe. It mirrors `.glass-opaque` (ladder.css §opaque-escape — which only
|
|
13
|
+
* sets `--glass-level: 0`, a token re-point, never a competing `backdrop-filter`):
|
|
14
|
+
* `.glass-deep` re-points the floating-rung blur token to the deep family
|
|
15
|
+
* (`--glass-blur-floating: var(--glass-blur-deep)`), so the base `.glass-floating`
|
|
16
|
+
* rule's `backdrop-filter: var(--glass-blur-floating)` resolves to the DEEP blur —
|
|
17
|
+
* NO cascade fight, NO base-rule edit, the glass edge/rim/under-shadow + the W55
|
|
18
|
+
* tint axis + the a11y brackets all compose unchanged. The deep tier rides a base
|
|
19
|
+
* rung exactly as `.glass-opaque` does (the CardTier map is `deep →
|
|
20
|
+
* 'glass-floating glass-deep'`).
|
|
21
|
+
*
|
|
22
|
+
* Because the deep blur (glass-deep.css) COMPOSES `var(--glass-level)`, the a11y
|
|
23
|
+
* brackets (`prefers-reduced-transparency: reduce` / `prefers-contrast: more` set
|
|
24
|
+
* `--glass-level: 0` / 0.3 at :root, a11y-fallback.css) reach the deep plate for
|
|
25
|
+
* FREE — the deep blur collapses to blur(0) under reduced-transparency through the
|
|
26
|
+
* SAME level path (the opaque escape). The W55 bright-bucket darken reaches the
|
|
27
|
+
* deep surface by construction too: `.glass-deep` is composed WITH `.glass-floating`,
|
|
28
|
+
* which is already in the W55 `@container style(--glass-backdrop: light)` material
|
|
29
|
+
* group (ladder.css) AND self-engages the overlay-band darken — the deep tier
|
|
30
|
+
* inherits the legibility tint with no selector-list edit.
|
|
31
|
+
*
|
|
32
|
+
* @import-ed in glass.css AFTER ladder.css/surfaces.css (the same @layer components,
|
|
33
|
+
* source-order-after so the token re-point lands beside the rung it rides) and
|
|
34
|
+
* BEFORE the a11y @media brackets (which still win by the :root level re-point).
|
|
35
|
+
*/
|
|
36
|
+
@layer components {
|
|
37
|
+
/* The deep decoration: re-point the floating rung's blur token to the deep
|
|
38
|
+
family. The base `.glass-floating` rule (`backdrop-filter:
|
|
39
|
+
var(--glass-blur-floating)`) then paints the deep `blur(16px) saturate(1.5)`
|
|
40
|
+
at `--glass-depth: 1` — the Apple-deep register, opt-in. */
|
|
41
|
+
.glass-deep {
|
|
42
|
+
--glass-blur-floating: var(--glass-blur-deep);
|
|
43
|
+
}
|
|
44
|
+
}
|