@mkbabb/glass-ui 4.0.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/CardAction-8whJrLWt.js +268 -0
- package/dist/{CommandShortcut-DdtWXxOK.js → CommandShortcut-D3yxgHNn.js} +25 -14
- package/dist/ConfiguratorRow-CaP7U3ZA.js +143 -0
- package/dist/ContextMenuContent-B3ZsheLV.js +90 -0
- package/dist/{ContextMenuSubContent-B0Vs6atR.js → ContextMenuSubContent-DDRID3qC.js} +28 -33
- package/dist/{DataTable-C464Zbqd.js → DataTable-Bc9kUtu_.js} +4 -4
- package/dist/{DialogContent-DDE6pQBU.js → DialogContent-6JtTB5x2.js} +11 -8
- package/dist/DialogFooter-9phqcRIS.js +80 -0
- package/dist/DialogScrollContent-TTuovQst.js +93 -0
- package/dist/{FadingScroll-DwNnvKMs.js → FadingScroll-DLRbH5Xr.js} +1 -1
- package/dist/HoverCardContent-Bel1gdLZ.js +88 -0
- package/dist/{HoverPopover-Dpzwvc4t.js → HoverPopover-BcIxvyqZ.js} +2 -2
- package/dist/{IconChip-BDw1j5mu.js → IconChip-DhbdGdFQ.js} +2 -1
- package/dist/{IconTooltip-DSjasZIt.js → IconTooltip-B0zimd2H.js} +1 -1
- package/dist/Input-Cg9DF62r.js +57 -0
- package/dist/{MetricBadge-BpC0R_Ec.js → MetricBadge-RHdBP72w.js} +1 -1
- package/dist/Notification-CphK7AAm.js +43 -0
- package/dist/NumberFieldContent-D8cXeyO4.js +140 -0
- package/dist/PagerDots-Cjx96la-.js +98 -0
- package/dist/{PopoverContent-BTorlp--.js → PopoverContent-DL7E6vJP.js} +4 -4
- package/dist/{Progress-hAT4gqGH.js → Progress-CnqB7gLm.js} +4 -4
- package/dist/{ScrollingText-CUVFTWk2.js → ScrollingText-CTZbA_cG.js} +2 -2
- package/dist/{SelectScrollDownButton-C1jb3b3K.js → SelectScrollDownButton-DAKCBEdW.js} +65 -61
- package/dist/{SelectSeparator-DK2y1Bun.js → SelectSeparator-C2UGOkXF.js} +1 -1
- package/dist/Separator-DQcwC2TR.js +44 -0
- package/dist/Switch-B8RscmRu.js +49 -0
- package/dist/Toaster-D9qIHjBI.js +274 -0
- package/dist/ToggleGroupItem-BLtr3TJq.js +170 -0
- package/dist/TooltipProvider-BJ_Y5EGX.js +109 -0
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +21 -33
- package/dist/api/types-extra.d.ts +37 -0
- package/dist/api.js +1 -1
- package/dist/aurora.js +1231 -260
- package/dist/badge.js +1 -1
- package/dist/border-progress.d.ts +1 -0
- package/dist/border-progress.js +98 -0
- package/dist/button-5dY1Dvhd.js +125 -0
- package/dist/button.js +1 -1
- package/dist/canvas.js +2 -3
- package/dist/card.js +2 -2
- package/dist/carousel.js +93 -110
- package/dist/collapsible.js +1 -1
- package/dist/color-Cs0-oxYL.js +116 -0
- package/dist/color.js +2 -2
- package/dist/command.js +1 -1
- package/dist/compile-nZ1xVYTp.js +19 -0
- package/dist/completion-seal.d.ts +1 -0
- package/dist/completion-seal.js +89 -0
- package/dist/components/custom/aurora/Aurora.vue.d.ts +10 -5
- package/dist/components/custom/aurora/composables/atoms-fields.d.ts +39 -0
- package/dist/components/custom/aurora/composables/auroraFallbackGround.d.ts +108 -0
- package/dist/components/custom/aurora/composables/color.d.ts +13 -0
- package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
- package/dist/components/custom/aurora/composables/runtime.d.ts +31 -0
- package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
- package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +60 -0
- package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +37 -0
- package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +20 -2
- package/dist/components/custom/aurora/constants/renderMode.d.ts +77 -18
- package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/oil-modes.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/procedural-color.wgsl.d.ts +4 -0
- package/dist/components/custom/aurora/index.d.ts +2 -1
- package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +46 -0
- package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
- package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +18 -0
- package/dist/components/custom/border-progress/constants.d.ts +59 -0
- package/dist/components/custom/border-progress/index.d.ts +4 -0
- package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +21 -0
- package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
- package/dist/components/custom/completion-seal/constants.d.ts +46 -0
- package/dist/components/custom/completion-seal/index.d.ts +4 -0
- package/dist/components/custom/concentric/Concentric.vue.d.ts +39 -0
- package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +18 -0
- package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +22 -0
- package/dist/components/custom/concentric/composables/ringField.d.ts +85 -0
- package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +14 -0
- package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
- package/dist/components/custom/concentric/constants.d.ts +67 -0
- package/dist/components/custom/concentric/index.d.ts +5 -0
- package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +4 -0
- package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -0
- package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
- package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
- package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
- package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
- package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
- package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
- package/dist/components/custom/constellation/constants.d.ts +33 -0
- package/dist/components/custom/constellation/constellationField.d.ts +31 -1
- package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
- package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
- package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
- package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
- package/dist/components/custom/constellation/index.d.ts +5 -5
- package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
- package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
- package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
- package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
- package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
- package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
- package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
- package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
- package/dist/components/custom/deck/constants.d.ts +14 -0
- package/dist/components/custom/deck/index.d.ts +8 -0
- package/dist/components/custom/dock/DockIconButton.vue.d.ts +25 -4
- package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
- package/dist/components/custom/dock/DockStack.vue.d.ts +65 -0
- package/dist/components/custom/dock/GlassDock.vue.d.ts +4 -2
- package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +155 -0
- package/dist/components/custom/dock/composables/index.d.ts +2 -0
- package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
- package/dist/components/custom/dock/composables/useDockShellProps.d.ts +11 -0
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
- package/dist/components/custom/dock/constants.d.ts +18 -14
- package/dist/components/custom/dock/index.d.ts +5 -2
- package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +42 -0
- package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +83 -0
- package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +39 -0
- package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +35 -0
- package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +31 -0
- package/dist/components/custom/dot-flow-field/constants.d.ts +69 -0
- package/dist/components/custom/dot-flow-field/index.d.ts +5 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +4 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -0
- package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
- package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
- package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +52 -0
- package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
- package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +27 -0
- package/dist/components/custom/dot-matrix/constants.d.ts +58 -0
- package/dist/components/custom/dot-matrix/index.d.ts +5 -0
- package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
- package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -0
- package/dist/components/custom/easing/EasingConfigurator.vue.d.ts +33 -0
- package/dist/components/custom/easing/EasingPicker.vue.d.ts +49 -0
- package/dist/components/custom/easing/composables/useEasingPicker.d.ts +80 -0
- package/dist/components/custom/easing/constants.d.ts +28 -0
- package/dist/components/custom/easing/index.d.ts +3 -0
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
- package/dist/components/custom/fourier-field/FourierField.vue.d.ts +43 -40
- package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +15 -0
- package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +20 -0
- package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +41 -0
- package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +42 -0
- package/dist/components/custom/fourier-field/constants.d.ts +64 -0
- package/dist/components/custom/fourier-field/index.d.ts +23 -18
- package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
- package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
- package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
- package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +1 -1
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +13 -3
- package/dist/components/custom/goo-blob/composables/uniformBridgeWGPU.d.ts +24 -0
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +18 -11
- package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
- package/dist/components/custom/goo-blob/constants.d.ts +1 -1
- package/dist/components/custom/goo-blob/index.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/types.d.ts +36 -0
- package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
- package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
- package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +50 -0
- package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +35 -0
- package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
- package/dist/components/custom/goo-dot-matrix/constants.d.ts +76 -0
- package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +11 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +3 -0
- package/dist/components/custom/handmark/HandMark.vue.d.ts +1 -1
- package/dist/components/custom/icon-chip/types.d.ts +11 -1
- package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +3 -1
- package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +21 -2
- package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
- package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
- package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
- package/dist/components/custom/pager-dots/index.d.ts +2 -0
- package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
- package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
- package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +90 -0
- package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +16 -0
- package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +19 -0
- package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
- package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
- package/dist/components/custom/paper-grid/constants.d.ts +57 -0
- package/dist/components/custom/paper-grid/index.d.ts +5 -0
- package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
- package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
- package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
- package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
- package/dist/components/custom/search/index.d.ts +2 -0
- package/dist/components/custom/search/searchVariants.d.ts +19 -0
- package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
- package/dist/components/custom/selectable-chip/index.d.ts +2 -0
- package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +23 -0
- package/dist/components/custom/spa-view/SpaView.vue.d.ts +50 -0
- package/dist/components/custom/spa-view/index.d.ts +2 -0
- package/dist/components/custom/split-chars/SplitChars.vue.d.ts +39 -0
- package/dist/components/custom/split-chars/index.d.ts +1 -0
- package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +12 -0
- package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
- package/dist/components/custom/tabs/constants.d.ts +20 -2
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +30 -17
- package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
- package/dist/components/ui/_shared/index.d.ts +2 -0
- package/dist/components/ui/_shared/menuItemVariants.d.ts +1 -1
- package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
- package/dist/components/ui/badge/index.d.ts +1 -1
- package/dist/components/ui/button/Button.vue.d.ts +5 -2
- package/dist/components/ui/button/index.d.ts +2 -2
- package/dist/components/ui/card/Card.vue.d.ts +79 -4
- package/dist/components/ui/card/CardHeader.vue.d.ts +42 -16
- package/dist/components/ui/card/ScrollCard.vue.d.ts +33 -0
- package/dist/components/ui/card/ScrollCardHeader.vue.d.ts +17 -0
- package/dist/components/ui/card/index.d.ts +3 -1
- package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
- package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
- package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +2 -2
- package/dist/components/ui/command/Command.vue.d.ts +1 -1
- package/dist/components/ui/command/CommandDialog.vue.d.ts +9 -3
- package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
- package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -1
- package/dist/components/ui/drawer/Drawer.vue.d.ts +46 -33
- package/dist/components/ui/drawer/DrawerContent.vue.d.ts +7 -8
- package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +2 -2
- package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +1 -1
- package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +2 -2
- package/dist/components/ui/drawer/composables/drawerSnapContext.d.ts +26 -0
- package/dist/components/ui/drawer/composables/useDrawerSnap.d.ts +17 -0
- package/dist/components/ui/drawer/constants.d.ts +45 -0
- package/dist/components/ui/drawer/index.d.ts +23 -15
- package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
- package/dist/components/ui/focus-scope/FocusScope.vue.d.ts +20 -0
- package/dist/components/ui/focus-scope/index.d.ts +2 -0
- package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/input/Input.vue.d.ts +3 -0
- package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
- package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
- package/dist/components/ui/select/SelectContent.vue.d.ts +4 -1
- package/dist/components/ui/sheet/index.d.ts +1 -1
- package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
- package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
- package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
- package/dist/components/ui/toast/Toast.vue.d.ts +5 -2
- package/dist/components/ui/toast/use-toast.d.ts +14 -0
- package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
- package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
- package/dist/composables/color/index.d.ts +2 -0
- package/dist/composables/color/useAccentTone.d.ts +34 -0
- package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +13 -6
- package/dist/composables/glass/index.d.ts +5 -2
- package/dist/composables/glass/useSpecularPointer.d.ts +33 -0
- package/dist/composables/glass/useSpecularTracking.d.ts +20 -0
- package/dist/composables/glass/useVizChoreography.d.ts +123 -0
- package/dist/composables/glass/vSpecular.d.ts +2 -0
- package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +10 -0
- package/dist/composables/glass/webgl/shaders/flow.glsl.d.ts +1 -0
- package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
- package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +16 -0
- package/dist/composables/glass/webgpu/index.d.ts +2 -0
- package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +75 -0
- package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +85 -0
- package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
- package/dist/composables/motion/core/index.d.ts +4 -0
- package/dist/composables/motion/index.d.ts +4 -0
- package/dist/composables/motion/scrollReader.d.ts +25 -0
- package/dist/composables/motion/springPresets.d.ts +20 -1
- package/dist/composables/motion/useCharStagger.d.ts +44 -0
- package/dist/composables/motion/useDockCtaReceive.d.ts +84 -0
- package/dist/composables/motion/useDragMorph.d.ts +77 -0
- package/dist/composables/motion/useLiquidFlex.d.ts +11 -0
- package/dist/composables/motion/useLiquidPress.d.ts +71 -0
- package/dist/composables/motion/useLiquidReveal.d.ts +51 -0
- package/dist/composables/motion/useNumericTransition.d.ts +3 -3
- package/dist/composables/motion/usePointerVelocityField.d.ts +98 -0
- package/dist/composables/motion/useScrollChrome.d.ts +58 -0
- package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
- package/dist/composables/motion/useSpringPress.d.ts +5 -5
- package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
- package/dist/composables/sidebar/index.d.ts +4 -1
- package/dist/composables/sidebar/types.d.ts +68 -3
- package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
- package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
- package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
- package/dist/composables/virtual/index.d.ts +4 -0
- package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
- package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
- package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
- package/dist/concentric.d.ts +1 -0
- package/dist/concentric.js +836 -0
- package/dist/configurator.js +3 -2
- package/dist/confirm-dialog.js +62 -49
- package/dist/constellation.js +635 -235
- package/dist/context-menu.js +3 -3
- package/dist/controls.js +2 -2
- package/dist/createCanvasLifecycle-Gh45Ce-p.js +93 -0
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/deck.d.ts +1 -0
- package/dist/deck.js +105 -0
- package/dist/dialog.js +4 -3
- package/dist/dock.js +819 -568
- package/dist/{dockContext-Bu1Avy-a.js → dockContext-BNfyPLe9.js} +1 -1
- package/dist/dom.js +5 -5
- package/dist/dot-flow-field.d.ts +1 -0
- package/dist/dot-flow-field.js +894 -0
- package/dist/dot-matrix.d.ts +1 -0
- package/dist/dot-matrix.js +630 -0
- package/dist/dotMatrixField-D_x9_1qq.js +48 -0
- package/dist/drawer.d.ts +1 -0
- package/dist/drawer.js +380 -0
- package/dist/{dropdown-menu-BJ7E9js_.js → dropdown-menu-aJmV5SqE.js} +82 -79
- package/dist/dropdown-menu.js +1 -1
- package/dist/easing.d.ts +1 -0
- package/dist/easing.js +475 -0
- package/dist/expandable-container.js +46 -21
- package/dist/fading-scroll.js +1 -1
- package/dist/flow.glsl-B2P7e0MT.js +4 -0
- package/dist/focus-scope.d.ts +1 -0
- package/dist/focus-scope.js +23 -0
- package/dist/forms.js +65 -63
- package/dist/fourier-field.js +831 -172
- package/dist/fourier-math.js +1 -1
- package/dist/glass-panel.js +2 -2
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +187 -338
- package/dist/goo-blob.js +241 -692
- package/dist/goo-dot-matrix.d.ts +1 -0
- package/dist/goo-dot-matrix.js +591 -0
- package/dist/handmark.js +2 -2
- package/dist/header-ribbon.js +1 -1
- package/dist/hover-card.js +1 -1
- package/dist/hover-popover.js +1 -1
- package/dist/icon-chip.js +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +70 -60
- package/dist/metric-badge.js +1 -1
- package/dist/metric-cell.js +1 -1
- package/dist/metric-stack.js +14 -9
- package/dist/motion-core.js +58 -36
- package/dist/motion-curves.js +11 -1
- package/dist/motion.js +90 -53
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/pager-dots.js +2 -91
- package/dist/paper-backdrop.js +1 -1
- package/dist/paper-grid.d.ts +1 -0
- package/dist/paper-grid.js +788 -0
- package/dist/popover.js +1 -1
- package/dist/{presets-BW2b-fr1.js → presets-CvOUqtdY.js} +3 -3
- package/dist/{compile-EXXzEr1q.js → procedural-color.wgsl-m7Zgv35j.js} +2 -156
- package/dist/progress.js +1 -1
- package/dist/pulse.js +2 -2
- package/dist/reactive.js +1 -1
- package/dist/resolveCanvasColor-yPyIpJt9.js +93 -0
- package/dist/scrollReader-DI1NWxUw.js +42 -0
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +162 -308
- package/dist/select.js +3 -3
- package/dist/selectable-chip.d.ts +1 -0
- package/dist/selectable-chip.js +65 -0
- package/dist/separator.js +1 -1
- package/dist/{sheet-CquRYOAw.js → sheet-B2flBfLH.js} +5 -5
- package/dist/sheet.js +1 -1
- package/dist/sidebar.js +216 -114
- package/dist/{slider-DQ95MET2.js → slider-2A0rPn79.js} +3 -3
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +2 -2
- package/dist/spa-view.d.ts +1 -0
- package/dist/spa-view.js +46 -0
- package/dist/spectrum-walk-BVzA7Biz.js +33 -0
- package/dist/{springPresets-WXaLbu8u.js → springPresets-Ce7OYCm9.js} +12 -6
- package/dist/styles/animations.css +46 -12
- package/dist/styles/border-progress.css +109 -0
- package/dist/styles/cards.css +145 -0
- package/dist/styles/completion-seal.css +131 -0
- package/dist/styles/components.css +2 -3
- package/dist/styles/configurator.css +55 -0
- package/dist/styles/critical-partition.mjs +162 -0
- package/dist/styles/critical.css +12 -0
- package/dist/styles/deferred.css +33 -0
- package/dist/styles/dock/cta-seat.css +87 -0
- package/dist/styles/dock/density.css +198 -0
- package/dist/styles/dock/layers.css +101 -29
- package/dist/styles/dock/morph-bridge.css +54 -18
- package/dist/styles/dock/morph.css +132 -7
- package/dist/styles/dock/overflow.css +28 -2
- package/dist/styles/dock/search.css +68 -0
- package/dist/styles/dock/shape.css +124 -0
- package/dist/styles/dock/shell.css +77 -21
- package/dist/styles/dock/stack-rail.css +264 -0
- package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/dist/styles/dock-controls/icon-button.css +14 -0
- package/dist/styles/dock.css +43 -1
- package/dist/styles/drawer.css +81 -35
- package/dist/styles/glass/accent-tone.css +66 -0
- package/dist/styles/glass/control-surfaces.css +167 -0
- package/dist/styles/glass/deep.css +44 -0
- package/dist/styles/glass/ladder.css +147 -41
- package/dist/styles/glass/material.css +78 -15
- package/dist/styles/glass/reveal.css +136 -0
- package/dist/styles/glass/rim.css +110 -0
- package/dist/styles/glass/surfaces.css +148 -129
- package/dist/styles/glass-refract.css +96 -44
- package/dist/styles/glass-specular-track.css +7 -0
- package/dist/styles/glass.css +13 -0
- package/dist/styles/hover-popover.css +7 -6
- package/dist/styles/icon-chip.css +77 -15
- package/dist/styles/index.css +36 -9
- package/dist/styles/instrument-chassis.css +66 -3
- package/dist/styles/scroll-choreography.css +300 -0
- package/dist/styles/scroll-chrome.css +123 -0
- package/dist/styles/scroll-driven.css +38 -0
- package/dist/styles/segmented-tabs.css +81 -14
- package/dist/styles/theme/bridges.css +33 -0
- package/dist/styles/theme/literals.css +11 -2
- package/dist/styles/theme/radius.css +24 -2
- package/dist/styles/tokens/color-radius.css +13 -3
- package/dist/styles/tokens/dark-arm.css +137 -32
- package/dist/styles/tokens/glass-deep.css +100 -0
- package/dist/styles/tokens/glass-fx.css +376 -0
- package/dist/styles/tokens/glass.css +131 -351
- package/dist/styles/tokens/light-dark.css +16 -3
- package/dist/styles/tokens/offsets.css +143 -0
- package/dist/styles/tokens/on-glass-fg.css +39 -0
- package/dist/styles/tokens/property-regs.css +260 -0
- package/dist/styles/tokens/scale-paper.css +168 -96
- package/dist/styles/tokens/scheme-motion.css +114 -38
- package/dist/styles/tokens/scroll-tokens.css +123 -0
- package/dist/styles/tokens/sizing-config.css +110 -0
- package/{src/styles/tokens/offsets-sizing.css → dist/styles/tokens/sizing.css} +92 -204
- package/dist/styles/tokens.css +14 -3
- package/dist/styles/typography/semantic.css +26 -13
- package/dist/styles/typography/utilities.css +22 -7
- package/dist/styles/utilities/a11y-overrides.css +20 -5
- package/dist/styles/utilities/animate.css +27 -24
- package/dist/styles/utilities/base-misc.css +307 -0
- package/dist/styles/utilities/base.css +47 -261
- package/dist/styles/utilities/btn.css +17 -4
- package/dist/styles/utilities/components.css +31 -6
- package/dist/styles/utilities/metal.css +215 -0
- package/dist/styles/utilities.css +14 -7
- package/dist/switch.js +1 -1
- package/dist/tabs.js +220 -107
- package/dist/timeline.js +2 -2
- package/dist/toast.js +1 -1
- package/dist/toggle-chip.js +10 -10
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +2 -2
- package/dist/uniformBridgeWGPU-CtAKl45L.js +1204 -0
- package/dist/{useAnimatedNumber-C_3wZLx4.js → useAnimatedNumber-CLrxicG9.js} +1 -1
- package/dist/useConfiguratorState-4xblKfwd.js +162 -0
- package/dist/useControlSize-SH1UmJCi.js +9 -0
- package/dist/useDockCtaReceive-DfFkmgL1.js +82 -0
- package/dist/useDragMorph-BUgAC-zK.js +102 -0
- package/dist/useFuzzySearch-DIhcYtcw.js +177 -0
- package/dist/useGpuSubstrate-4pTcp6mX.js +294 -0
- package/dist/useLiquidPress-BooG97RY.js +39 -0
- package/dist/usePointerVelocityField-QLsy3_kv.js +91 -0
- package/dist/useScrollChrome-D66AVP7C.js +258 -0
- package/dist/useSpring-C0jyvEJB.js +40 -0
- package/dist/useSpringMount-BWDnKIwh.js +71 -0
- package/dist/useSpringPress-B1-Czp-V.js +36 -0
- package/dist/{useTouchGate-28Tk2-t2.js → useTouchGate-CBZTD4SD.js} +1 -1
- package/dist/useViewTransition-CUI1nAgn.js +95 -0
- package/dist/vSpecular-EX7loENl.js +68 -0
- package/dist/vendor-B2qOlYY3.js +239 -0
- package/dist/virtual.d.ts +1 -0
- package/dist/virtual.js +225 -0
- package/dist/watercolor-dot.js +117 -74
- package/package.json +252 -28
- package/src/styles/animations.css +46 -12
- package/src/styles/border-progress.css +109 -0
- package/src/styles/cards.css +145 -0
- package/src/styles/completion-seal.css +131 -0
- package/src/styles/configurator.css +55 -0
- package/src/styles/critical-partition.mjs +162 -0
- package/src/styles/dock/cta-seat.css +87 -0
- package/src/styles/dock/density.css +198 -0
- package/src/styles/dock/layers.css +101 -29
- package/src/styles/dock/morph-bridge.css +54 -18
- package/src/styles/dock/morph.css +132 -7
- package/src/styles/dock/overflow.css +28 -2
- package/src/styles/dock/search.css +68 -0
- package/src/styles/dock/shape.css +124 -0
- package/src/styles/dock/shell.css +77 -21
- package/src/styles/dock/stack-rail.css +264 -0
- package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/src/styles/dock-controls/icon-button.css +14 -0
- package/src/styles/dock.css +43 -1
- package/src/styles/drawer.css +81 -35
- package/src/styles/glass/accent-tone.css +66 -0
- package/src/styles/glass/control-surfaces.css +167 -0
- package/src/styles/glass/deep.css +44 -0
- package/src/styles/glass/ladder.css +147 -41
- package/src/styles/glass/material.css +78 -15
- package/src/styles/glass/reveal.css +136 -0
- package/src/styles/glass/rim.css +110 -0
- package/src/styles/glass/surfaces.css +148 -129
- package/src/styles/glass-refract.css +96 -44
- package/src/styles/glass-specular-track.css +7 -0
- package/src/styles/glass.css +13 -0
- package/src/styles/hover-popover.css +7 -6
- package/src/styles/icon-chip.css +77 -15
- package/src/styles/index.css +27 -0
- package/src/styles/instrument-chassis.css +66 -3
- package/src/styles/scroll-choreography.css +300 -0
- package/src/styles/scroll-chrome.css +123 -0
- package/src/styles/scroll-driven.css +38 -0
- package/src/styles/segmented-tabs.css +81 -14
- package/src/styles/theme/bridges.css +33 -0
- package/src/styles/theme/literals.css +11 -2
- package/src/styles/theme/radius.css +24 -2
- package/src/styles/tokens/color-radius.css +13 -3
- package/src/styles/tokens/dark-arm.css +137 -32
- package/src/styles/tokens/glass-deep.css +100 -0
- package/src/styles/tokens/glass-fx.css +376 -0
- package/src/styles/tokens/glass.css +131 -351
- package/src/styles/tokens/light-dark.css +16 -3
- package/src/styles/tokens/offsets.css +143 -0
- package/src/styles/tokens/on-glass-fg.css +39 -0
- package/src/styles/tokens/property-regs.css +260 -0
- package/src/styles/tokens/scale-paper.css +168 -96
- package/src/styles/tokens/scheme-motion.css +114 -38
- package/src/styles/tokens/scroll-tokens.css +123 -0
- package/src/styles/tokens/sizing-config.css +110 -0
- package/{dist/styles/tokens/offsets-sizing.css → src/styles/tokens/sizing.css} +92 -204
- package/src/styles/tokens.css +14 -3
- package/src/styles/typography/semantic.css +26 -13
- package/src/styles/typography/utilities.css +22 -7
- package/src/styles/utilities/a11y-overrides.css +20 -5
- package/src/styles/utilities/animate.css +27 -24
- package/src/styles/utilities/base-misc.css +307 -0
- package/src/styles/utilities/base.css +47 -261
- package/src/styles/utilities/btn.css +17 -4
- package/src/styles/utilities/components.css +31 -6
- package/src/styles/utilities/metal.css +215 -0
- package/src/styles/utilities.css +14 -7
- package/dist/CardAction-XH4YBVEK.js +0 -158
- package/dist/ContextMenuContent-ON3x7cuk.js +0 -85
- package/dist/DialogFooter-8eZbdmPc.js +0 -165
- package/dist/HoverCardContent-DkMaQzH5.js +0 -83
- package/dist/Input-DVG_J0ne.js +0 -55
- package/dist/Notification-DKjKsQq8.js +0 -100
- package/dist/NumberFieldContent-1VtwDSgf.js +0 -145
- package/dist/Separator-BArl4OaB.js +0 -37
- package/dist/Switch-Dr--uLGH.js +0 -47
- package/dist/Toaster-Bm_HQSpc.js +0 -263
- package/dist/ToggleGroupItem-Dzk9hWsF.js +0 -157
- package/dist/TooltipProvider-B3MkB_8P.js +0 -104
- package/dist/button-BNDWhAZb.js +0 -81
- package/dist/check-njhk-vfu.js +0 -7
- package/dist/chevron-down-DKkxb4VV.js +0 -7
- package/dist/chevron-right-CPXbqQQz.js +0 -7
- package/dist/chevron-up-n_24SqI-.js +0 -7
- package/dist/color-DweYl7pE.js +0 -86
- package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
- package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
- package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
- package/dist/createLucideIcon-DydS2qgk.js +0 -43
- package/dist/minimize-2-BV31Ob_h.js +0 -38
- package/dist/resolveCanvasColor-BBiYfp8g.js +0 -11
- package/dist/search-BSGrf2Sk.js +0 -12
- package/dist/styles/dock/rail-extend.css +0 -397
- package/dist/useCanvas2D-ClrQuZtp.js +0 -96
- package/dist/useConfiguratorState-kiIlun8I.js +0 -303
- package/dist/useRAFLoop-CdwJ7284.js +0 -109
- package/dist/useSpecularTracking-Bo5su68i.js +0 -32
- package/dist/useSpringMount-CvopqiFr.js +0 -108
- package/dist/useViewTransition-COsPjQVZ.js +0 -47
- package/dist/x-BUwTKe50.js +0 -10
- package/src/styles/dock/rail-extend.css +0 -397
- /package/dist/{CollapsibleContent-C_s6fG7r.js → CollapsibleContent-68dEXIAl.js} +0 -0
- /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-CxsHSyMj.js} +0 -0
- /package/dist/{Label-Ck9SWEKM.js → Label-C2ejNWeC.js} +0 -0
- /package/dist/{ModalOverlay-CkPRRgl_.js → ModalOverlay-D1VrWyoi.js} +0 -0
- /package/dist/{PaperBackdrop-nBKe0vkB.js → PaperBackdrop-CqwjnfLv.js} +0 -0
- /package/dist/{SelectGroup-Dcczq44n.js → SelectGroup-BFiod7X2.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-CBt_VvXa.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
- /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
- /package/dist/{constants-BPOqYJAm.js → constants--C2DkLW8.js} +0 -0
- /package/dist/{createContext-B2RaZ-b8.js → createContext-CpBNTRMI.js} +0 -0
- /package/dist/{math-DeuJwLFx.js → math-Eb0w3LqU.js} +0 -0
- /package/dist/{menuItemVariants-DWRQXBxJ.js → menuItemVariants-D8VNHq22.js} +0 -0
- /package/dist/{prng-Cg22zv8g.js → prng-B-d9eYX8.js} +0 -0
- /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-CmjB9E32.js} +0 -0
- /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-Dbozzjgm.js} +0 -0
- /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BPRp33Im.js} +0 -0
- /package/dist/{useLiquidFlex-C12hXwOZ.js → useLiquidFlex-UmA6LMZu.js} +0 -0
- /package/dist/{useResizeObserver-V6nq5gJb.js → useResizeObserver-Bpoi7tRE.js} +0 -0
- /package/dist/{useResolveTokenColor-NUG2zYAW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
- /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-c3yxmH6a.js} +0 -0
- /package/dist/{useSurfaceAxis-CMnF2zHb.js → useSurfaceAxis-g0NloYEF.js} +0 -0
- /package/dist/{useTimer-B_PAasDL.js → useTimer-BHJOKr35.js} +0 -0
- /package/dist/{useUserInvalidAria-CDfJuakL.js → useUserInvalidAria-y5namzeE.js} +0 -0
- /package/dist/{useViewportReady-CvBcCYDf.js → useViewportReady-anbac3m6.js} +0 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/* glass/reveal.css
|
|
2
|
+
BB.W-LIQUID-REVEAL — the `.glass-reveal` LIQUID-ENTER recipe: the spring-clocked,
|
|
3
|
+
coupled-channel top-layer open that REPLACES `popover-animate`'s fixed-bezier
|
|
4
|
+
zoom-95 (clean break, no alias). The zero-JS floor the reka portaled overlays
|
|
5
|
+
compose (they are not native top-layer, so they cannot ride `@starting-style`;
|
|
6
|
+
`.glass-reveal` is the data-state form). The `useLiquidReveal` JS leaf is the
|
|
7
|
+
source-rect REFINEMENT (the dialog-from-button / dock-from-pill bloom); this CSS
|
|
8
|
+
recipe is the everywhere floor.
|
|
9
|
+
@import-ed by glass.css in cascade order, in its own @layer components
|
|
10
|
+
(isomorphic to the monolith). See docs/precepts/design-idioms.md §cohesion-aware
|
|
11
|
+
partials. */
|
|
12
|
+
|
|
13
|
+
/* ── THE LIQUID ENTER (the iOS-27 bloom-from-anchor) ──────────────────────────
|
|
14
|
+
*
|
|
15
|
+
* Three COUPLED channels, the SPATIAL/EFFECTS split (the Material-3 / §6 /
|
|
16
|
+
* W-MOTION-CANON doctrine):
|
|
17
|
+
*
|
|
18
|
+
* (a) SCALE (the bloom — SPATIAL) rides `--spring-snappy` + its OWN settle clock
|
|
19
|
+
* `--spring-snappy-duration` (the W-GLASS-CAL Unit 3 per-spring clock, NOT the
|
|
20
|
+
* generic `--duration-normal` that re-timed every spring to one wall clock).
|
|
21
|
+
* The overshoot interior of the spring `linear()` gives the canonical iOS
|
|
22
|
+
* arrival. `transform-origin` anchors at the popper edge (`--reka-popper-
|
|
23
|
+
* transform-origin`) so the surface blooms FROM its anchor, not center.
|
|
24
|
+
* (b) OPACITY (the fade — EFFECTS) rides `--ease-out` (NO overshoot — a fade must
|
|
25
|
+
* not bounce), coupled so scale+fade read as ONE continuous coalescing layer.
|
|
26
|
+
* (c) BLUR-SETTLE (the iOS "light-bending modulation" decongest — EFFECTS)
|
|
27
|
+
* `filter: blur(--glass-reveal-blur)` → `blur(0)`, on the SAME spring clock as
|
|
28
|
+
* the scale so the surface clarifies AS it blooms. The decongest rides the
|
|
29
|
+
* surface's OWN pixels (`filter`) NOT the backdrop (`backdrop-filter`), so it
|
|
30
|
+
* does NOT clobber the resting `glass-floating` tier plate blur the overlay
|
|
31
|
+
* carries at rest (a `backdrop-filter: blur(0)` open value would erase the
|
|
32
|
+
* glass). A `filter` radius interp is COMPOSITOR-safe (never a layout property
|
|
33
|
+
* — the proof:no-layout-animation floor).
|
|
34
|
+
*
|
|
35
|
+
* Uses the `scale:` / `translate:` LONGHANDS (not `transform:`), so it composes with
|
|
36
|
+
* any identity-base transform and mints no stacking context (the `.glass-top-layer`
|
|
37
|
+
* `scale:` discipline). NEVER animates a layout property (the zoom is `scale`, the
|
|
38
|
+
* side-slide is `translate` — the directional slide-in `popover-animate` +
|
|
39
|
+
* `slide-in-from-side` used to carry, now folded onto the compositor `translate` leg).
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
@layer components {
|
|
43
|
+
.glass-reveal {
|
|
44
|
+
/* The one public start knob (the decongest radius). The spatial/effects
|
|
45
|
+
clocks read the shared spring tokens (read-only — the W-GLASS-CAL fence). */
|
|
46
|
+
--glass-reveal-blur: 4px;
|
|
47
|
+
--glass-reveal-slide: 0.5rem;
|
|
48
|
+
transform-origin: var(--reka-popper-transform-origin, center);
|
|
49
|
+
/* The coupled transition list — the SPATIAL legs (scale/translate) on the
|
|
50
|
+
snappy spring's OWN settle clock, the EFFECTS legs (opacity/filter blur-
|
|
51
|
+
settle) on the no-overshoot ease-out. ONE coherent glide. The blur rides
|
|
52
|
+
`filter` (the surface's own pixels) NOT `backdrop-filter` (which would
|
|
53
|
+
clobber the resting glass-floating plate blur). */
|
|
54
|
+
transition-property: scale, translate, opacity, filter, display, overlay;
|
|
55
|
+
transition-duration: var(--spring-snappy-duration), var(--spring-snappy-duration),
|
|
56
|
+
var(--spring-snappy-duration), var(--spring-snappy-duration),
|
|
57
|
+
var(--spring-snappy-duration), var(--spring-snappy-duration);
|
|
58
|
+
transition-timing-function: var(--spring-snappy), var(--spring-snappy),
|
|
59
|
+
var(--ease-out), var(--ease-out), linear, linear;
|
|
60
|
+
transition-behavior: allow-discrete;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/* OPEN — the settled, bloomed-in state (the spring-clocked scale/fade/blur-settle
|
|
64
|
+
interpolates FROM the closed values). `filter: blur(0)` clarifies the surface;
|
|
65
|
+
the resting `glass-floating` backdrop-filter is untouched. The `translate` leg
|
|
66
|
+
is set ONLY by the `data-side` variants below (a side-anchored popover slides
|
|
67
|
+
from its edge) — the BASE never writes `translate`, so a center-anchored Dialog
|
|
68
|
+
keeping its `-translate-x-1/2 -translate-y-1/2` centering is NEVER clobbered. */
|
|
69
|
+
.glass-reveal[data-state="open"] {
|
|
70
|
+
scale: 1;
|
|
71
|
+
opacity: 1;
|
|
72
|
+
filter: blur(0);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* CLOSED — both the resting CLOSED snapshot AND the EXIT leg. The exit reads
|
|
76
|
+
`--ease-out` (a bezier, NO overshoot — a closing surface must never overshoot
|
|
77
|
+
past gone, the §6/W-MOTION-CANON P2 doctrine); NO `--spring-*` token on the
|
|
78
|
+
exit. The exit is faster + un-sprung — the surface recedes cleanly. */
|
|
79
|
+
.glass-reveal[data-state="closed"] {
|
|
80
|
+
scale: var(--glass-reveal-enter-scale, 0.95);
|
|
81
|
+
opacity: 0;
|
|
82
|
+
filter: blur(var(--glass-reveal-blur));
|
|
83
|
+
transition-timing-function: var(--ease-out);
|
|
84
|
+
transition-duration: var(--duration-fast);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/* The directional slide-in — the compositor `translate` leg keyed off the
|
|
88
|
+
popper's `data-side` (folds the retired `slide-in-from-side` `@utility`'s
|
|
89
|
+
directional entry onto the compositor channel; the panel enters from outside
|
|
90
|
+
the anchor's edge). On the SAME snappy spring + clock as the scale. ONLY a
|
|
91
|
+
side-anchored popover (with `data-side`) sets `translate`; the open settled
|
|
92
|
+
value is `0 0` (per side, so it slides home from the edge). A center-anchored
|
|
93
|
+
Dialog has no `data-side` and is never reached here. */
|
|
94
|
+
.glass-reveal[data-side="top"][data-state="open"],
|
|
95
|
+
.glass-reveal[data-side="bottom"][data-state="open"],
|
|
96
|
+
.glass-reveal[data-side="left"][data-state="open"],
|
|
97
|
+
.glass-reveal[data-side="right"][data-state="open"] {
|
|
98
|
+
translate: 0 0;
|
|
99
|
+
}
|
|
100
|
+
.glass-reveal[data-state="closed"][data-side="top"] {
|
|
101
|
+
translate: 0 var(--glass-reveal-slide);
|
|
102
|
+
}
|
|
103
|
+
.glass-reveal[data-state="closed"][data-side="bottom"] {
|
|
104
|
+
translate: 0 calc(-1 * var(--glass-reveal-slide));
|
|
105
|
+
}
|
|
106
|
+
.glass-reveal[data-state="closed"][data-side="left"] {
|
|
107
|
+
translate: var(--glass-reveal-slide) 0;
|
|
108
|
+
}
|
|
109
|
+
.glass-reveal[data-state="closed"][data-side="right"] {
|
|
110
|
+
translate: calc(-1 * var(--glass-reveal-slide)) 0;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* ── REDUCED-MOTION CARVE (the vestibular floor — WCAG 2.3.3) ──────────────────
|
|
115
|
+
* Under `prefers-reduced-motion: reduce` the reveal SNAPS the spatial channels to
|
|
116
|
+
* their endpoints (scale → none, translate → none) and the blur-settle to none —
|
|
117
|
+
* ZERO transform/blur frames. The OPACITY fade SURVIVES (opacity is not a vestibular
|
|
118
|
+
* trigger; the surface fades, never flies, never disappears). The fade rides the
|
|
119
|
+
* short `--duration-fast` clock (the `.glass-top-layer` PRM precedent). */
|
|
120
|
+
@media (prefers-reduced-motion: reduce) {
|
|
121
|
+
.glass-reveal {
|
|
122
|
+
scale: none;
|
|
123
|
+
translate: none;
|
|
124
|
+
/* The decongest snaps to clear (`filter: blur(0)`); the resting
|
|
125
|
+
`glass-floating` backdrop-filter plate blur is UNTOUCHED. */
|
|
126
|
+
filter: blur(0);
|
|
127
|
+
transition-property: opacity, display, overlay;
|
|
128
|
+
transition-duration: var(--duration-fast);
|
|
129
|
+
transition-timing-function: var(--ease-out);
|
|
130
|
+
}
|
|
131
|
+
.glass-reveal[data-state="closed"] {
|
|
132
|
+
scale: none;
|
|
133
|
+
translate: none;
|
|
134
|
+
filter: blur(0);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/* glass/rim.css
|
|
2
|
+
The BB.W-GLASS-ACCENT per-INSTANCE chromatic rim/accent group (the rim-ink +
|
|
3
|
+
--glass-material-rim ring + the per-rung --glass-border-accent border, light +
|
|
4
|
+
dark arms).
|
|
5
|
+
Carved from glass/ladder.css at BB.W-CARVE4 to hold the no-god-module bound (the
|
|
6
|
+
five-rung surface ladder + the W55 bright-bucket @container + the calm-tier re-point
|
|
7
|
+
+ the contrast-color ink-flip + the opaque escape + the under-shadow modifier + the
|
|
8
|
+
grain ::after stay in ladder.css). @import-ed by glass.css in cascade order
|
|
9
|
+
IMMEDIATELY AFTER ladder.css — the SAME @layer components; the rim/accent group is
|
|
10
|
+
the SOLE writer of --glass-material-rim/--glass-border-accent (the rungs read those
|
|
11
|
+
+ --glass-rim-ink as custom properties resolved at use-time on the SAME elements, so
|
|
12
|
+
the relocation is cascade-order-invariant), and the W55 bright-bucket is DELIBERATELY
|
|
13
|
+
kept in ladder.css (relocating it past the contrast-color @supports block would invert
|
|
14
|
+
their same-specificity source-order tie on supporting engines — a behaviour change the
|
|
15
|
+
byte-isomorphism bound forbids). The dist is byte-isomorphic. */
|
|
16
|
+
@layer components {
|
|
17
|
+
/* (b) The unified rim — `--glass-edge-light` full-perimeter inset ring on
|
|
18
|
+
EVERY material surface (AW.W22). Previously the rim was wired only into
|
|
19
|
+
the floating/overlay tiers' box-shadow stack; promoting it to the material
|
|
20
|
+
group makes wash/quiet/resting/card/dock-control all carry the same
|
|
21
|
+
silhouette catch-light from ONE token. The rim is its OWN `box-shadow`
|
|
22
|
+
declaration on the material group so it composes uniformly without
|
|
23
|
+
perturbing each tier's elevation recipe (the floating/overlay tiers drop
|
|
24
|
+
their now-redundant inline `--glass-edge-light` layer below). The alpha is
|
|
25
|
+
deliberately low so the rim never eats AA legibility over a busy
|
|
26
|
+
backdrop. */
|
|
27
|
+
/* ── BB.W-GLASS-ACCENT — the per-INSTANCE chromatic-RIM tint ───────────────
|
|
28
|
+
The THIRD disjoint glass axis (LEVEL · TINT · ACCENT). The rim is TWO
|
|
29
|
+
resolved things — the `--glass-material-rim` inset RING (= `--glass-edge-
|
|
30
|
+
light`, an inset box-shadow) and the per-rung `--glass-border-*` BORDER —
|
|
31
|
+
and BOTH must carry the accent hue so the rim reads as ONE accent silhouette,
|
|
32
|
+
not a half-tinted edge.
|
|
33
|
+
|
|
34
|
+
The composition is `color-mix(in oklab, <current rim color>, var(--glass-
|
|
35
|
+
accent) var(--glass-accent-strength))` — the PERCEPTUAL oklab mix the W55
|
|
36
|
+
glass-tint seam + the `<IconChip>` chip already speak (NOT in-srgb — the
|
|
37
|
+
in-srgb fence is the `--surface-tint-*` brand-overlay family, a SEPARATE
|
|
38
|
+
axis this never touches). At the resting `--glass-accent-strength: 0%` (the
|
|
39
|
+
`@property` default) + `--glass-accent: transparent` (the neutral identity)
|
|
40
|
+
the mix resolves byte-identical to today's rim (the W2 no-op floor).
|
|
41
|
+
|
|
42
|
+
The RING: a box-shadow value cannot be `color-mix`-ed whole, so the rim ring
|
|
43
|
+
is REBUILT here as `inset 0 0 0 0.75px <mixed-color>` — the SAME 0.75px inset
|
|
44
|
+
geometry the `--glass-edge-light` token paints (AV.W15 M3), only its COLOR
|
|
45
|
+
stop composing the accent. At 0% strength the color resolves to the
|
|
46
|
+
`--glass-edge-light` base ink (`hsl(0 0% 100% / 0.18)` light / 0.22 dark —
|
|
47
|
+
read via `--glass-rim-ink`) so the ring is byte-identical to
|
|
48
|
+
`var(--glass-edge-light)`. The `.dark` arm re-points `--glass-rim-ink` to the
|
|
49
|
+
dark base so the dark rim composes off `--glass-edge-light-dark`.
|
|
50
|
+
|
|
51
|
+
The BORDER: each rung's `border-color` reads `--glass-border-accent`, which
|
|
52
|
+
composes the accent onto the rung's own `--glass-border-*` ink. The rung
|
|
53
|
+
borders are re-pointed at their declarations (the `border: 1px solid
|
|
54
|
+
var(--glass-border-accent)`) so ONE derived token carries the accent across
|
|
55
|
+
the band; `--glass-border-accent` reads the per-rung `--glass-border-rung`
|
|
56
|
+
the rung sets locally, mixed with the accent.
|
|
57
|
+
|
|
58
|
+
This axis NEVER touches the plate BACKGROUND (the W55 `--glass-tint-source`
|
|
59
|
+
cohort) — the accent is the rim+glint chromatic DECORATION, not the
|
|
60
|
+
whole-plate legibility darken (the distinct-axis-not-fork fence). */
|
|
61
|
+
.glass-material,
|
|
62
|
+
.glass-wash,
|
|
63
|
+
.glass-quiet,
|
|
64
|
+
.glass-resting,
|
|
65
|
+
.glass-floating,
|
|
66
|
+
.glass-overlay,
|
|
67
|
+
.glass-card,
|
|
68
|
+
.glass-specular-track,
|
|
69
|
+
.dock-icon-button {
|
|
70
|
+
/* BC.W-BLACK-BAR D2 — the rim ring is now DIRECTIONAL: the top catch-light
|
|
71
|
+
(`--glass-rim-top`, glass-fx.css) carries the white-α ink the old
|
|
72
|
+
omnidirectional ring carried (0.30 light / 0.40 dark — the dark arm
|
|
73
|
+
re-points it via dark-arm.css), and the bottom under-shadow
|
|
74
|
+
(`--glass-rim-bottom`) grounds the plate. The accent (BB.W-GLASS-ACCENT)
|
|
75
|
+
still mixes ONTO the top catch-light ink so the chromatic rim reads on the
|
|
76
|
+
lit edge; at 0% strength the mix resolves byte-identical to the bare
|
|
77
|
+
`--glass-rim-top`. `--glass-rim-ink` is the resolved top-ink stop (kept as
|
|
78
|
+
the accent-compose seam — the `.dark` arm below re-points it). */
|
|
79
|
+
--glass-rim-ink: hsl(0 0% 100% / 0.30);
|
|
80
|
+
--glass-material-rim:
|
|
81
|
+
inset 0 1px 0
|
|
82
|
+
color-mix(in oklab, var(--glass-rim-ink), var(--glass-accent) var(--glass-accent-strength)),
|
|
83
|
+
var(--glass-rim-bottom);
|
|
84
|
+
/* the per-rung border ink, accent-composed. `--glass-border-rung` is set by
|
|
85
|
+
each rung at its own declaration (it reads the rung's `--glass-border-*`
|
|
86
|
+
token); the accent mixes onto it so the BORDER half of the rim carries the
|
|
87
|
+
same hue as the RING. At 0% strength === the un-mixed rung ink. */
|
|
88
|
+
--glass-border-accent: color-mix(
|
|
89
|
+
in oklab,
|
|
90
|
+
var(--glass-border-rung, var(--glass-border)),
|
|
91
|
+
var(--glass-accent) var(--glass-accent-strength)
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
.dark .glass-material,
|
|
95
|
+
.dark .glass-wash,
|
|
96
|
+
.dark .glass-quiet,
|
|
97
|
+
.dark .glass-resting,
|
|
98
|
+
.dark .glass-floating,
|
|
99
|
+
.dark .glass-overlay,
|
|
100
|
+
.dark .glass-card,
|
|
101
|
+
.dark .glass-specular-track,
|
|
102
|
+
.dark .dock-icon-button {
|
|
103
|
+
/* BC.W-BLACK-BAR D2 — the dark top catch-light ink is the lifted 0.40 stop
|
|
104
|
+
(mirroring the dark `--glass-rim-top`, dark-arm.css) so the accent composes
|
|
105
|
+
off the dark silhouette device (W-DARK-MATERIAL): dark glass needs a
|
|
106
|
+
brighter rim to read over the deep canvas. */
|
|
107
|
+
--glass-rim-ink: hsl(0 0% 100% / 0.40);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
}
|
|
@@ -18,7 +18,12 @@
|
|
|
18
18
|
position: relative;
|
|
19
19
|
background: color-mix(in oklab, var(--glass-bg-quiet), var(--glass-tint-source) var(--glass-tint-strength));
|
|
20
20
|
backdrop-filter: var(--glass-blur-quiet);
|
|
21
|
-
border
|
|
21
|
+
/* BB.W-GLASS-ACCENT — the card border feeds its focus-elevation ink into the
|
|
22
|
+
accent-composed `--glass-border-accent` (ladder.css rim group); byte-
|
|
23
|
+
identical at 0% strength. The focus rung still re-points `--card-focus-
|
|
24
|
+
border`, which flows through `--glass-border-rung`. */
|
|
25
|
+
--glass-border-rung: var(--card-focus-border);
|
|
26
|
+
border: 1px solid var(--glass-border-accent);
|
|
22
27
|
border-radius: var(--radius-card);
|
|
23
28
|
box-shadow: var(--glass-material-rim), var(--card-focus-shadow);
|
|
24
29
|
/* AY.W-A11Y-PERF O-4 — upgrade `layout style` → include `paint` so the
|
|
@@ -181,150 +186,164 @@
|
|
|
181
186
|
dedup-and-keep-prefixed, which modern Chromium then drops). */
|
|
182
187
|
.btn-glass {
|
|
183
188
|
backdrop-filter: var(--glass-blur-btn);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/* ── Pill input ───────────────────────────────── */
|
|
187
|
-
.input-pill {
|
|
188
|
-
@apply flex w-full;
|
|
189
189
|
|
|
190
|
-
/*
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
the
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
the
|
|
209
|
-
|
|
210
|
-
`--glass-border-floating` 15%α rung, --control-surface-bg to `--glass-bg-quiet`,
|
|
211
|
-
--control-surface-blur to `--glass-blur-quiet`). */
|
|
212
|
-
border: 1.5px solid var(--control-surface-border);
|
|
213
|
-
background: var(--control-surface-bg);
|
|
214
|
-
/* The control's REAL glass blur — the shared register's quiet-tier radius
|
|
215
|
-
(the same `--control-surface-blur` pairs with `--control-surface-bg`); the
|
|
216
|
-
`--glass-level` knob clarifies it in lockstep with every surface. */
|
|
217
|
-
backdrop-filter: var(--control-surface-blur);
|
|
218
|
-
padding: 0 calc(1rem * var(--ui-scale));
|
|
219
|
-
font-size: var(--control-text);
|
|
220
|
-
color: var(--foreground);
|
|
221
|
-
transition:
|
|
222
|
-
background-color var(--duration-fast) var(--ease-standard),
|
|
223
|
-
border-color var(--duration-fast) var(--ease-standard),
|
|
224
|
-
box-shadow var(--duration-fast) var(--ease-standard),
|
|
225
|
-
color var(--duration-fast) var(--ease-standard),
|
|
226
|
-
opacity var(--duration-fast) var(--ease-standard);
|
|
190
|
+
/* BB.W-BUTTON-GLASS (d) — the button-scoped DEPTH stack + the hover-specular
|
|
191
|
+
bump. The glass button was the flattest wash rung (a bare backdrop-filter,
|
|
192
|
+
no rim, no under-shadow) — it read as a tinted rectangle, not a lifted
|
|
193
|
+
glass lozenge. The `--glass-btn-*` knobs compose ALREADY-MINTED tokens (the
|
|
194
|
+
`--glass-edge-light` rim + the `quiet`/`resting`-tier `--glass-under-shadow-*`
|
|
195
|
+
drop) so a consumer retints the whole button depth from ONE override; NO new
|
|
196
|
+
compositing axis. The rim+under-shadow lifts the lozenge; the box-shadow is
|
|
197
|
+
additive over the variant's own focus/press shadow legs (the `.btn-pill`
|
|
198
|
+
transition carries box-shadow on the §6 bezier, so the depth cross-fades
|
|
199
|
+
coherently). */
|
|
200
|
+
--glass-btn-rim: var(--glass-edge-light);
|
|
201
|
+
--glass-btn-under-shadow: var(--glass-under-shadow-quiet);
|
|
202
|
+
--glass-btn-under-shadow-hover: var(--glass-under-shadow-default);
|
|
203
|
+
box-shadow: var(--glass-btn-rim), var(--glass-btn-under-shadow);
|
|
204
|
+
/* The button-scoped hover gleam bump (0.10 → ~0.14): a hovered glass button
|
|
205
|
+
reads a notch brighter at the grazing edge than the global hover whisper.
|
|
206
|
+
Token-scoped to `.btn-glass` (NOT the global `:root` cohort property-regs.css
|
|
207
|
+
owns) so only the button lifts. The active/rest rungs ride the global cohort
|
|
208
|
+
(the press whisper + the dormant rest). */
|
|
209
|
+
--glass-specular-intensity-hover: var(--glass-specular-btn-hover);
|
|
227
210
|
}
|
|
228
211
|
|
|
229
|
-
.
|
|
230
|
-
|
|
212
|
+
/* BC.W-BUTTON-GLASS-IOS (move 2 / BG-IOS-2) — the hero CTA reaches DEEP glass.
|
|
213
|
+
`.btn-glass` reads `--glass-blur-btn` (not `--glass-blur-floating`), so the bare
|
|
214
|
+
`.glass-deep` axis (which re-points `--glass-blur-floating`) does not deepen a
|
|
215
|
+
button. This arm re-points `--glass-blur-btn` onto the deep family — the SAME
|
|
216
|
+
token-substitution model `.glass-deep` uses (glass/deep.css), composing the ONE
|
|
217
|
+
deep axis, NOT a new blur recipe. So a `default`/`primary-audacious` hero CTA
|
|
218
|
+
reads the apple.com-nav-grade thick refractive liquid glass (16px / saturate 1.5
|
|
219
|
+
family, `--glass-blur-deep`), while the plain content tiers + the quieter
|
|
220
|
+
`outline`/`secondary`/`accent` glass buttons stay calm at the floating-tier
|
|
221
|
+
`--glass-blur-btn`. The deep BLUR is budget-FREE (the W-LENSING budget binds the
|
|
222
|
+
`:liquid` SVG lens, not the deep-blur tier). The a11y `--glass-level:0` brackets
|
|
223
|
+
reach it for free (the deep blur composes `--glass-level`, the opaque-escape path). */
|
|
224
|
+
.btn-glass.glass-deep {
|
|
225
|
+
--glass-blur-btn: var(--glass-blur-deep);
|
|
231
226
|
}
|
|
232
227
|
|
|
233
|
-
/*
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
It carries the bg/border/blur ONLY (each control owns its own height/radius/
|
|
239
|
-
padding/font), so a non-pill control composes `.control-surface` + its own
|
|
240
|
-
geometry. The hover lift brightens the fill one step toward the resting rung. */
|
|
241
|
-
.control-surface {
|
|
242
|
-
background: var(--control-surface-bg);
|
|
243
|
-
border: 1px solid var(--control-surface-border);
|
|
244
|
-
backdrop-filter: var(--control-surface-blur);
|
|
245
|
-
-webkit-backdrop-filter: var(--control-surface-blur);
|
|
246
|
-
}
|
|
247
|
-
.control-surface:hover:not(:disabled, [data-disabled]) {
|
|
248
|
-
background: var(--control-surface-bg-hover);
|
|
228
|
+
/* The depth deepens one rung on hover (the lifted-lozenge read) — additive over
|
|
229
|
+
the variant's own hover surface legs. The variants paint the bg/border on
|
|
230
|
+
hover; this adds the deeper drop. */
|
|
231
|
+
.btn-glass:hover:not(:disabled, [data-disabled]) {
|
|
232
|
+
box-shadow: var(--glass-btn-rim), var(--glass-btn-under-shadow-hover);
|
|
249
233
|
}
|
|
250
234
|
|
|
251
|
-
/*
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
235
|
+
/* BC.W-BUTTON-GLASS-IOS (move 3 / BG-IOS-4) — the press is COUPLED (W-MOTION-CANON
|
|
236
|
+
P3): the ONE `--glass-btn-press-t` 0..1 spring drive (Button.vue writes it off
|
|
237
|
+
`useSpringPress`) feeds BOTH the squish (the `useLiquidFlex` reciprocal X/Y deform,
|
|
238
|
+
Button.vue) AND a SPECULAR brightness leg here — the touch-ILLUMINATION (apple-
|
|
239
|
+
ios27.md §2.5 ".interactive() → scale + bounce + shimmer + touch-illumination").
|
|
240
|
+
During the press the button's specular tracks the SPRING (not the binary `:active`
|
|
241
|
+
toggle material.css sets): `--specular-intensity` LERPs from the hover gleam toward
|
|
242
|
+
the active gleam as `--glass-btn-press-t` travels, so the gleam ILLUMINATES on the
|
|
243
|
+
SAME spring scalar as the squish (the glass reads as DEFORMING-AND-BRIGHTENING with
|
|
244
|
+
the spring's alive overshoot, not a uniform shrink). It reads the EXISTING
|
|
245
|
+
`--glass-specular-intensity-{hover,active}` cohort (property-regs.css) — no new
|
|
246
|
+
token, ONE drive two legs. Specificity ties material's `.glass-wash:active::before`
|
|
247
|
+
(0,2,1) and wins by source-order-after (surfaces.css @import-s after material.css),
|
|
248
|
+
so the button press follows the spring; the hover gleam + the no-JS `:active` floor
|
|
249
|
+
are untouched. */
|
|
250
|
+
.btn-glass:active::before {
|
|
251
|
+
--specular-intensity: calc(
|
|
252
|
+
var(--glass-specular-intensity-hover) +
|
|
253
|
+
(var(--glass-specular-intensity-active) - var(--glass-specular-intensity-hover)) *
|
|
254
|
+
var(--glass-btn-press-t)
|
|
255
|
+
);
|
|
261
256
|
}
|
|
262
257
|
|
|
263
|
-
/*
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
.
|
|
280
|
-
|
|
281
|
-
|
|
258
|
+
/* BB.W-BUTTON-GLASS (a) — the ELEMENT-LEVEL oklab-tinted hover/active fill pair
|
|
259
|
+
(the substitution-vs-inheritance trap fixed on the button register). The glass
|
|
260
|
+
button variants painted `hover:bg-(--glass-bg-resting) active:bg-(--glass-bg-
|
|
261
|
+
floating)` — the RAW `:root` rung tokens, which carry NO `color-mix(in oklab, …,
|
|
262
|
+
--glass-tint-source --glass-tint-strength)` wrapper. So the W55 adaptive darken
|
|
263
|
+
+ the `contrast-color()` ink flip + the content-tier floor (all of which the REST
|
|
264
|
+
bg `.glass-wash` composes via the element-level oklab seam) DROPPED the moment the
|
|
265
|
+
pointer landed — "more glass would cost legibility" exactly inverted from the
|
|
266
|
+
iOS-27 ask. These two tokens wrap the raw rungs in the SAME element-level oklab
|
|
267
|
+
seam `ladder.css` composes for the rest bg + `--glass-bg-dock` for the dock — ZERO
|
|
268
|
+
new compositing axis, the literal darken-over-light recipe reached at the lit
|
|
269
|
+
fill. ZERO-delta at the `--glass-tint-strength: 0%`/floor default (the mix toward
|
|
270
|
+
the source is 0%); under the declared/sampled bright bucket the lit fill darkens
|
|
271
|
+
to AA in lockstep with the rest bg. The `:root` raw `--glass-bg-*` tokens are
|
|
272
|
+
UNTOUCHED (other surfaces compose them at the element correctly — the raw token +
|
|
273
|
+
the element-level oklab wrapper is the correct ladder shape). */
|
|
274
|
+
/* BC.W-TABS-IOS — the tinted-FLOATING seam lifted off the `.btn-glass`-only scope
|
|
275
|
+
onto a SHARED `:where()` so the iOS-27 segmented-control active pill reads the
|
|
276
|
+
SAME element-level oklab-tint floating fill the glass button reads (the
|
|
277
|
+
substitution-over-redeclaration discipline: ONE tinted-floating source, NOT a
|
|
278
|
+
tab-local fork). The pill's active plate now reaches the W55 darken-over-bright
|
|
279
|
+
seam — over a bright field the pill darkens-to-legible, over a calm field it
|
|
280
|
+
stays warm-cream/near-white (the iOS adaptive register reaching the pill).
|
|
281
|
+
ZERO-delta at the `--glass-tint-strength: 0%`/floor default. */
|
|
282
|
+
:where(.btn-glass, .segmented-indicator) {
|
|
283
|
+
--glass-bg-floating-tinted: color-mix(
|
|
284
|
+
in oklab,
|
|
285
|
+
var(--glass-bg-floating),
|
|
286
|
+
var(--glass-tint-source) var(--glass-tint-strength)
|
|
287
|
+
);
|
|
282
288
|
}
|
|
283
|
-
.
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
289
|
+
.btn-glass {
|
|
290
|
+
/* BC.W-BUTTON-GLASS-IOS (BG-IOS-6) — the `quiet` rung gains the SAME element-
|
|
291
|
+
level oklab-tint wrapper so the de-shadcn `outline`/`secondary` reskin (the
|
|
292
|
+
QUIETER glass register, prominence-by-tint) reaches the W55 darken on its lit
|
|
293
|
+
fill too — ZERO new compositing axis, the SAME seam the resting/floating pair
|
|
294
|
+
composes. The floating rung is minted on the shared `:where()` seam ABOVE
|
|
295
|
+
(the tab pill reads it too); quiet + resting stay button-scoped (the
|
|
296
|
+
hover/active fill register the segmented pill does not engage). */
|
|
297
|
+
--glass-bg-quiet-tinted: color-mix(
|
|
298
|
+
in oklab,
|
|
299
|
+
var(--glass-bg-quiet),
|
|
300
|
+
var(--glass-tint-source) var(--glass-tint-strength)
|
|
301
|
+
);
|
|
302
|
+
--glass-bg-resting-tinted: color-mix(
|
|
303
|
+
in oklab,
|
|
304
|
+
var(--glass-bg-resting),
|
|
305
|
+
var(--glass-tint-source) var(--glass-tint-strength)
|
|
306
|
+
);
|
|
294
307
|
}
|
|
295
308
|
|
|
296
|
-
/*
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
the unchanged no-op fallback. */
|
|
304
|
-
.input-pill[data-autosize] {
|
|
305
|
-
field-sizing: content;
|
|
306
|
-
width: 100%;
|
|
307
|
-
min-block-size: 3lh;
|
|
308
|
-
max-block-size: var(--textarea-autosize-max, 12lh);
|
|
309
|
-
resize: vertical;
|
|
310
|
-
}
|
|
309
|
+
/* BB.W-BUTTON-GLASS (e) — the optional refraction-edge opt-in. CONSUMES the
|
|
310
|
+
EXISTING refraction axis (glass-refract.css, the `#glass-refract` SVG-filter
|
|
311
|
+
lens, `@supports (backdrop-filter: url(#…))`-gated with the un-gated blur base
|
|
312
|
+
as the off-Chromium floor) — NEVER a button-local lens fork. BB.W-LENSING landed
|
|
313
|
+
the squircle bevel-profile + the typed `--glass-refract` axis + the `.glass-lens`
|
|
314
|
+
opt-in class (renamed off `.glass-refract`, clean break); the button COMPOSES
|
|
315
|
+
`.glass-lens`.
|
|
311
316
|
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
317
|
+
A `<Button :liquid>` adds `.glass-lens` to the host; on a supporting engine the
|
|
318
|
+
button reads the edge-bend over its blur base. The base recipe (the
|
|
319
|
+
`@supports`-gated `.glass-lens` rule in glass-refract.css) already paints the
|
|
320
|
+
displacement filter over `--glass-blur-resting`; this block adds NOTHING to the
|
|
321
|
+
filter graph (it would fork the axis) — the button merely COMPOSES `.glass-lens`.
|
|
316
322
|
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
323
|
+
The `:active` LENS-SWELL is the CHEAP coupled read, NOT a per-frame displacement-
|
|
324
|
+
map re-rasterize (the §Triumvirate / R2 budget: `feDisplacementMap` is resize-
|
|
325
|
+
expensive — only the `scale` attr animates without rebuilding the map, and even
|
|
326
|
+
that re-rasterizes; the one-refractive-element-per-route budget forbids the per-
|
|
327
|
+
frame cost). The swell is the press SQUISH (Button.vue, the `useLiquidFlex`
|
|
328
|
+
reciprocal X/Y deform) + the coupled `--glass-specular-intensity-active` gleam
|
|
329
|
+
lift on the SAME `--glass-btn-press-t` drive — the glass reads as DEFORMING under
|
|
330
|
+
the press without re-rasterizing the lens map. Off-Chromium the whole arm degrades
|
|
331
|
+
to the un-gated `.btn-glass` blur+tint base (the no-workaround floor). The
|
|
332
|
+
`--glass-btn-press-t` typed drive (property-regs.css) is the ONE press scalar the
|
|
333
|
+
squish + the gleam coupling both read. */
|
|
334
|
+
.btn-glass.glass-lens {
|
|
335
|
+
/* The press drive scalar (0 rest → 1 pressed) Button.vue writes off the spring;
|
|
336
|
+
the resting default is 0 so an unwired refraction button is the static lens.
|
|
337
|
+
The `:active` LENS-SWELL on this drive lives in material.css's `.glass-lens`
|
|
338
|
+
block (`--glass-refract` bumps on press); this block only floors the drive. */
|
|
339
|
+
--glass-btn-press-t: 0;
|
|
326
340
|
}
|
|
327
341
|
|
|
342
|
+
/* The .input-pill / .control-surface form-control REST register is carved into
|
|
343
|
+
glass/control-surfaces.css (a cohesive sub-concern, the no-god-module re-drain)
|
|
344
|
+
— @import-ed by glass.css IMMEDIATELY AFTER surfaces.css, same @layer components,
|
|
345
|
+
same source order (byte-isomorphic). */
|
|
346
|
+
|
|
328
347
|
/* ── BA.W-PAGER — the glass pager pill chassis (.glass-pager-ring) ──────────
|
|
329
348
|
The ONE pager-CHASSIS ring register: a `--radius-pill` glass-floating pill
|
|
330
349
|
(the DockRail-chip recipe — `--glass-bg-floating` + `--glass-blur-floating`
|