@mkbabb/glass-ui 4.1.0 → 4.2.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/dist/{CardAction-8whJrLWt.js → CardAction-DlVP2evz.js} +58 -54
- package/dist/{CommandShortcut-D3yxgHNn.js → CommandShortcut-By-VQcLO.js} +3 -3
- package/dist/{ConfiguratorRow-CaP7U3ZA.js → ConfiguratorRow-YMXdINHx.js} +3 -3
- package/dist/{ContextMenuContent-B3ZsheLV.js → ContextMenuContent-CMWn6huB.js} +1 -1
- package/dist/{ContextMenuSubContent-DDRID3qC.js → ContextMenuSubContent-DvwWCUc0.js} +1 -1
- package/dist/{DataTable-Bc9kUtu_.js → DataTable-C4tG3eIJ.js} +4 -4
- package/dist/DialogContent-D8U9ZfWS.js +121 -0
- package/dist/{DialogScrollContent-TTuovQst.js → DialogScrollContent-BMekN7gq.js} +1 -1
- package/dist/{FadingScroll-DLRbH5Xr.js → FadingScroll-P8B30rAD.js} +1 -1
- package/dist/{HoverCardContent-Bel1gdLZ.js → HoverCardContent-DAmGYglo.js} +1 -1
- package/dist/{HoverPopover-BcIxvyqZ.js → HoverPopover-DYpBOzzF.js} +1 -1
- package/dist/{IconChip-DhbdGdFQ.js → IconChip-CQa7XZYc.js} +7 -5
- package/dist/{IconTooltip-B0zimd2H.js → IconTooltip-_df8M3xm.js} +1 -1
- package/dist/{Input-Cg9DF62r.js → Input-CyU4_hIC.js} +2 -2
- package/dist/{MetricBadge-RHdBP72w.js → MetricBadge-DQt_dGah.js} +1 -1
- package/dist/{Notification-CphK7AAm.js → Notification-BlSPJhtZ.js} +1 -1
- package/dist/{NumberFieldContent-D8cXeyO4.js → NumberFieldContent-Z3VxGu_6.js} +3 -3
- package/dist/PagerDots-CYlqVFd4.js +196 -0
- package/dist/PaperBackdrop-DYWgrnh8.js +42 -0
- package/dist/{PopoverContent-DL7E6vJP.js → PopoverContent-BuKyHZSz.js} +2 -2
- package/dist/{Progress-CnqB7gLm.js → Progress-C9SsdwIZ.js} +1 -1
- package/dist/{ScrollingText-CTZbA_cG.js → ScrollingText-DY3W1Jfh.js} +2 -2
- package/dist/{SelectScrollDownButton-DAKCBEdW.js → SelectScrollDownButton-3mFHX_R-.js} +15 -12
- package/dist/{Switch-B8RscmRu.js → Switch-uf-UKPA2.js} +1 -1
- package/dist/{Toaster-D9qIHjBI.js → Toaster-ozrsR4mP.js} +1 -1
- package/dist/{ToggleGroupItem-BLtr3TJq.js → ToggleGroupItem-BpzaVzNm.js} +4 -4
- package/dist/{TooltipProvider-BJ_Y5EGX.js → TooltipProvider-QQVM_80r.js} +1 -1
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +1 -0
- package/dist/api/types-extra.d.ts +3 -1
- package/dist/api.js +2 -2
- package/dist/aurora.js +163 -131
- package/dist/badge-Bt14yURi.js +72 -0
- package/dist/badge.js +1 -1
- package/dist/border-progress.js +1 -1
- package/dist/button-D1W9PrzI.js +130 -0
- package/dist/button.js +1 -1
- package/dist/canvas.js +1 -1
- package/dist/card.js +1 -1
- package/dist/carousel.js +227 -98
- package/dist/chipVariants-BJQ0I2kB.js +18 -0
- package/dist/collapsible.js +1 -1
- package/dist/color.js +1 -1
- package/dist/command.js +1 -1
- package/dist/components/custom/aurora/composables/glSetup.d.ts +1 -1
- package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +1 -1
- package/dist/components/custom/aurora/constants/presets.d.ts +29 -0
- package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -1
- package/dist/components/custom/aurora/index.d.ts +1 -1
- package/dist/components/custom/concentric/Concentric.vue.d.ts +15 -12
- package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +8 -3
- package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +8 -4
- package/dist/components/custom/concentric/composables/levelField.d.ts +50 -0
- package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +7 -4
- package/dist/components/custom/concentric/composables/useConcentric.d.ts +3 -3
- package/dist/components/custom/concentric/constants.d.ts +62 -41
- package/dist/components/custom/concentric/index.d.ts +2 -2
- package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +2 -2
- package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -1
- package/dist/components/custom/configurator/Configurator.vue.d.ts +23 -2
- package/dist/components/custom/configurator/index.d.ts +1 -1
- package/dist/components/custom/dock/DockDropdownTrigger.vue.d.ts +4 -3
- package/dist/components/custom/dock/DockIconButton.vue.d.ts +10 -0
- package/dist/components/custom/dock/DockPopoverTrigger.vue.d.ts +19 -0
- package/dist/components/custom/dock/DockStack.vue.d.ts +35 -22
- package/dist/components/custom/dock/GlassDock.vue.d.ts +19 -3
- package/dist/components/custom/dock/composables/dockMorphContext.d.ts +18 -32
- package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +76 -145
- package/dist/components/custom/dock/composables/index.d.ts +1 -0
- package/dist/components/custom/dock/composables/railProjection.d.ts +45 -0
- package/dist/components/custom/dock/composables/useDockContextSilhouette.d.ts +192 -0
- package/dist/components/custom/dock/composables/useDockFission.d.ts +158 -0
- package/dist/components/custom/dock/composables/useDockItemDrag.d.ts +18 -0
- package/dist/components/custom/dock/composables/useDockShellProps.d.ts +38 -0
- package/dist/components/custom/dock/constants.d.ts +14 -3
- package/dist/components/custom/dock/index.d.ts +3 -0
- package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +21 -0
- package/dist/components/custom/dot-flow-field/composables/flowGLProgram.d.ts +8 -0
- package/dist/components/custom/dot-flow-field/composables/flowSetupGL.d.ts +9 -0
- package/dist/components/custom/dot-flow-field/composables/flowSetupGLFlow.d.ts +12 -0
- package/dist/components/custom/dot-flow-field/composables/flowSetupWGPU.d.ts +7 -0
- package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +28 -2
- package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +18 -17
- package/dist/components/custom/dot-flow-field/constants.d.ts +51 -0
- package/dist/components/custom/dot-flow-field/index.d.ts +1 -1
- package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -1
- package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +29 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +2 -1
- package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +10 -1
- package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +7 -0
- package/dist/components/custom/dot-matrix/constants.d.ts +14 -0
- package/dist/components/custom/dot-matrix/index.d.ts +1 -1
- package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +2 -2
- package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -1
- package/dist/components/custom/fourier-field/FourierField.vue.d.ts +4 -0
- package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +9 -0
- package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +11 -0
- package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +16 -1
- package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +22 -1
- package/dist/components/custom/fourier-field/constants.d.ts +53 -0
- package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +1 -1
- package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -1
- package/dist/components/custom/goo-blob/composables/easing.d.ts +1 -0
- package/dist/components/custom/goo-blob/composables/useBlobSatellites.d.ts +1 -0
- package/dist/components/custom/goo-blob/constants.d.ts +26 -1
- 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 -1
- package/dist/components/custom/goo-blob/types.d.ts +50 -1
- package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +32 -3
- package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +14 -4
- package/dist/components/custom/goo-dot-matrix/constants.d.ts +55 -16
- package/dist/components/custom/goo-dot-matrix/index.d.ts +1 -1
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +2 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-filter/GooFilter.vue.d.ts +22 -0
- package/dist/components/custom/goo-filter/index.d.ts +1 -0
- package/dist/components/custom/handmark/brush.d.ts +17 -17
- package/dist/components/custom/handmark/constants.d.ts +28 -8
- package/dist/components/custom/handmark/geometry.d.ts +34 -1
- package/dist/components/custom/handmark/index.d.ts +1 -1
- package/dist/components/custom/icon-chip/types.d.ts +10 -0
- package/dist/components/custom/paper-backdrop/PaperBackdrop.vue.d.ts +18 -0
- package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +44 -29
- package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +2 -0
- package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +3 -1
- package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +2 -2
- package/dist/components/custom/paper-grid/constants.d.ts +44 -6
- package/dist/components/custom/paper-grid/index.d.ts +2 -2
- package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +1 -1
- package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -1
- package/dist/components/custom/selectable-chip/chipVariants.d.ts +39 -0
- package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +12 -20
- package/dist/components/custom/tabs/constants.d.ts +16 -8
- package/dist/components/custom/timeline/ScrubberTimeline.vue.d.ts +16 -0
- package/dist/components/custom/timeline/geometry.d.ts +0 -8
- package/dist/components/custom/toggle-chip/index.d.ts +15 -4
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +12 -10
- package/dist/components/ui/_shared/useSurfaceAxis.d.ts +17 -3
- package/dist/components/ui/badge/Badge.vue.d.ts +14 -0
- package/dist/components/ui/badge/index.d.ts +1 -0
- package/dist/components/ui/button/Button.vue.d.ts +1 -0
- package/dist/components/ui/card/Card.vue.d.ts +1 -1
- package/dist/components/ui/card/ScrollCard.vue.d.ts +1 -1
- package/dist/components/ui/carousel/CarouselContent.vue.d.ts +2 -4
- package/dist/components/ui/dialog/DialogContent.vue.d.ts +9 -0
- package/dist/components/ui/drawer/Drawer.vue.d.ts +33 -14
- package/dist/components/ui/drawer/constants.d.ts +8 -6
- package/dist/components/ui/drawer/index.d.ts +12 -2
- package/dist/components/ui/select/SelectContent.vue.d.ts +9 -0
- package/dist/components/ui/slider/Slider.vue.d.ts +9 -0
- package/dist/composables/dom/index.d.ts +1 -0
- package/dist/composables/dom/useDragVelocity.d.ts +46 -0
- package/dist/composables/glass/wave/index.d.ts +4 -0
- package/dist/composables/glass/wave/waveField.d.ts +115 -0
- package/dist/composables/glass/wave/waveField.glsl.d.ts +1 -0
- package/dist/composables/glass/wave/waveField.wgsl.d.ts +1 -0
- package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +95 -2
- package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +40 -2
- package/dist/composables/glass/webgpu/index.d.ts +1 -0
- package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +37 -0
- package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +49 -2
- package/dist/composables/glass/webgpu/webgpuDevice.d.ts +1 -1
- package/dist/composables/motion/core/index.d.ts +4 -0
- package/dist/composables/motion/core/useHaptic.d.ts +48 -0
- package/dist/composables/motion/core/writeVelocityWeight.d.ts +31 -0
- package/dist/composables/motion/index.d.ts +2 -0
- package/dist/composables/motion/springPresets.d.ts +16 -17
- package/dist/composables/motion/suite.d.ts +2 -2
- package/dist/composables/motion/useBloomUp.d.ts +97 -0
- package/dist/composables/motion/useCelebrationBurst.d.ts +50 -0
- package/dist/composables/motion/useDockCtaReceive.d.ts +10 -28
- package/dist/composables/motion/useGooMorph.d.ts +72 -0
- package/dist/composables/motion/useLiquidFlex.d.ts +18 -0
- package/dist/composables/motion/useLiquidMorph.d.ts +108 -0
- package/dist/composables/motion/useLiquidPress.d.ts +12 -0
- package/dist/composables/motion/useLiquidReveal.d.ts +7 -4
- package/dist/composables/motion/useMorphField.d.ts +157 -0
- package/dist/composables/motion/useScrollPin.d.ts +49 -0
- package/dist/composables/motion/useScrollScene.d.ts +67 -0
- package/dist/concentric.js +532 -563
- package/dist/configurator.js +2 -2
- package/dist/confirm-dialog.js +3 -3
- package/dist/constellation.js +4 -4
- package/dist/context-menu.js +2 -2
- package/dist/controls.js +2 -2
- package/dist/createCanvasLifecycle-CuCrGRfq.js +173 -0
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/deck.js +1 -1
- package/dist/dialog.js +3 -3
- package/dist/dock.js +1163 -618
- package/dist/dockContext-gFVS2gMg.js +18 -0
- package/dist/dom.js +7 -6
- package/dist/dot-flow-field.js +1114 -523
- package/dist/dot-matrix.js +348 -204
- package/dist/drawer.js +106 -96
- package/dist/{dropdown-menu-aJmV5SqE.js → dropdown-menu-CCfcCQ68.js} +3 -3
- package/dist/dropdown-menu.js +1 -1
- package/dist/easing.js +3 -3
- package/dist/expandable-container.js +2 -2
- package/dist/fading-scroll.js +1 -1
- package/dist/forms.js +6 -6
- package/dist/fourier-field.js +441 -197
- 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 +139 -135
- package/dist/goo-blob.js +11 -9
- package/dist/goo-dot-matrix.js +418 -198
- package/dist/handmark.js +137 -94
- 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 -0
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +7 -7
- package/dist/metric-badge.js +1 -1
- package/dist/metric-cell.js +1 -1
- package/dist/metric-stack.js +1 -1
- package/dist/motion-core.js +42 -39
- package/dist/motion-curves.js +20 -14
- package/dist/motion.js +226 -26
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/pager-dots.js +1 -1
- package/dist/paper-backdrop.js +1 -1
- package/dist/paper-grid.js +315 -342
- package/dist/paperGrid-CXCSMbZ1.js +191 -0
- package/dist/popover.js +1 -1
- package/dist/{presets-CvOUqtdY.js → presets-QvYgnFIZ.js} +13 -12
- package/dist/progress.js +1 -1
- package/dist/pulse.js +1 -1
- package/dist/reactive.js +2 -2
- package/dist/{resolveCanvasColor-yPyIpJt9.js → resolveCanvasColor-DsSJk06I.js} +5 -5
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +7 -7
- package/dist/select.js +3 -3
- package/dist/selectable-chip.js +18 -35
- package/dist/separator.js +1 -1
- package/dist/{sheet-B2flBfLH.js → sheet-DUCIoOe0.js} +3 -3
- package/dist/sheet.js +1 -1
- package/dist/sidebar.js +1 -1
- package/dist/slider-CcICPe3u.js +149 -0
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +3 -3
- package/dist/{spectrum-walk-BVzA7Biz.js → spectrum-walk-cBNSx_zm.js} +1 -1
- package/dist/springPresets-DfoQ6XRY.js +64 -0
- package/dist/stacked-icons.js +54 -39
- package/dist/styles/cards.css +202 -2
- package/dist/styles/components.css +1 -3
- package/dist/styles/configurator.css +172 -7
- package/dist/styles/critical-partition.mjs +35 -2
- package/dist/styles/deferred.css +2 -0
- package/dist/styles/dock/adaptive-legibility.css +119 -0
- package/dist/styles/dock/density.css +18 -10
- package/dist/styles/dock/fission-bridge.css +552 -0
- package/dist/styles/dock/layers.css +88 -124
- package/dist/styles/dock/morph-bridge.css +15 -2
- package/dist/styles/dock/morph.css +45 -114
- package/dist/styles/dock/shape.css +137 -11
- package/dist/styles/dock/shell.css +1 -3
- package/dist/styles/dock/stack-rail.css +95 -7
- package/dist/styles/dock-controls/icon-button.css +34 -2
- package/dist/styles/dock-controls/triggers.css +23 -1
- package/dist/styles/dock-controls.css +18 -0
- package/dist/styles/dock.css +16 -1
- package/dist/styles/drawer.css +166 -0
- package/dist/styles/glass/glass-atom.css +244 -0
- package/dist/styles/glass/glass-capsule.css +143 -0
- package/dist/styles/glass/glass-chip.css +215 -0
- package/dist/styles/glass/liquid-enter.css +252 -0
- package/dist/styles/glass/liquid-morph.css +850 -0
- package/dist/styles/glass/material.css +70 -1
- package/dist/styles/glass/reveal.css +22 -2
- package/dist/styles/glass/rim.css +13 -1
- package/dist/styles/glass/surfaces.css +18 -8
- package/dist/styles/glass.css +11 -0
- package/dist/styles/icon-chip.css +45 -0
- package/dist/styles/index.css +11 -0
- package/dist/styles/jubilance.css +65 -0
- package/dist/styles/motion/morph-field.css +229 -0
- package/dist/styles/paper.css +230 -14
- package/dist/styles/scroll-choreography.css +135 -78
- package/dist/styles/segmented-tabs.css +85 -51
- package/dist/styles/select.css +151 -0
- package/dist/styles/tokens/color-radius.css +1 -1
- package/dist/styles/tokens/dark-arm.css +57 -8
- package/dist/styles/tokens/glass-deep.css +8 -4
- package/dist/styles/tokens/glass-fx.css +80 -2
- package/dist/styles/tokens/glass.css +140 -8
- package/dist/styles/tokens/light-dark.css +2 -2
- package/dist/styles/tokens/property-regs.css +144 -0
- package/dist/styles/tokens/scale-paper.css +20 -8
- package/dist/styles/tokens/scheme-motion.css +92 -157
- package/dist/styles/tokens/scheme-spring.css +239 -0
- package/dist/styles/tokens/scroll-tokens.css +15 -15
- package/dist/styles/tokens/shadow.css +73 -13
- package/dist/styles/tokens.css +9 -2
- package/dist/styles/utilities/btn.css +70 -0
- package/dist/switch.js +1 -1
- package/dist/tabs.js +198 -181
- package/dist/timeline.js +241 -206
- package/dist/toast.js +1 -1
- package/dist/toggle-chip.js +14 -41
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{uniformBridgeWGPU-CtAKl45L.js → uniformBridgeWGPU-BCse1SHU.js} +191 -127
- package/dist/{useAnimatedNumber-CLrxicG9.js → useAnimatedNumber-BntskVdQ.js} +1 -1
- package/dist/{useConfiguratorState-4xblKfwd.js → useConfiguratorState-22BcULzF.js} +37 -35
- package/dist/useDockCtaReceive-DX7RDb6_.js +88 -0
- package/dist/{useDragMorph-BUgAC-zK.js → useDragMorph-DGLSewwB.js} +2 -2
- package/dist/useDragVelocity-CjcfX3dA.js +57 -0
- package/dist/useGooMorph-Cs13NgYL.js +104 -0
- package/dist/useGpuSubstrate-Ceet70xq.js +347 -0
- package/dist/{useViewTransition-CUI1nAgn.js → useHaptic-CPz5BT9I.js} +40 -1
- package/dist/{useLiquidFlex-UmA6LMZu.js → useLiquidFlex-Cc6PjVJD.js} +8 -3
- package/dist/useLiquidPress-CtOQ8Z0_.js +43 -0
- package/dist/useMorphField-ogBM7ubT.js +141 -0
- package/dist/{useScrollChrome-D66AVP7C.js → useScrollChrome-JuImi1DM.js} +2 -2
- package/dist/{useSpringMount-BWDnKIwh.js → useSpringMount-DFxtzmkR.js} +1 -1
- package/dist/{useSpringPress-B1-Czp-V.js → useSpringPress-VM9RgVq3.js} +1 -1
- package/dist/{useSurfaceAxis-g0NloYEF.js → useSurfaceAxis-Ci7Dnaw2.js} +1 -1
- package/dist/{useTouchGate-CBZTD4SD.js → useTouchGate-B1Lf9XqN.js} +1 -1
- package/dist/virtual.js +1 -1
- package/dist/watercolor-dot.js +16 -26
- package/dist/writeVelocityWeight-Bh83xZfs.js +19 -0
- package/package.json +14 -3
- package/src/styles/cards.css +202 -2
- package/src/styles/configurator.css +172 -7
- package/src/styles/critical-partition.mjs +35 -2
- package/src/styles/dock/adaptive-legibility.css +119 -0
- package/src/styles/dock/density.css +18 -10
- package/src/styles/dock/fission-bridge.css +552 -0
- package/src/styles/dock/layers.css +88 -124
- package/src/styles/dock/morph-bridge.css +15 -2
- package/src/styles/dock/morph.css +45 -114
- package/src/styles/dock/shape.css +137 -11
- package/src/styles/dock/shell.css +1 -3
- package/src/styles/dock/stack-rail.css +95 -7
- package/src/styles/dock-controls/icon-button.css +34 -2
- package/src/styles/dock-controls/triggers.css +23 -1
- package/src/styles/dock-controls.css +18 -0
- package/src/styles/dock.css +16 -1
- package/src/styles/drawer.css +164 -0
- package/src/styles/glass/glass-atom.css +244 -0
- package/src/styles/glass/glass-capsule.css +143 -0
- package/src/styles/glass/glass-chip.css +215 -0
- package/src/styles/glass/liquid-enter.css +252 -0
- package/src/styles/glass/liquid-morph.css +850 -0
- package/src/styles/glass/material.css +70 -1
- package/src/styles/glass/reveal.css +22 -2
- package/src/styles/glass/rim.css +13 -1
- package/src/styles/glass/surfaces.css +18 -8
- package/src/styles/glass.css +11 -0
- package/src/styles/icon-chip.css +45 -0
- package/src/styles/index.css +11 -0
- package/src/styles/jubilance.css +65 -0
- package/src/styles/motion/morph-field.css +229 -0
- package/src/styles/paper.css +230 -14
- package/src/styles/scroll-choreography.css +135 -78
- package/src/styles/segmented-tabs.css +85 -47
- package/src/styles/select.css +151 -0
- package/src/styles/tokens/color-radius.css +1 -1
- package/src/styles/tokens/dark-arm.css +57 -8
- package/src/styles/tokens/glass-deep.css +8 -4
- package/src/styles/tokens/glass-fx.css +80 -2
- package/src/styles/tokens/glass.css +140 -8
- package/src/styles/tokens/light-dark.css +2 -2
- package/src/styles/tokens/property-regs.css +144 -0
- package/src/styles/tokens/scale-paper.css +20 -8
- package/src/styles/tokens/scheme-motion.css +92 -157
- package/src/styles/tokens/scheme-spring.css +239 -0
- package/src/styles/tokens/scroll-tokens.css +15 -15
- package/src/styles/tokens/shadow.css +73 -13
- package/src/styles/tokens.css +9 -2
- package/src/styles/utilities/btn.css +70 -0
- package/dist/DialogContent-6JtTB5x2.js +0 -106
- package/dist/PagerDots-Cjx96la-.js +0 -98
- package/dist/PaperBackdrop-CqwjnfLv.js +0 -31
- package/dist/badge-D9XWW4GT.js +0 -53
- package/dist/button-5dY1Dvhd.js +0 -125
- package/dist/components/custom/concentric/composables/ringField.d.ts +0 -85
- package/dist/createCanvasLifecycle-Gh45Ce-p.js +0 -93
- package/dist/dockContext-BNfyPLe9.js +0 -17
- package/dist/slider-2A0rPn79.js +0 -142
- package/dist/springPresets-Ce7OYCm9.js +0 -46
- package/dist/useDockCtaReceive-DfFkmgL1.js +0 -82
- package/dist/useGpuSubstrate-4pTcp6mX.js +0 -294
- package/dist/useLiquidPress-BooG97RY.js +0 -39
- /package/dist/{CollapsibleContent-68dEXIAl.js → CollapsibleContent-D7UNsXQr.js} +0 -0
- /package/dist/{DialogFooter-9phqcRIS.js → DialogFooter-DoLy0ewI.js} +0 -0
- /package/dist/{InstrumentChassis-CxsHSyMj.js → InstrumentChassis-UUJX0-mW.js} +0 -0
- /package/dist/{Label-C2ejNWeC.js → Label-B_HPqi_q.js} +0 -0
- /package/dist/{ModalOverlay-D1VrWyoi.js → ModalOverlay-DfAf7o15.js} +0 -0
- /package/dist/{SelectGroup-BFiod7X2.js → SelectGroup-Dcczq44n.js} +0 -0
- /package/dist/{SelectSeparator-C2UGOkXF.js → SelectSeparator-CNRGG7Ew.js} +0 -0
- /package/dist/{Separator-DQcwC2TR.js → Separator-Cf9-JFgi.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-C1je1s0u.js → _plugin-vue_export-helper-gLzyemvl.js} +0 -0
- /package/dist/{color-Cs0-oxYL.js → color-B9jZdhJX.js} +0 -0
- /package/dist/{compile-nZ1xVYTp.js → compile-INR_tPk_.js} +0 -0
- /package/dist/{constants--C2DkLW8.js → constants-BWj7DkMn.js} +0 -0
- /package/dist/{createContext-CpBNTRMI.js → createContext-Cd23P9j0.js} +0 -0
- /package/dist/{dotMatrixField-D_x9_1qq.js → dotMatrixField-CRO0ZFk4.js} +0 -0
- /package/dist/{flow.glsl-B2P7e0MT.js → flow.glsl-DqEGRpl4.js} +0 -0
- /package/dist/{math-Eb0w3LqU.js → math-5RcIgCB4.js} +0 -0
- /package/dist/{menuItemVariants-D8VNHq22.js → menuItemVariants-DAXquKja.js} +0 -0
- /package/dist/{prng-B-d9eYX8.js → prng-B5tIXTtj.js} +0 -0
- /package/dist/{procedural-color.wgsl-m7Zgv35j.js → procedural-color.wgsl-C1Y5PkM6.js} +0 -0
- /package/dist/{scrollReader-DI1NWxUw.js → scrollReader-rc3Ns_NM.js} +0 -0
- /package/dist/{useControlSize-SH1UmJCi.js → useControlSize-DAZ062x7.js} +0 -0
- /package/dist/{useFuzzySearch-DIhcYtcw.js → useFuzzySearch-0fTYOhS4.js} +0 -0
- /package/dist/{useGlobalDark-CmjB9E32.js → useGlobalDark-B4HO9LXG.js} +0 -0
- /package/dist/{useIntersectionPause-Dbozzjgm.js → useIntersectionPause-DO8Vl4gs.js} +0 -0
- /package/dist/{useInterval-CNdua40W.js → useInterval-BVUI-sez.js} +0 -0
- /package/dist/{useKeyboardShortcuts-BPRp33Im.js → useKeyboardShortcuts-BEut54Tk.js} +0 -0
- /package/dist/{usePointerVelocityField-QLsy3_kv.js → usePointerVelocityField-BrkqZFhj.js} +0 -0
- /package/dist/{useResizeObserver-Bpoi7tRE.js → useResizeObserver-DdEn3v2f.js} +0 -0
- /package/dist/{useResolveTokenColor-vAylyR0x.js → useResolveTokenColor-ChOnCckA.js} +0 -0
- /package/dist/{useScrollProgress-c3yxmH6a.js → useScrollProgress-A0M6qRl7.js} +0 -0
- /package/dist/{useSortable-BVqlJRBR.js → useSortable-DQV_UNDw.js} +0 -0
- /package/dist/{useTextHighlight-NmBM5V_4.js → useTextHighlight-Bma3UlKA.js} +0 -0
- /package/dist/{useTimer-BHJOKr35.js → useTimer-BBLGPXR8.js} +0 -0
- /package/dist/{useUserInvalidAria-y5namzeE.js → useUserInvalidAria-EmmwWPOl.js} +0 -0
- /package/dist/{useViewportReady-anbac3m6.js → useViewportReady-C9pYnn7K.js} +0 -0
- /package/dist/{vReveal-D9k0jADx.js → vReveal-CT1KtwZA.js} +0 -0
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
* contract (AX.W06 carve).
|
|
3
3
|
*
|
|
4
4
|
* Carved from the dock.css god-module (slice 25). This partial owns the dock's
|
|
5
|
-
* layer model: the `.dock-layers` grid container + the
|
|
6
|
-
* (
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* layer model: the `.dock-layers` grid container + the ratio-FREE convex-blend
|
|
6
|
+
* box-size morph (BD.W-DOCK-CORE — `scale: var(--dock-size-scale)` from a
|
|
7
|
+
* `--dock-live` blend of two measure-ONCE endpoints `--dock-expanded-px`/
|
|
8
|
+
* `--dock-collapsed-px`, BOUNDED by construction off the ONE `--dock-morph-t`
|
|
9
|
+
* scalar; NO per-swap `from/to` ratio, NO per-frame layout-axis lerp), the unified
|
|
9
10
|
* `.is-active` / `.is-leaving` 3-state crossfade + hit-test contract (the
|
|
10
11
|
* a11y-006 anchor), the per-child reveal stagger (the `--dock-stagger-*` ramp),
|
|
11
12
|
* and the `layout="grid"` 2D tile-grid arrangement. The `.dock-layer-group` /
|
|
@@ -39,114 +40,63 @@
|
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
|
|
42
|
-
/*
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
the
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
`
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
43
|
+
/* ── BD.W-DOCK-CORE — the ratio-FREE convex-blend SIZE (the width-seizure cure) ──
|
|
44
|
+
THE BUG THIS RETIRES: the prior morph drove the visible size by an UNBOUNDED
|
|
45
|
+
per-swap `from/to` ratio — `--dock-root-scale = max(ratio + (1−ratio)·t, 0.06)`,
|
|
46
|
+
a FLOOR with NO CEILING. A degenerate `to` (the FLIP measure racing the content
|
|
47
|
+
layout) ran `ratio = from/max(to,1px)` to ~56 → `scaleX(56)` ≈ 2451px on
|
|
48
|
+
collapse, or an inversion at the spring's >1 overshoot peak. `transform-origin:
|
|
49
|
+
center` kept the centroid clean (cxRange 0), which is exactly why every prior
|
|
50
|
+
judge measuring the centroid PASSED while the WIDTH detonated. The whole
|
|
51
|
+
per-swap measure-and-arm pipeline + the `--dock-root-*`/`--dock-morph-ratio/scale`
|
|
52
|
+
rules are DELETED (clean break, no legacy).
|
|
53
|
+
|
|
54
|
+
THE CURE — a convex blend of two POSITIVE measure-ONCE endpoints. The dock
|
|
55
|
+
measures its expanded content span + its collapsed box ONCE per content change
|
|
56
|
+
(`useDockExpandedSize` writes `--dock-expanded-px`/`--dock-collapsed-px`, NOT a
|
|
57
|
+
per-swap rAF race) and the visible size is `--dock-live = collapsed +
|
|
58
|
+
(expanded − collapsed)·clamp(0, --dock-morph-t, 1)` → BOUNDED by construction:
|
|
59
|
+
a convex blend can NEVER exceed the larger endpoint nor invert below the smaller,
|
|
60
|
+
regardless of spring overshoot (the `clamp(0,t,1)` caps the size term; the >1
|
|
61
|
+
excursion routes to the orthogonal `--dock-punch-stretch` channel). No ratio, no
|
|
62
|
+
`from>to` degeneracy, no floor guard (the two endpoints ARE the floors). The box
|
|
63
|
+
RESERVES `--dock-expanded-px` (ONE layout solve, CDP-Layout-flat) and the visible
|
|
64
|
+
size rides `scale: var(--dock-size-scale)` from `transform-origin: center` —
|
|
65
|
+
container-justify-agnostic, center-out by construction (left-anchored / centred /
|
|
66
|
+
auto-margin docks ALL grow center-out, no justify detection, no translate). The
|
|
67
|
+
endpoints default to a no-op (`expanded == collapsed → scale 1`) so an unmeasured
|
|
68
|
+
dock paints neutral. The actual `scale:` property is composed in shape.css (folded
|
|
69
|
+
WITH the `--stretch` squish × the `--dock-punch-stretch` cartoon punch on ONE
|
|
70
|
+
compositor channel). KEEP `--dock-morph-t` (the shipped token — NO rename). */
|
|
71
|
+
.glass-dock[data-morphing] {
|
|
72
|
+
--dock-live: calc(
|
|
73
|
+
var(--dock-collapsed-px, var(--dock-expanded-px, 0px)) +
|
|
74
|
+
(
|
|
75
|
+
var(--dock-expanded-px, 0px) -
|
|
76
|
+
var(--dock-collapsed-px, var(--dock-expanded-px, 0px))
|
|
77
|
+
) *
|
|
78
|
+
clamp(0, var(--dock-morph-t, 1), 1)
|
|
63
79
|
);
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
§2.2 fix (2)). Flooring the scale at ~6% bottoms a degenerate ratio at a
|
|
69
|
-
thin-but-VISIBLE glass sliver (clipped, but never white), recovered by the
|
|
70
|
-
next correct measurement one frame later. A SAFETY NET: a real measurement is
|
|
71
|
-
always well above 6%, so the `max()` is inert on the healthy path (the
|
|
72
|
-
gestalt of a healthy morph is byte-unchanged). */
|
|
73
|
-
--dock-morph-scale: max(
|
|
74
|
-
calc(
|
|
75
|
-
var(--dock-morph-ratio) +
|
|
76
|
-
(1 - var(--dock-morph-ratio)) * var(--dock-morph-t, 0)
|
|
77
|
-
),
|
|
78
|
-
0.06
|
|
80
|
+
--dock-size-scale: clamp(
|
|
81
|
+
0.06,
|
|
82
|
+
calc(var(--dock-live) / max(var(--dock-expanded-px, 1px), 1px)),
|
|
83
|
+
1
|
|
79
84
|
);
|
|
80
|
-
|
|
81
|
-
the live scalar calc. The transform composites over it.
|
|
82
|
-
BC.W-LIQUID-MORPH — the RESERVE FLOOR: `max(var(--dock-morph-to),
|
|
83
|
-
var(--dock-morph-min))` so a `to:0` measurement reserves the collapsed-pill
|
|
84
|
-
minimum (~44px), never a zero-width box (the white morph root). Inert above
|
|
85
|
-
the floor on every healthy measurement. */
|
|
86
|
-
inline-size: max(var(--dock-morph-to), var(--dock-morph-min, 2.75rem));
|
|
87
|
-
transform: scaleX(var(--dock-morph-scale));
|
|
88
|
-
transform-origin: left center;
|
|
85
|
+
transform-origin: center center;
|
|
89
86
|
will-change: transform;
|
|
90
87
|
}
|
|
91
88
|
|
|
92
|
-
/*
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
drives the morph-axis size as a `calc()` of the SAME `--dock-morph-t` scalar the
|
|
99
|
-
spring glides — NOT a `transition: width` (proof:no-layout-animation stays GREEN;
|
|
100
|
-
a `calc()` over the scalar is not a transition). The span is armed inline ONLY by
|
|
101
|
-
the outer collapse↔expand swap; a nested-only pane-swap leaves it unset → the
|
|
102
|
-
fallback-less `var()` invalidates the rule → the box returns to its at-rest
|
|
103
|
-
shrink-wrap (the inert path). Horizontal morphs `inline-size`, vertical morphs
|
|
104
|
-
`block-size` (matching the orchestrator's `morphAxisProp` axis pick). */
|
|
89
|
+
/* The box RESERVES its expanded footprint (ONE layout solve — the page reflows
|
|
90
|
+
ONCE to the final size, CDP-Layout stays FLAT) while the visible size scales
|
|
91
|
+
toward it. Horizontal reserves `inline-size`, vertical reserves `block-size`,
|
|
92
|
+
matching the morph axis. The `.dock-layers` content lays out at its natural
|
|
93
|
+
size behind the clip (shell.css) — that natural span is the `--dock-expanded-px`
|
|
94
|
+
the ResizeObserver reads. */
|
|
105
95
|
.glass-dock[data-morphing]:not(.vertical) {
|
|
106
|
-
inline-size:
|
|
107
|
-
var(--dock-root-morph-from) +
|
|
108
|
-
(var(--dock-root-morph-to) - var(--dock-root-morph-from)) *
|
|
109
|
-
var(--dock-morph-t, 0)
|
|
110
|
-
);
|
|
96
|
+
inline-size: var(--dock-expanded-px);
|
|
111
97
|
}
|
|
112
98
|
.glass-dock[data-morphing].vertical {
|
|
113
|
-
block-size:
|
|
114
|
-
var(--dock-root-morph-from) +
|
|
115
|
-
(var(--dock-root-morph-to) - var(--dock-root-morph-from)) *
|
|
116
|
-
var(--dock-morph-t, 0)
|
|
117
|
-
);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/* AZ.W-DOCK-TAXONOMY (move 2) — a VERTICAL dock's outer `.dock-layers` morphs the
|
|
121
|
-
BLOCK axis (its collapse↔expand shrinks `height`, not `width`). The orchestrator
|
|
122
|
-
measures/writes the same `--dock-morph-from/to` span on the block axis
|
|
123
|
-
(`outerLayerAxis` is now the resolved orientation; `morphAxisProp` maps
|
|
124
|
-
vertical→`block-size`).
|
|
125
|
-
BB.W-DOCK-MORPH-FAMILY (a)/(b) — the vertical box reserves its settled `to`
|
|
126
|
-
BLOCK footprint + composites a `scaleY()` over it on the SAME `--dock-morph-t`
|
|
127
|
-
scalar (the inverse axis of the horizontal `scaleX`), `transform-origin` at the
|
|
128
|
-
block-start pinned edge. NO live-scalar `block-size` calc → no per-frame
|
|
129
|
-
relayout on the vertical axis either. */
|
|
130
|
-
.glass-dock.vertical[data-morphing] .dock-layers {
|
|
131
|
-
inline-size: auto;
|
|
132
|
-
/* BC.W-LIQUID-MORPH — the vertical RESERVE FLOOR (the inverse axis twin of the
|
|
133
|
-
horizontal floor above): a `to:0` block measurement reserves the collapsed-pill
|
|
134
|
-
minimum, never a zero-height void. Inert above the floor on every healthy read. */
|
|
135
|
-
block-size: max(var(--dock-morph-to), var(--dock-morph-min, 2.75rem));
|
|
136
|
-
transform: scaleY(var(--dock-morph-scale));
|
|
137
|
-
transform-origin: center top;
|
|
138
|
-
will-change: transform;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/* A vertical inner group morphs the BLOCK axis — the same settled-footprint
|
|
142
|
-
reserve + `scaleY()` composite over it. */
|
|
143
|
-
.glass-dock[data-morphing] .dock-layer-group.vertical .dock-layer-stack {
|
|
144
|
-
inline-size: auto;
|
|
145
|
-
/* BC.W-LIQUID-MORPH — the nested vertical group's reserve is floored too. */
|
|
146
|
-
block-size: max(var(--dock-morph-to), var(--dock-morph-min, 2.75rem));
|
|
147
|
-
transform: scaleY(var(--dock-morph-scale));
|
|
148
|
-
transform-origin: center top;
|
|
149
|
-
will-change: transform;
|
|
99
|
+
block-size: var(--dock-expanded-px);
|
|
150
100
|
}
|
|
151
101
|
|
|
152
102
|
/* The inner DockLayerGroup stack has no collapsed/expanded class, so its
|
|
@@ -326,7 +276,10 @@
|
|
|
326
276
|
.glass-dock[data-morphing] .dock-layer-item-host.is-active > * {
|
|
327
277
|
--dock-stagger-window: var(--dock-stagger-window-size, 0.55);
|
|
328
278
|
--dock-stagger-onset: 0;
|
|
329
|
-
opacity
|
|
279
|
+
/* BD.W-DOCK-CORE (A6) — factor the reveal ramp into ONE named var so opacity AND
|
|
280
|
+
the center-coupled scale read the SAME clamp (W-MOTION-CANON P3, fade coupled to
|
|
281
|
+
transform). */
|
|
282
|
+
--child-reveal: clamp(
|
|
330
283
|
0,
|
|
331
284
|
calc(
|
|
332
285
|
(var(--dock-expand-t, 1) - var(--dock-stagger-onset)) /
|
|
@@ -334,11 +287,14 @@
|
|
|
334
287
|
),
|
|
335
288
|
1
|
|
336
289
|
);
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
290
|
+
opacity: var(--child-reveal);
|
|
291
|
+
/* BD.W-DOCK-CORE (A6) — the rise is a center-coupled SCALE pop (0.82 → 1 on the
|
|
292
|
+
reveal ramp, transform-origin center), NOT the prior independent `translate: 0
|
|
293
|
+
4px` vertical hop. The children inherit the SAME center-anchored read as the box
|
|
294
|
+
— a small inertial pop FROM the center, coupled to opacity. The global PRM gate
|
|
295
|
+
strips `scale` → snap. */
|
|
296
|
+
scale: calc(0.82 + 0.18 * var(--child-reveal));
|
|
297
|
+
transform-origin: center;
|
|
342
298
|
}
|
|
343
299
|
|
|
344
300
|
/* AX.W02 — per-child onsets off the ONE `--dock-stagger-step` token. Each
|
|
@@ -353,26 +309,34 @@
|
|
|
353
309
|
collapse this to a single declaration, but it is not yet Baseline across
|
|
354
310
|
Safari/Firefox — the token-keyed nth-child set is the cross-engine form, and
|
|
355
311
|
the magic ladder is gone either way.) */
|
|
356
|
-
.
|
|
357
|
-
|
|
312
|
+
/* BD.W-DOCK-CORE (A6) — the SYMMETRIC center-out stagger (the index-cascade RETIRED,
|
|
313
|
+
clean break). The onset ladders by DISTANCE FROM THE ROW CENTER (center pair = onset
|
|
314
|
+
0 via the base rule, then ±1, ±2 …) so the reveal radiates center-out in lockstep
|
|
315
|
+
with the center-out box morph (I.2) — never the prior left-to-right index cascade
|
|
316
|
+
that desynced from the centered grow. `--dock-stagger-step` is the per-ring beat;
|
|
317
|
+
`nth-child(N of *)` + `nth-last-child(N of *)` reach BOTH ends (the row is short —
|
|
318
|
+
≤8 controls is the dock norm), the central rule holds the deep middle. The `of *`
|
|
319
|
+
syntax is Safari 16.4+/Chrome 111+. The rule is duplicated for the inner pane-stack
|
|
320
|
+
host (identical onsets). */
|
|
321
|
+
/* ring ±1 — 2nd-from-center each side */
|
|
322
|
+
.glass-dock[data-morphing] .dock-layer.is-active > *:nth-child(2 of *),
|
|
323
|
+
.glass-dock[data-morphing] .dock-layer.is-active > *:nth-last-child(2 of *),
|
|
324
|
+
.glass-dock[data-morphing] .dock-layer-item-host.is-active > *:nth-child(2 of *),
|
|
325
|
+
.glass-dock[data-morphing] .dock-layer-item-host.is-active > *:nth-last-child(2 of *) {
|
|
358
326
|
--dock-stagger-onset: calc(var(--dock-stagger-step) * 1);
|
|
359
327
|
}
|
|
360
|
-
|
|
361
|
-
.glass-dock[data-morphing] .dock-layer
|
|
328
|
+
/* ring ±2 — 3rd-from-center each side */
|
|
329
|
+
.glass-dock[data-morphing] .dock-layer.is-active > *:nth-child(3 of *),
|
|
330
|
+
.glass-dock[data-morphing] .dock-layer.is-active > *:nth-last-child(3 of *),
|
|
331
|
+
.glass-dock[data-morphing] .dock-layer-item-host.is-active > *:nth-child(3 of *),
|
|
332
|
+
.glass-dock[data-morphing] .dock-layer-item-host.is-active > *:nth-last-child(3 of *) {
|
|
362
333
|
--dock-stagger-onset: calc(var(--dock-stagger-step) * 2);
|
|
363
334
|
}
|
|
364
|
-
|
|
365
|
-
.glass-dock[data-morphing] .dock-layer
|
|
335
|
+
/* ring ±3 — the deep-middle 4th/5th-from-edge cap (a long row finishes in-window) */
|
|
336
|
+
.glass-dock[data-morphing] .dock-layer.is-active > *:nth-child(n + 4):nth-child(-n + 5),
|
|
337
|
+
.glass-dock[data-morphing] .dock-layer-item-host.is-active > *:nth-child(n + 4):nth-child(-n + 5) {
|
|
366
338
|
--dock-stagger-onset: calc(var(--dock-stagger-step) * 3);
|
|
367
339
|
}
|
|
368
|
-
.glass-dock[data-morphing] .dock-layer.is-active > *:nth-child(5),
|
|
369
|
-
.glass-dock[data-morphing] .dock-layer-item-host.is-active > *:nth-child(5) {
|
|
370
|
-
--dock-stagger-onset: calc(var(--dock-stagger-step) * 4);
|
|
371
|
-
}
|
|
372
|
-
.glass-dock[data-morphing] .dock-layer.is-active > *:nth-child(n + 6),
|
|
373
|
-
.glass-dock[data-morphing] .dock-layer-item-host.is-active > *:nth-child(n + 6) {
|
|
374
|
-
--dock-stagger-onset: calc(var(--dock-stagger-step) * 5);
|
|
375
|
-
}
|
|
376
340
|
|
|
377
341
|
/* AW.W2 — the at-rest clip-lift moved to `.expanded:not([data-morphing])` /
|
|
378
342
|
`.always-expanded:not([data-morphing])` (the clip-shell block at the top).
|
|
@@ -109,10 +109,17 @@
|
|
|
109
109
|
.dock-morph-bridge-plate--vertical {
|
|
110
110
|
width: var(--dock-bridge-v-w, 3.25rem);
|
|
111
111
|
height: var(--dock-bridge-v-h, 16rem);
|
|
112
|
-
/*
|
|
113
|
-
|
|
112
|
+
/* BD.W-MORPH-FIELD-WELD — the GAP-RELATIVE waist (the scale-blind-threshold fix /
|
|
113
|
+
the user's 296px→dot defect). The prior travel necked the tall plate ALL the way
|
|
114
|
+
to a 52px circle at t=0.5, so the goo threshold over-ate the two thin overlapping
|
|
115
|
+
circles to a lone white dot. The neck now travels only `--morph-neck-frac` (0.62)
|
|
116
|
+
of the way to the circle, so the midpoint silhouette holds a FAT fused mass with a
|
|
117
|
+
real waist (≤0.45 of body), not a pinched dot — the goo blur fuses it into one
|
|
118
|
+
teardrop barbell instead of eating it. */
|
|
119
|
+
--morph-neck-frac: 0.62;
|
|
114
120
|
--dock-bridge-v-neck: calc(
|
|
115
121
|
(var(--dock-bridge-v-h, 16rem) - var(--dock-bridge-v-w, 3.25rem)) / 2 *
|
|
122
|
+
var(--morph-neck-frac) *
|
|
116
123
|
clamp(0, calc(var(--dock-morph-t, 0) * 2), 1)
|
|
117
124
|
);
|
|
118
125
|
clip-path: inset(
|
|
@@ -136,8 +143,14 @@
|
|
|
136
143
|
/* the inline-axis inset travel: (half the reserved width − half the height) at
|
|
137
144
|
t=0.5 → 0 at t=1, so the necked silhouette is ~a circle (the height) at the
|
|
138
145
|
midpoint and the full bar at t=1. */
|
|
146
|
+
/* BD.W-MORPH-FIELD-WELD — gap-relative waist (the symmetric arm of the V-plate fix
|
|
147
|
+
above): the wide plate necks only `--morph-neck-frac` of the way to its small
|
|
148
|
+
dimension at the midpoint, so the fused mass stays fat (a real teardrop, not a
|
|
149
|
+
dot). */
|
|
150
|
+
--morph-neck-frac: 0.62;
|
|
139
151
|
--dock-bridge-h-neck: calc(
|
|
140
152
|
(var(--dock-bridge-h-w, 18rem) - var(--dock-bridge-h-h, 3.25rem)) / 2 *
|
|
153
|
+
var(--morph-neck-frac) *
|
|
141
154
|
(1 - clamp(0, calc((var(--dock-morph-t, 0) - 0.5) * 2), 1))
|
|
142
155
|
);
|
|
143
156
|
clip-path: inset(
|
|
@@ -76,8 +76,20 @@
|
|
|
76
76
|
--dock-reveal-blur: 0px; /* resting: CRISP — no own-pixel self-blur */
|
|
77
77
|
}
|
|
78
78
|
.glass-dock[data-morphing] {
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
/* BD.W-DOCK-CORE (A4) — the blur DIAL-BACK. The peak drops 3px → 1.25px AND the
|
|
80
|
+
decay is FRONT-LOADED: the `clamp(0, (0.5 - expand-t)/0.5, 1)` ramp drives the
|
|
81
|
+
blur 1.25px → 0 as expand-t crosses 0 → 0.5, then HOLDS 0 for the back half — a
|
|
82
|
+
brief decongest FLASH, crisp by the morph's midpoint (the icons never read soft
|
|
83
|
+
through the slow grow). The resting self-blur stays 0px (above, untouched). The
|
|
84
|
+
9px BACKDROP blur (the material) is untouched — only the OWN-pixel self-blur is
|
|
85
|
+
dialed. PRM → 0 (the carve below). */
|
|
86
|
+
--dock-reveal-blur: 1.25px; /* the transient decongest bloom — mid-morph only */
|
|
87
|
+
filter: blur(
|
|
88
|
+
calc(
|
|
89
|
+
var(--dock-reveal-blur) *
|
|
90
|
+
clamp(0, calc((0.5 - var(--dock-expand-t, 1)) / 0.5), 1)
|
|
91
|
+
)
|
|
92
|
+
);
|
|
81
93
|
}
|
|
82
94
|
|
|
83
95
|
/* The morphing root chrome — background / border-color interpolate between the
|
|
@@ -94,7 +106,8 @@
|
|
|
94
106
|
.glass-dock:not(.vertical) {
|
|
95
107
|
/* AY.W-A11Y-PERF O-1 / AZ.W-ADAPTIVE-AUTO Arm 1 — BOTH morph endpoints compose
|
|
96
108
|
the W55 oklab adaptive tint so the self-engage darken (the unconditional
|
|
97
|
-
`:where(.glass-dock)` rule
|
|
109
|
+
`:where(.glass-dock)` rule in the sibling adaptive-legibility.css partial
|
|
110
|
+
re-points the element-level
|
|
98
111
|
`--glass-tint-source`/`--glass-tint-strength`) reaches the LIVE
|
|
99
112
|
horizontal dock surface in BOTH the expanded AND the COLLAPSED look (this
|
|
100
113
|
0,3,0 morph interp OVERRIDES the 0,1,0 shell.css bg, so the tint must be
|
|
@@ -326,6 +339,27 @@
|
|
|
326
339
|
margin-inline-start: 0;
|
|
327
340
|
}
|
|
328
341
|
|
|
342
|
+
/* BD.W-DOCK-CORE (A5) — the collapsed persistent pill centers its single glyph on
|
|
343
|
+
BOTH axes (the empty-summary case where the #persistent control IS the collapsed
|
|
344
|
+
circle). The `--dock-control-safe-inset` padding (background-clip: content-box) must
|
|
345
|
+
not shift the glyph off the pill's geometric center — `place-items: center`
|
|
346
|
+
belt-and-braces both axes so the shrunken icon reads dead-center (A5 "icons in the
|
|
347
|
+
SHRUNKEN state are NOT ALIGNED"). */
|
|
348
|
+
.glass-dock.collapsed:has(.dock-layer--summary:empty) .dock-persistent {
|
|
349
|
+
display: grid;
|
|
350
|
+
place-items: center;
|
|
351
|
+
}
|
|
352
|
+
.glass-dock.collapsed:has(.dock-layer--summary:empty) .dock-persistent > * {
|
|
353
|
+
place-self: center;
|
|
354
|
+
}
|
|
355
|
+
/* BD.W-DOCK-CORE (A5) — floor the collapsed glyph at the 16px-min the rail glyph
|
|
356
|
+
carries (never a sliver inside an inline-flex column). */
|
|
357
|
+
.glass-dock.collapsed .dock-persistent svg,
|
|
358
|
+
.glass-dock.collapsed .dock-layer--summary svg {
|
|
359
|
+
min-width: 1rem;
|
|
360
|
+
min-height: 1rem;
|
|
361
|
+
}
|
|
362
|
+
|
|
329
363
|
/* AW.W3 — the collapsed-hover scale rides the unified dock spring vocabulary.
|
|
330
364
|
The `scale var(--dock-motion-resize)` arm was added to the `.glass-dock`
|
|
331
365
|
root transition above, so this hover scale settles on the SAME spring curve
|
|
@@ -383,117 +417,14 @@
|
|
|
383
417
|
box-shadow var(--duration-fast) var(--ease-standard);
|
|
384
418
|
}
|
|
385
419
|
|
|
386
|
-
/*
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
floating
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
var(--glass-bg-floating, var(--glass-bg-resting)),
|
|
395
|
-
var(--glass-tint-source) var(--glass-tint-strength)
|
|
396
|
-
);
|
|
397
|
-
border-color: var(--glass-border-floating, var(--glass-border-resting));
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
/* ── Adaptive legibility: SELF-ENGAGE the dock over a light backdrop by default
|
|
401
|
-
(AZ.W-ADAPTIVE-AUTO Arm 1 — the literal G2 surface; "Glass dock over VERY
|
|
402
|
-
LIGHT materials is unreadable, darken DYNAMICALLY like iOS 27") ─────────────
|
|
403
|
-
The dock floats over WHATEVER the consumer painted — frequently a light/near-
|
|
404
|
-
white app surface (the canonical G2 case the user reported). AY.W-A11Y-PERF
|
|
405
|
-
O-1 set `--glass-backdrop: light` on the dock's OWN root (shell.css) intending
|
|
406
|
-
a self-darken, but CSS style queries NEVER self-match (the `@container
|
|
407
|
-
style()` block below reads an ANCESTOR — verified on Chrome 148), so the
|
|
408
|
-
self-declaration was a NO-OP. This `:where(.glass-dock)` rule is the genuine
|
|
409
|
-
UNCONDITIONAL self-engage — mirroring the overlay band's `ladder.css:169` —
|
|
410
|
-
re-pointing the INHERITING tint tokens DIRECTLY on the dock root so the
|
|
411
|
-
shell (`--glass-bg-dock`), chassis-strip, and held/open tiers (which compose
|
|
412
|
-
the oklab tint AT THE ELEMENT — the substitution-vs-inheritance-safe targets)
|
|
413
|
-
darken toward warm-ink in lockstep. `--dock-fg-on-aurora` re-points to the
|
|
414
|
-
warm-ink here too — ONE reconciled path, the foreground twin folded in (it
|
|
415
|
-
reaches the dock CONTROLS' glyph/label color). Over a DARK page the darken is
|
|
416
|
-
sub-perceptual; a dark-substrate consumer opts out via `--glass-tint-strength:
|
|
417
|
-
0%` on the dock root. The morph-root interp (`.glass-dock:not(.vertical)`
|
|
418
|
-
above) stays `color-mix(in srgb …)` for the transition — the adaptive darken
|
|
419
|
-
rides its RESTING endpoint (`--glass-bg-dock`), the in-flight morph frames are
|
|
420
|
-
sub-perceptual (the ratified resting-endpoint-only default). The muted body
|
|
421
|
-
register lifts to the full warm-ink under the engaged plate (the muted L40
|
|
422
|
-
tier cannot clear 4.5:1 on a translucent darkened plate — darkening moves the
|
|
423
|
-
plate TOWARD muted's own luminance; the low-contrast muted register is
|
|
424
|
-
inappropriate over a busy glass plate, so it resolves to the legible dark
|
|
425
|
-
ink, which clears ~10:1). */
|
|
426
|
-
:where(.glass-dock) {
|
|
427
|
-
--glass-tint-source: var(--glass-tint-ink);
|
|
428
|
-
/* BC.W-ADAPTIVE-RECONCILE — the dock JOINS the continuous observer driver (the
|
|
429
|
-
literal G2 surface: "darken DYNAMICALLY like iOS 27"). The dock's own
|
|
430
|
-
`useGlassBackdropLuminance` observer samples the threaded `:background-canvas`
|
|
431
|
-
(aurora/blob) and WRITES `--glass-backdrop-luma`; this clamp READS it and lerps
|
|
432
|
-
the plate from the warm-cream floor toward the ≤24% AA ceiling as the field
|
|
433
|
-
brightens past the knee — deepening over a bright bleed, lifting translucent over
|
|
434
|
-
a dark trough (the SAME clamp the content/overlay tiers get — ONE axis/driver/
|
|
435
|
-
signal; the discrete `@container` bucket RETIRED). Calm (luma ≤ knee) → floor. */
|
|
436
|
-
--glass-tint-strength: clamp(
|
|
437
|
-
var(--glass-tint-strength-floor),
|
|
438
|
-
calc(
|
|
439
|
-
var(--glass-tint-strength-floor) +
|
|
440
|
-
(var(--glass-tint-strength-aa) - var(--glass-tint-strength-floor)) *
|
|
441
|
-
max(0, (var(--glass-backdrop-luma, 0) - var(--glass-backdrop-luma-knee, 0.6)) / (1 - var(--glass-backdrop-luma-knee, 0.6)))
|
|
442
|
-
),
|
|
443
|
-
var(--glass-tint-strength-aa)
|
|
444
|
-
);
|
|
445
|
-
--dock-fg-on-aurora: var(--glass-tint-ink);
|
|
446
|
-
--muted-foreground: var(--foreground);
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
/* The ancestor-querying `@container` block KEPT — it reaches the DESCENDANT
|
|
450
|
-
nested-glass surfaces inside a dock when a consumer marks `--glass-backdrop:
|
|
451
|
-
light` on the dock's ancestor (the self-engage above re-points only the dock
|
|
452
|
-
root's own inheriting tokens; a consumer's explicit ancestor bucket still
|
|
453
|
-
cascades to nested glass through this block). */
|
|
454
|
-
@container style(--glass-backdrop: light) {
|
|
455
|
-
.glass-dock {
|
|
456
|
-
--glass-tint-source: var(--glass-tint-ink);
|
|
457
|
-
--glass-tint-strength: var(--glass-tint-strength-aa);
|
|
458
|
-
--dock-fg-on-aurora: var(--glass-tint-ink);
|
|
459
|
-
}
|
|
460
|
-
}
|
|
420
|
+
/* BD.W-DOCK-CORE (A7) — the whole-plate open-descendant recolor is DELETED (clean
|
|
421
|
+
break, no alias). HEAD repainted the ENTIRE dock plate to the floating tier when ANY
|
|
422
|
+
descendant overlay opened (a dropdown/select/popover) — 44%α warm-cream → 80.8%α
|
|
423
|
+
floating, the user's "a dropdown changes the color of the ENTIRE dock" bug. A
|
|
424
|
+
dropdown opening now leaves the dock plate INVARIANT; the open affordance is
|
|
425
|
+
TRIGGER-scoped (the trigger's own `[aria-expanded]`/`[data-state=open]` active-fill
|
|
426
|
+
in dock-controls/triggers.css). The `[data-held]` (slider-drag) lift above is KEPT —
|
|
427
|
+
a legitimate held-cursor cue, not the bug. */
|
|
461
428
|
|
|
462
|
-
/* AX.W55 — the `contrast-color()` flip for the dock control foreground (Chrome
|
|
463
|
-
147+/Safari 26+; progressive enhancement, NEVER the load-bearing floor). The
|
|
464
|
-
declarative bucket above already carries AA on all engines (it darkens the dock
|
|
465
|
-
plate so the warm-dark `--dock-fg-on-aurora` clears ~17:1 over white at the 18%
|
|
466
|
-
floor). On a supporting engine `contrast-color()` REFINES the control ink,
|
|
467
|
-
anchored on the LIGHT BACKDROP signal (`--card`, the warm-white surface base the
|
|
468
|
-
bright bucket implies) — `contrast-color(var(--card))` resolves to the legible
|
|
469
|
-
DARK ink. Anchoring on the dark ink instead inverts to white (illegible on the
|
|
470
|
-
still-light dock plate), so the anchor is the light surface, matching the rung
|
|
471
|
-
refinement in glass.css. The bucket is the floor; this is the native pick. */
|
|
472
|
-
@supports (color: contrast-color(white)) {
|
|
473
|
-
/* The SELF-ENGAGED dock refinement (the unconditional self-engage above);
|
|
474
|
-
progressive enhancement only — the declarative darken is the AA floor. */
|
|
475
|
-
:where(.glass-dock) {
|
|
476
|
-
--dock-fg-on-aurora: contrast-color(var(--card));
|
|
477
|
-
--muted-foreground: contrast-color(var(--card));
|
|
478
|
-
}
|
|
479
|
-
@container style(--glass-backdrop: light) {
|
|
480
|
-
.glass-dock {
|
|
481
|
-
--dock-fg-on-aurora: contrast-color(var(--card));
|
|
482
|
-
}
|
|
483
|
-
}
|
|
484
|
-
}
|
|
485
429
|
}
|
|
486
430
|
|
|
487
|
-
/* BB.W-LIQUID-REVEAL — the dock-expand bloom beat's blur-settle is OFF under
|
|
488
|
-
`prefers-reduced-motion: reduce` (the vestibular floor): a reduced-motion dock reads
|
|
489
|
-
crisp at every state, no in-between blur frames.
|
|
490
|
-
BC.W-DOCK-SHRINK-BLUR — the self-blur is now gated to `[data-morphing]`, so the PRM
|
|
491
|
-
carve zeroes it on the ARMED scope too (specificity 0,2,0) — a PRM dock that briefly
|
|
492
|
-
arms `[data-morphing]` carries no 3px bloom; the resting `.glass-dock` is already
|
|
493
|
-
crisp by the re-gate. */
|
|
494
|
-
@media (prefers-reduced-motion: reduce) {
|
|
495
|
-
.glass-dock,
|
|
496
|
-
.glass-dock[data-morphing] {
|
|
497
|
-
--dock-reveal-blur: 0px;
|
|
498
|
-
}
|
|
499
|
-
}
|