@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
|
@@ -27,6 +27,23 @@
|
|
|
27
27
|
*
|
|
28
28
|
* @import-ed by dock.css in cascade order, in the SAME `@layer components`. */
|
|
29
29
|
|
|
30
|
+
/* BD.W-DOCK-PUNCH-CHANNEL — the dedicated cartoon-punch squish scalar. A SEPARATE
|
|
31
|
+
typed `<number>` @property (init 1, the no-op identity) so a one-shot transition on
|
|
32
|
+
`--ease-cartoon-punch` INTERPOLATES the ~4% pre-dip + ~22% overshoot rather than
|
|
33
|
+
snapping. It is DISTINCT from `--stretch` (the orientation/fission squish, capped by
|
|
34
|
+
`--dock-morph-max-stretch: 1.14`): the punch is NOT subject to that cap (the cartoon
|
|
35
|
+
register overshoots PAST the spring fence), it has ZERO JS owners (CSS-only, driven
|
|
36
|
+
by the transition below), and a fission split fired mid-collapse cannot clobber it
|
|
37
|
+
(the 6-owner `--stretch` last-writer race the shared channel would have introduced —
|
|
38
|
+
the dedicated channel REMOVES it, a net improvement to fission). `inherits: false` —
|
|
39
|
+
the punch is the dock root's OWN deformation, never cascaded to children. A
|
|
40
|
+
non-supporting engine reads the safe 1 fallback (no punch, just the bounded size). */
|
|
41
|
+
@property --dock-punch-stretch {
|
|
42
|
+
syntax: "<number>";
|
|
43
|
+
inherits: false;
|
|
44
|
+
initial-value: 1;
|
|
45
|
+
}
|
|
46
|
+
|
|
30
47
|
@layer components {
|
|
31
48
|
/* ── The corner-profile lerp (A1 — the shape is a scalar parameter) ───────────
|
|
32
49
|
The dock surface radius interpolates the `--dock-shape-from`/`--dock-shape-to`
|
|
@@ -99,26 +116,135 @@
|
|
|
99
116
|
/* ── The squish — the `useLiquidFlex` `--stretch` deformation (A4) ────────────
|
|
100
117
|
The shape morph couples the volume-preserving squish the tab-indicator +
|
|
101
118
|
useDockOrientationMorph already speak: `scale: var(--stretch) calc(1/var(--stretch))`
|
|
102
|
-
along the morph axis, capped LOW at `--dock-morph-max-stretch` (~1.
|
|
119
|
+
along the morph axis, capped LOW at `--dock-morph-max-stretch` (~1.14) by
|
|
103
120
|
useLiquidFlex itself (the ONE squish source — no forked deformation math). The
|
|
104
121
|
plate DEFORMS like liquid as it changes shape — a fast morph swells, a slow one
|
|
105
122
|
barely. The driver (useDockOrientationMorph) writes `--stretch` on the dock scope;
|
|
106
123
|
at rest `--stretch` is unset → 1/1 (no squish). The reciprocal pairing preserves
|
|
107
124
|
volume (stretch along travel, compress across). This is compositor-only (a
|
|
108
|
-
`scale` transform), composed WITH the
|
|
109
|
-
(layers.css) — the box scale rides `--dock-
|
|
110
|
-
`--stretch`,
|
|
125
|
+
`scale` transform), composed WITH the ratio-free convex-blend size morph
|
|
126
|
+
(layers.css) — the box scale rides `--dock-size-scale`, the squish rides
|
|
127
|
+
`--stretch`, the cartoon punch rides `--dock-punch-stretch`, all three
|
|
128
|
+
multiply on the compositor on ONE `scale:` property.
|
|
111
129
|
|
|
112
130
|
Scoped to `[data-morphing]` so the squish is a morph-transient (at rest the plate
|
|
113
131
|
is un-squished); the cross-axis is the morph axis's reciprocal. Horizontal docks
|
|
114
132
|
stretch X / compress Y; vertical stretch Y / compress X (the inverse-axis twin,
|
|
115
|
-
mirroring the bridge plates' per-orientation squish in morph-bridge.css).
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
133
|
+
mirroring the bridge plates' per-orientation squish in morph-bridge.css).
|
|
134
|
+
|
|
135
|
+
BD.W-DOCK-CORE / BD.W-DOCK-PUNCH-CHANNEL — THREE factors fold onto this ONE
|
|
136
|
+
`scale:` along the morph axis:
|
|
137
|
+
1. `--dock-size-scale` (layers.css) — the ratio-FREE convex-blend size, BOUNDED
|
|
138
|
+
in [0.06, 1] by construction (the container-justify-agnostic grow-from-center,
|
|
139
|
+
box reserves `--dock-expanded-px` + scales toward it from `transform-origin:
|
|
140
|
+
center`). The seizure-prone `--dock-root-scale` ratio it REPLACES is gone.
|
|
141
|
+
2. `--stretch` — the orientation/fission volume-preserving squish (the 6-JS-owner
|
|
142
|
+
channel, capped 1.14). Unset → 1 (the squish-only path byte-identical).
|
|
143
|
+
3. `--dock-punch-stretch` — the dedicated cartoon-punch overshoot (the §PUNCH
|
|
144
|
+
channel, driven by the one-shot transition below; NOT capped by 1.14). Unset →
|
|
145
|
+
1 (no punch).
|
|
146
|
+
The cross-axis is the RECIPROCAL of the two volume-preserving factors
|
|
147
|
+
`1 / (--stretch × --dock-punch-stretch)` so the punch + the squish deform the pill
|
|
148
|
+
along travel and pinch across WITHOUT moving the footprint or the centroid — the
|
|
149
|
+
size factor (`--dock-size-scale`) is NOT reciprocated (it is the real footprint
|
|
150
|
+
morph, not a volume-preserving deformation). Folding all three on ONE `scale:`
|
|
151
|
+
keeps the multiply explicit + on one compositor channel (a separate `transform`
|
|
152
|
+
would be a distinct box that could fight the `scale:`). Horizontal: X = size ×
|
|
153
|
+
squish × punch, Y = 1/(squish × punch); vertical: the inverse axes. */
|
|
154
|
+
.glass-dock[data-morphing]:not(.vertical),
|
|
155
|
+
.glass-dock[data-punching]:not(.vertical) {
|
|
156
|
+
scale: calc(
|
|
157
|
+
var(--dock-size-scale, 1) * var(--stretch, 1) *
|
|
158
|
+
var(--dock-punch-stretch, 1)
|
|
159
|
+
)
|
|
160
|
+
calc(1 / (var(--stretch, 1) * var(--dock-punch-stretch, 1)));
|
|
161
|
+
}
|
|
162
|
+
.glass-dock[data-morphing].vertical,
|
|
163
|
+
.glass-dock[data-punching].vertical {
|
|
164
|
+
scale: calc(1 / (var(--stretch, 1) * var(--dock-punch-stretch, 1)))
|
|
165
|
+
calc(
|
|
166
|
+
var(--dock-size-scale, 1) * var(--stretch, 1) *
|
|
167
|
+
var(--dock-punch-stretch, 1)
|
|
168
|
+
);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/* ── BD.W-DOCK-PUNCH-CHANNEL — the dedicated cartoon-punch DRIVER ──────────────
|
|
172
|
+
The size blend above is monotone + bounded (correct, boring, bulletproof). The
|
|
173
|
+
PUNCH is the audacious half: a SEPARATE one-shot transition on
|
|
174
|
+
`--ease-cartoon-punch` (the ~4% pre-dip + ~22% overshoot `linear()`) that blooms
|
|
175
|
+
`--dock-punch-stretch` AWAY from 1 then RETURNS to 1 at settle — NEVER latched
|
|
176
|
+
(the +16%-forever spike defect). It is honestly a SECOND punch animation layered
|
|
177
|
+
on the spring (NOT "one clock"): the bounded size rides `--dock-morph-t`, the
|
|
178
|
+
punch rides this transition. `--motion-weight` (dock scope 1) co-scales the punch
|
|
179
|
+
AMPLITUDE; PRM zeroes `--motion-weight` → the amplitude collapses to 1 (no punch),
|
|
180
|
+
and the PRM `--ease-cartoon-punch → --ease-standard` re-alias removes the curve
|
|
181
|
+
shape — the bounded size still snaps via the clamped `t`, the morph still CONFIRMS.
|
|
182
|
+
|
|
183
|
+
The dock is a LOUD DRIVER (design.md §L4): it pins `--motion-weight: 1` on its own
|
|
184
|
+
scope so even a slow user-driven morph rides the full punch register. The
|
|
185
|
+
`[data-punching]` hook (armed by the dock for one episode) is what lifts the punch
|
|
186
|
+
to its overshoot value; the transition carries it there on the punch curve and
|
|
187
|
+
back to the rest 1. The amplitude is `1 + 0.22·--motion-weight` (the ~22% overshoot
|
|
188
|
+
the curve peaks at × the loud-register weight). */
|
|
189
|
+
.glass-dock {
|
|
190
|
+
/* LOUD DRIVER — the dock pushes the motion weight to max so the punch reads at
|
|
191
|
+
full cartoon amplitude (design.md §L4; the rest 0.618 would mute it to ~+13.6%). */
|
|
192
|
+
--motion-weight: 1;
|
|
193
|
+
/* the punch rests at the identity 1 (no deformation) */
|
|
194
|
+
--dock-punch-stretch: 1;
|
|
195
|
+
/* the one-shot punch transition — the curve does the dip+overshoot+settle; the
|
|
196
|
+
weight zeroes it under PRM (the curve also re-aliases to --ease-standard). */
|
|
197
|
+
transition: --dock-punch-stretch var(--duration-normal)
|
|
198
|
+
var(--ease-cartoon-punch);
|
|
199
|
+
}
|
|
200
|
+
/* While punching, the dock lifts the punch to its overshoot target; the transition
|
|
201
|
+
carries `--dock-punch-stretch` there on the cartoon curve then the hook clears and
|
|
202
|
+
it transitions back to 1 (the RETURN — never latched). The overshoot share scales
|
|
203
|
+
with the loud weight; PRM weight 0 → amplitude 1 (no punch). */
|
|
204
|
+
.glass-dock[data-punching] {
|
|
205
|
+
--dock-punch-stretch: calc(1 + 0.22 * var(--motion-weight, 1));
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/* ── BD.W-DOCK-PUNCH-CHANNEL — the kinetic cartoon CAST ────────────────────────
|
|
209
|
+
The bold 1940s offset-shadow made kinetic: the inert `.cartoon-cast` child
|
|
210
|
+
(BD.W-CARTOON-CASTER — a real DOM child, NOT a pseudo, since the dock's `::before`/
|
|
211
|
+
`::after` are both occupied by the grain + the morph chrome) carries the SHIPPED
|
|
212
|
+
`--shadow-cartoon-md/lg` rung and SLIDES opposite the morph as the box punches.
|
|
213
|
+
The travel reads `--motion-weight` (PRM → 0 → static) so the cast deepens + slides
|
|
214
|
+
through the punch then snaps home at settle. Plain per-mode `.dark` arms (the
|
|
215
|
+
light-dark() inset-shadow trap avoided — the cast is a plain offset shadow, no
|
|
216
|
+
inset fragment). Behind the plate (z-index -1), pointer-inert, paint-only. */
|
|
217
|
+
.glass-dock > .cartoon-cast {
|
|
218
|
+
position: absolute;
|
|
219
|
+
inset: 0;
|
|
220
|
+
z-index: -1;
|
|
221
|
+
border-radius: inherit;
|
|
222
|
+
pointer-events: none;
|
|
223
|
+
/* the warm-cream rest cast — the bold offset ink the plate floats above */
|
|
224
|
+
box-shadow: var(--shadow-cartoon-md);
|
|
225
|
+
/* the derived travel — opposite-morph slide, gated by the loud weight × the punch
|
|
226
|
+
presence. At rest (punch 1) the travel is 0; mid-punch it slides out + deepens. */
|
|
227
|
+
--cast-travel: calc(
|
|
228
|
+
7px * var(--motion-weight, 1) *
|
|
229
|
+
clamp(0, calc((var(--dock-punch-stretch, 1) - 1) / 0.22), 1)
|
|
230
|
+
);
|
|
231
|
+
translate: calc(-1 * var(--cast-travel)) var(--cast-travel);
|
|
232
|
+
transition:
|
|
233
|
+
translate calc(var(--duration-normal) * 1.15) var(--ease-cartoon-punch),
|
|
234
|
+
box-shadow var(--duration-normal) var(--ease-standard);
|
|
235
|
+
}
|
|
236
|
+
/* mid-punch the cast deepens to the LOUD rung (a plain per-mode arm below adds the
|
|
237
|
+
dark-mode rung — the light-dark() inset trap avoided). */
|
|
238
|
+
.glass-dock[data-punching] > .cartoon-cast {
|
|
239
|
+
box-shadow: var(--shadow-cartoon-lg);
|
|
120
240
|
}
|
|
121
|
-
|
|
122
|
-
|
|
241
|
+
@media (prefers-reduced-motion: reduce) {
|
|
242
|
+
/* PRM — the cast is static (no travel); the offset ink stays (a legibility
|
|
243
|
+
asset). `--motion-weight: 0` already zeroes `--cast-travel`; pin the
|
|
244
|
+
transition off too so a residual frame cannot slide. */
|
|
245
|
+
.glass-dock > .cartoon-cast {
|
|
246
|
+
transition: none;
|
|
247
|
+
translate: 0 0;
|
|
248
|
+
}
|
|
123
249
|
}
|
|
124
250
|
}
|
|
@@ -24,8 +24,7 @@
|
|
|
24
24
|
--dock-separator-height: calc(var(--dock-h, var(--size-icon-btn)) * 0.5);
|
|
25
25
|
--dock-collapsed-hover-scale: var(--scale-hover-dock);
|
|
26
26
|
/* AW.W3 — the spring-keyed child stagger knobs. `--dock-stagger-window-size`
|
|
27
|
-
is the fraction of the morph each child reveals over
|
|
28
|
-
is the px the child rises from as it fades in. Consumers retune the
|
|
27
|
+
is the fraction of the morph each child reveals over. Consumers retune the
|
|
29
28
|
cascade feel per instance.
|
|
30
29
|
|
|
31
30
|
AX.W02 — `--dock-stagger-step` is the per-child onset BEAT: each
|
|
@@ -49,7 +48,6 @@
|
|
|
49
48
|
beat, that was too wide. The summary/persistent glyph is front-loaded
|
|
50
49
|
structurally (onset 0, scalar-keyed below). */
|
|
51
50
|
--dock-stagger-window-size: 0.4;
|
|
52
|
-
--dock-stagger-rise: 4px;
|
|
53
51
|
--dock-stagger-step: 0.08;
|
|
54
52
|
/* AW.W3b — big-dock tokens. `--dock-card-radius` is the finite card-shell
|
|
55
53
|
radius (default --radius-dock-card = --radius-3xl, density-scaled
|
|
@@ -41,6 +41,12 @@
|
|
|
41
41
|
--dock-stack-gap: calc(0.375rem * var(--dock-scale, 1));
|
|
42
42
|
--dock-stack-member-size: calc(2rem * var(--dock-scale, 1));
|
|
43
43
|
--dock-stack-fold: 0.4; /* the at-rest fold scale (the members tuck behind the core) */
|
|
44
|
+
/* BE.W-DOCK-RAIL-REALIZE — the facet-carousel accent strength. The per-facet
|
|
45
|
+
`--glass-accent` hue rides the THIN rim/glint at this bounded whisper (the
|
|
46
|
+
BB.W-GLASS-ACCENT ≤55% rim ceiling — the warm-cream core + the AA legibility
|
|
47
|
+
survive). A consumer retunes the whole carousel's accent intensity from one
|
|
48
|
+
`:root`/scope override; the rest of the rail is byte-identical. */
|
|
49
|
+
--dock-facet-accent-strength: 48%;
|
|
44
50
|
}
|
|
45
51
|
|
|
46
52
|
/* The dock-frame wrapper — KEPT. DEFAULT (`display: contents`) is layout-transparent
|
|
@@ -50,14 +56,27 @@
|
|
|
50
56
|
.glass-dock-frame {
|
|
51
57
|
display: contents;
|
|
52
58
|
}
|
|
53
|
-
.glass-dock-frame[data-has-rail]
|
|
59
|
+
.glass-dock-frame[data-has-rail],
|
|
60
|
+
/* BD.W-DOCK-CORE (II.2 — F-1) — a SPLITTABLE dock frame is ALSO a non-clipping
|
|
61
|
+
positioning context: the fission island + goo neck render as frame siblings of
|
|
62
|
+
`.glass-dock` and must paint OUTSIDE the dock's `contain: paint` clip box (beside/
|
|
63
|
+
above/below the source pill). Same escape the rail uses. */
|
|
64
|
+
.glass-dock-frame[data-splittable] {
|
|
54
65
|
display: inline-flex;
|
|
55
66
|
position: relative;
|
|
56
|
-
/* No containment, no overflow, no blur — the WHOLE point: the stack must
|
|
57
|
-
beyond the dock box. The wrapper shrink-wraps the dock (inline-flex) so its
|
|
58
|
-
== the dock box and the rail anchors to the true edge. */
|
|
67
|
+
/* No containment, no overflow, no blur — the WHOLE point: the stack/island must
|
|
68
|
+
paint beyond the dock box. The wrapper shrink-wraps the dock (inline-flex) so its
|
|
69
|
+
box == the dock box and the rail/island anchors to the true edge. */
|
|
70
|
+
/* BD.W-DOCK-CORE (II.2 — F-1) — the ISLAND REACH resolved on the FRAME (the common
|
|
71
|
+
ancestor) so BOTH the pieces (inside the dock) AND the island/neck (frame
|
|
72
|
+
siblings) read ONE reach: the cluster lands exactly where the island plate
|
|
73
|
+
materializes. A `var(--dock-island-reach, 9rem)` form so a consumer ancestor
|
|
74
|
+
(a gallery tile) can retune the detach distance via a `:root`/ancestor override
|
|
75
|
+
— the frame re-PUBLISHES it (not a hard set that would shadow the override). */
|
|
76
|
+
--dock-island-reach: var(--dock-island-reach-override, 9rem);
|
|
59
77
|
}
|
|
60
|
-
.glass-dock-frame[data-has-rail].vertical
|
|
78
|
+
.glass-dock-frame[data-has-rail].vertical,
|
|
79
|
+
.glass-dock-frame[data-splittable].vertical {
|
|
61
80
|
flex-direction: column;
|
|
62
81
|
align-items: stretch;
|
|
63
82
|
}
|
|
@@ -189,9 +208,9 @@
|
|
|
189
208
|
transition:
|
|
190
209
|
opacity var(--duration-fast) var(--ease-out)
|
|
191
210
|
calc(var(--dock-stack-stagger) * var(--i, 0)),
|
|
192
|
-
scale var(--duration-normal) var(--spring-dock, var(--ease-out))
|
|
211
|
+
scale var(--spring-dock-duration, var(--duration-normal)) var(--spring-dock, var(--ease-out))
|
|
193
212
|
calc(var(--dock-stack-stagger) * var(--i, 0)),
|
|
194
|
-
translate var(--duration-normal) var(--spring-dock, var(--ease-out))
|
|
213
|
+
translate var(--spring-dock-duration, var(--duration-normal)) var(--spring-dock, var(--ease-out))
|
|
195
214
|
calc(var(--dock-stack-stagger) * var(--i, 0)),
|
|
196
215
|
filter var(--duration-fast) var(--ease-out)
|
|
197
216
|
calc(var(--dock-stack-stagger) * var(--i, 0)),
|
|
@@ -248,6 +267,75 @@
|
|
|
248
267
|
flex-shrink: 0;
|
|
249
268
|
}
|
|
250
269
|
|
|
270
|
+
/* ── The FACET-carousel mode (BE.W-DOCK-RAIL-REALIZE) ─────────────────────────────
|
|
271
|
+
The re-instated AZ context carousel: each member is a context FACET CHIP carrying
|
|
272
|
+
its OWN `--glass-accent` hue (written per-chip by DockStack in facets mode), so the
|
|
273
|
+
strip reads as a row of distinct accent-tinted contexts — NOT the macOS un-tinted
|
|
274
|
+
glyph fan. The chip composes its rim+glint DIRECTLY from the per-instance
|
|
275
|
+
`--glass-accent`/`--glass-accent-strength` axis (the SAME `color-mix(in oklab, …)`
|
|
276
|
+
seam `glass/rim.css` composes for `.glass-material` — NOT a fork): the warm rim ink
|
|
277
|
+
mixes toward the facet hue at the bounded strength, so each facet's RIM + the inner
|
|
278
|
+
glint carries that context's color. At the resting `transparent`/`0%` no-op this is
|
|
279
|
+
byte-identical to the stack member; the facet hue is the consumer's context color
|
|
280
|
+
(presets-in-consumers — never a library token). The active facet stays on the
|
|
281
|
+
selected-as-glass `--dock-control-active-bg` tier (W-REGISTER-IOS — the lift is the
|
|
282
|
+
glass tier, the accent is the rim DECORATION; the two are disjoint). */
|
|
283
|
+
.dock-stack-fan .dock-facet-chip {
|
|
284
|
+
/* the accent-composed rim — the warm catch-light ink mixed toward the facet hue
|
|
285
|
+
(the rim.css `--glass-material-rim` seam, inlined for the chip). At 0% it is the
|
|
286
|
+
bare `--glass-edge-light` rim (the no-op floor). */
|
|
287
|
+
--dock-facet-rim-ink: color-mix(
|
|
288
|
+
in oklab,
|
|
289
|
+
var(--glass-rim-ink, hsl(0 0% 100% / 0.3)),
|
|
290
|
+
var(--glass-accent) var(--glass-accent-strength, 0%)
|
|
291
|
+
);
|
|
292
|
+
box-shadow:
|
|
293
|
+
inset 0 1px 0 var(--dock-facet-rim-ink),
|
|
294
|
+
var(--glass-specular),
|
|
295
|
+
/* the per-facet glint — a soft chromatic halo of the facet's own hue, a
|
|
296
|
+
whisper at the rim (the §6 calm register; transparent at the 0% no-op). */
|
|
297
|
+
0 0 0 1px color-mix(in oklab, transparent, var(--glass-accent) var(--glass-accent-strength, 0%)),
|
|
298
|
+
0 2px 6px -2px color-mix(in srgb, var(--shadow-color) 22%, transparent);
|
|
299
|
+
}
|
|
300
|
+
.dark .dock-stack-fan .dock-facet-chip {
|
|
301
|
+
--dock-facet-rim-ink: color-mix(
|
|
302
|
+
in oklab,
|
|
303
|
+
var(--glass-rim-ink, hsl(0 0% 100% / 0.4)),
|
|
304
|
+
var(--glass-accent) var(--glass-accent-strength, 0%)
|
|
305
|
+
);
|
|
306
|
+
box-shadow:
|
|
307
|
+
inset 0 1px 0 var(--dock-facet-rim-ink),
|
|
308
|
+
var(--glass-specular-dark),
|
|
309
|
+
0 0 0 1px color-mix(in oklab, transparent, var(--glass-accent) var(--glass-accent-strength, 0%)),
|
|
310
|
+
0 2px 6px -2px color-mix(in srgb, var(--shadow-color) 30%, transparent);
|
|
311
|
+
}
|
|
312
|
+
/* the φ-tier DEPTH read (railProjection.projectFacets) — when the carousel is
|
|
313
|
+
expanded, each facet seats at its recession scale + opacity (the active forward +
|
|
314
|
+
full, the neighbours receding). The tier vars default to the 1/1 identity so a
|
|
315
|
+
non-facet member is byte-identical. Compositor-only (scale/opacity — the
|
|
316
|
+
proof:no-layout-animation floor). */
|
|
317
|
+
.dock-stack.is-expanded .dock-facet-chip {
|
|
318
|
+
scale: var(--dock-facet-tier-scale, 1);
|
|
319
|
+
opacity: var(--dock-facet-tier-opacity, 1);
|
|
320
|
+
}
|
|
321
|
+
/* the active facet — the selected-as-glass tier lift, the accent rim STILL reading
|
|
322
|
+
(the context's hue marks the active facet on top of the lift). */
|
|
323
|
+
.dock-stack-fan .dock-facet-chip.is-active {
|
|
324
|
+
background: var(--dock-control-active-bg, var(--glass-bg-floating));
|
|
325
|
+
box-shadow:
|
|
326
|
+
inset 0 1px 0 var(--dock-facet-rim-ink),
|
|
327
|
+
var(--glass-specular),
|
|
328
|
+
0 0 0 1px color-mix(in oklab, color-mix(in srgb, var(--foreground) 12%, transparent), var(--glass-accent) var(--glass-accent-strength, 0%)),
|
|
329
|
+
0 3px 8px -2px color-mix(in srgb, var(--shadow-color) 28%, transparent);
|
|
330
|
+
}
|
|
331
|
+
.dark .dock-stack-fan .dock-facet-chip.is-active {
|
|
332
|
+
box-shadow:
|
|
333
|
+
inset 0 1px 0 var(--dock-facet-rim-ink),
|
|
334
|
+
var(--glass-specular-dark),
|
|
335
|
+
0 0 0 1px color-mix(in oklab, color-mix(in srgb, var(--foreground) 18%, transparent), var(--glass-accent) var(--glass-accent-strength, 0%)),
|
|
336
|
+
0 3px 8px -2px color-mix(in srgb, var(--shadow-color) 36%, transparent);
|
|
337
|
+
}
|
|
338
|
+
|
|
251
339
|
/* PRM — the fan SNAPS to terminal (the fade survives, the transform drops — P6 /
|
|
252
340
|
proof:no-layout-animation PRM carve). No spring travel, no stagger, no blur-settle. */
|
|
253
341
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -95,6 +95,18 @@
|
|
|
95
95
|
scale: var(--scale-press-dock);
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
+
/* W-NAV-DOCK-FIX — the four-state DISABLED register. A boundary nav control
|
|
99
|
+
(prev/next at the first/last item) stays PRESENT but disabled so the row
|
|
100
|
+
geometry holds (never DOM-absent — the "flaky" read). It dims to the shared
|
|
101
|
+
disabled opacity + suppresses the press/pointer (the hover/active rules
|
|
102
|
+
already `:not(:disabled)`-exclude it, so this only needs the dim + the
|
|
103
|
+
pointer-suppress). Compositor-only (opacity); no layout shift. */
|
|
104
|
+
&:disabled {
|
|
105
|
+
opacity: var(--opacity-disabled, 0.4);
|
|
106
|
+
pointer-events: none;
|
|
107
|
+
cursor: default;
|
|
108
|
+
}
|
|
109
|
+
|
|
98
110
|
&:focus:not(:focus-visible) {
|
|
99
111
|
box-shadow: none;
|
|
100
112
|
outline: none;
|
|
@@ -122,9 +134,29 @@
|
|
|
122
134
|
`--dock-active-*` cohort above (a parent-scoped audacious override): this is
|
|
123
135
|
the library's default selected glass, ergonomic sugar over the shipped
|
|
124
136
|
register so a selectable dock control needs no hand-rolled active paint. The
|
|
125
|
-
glyph/label firm to the full warm-ink, mirroring the rail's `.is-active`.
|
|
137
|
+
glyph/label firm to the full warm-ink, mirroring the rail's `.is-active`.
|
|
138
|
+
|
|
139
|
+
BD.W-DOCK-CORE (P4 deferred) — the selected pill now COMPOSES the shared
|
|
140
|
+
`.glass-capsule` register (the component adds the `.glass-capsule` class when
|
|
141
|
+
`active`). So instead of painting a bare `background`, the `[data-active]`
|
|
142
|
+
rung re-points `--glass-capsule-fill` (the override hook the capsule register
|
|
143
|
+
exposes) to the selected glass tier — the capsule's lifted-plate composite
|
|
144
|
+
(rim + lift + the warm-floor fill base) reads the selected tier WITHOUT
|
|
145
|
+
forking the register (the selected-parity rung). The glyph firms to the full
|
|
146
|
+
warm-ink. */
|
|
126
147
|
&[data-active] {
|
|
127
|
-
|
|
148
|
+
--glass-capsule-fill: var(
|
|
149
|
+
--dock-control-active-bg,
|
|
150
|
+
var(--glass-bg-floating)
|
|
151
|
+
);
|
|
152
|
+
/* Re-assert the capsule fill as the painted background — the base
|
|
153
|
+
`.dock-icon-button { background: transparent }` (same layer, later
|
|
154
|
+
source order, equal specificity) would otherwise win over
|
|
155
|
+
`.glass-capsule`'s background; this `[data-active]` rule (specificity
|
|
156
|
+
0,2,0 > the base 0,1,0) hands the selected pill its lifted-glass fill.
|
|
157
|
+
The capsule's rim/lift `box-shadow` + `backdrop-filter` already apply
|
|
158
|
+
(the base rule never sets those). */
|
|
159
|
+
background: var(--glass-capsule-fill);
|
|
128
160
|
color: var(--dock-fg-on-aurora, var(--foreground));
|
|
129
161
|
}
|
|
130
162
|
}
|
|
@@ -10,6 +10,16 @@
|
|
|
10
10
|
tab-button.css. */
|
|
11
11
|
|
|
12
12
|
@layer components {
|
|
13
|
+
/* BD.W-DOCK-CORE (A8) — `.dock-trigger` is the UNIFIED dock overlay-trigger register.
|
|
14
|
+
DockSelectTrigger, DockDropdownTrigger, AND DockPopoverTrigger all compose it (each
|
|
15
|
+
also keeps its legacy class for back-compat-free continuity within this file), so a
|
|
16
|
+
popover trigger inside a dock is byte-identical geometry + style + baseline alignment
|
|
17
|
+
to the dropdown trigger — the prior three-divergent-contracts misalignment (A8) is
|
|
18
|
+
gone. The hover-SCALE is OFF on all three (below): a scaling trigger shifts its
|
|
19
|
+
portaled-content anchor mid-open; the SelectTrigger's documented no-scale reason is
|
|
20
|
+
generalized to the whole family (clean break — the dropdown's lone hover-scale is
|
|
21
|
+
retired, no alias). */
|
|
22
|
+
.dock-trigger,
|
|
13
23
|
.dock-select-trigger,
|
|
14
24
|
.dock-dropdown-trigger {
|
|
15
25
|
display: inline-flex;
|
|
@@ -63,20 +73,25 @@
|
|
|
63
73
|
control members (icon/tab/select/dropdown) now lift on hover as one register,
|
|
64
74
|
mirroring the unified glass-tier `--dock-control-hover-bg` cross-fade. The
|
|
65
75
|
lone `.dock-dropdown-trigger:hover` scale rule is RETIRED into this group. */
|
|
76
|
+
/* BD.W-DOCK-CORE (A8) — hover lifts the FILL only; the hover-SCALE is RETIRED across
|
|
77
|
+
the whole trigger family so portaled content anchors smoothly (the SelectTrigger's
|
|
78
|
+
documented no-scale reason, generalized — clean break, no alias). */
|
|
79
|
+
.dock-trigger:hover:not(:disabled),
|
|
66
80
|
.dock-select-trigger:hover:not(:disabled),
|
|
67
81
|
.dock-dropdown-trigger:hover:not(:disabled) {
|
|
68
82
|
background: var(--dock-control-hover-bg);
|
|
69
83
|
color: var(--btn-hover-color, var(--foreground));
|
|
70
|
-
scale: var(--scale-hover-dock);
|
|
71
84
|
}
|
|
72
85
|
|
|
73
86
|
/* AZ.W-REGISTER-IOS — the iOS press darken-plus-shrink (see the icon-button). */
|
|
87
|
+
.dock-trigger:active:not(:disabled),
|
|
74
88
|
.dock-select-trigger:active:not(:disabled),
|
|
75
89
|
.dock-dropdown-trigger:active:not(:disabled) {
|
|
76
90
|
background: var(--dock-control-press-bg);
|
|
77
91
|
scale: var(--scale-press-dock);
|
|
78
92
|
}
|
|
79
93
|
|
|
94
|
+
.dock-trigger:focus:not(:focus-visible),
|
|
80
95
|
.dock-select-trigger:focus:not(:focus-visible),
|
|
81
96
|
.dock-dropdown-trigger:focus:not(:focus-visible) {
|
|
82
97
|
box-shadow: none;
|
|
@@ -86,6 +101,7 @@
|
|
|
86
101
|
/* focus-visible ring + disabled paint hoisted to the shared `:where()`
|
|
87
102
|
group in dock.css; this rule adds only the box-shadow fade transition.
|
|
88
103
|
`scale` keeps the AT.W7-dock-b press micro-feedback spring. */
|
|
104
|
+
.dock-trigger:focus-visible,
|
|
89
105
|
.dock-select-trigger:focus-visible,
|
|
90
106
|
.dock-dropdown-trigger:focus-visible {
|
|
91
107
|
transition:
|
|
@@ -96,6 +112,12 @@
|
|
|
96
112
|
box-shadow var(--dock-motion-fast);
|
|
97
113
|
}
|
|
98
114
|
|
|
115
|
+
.dock-trigger:is(
|
|
116
|
+
.is-active,
|
|
117
|
+
.active,
|
|
118
|
+
[aria-expanded="true"],
|
|
119
|
+
[aria-pressed="true"]
|
|
120
|
+
),
|
|
99
121
|
.dock-select-trigger:is(
|
|
100
122
|
.is-active,
|
|
101
123
|
.active,
|
|
@@ -41,6 +41,24 @@
|
|
|
41
41
|
@import "./dock-controls/touch-floor.css";
|
|
42
42
|
|
|
43
43
|
@layer components {
|
|
44
|
+
/* BD.W-DOCK-CORE (A12) — the draggable-item GRAB squish. A grabbed dock item
|
|
45
|
+
(`.glass-drag-lift`, written by useDockItemDrag while the gesture is in flight)
|
|
46
|
+
deforms with the volume-preserving `--stretch` register (the SHARED useLiquidFlex
|
|
47
|
+
"tanh" squish the tab indicator + dock morph already speak — ONE squish source, no
|
|
48
|
+
forked deformation). The grab follows the pointer via the JS-written `transform:
|
|
49
|
+
translate` (the compositor follow); this rule adds the gel-squish scale ON the
|
|
50
|
+
grabbed plate (stretch along the drag axis, compress across — volume-preserving).
|
|
51
|
+
The dock grabbable cursor + touch-action sit on `.glass-drag-grabbable` (the dock
|
|
52
|
+
root) via segmented-tabs.css. At rest `--stretch` is unset → 1/1 (no deform). The
|
|
53
|
+
global PRM gate strips `scale` → no squish under reduce (the gesture still follows).
|
|
54
|
+
Horizontal docks stretch X / compress Y; vertical stretch Y / compress X. */
|
|
55
|
+
.glass-dock.dock-items-draggable:not(.vertical) .dock-icon-button.glass-drag-lift {
|
|
56
|
+
scale: var(--stretch, 1) calc(1 / var(--stretch, 1));
|
|
57
|
+
}
|
|
58
|
+
.glass-dock.dock-items-draggable.vertical .dock-icon-button.glass-drag-lift {
|
|
59
|
+
scale: calc(1 / var(--stretch, 1)) var(--stretch, 1);
|
|
60
|
+
}
|
|
61
|
+
|
|
44
62
|
/* AV.W9.3 — momentum-gated dock-control press spring. The `:active` squish
|
|
45
63
|
toward `--scale-press-dock` settles on a NO-OVERSHOOT spring (Apple,
|
|
46
64
|
"Designing Fluid Interfaces": default 100% damping — no bounce — for a tap;
|
package/dist/styles/dock.css
CHANGED
|
@@ -17,7 +17,12 @@
|
|
|
17
17
|
* three-region body).
|
|
18
18
|
* - dock/morph.css — the W01 single-scalar morph chrome + state response
|
|
19
19
|
* (--dock-expand-t interp, collapsed/summary, held /
|
|
20
|
-
* open
|
|
20
|
+
* open).
|
|
21
|
+
* - dock/adaptive-legibility.css — the darken-over-light self-engage (the
|
|
22
|
+
* continuous backdrop-luma tint clamp, the warm-chromatic
|
|
23
|
+
* dock ink, the @container light bucket, contrast-color()
|
|
24
|
+
* refinement, the PRM reveal-blur carve). Split from
|
|
25
|
+
* morph.css to keep both partials under the 500-line bound.
|
|
21
26
|
* - dock/density.css — the W45 density × --dock-scale cascade.
|
|
22
27
|
* - dock/layers.css — the `.dock-layer` crossfade + hit-test + reveal-
|
|
23
28
|
* stagger contract + the `layout="grid"` tile grid.
|
|
@@ -36,6 +41,7 @@
|
|
|
36
41
|
cascade is preserved bit-for-bit (the carve-isomorphism gate is the witness). */
|
|
37
42
|
@import "./dock/shell.css";
|
|
38
43
|
@import "./dock/morph.css";
|
|
44
|
+
@import "./dock/adaptive-legibility.css";
|
|
39
45
|
@import "./dock/density.css";
|
|
40
46
|
@import "./dock/shape.css";
|
|
41
47
|
@import "./dock/layers.css";
|
|
@@ -44,6 +50,15 @@
|
|
|
44
50
|
@import "./dock/stack-rail.css";
|
|
45
51
|
@import "./dock/section.css";
|
|
46
52
|
@import "./dock/morph-bridge.css";
|
|
53
|
+
/* BE.W-DOCK-FISSION — the 1→N stretch-and-snap goo bridge (the sibling of morph-bridge's
|
|
54
|
+
1→1 V↔H crossfade; the per-seam `--neck-t` neck STRETCH→THIN→SNAP-BACK recoil + the
|
|
55
|
+
jubilance ripple/splash FLOOR). @import-ed into the LIBRARY cascade beside morph-bridge
|
|
56
|
+
so a consumer importing `@mkbabb/glass-ui/styles` gets the fission delights — the recipe
|
|
57
|
+
is `v-for`-shaped on `.dock-fission-piece`, compositor-only, PRM-removed, Safari-safe
|
|
58
|
+
(the REGULAR `filter: url()`, never backdrop-filter). The demo's island FACE/layout
|
|
59
|
+
(`.liquid-island-*`) stays demo-only (liquid-morph.css); this file owns only the
|
|
60
|
+
`.dock-fission-bridge`/`.dock-fission-piece` BEHAVIOR. */
|
|
61
|
+
@import "./dock/fission-bridge.css";
|
|
47
62
|
/* BC.W-AX-DOCK-CTA-SEAT — the [data-cta-pending] CTA-receive landing seat (the static
|
|
48
63
|
resting-geometry reserve + the plain transition:opacity FLIP reveal). Last in the
|
|
49
64
|
dock cascade — a net-new surface around the byte-untouched useDockCtaReceive morph. */
|