@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
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
//#region src/composables/motion/springPresets.ts
|
|
2
|
+
var e = [
|
|
3
|
+
{
|
|
4
|
+
name: "smooth",
|
|
5
|
+
response: .58,
|
|
6
|
+
dampingFraction: .8,
|
|
7
|
+
comment: "SETTLE register — the inertial settle (entrances/fades/scale-ins): weighty, a whisper of life (+1.5%), never a dead stop. BD.W-ANIM-IOS27-TUNE"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
name: "snappy",
|
|
11
|
+
response: .48,
|
|
12
|
+
dampingFraction: .74,
|
|
13
|
+
comment: "CONTROL register — the quick-but-WEIGHTY position morph (tab indicator, progress fill, .glass-reveal SPATIAL bloom, page-build); arrives at half-clock (audacious) with a small gooey overshoot (+3.2%). BD.W-ANIM-IOS27-TUNE"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: "bouncy",
|
|
17
|
+
response: .6,
|
|
18
|
+
dampingFraction: .6,
|
|
19
|
+
comment: "PLAYFUL register — the emphatic one-shot (dialog/success entrance, VT default, completion-seal): FLOWING not flicking — overshoot softened 12.6%→9.5%, slower for inertia. BD.W-ANIM-IOS27-TUNE"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "gentle",
|
|
23
|
+
response: .82,
|
|
24
|
+
dampingFraction: 1,
|
|
25
|
+
comment: "GENTLE register — the patient critically-damped settle (--ease-convergence alias); slow inertial arrival, ζ=1.0 (NO overshoot by definition — the convergence-reveal depends on it). BD.W-ANIM-IOS27-TUNE"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: "dock",
|
|
29
|
+
response: .68,
|
|
30
|
+
dampingFraction: .64,
|
|
31
|
+
comment: "DOCK register — THE WEIGHTY GOOEY MORPH (collapse/expand + V↔H + fission + in-situ shell): slow inertial mass, the settle a graceful +7.3% (un-pointed liquid), the 'MORPH MORE on move' reference. BD.W-ANIM-IOS27-TUNE"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: "press",
|
|
35
|
+
response: .2,
|
|
36
|
+
dampingFraction: .8,
|
|
37
|
+
comment: "PRESS register — the iOS interactive tap (useSpringPress + --glass-btn-press-t): a hair of inertial carry (sub-200ms iOS window) + a tiny alive rebound (+1.5%); the interruptible re-seat keeps the gesture continuous. BD.W-ANIM-IOS27-TUNE"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: "timeline-head",
|
|
41
|
+
response: .34,
|
|
42
|
+
dampingFraction: .74,
|
|
43
|
+
comment: "TIMELINE-HEAD register — the ScrubberTimeline warm-glass lozenge travel (LEG-2): the head LAGS the pointer a hair then settles with a whisper of fling-overshoot (+3.2%). The fast head clock the fill trails. BD.W-TIMELINE-RAIL-UNIFY"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: "timeline-fill",
|
|
47
|
+
response: .46,
|
|
48
|
+
dampingFraction: .82,
|
|
49
|
+
comment: "TIMELINE-FILL register — the ScrubberTimeline lane fill (LEG-2): a slower clock than the head so the fill TRAILS the bead (the lane reads as liquid trailing), settling with a hint of carry (+1.1%). BD.W-TIMELINE-RAIL-UNIFY"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: "timeline-press",
|
|
53
|
+
response: .22,
|
|
54
|
+
dampingFraction: .7,
|
|
55
|
+
comment: "TIMELINE-PRESS register — the ScrubberTimeline grab-anticipation (LEG-2): the head's pointerdown squash on the cartoon-punch clock, a crisp short-response press settle (+4.6%) feeding the --scale-press dip. BD.W-TIMELINE-RAIL-UNIFY"
|
|
56
|
+
}
|
|
57
|
+
];
|
|
58
|
+
function t(t) {
|
|
59
|
+
let n = e.find((e) => e.name === t);
|
|
60
|
+
if (!n) throw Error(`Unknown spring preset: ${t}`);
|
|
61
|
+
return n;
|
|
62
|
+
}
|
|
63
|
+
//#endregion
|
|
64
|
+
export { t as n, e as t };
|
package/dist/stacked-icons.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Fragment as e, computed as t, createBlock as n, createCommentVNode as r, createElementBlock as i,
|
|
1
|
+
import { Fragment as e, computed as t, createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, createTextVNode as o, defineComponent as s, normalizeClass as c, normalizeStyle as l, openBlock as u, renderList as d, renderSlot as f, resolveDynamicComponent as p, toDisplayString as m, withCtx as h } from "vue";
|
|
2
2
|
//#region src/components/custom/stacked-icons/StackedIconGroup.vue?vue&type=script&setup=true&lang.ts
|
|
3
|
-
var
|
|
3
|
+
var g = {
|
|
4
4
|
key: 1,
|
|
5
5
|
style: { zIndex: 0 }
|
|
6
|
-
},
|
|
6
|
+
}, _ = /* @__PURE__ */ s({
|
|
7
7
|
__name: "StackedIconGroup",
|
|
8
8
|
props: {
|
|
9
9
|
items: {},
|
|
@@ -21,63 +21,78 @@ var h = {
|
|
|
21
21
|
as: { default: "div" },
|
|
22
22
|
keyFn: {}
|
|
23
23
|
},
|
|
24
|
-
setup(
|
|
25
|
-
let
|
|
26
|
-
switch (
|
|
24
|
+
setup(s) {
|
|
25
|
+
let _ = s, v = t(() => {
|
|
26
|
+
switch (_.size) {
|
|
27
27
|
case "sm": return "h-6 w-6";
|
|
28
28
|
case "md": return "h-8 w-8";
|
|
29
29
|
case "lg": return "h-10 w-10";
|
|
30
30
|
}
|
|
31
|
-
}),
|
|
32
|
-
if (
|
|
31
|
+
}), y = t(() => {
|
|
32
|
+
if (_.direction === "vertical") switch (_.size) {
|
|
33
33
|
case "sm": return "-mt-(--stack-overlap-sm)";
|
|
34
34
|
case "md": return "-mt-(--stack-overlap-md)";
|
|
35
35
|
case "lg": return "-mt-(--stack-overlap-lg)";
|
|
36
36
|
}
|
|
37
|
-
switch (
|
|
37
|
+
switch (_.size) {
|
|
38
38
|
case "sm": return "-ml-(--stack-overlap-sm)";
|
|
39
39
|
case "md": return "-ml-(--stack-overlap-md)";
|
|
40
40
|
case "lg": return "-ml-(--stack-overlap-lg)";
|
|
41
41
|
}
|
|
42
|
-
}),
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
42
|
+
}), b = t(() => _.items.slice(0, _.maxVisible)), x = t(() => Math.max(0, _.items.length - _.maxVisible)), S = t(() => {
|
|
43
|
+
let e = b.value.length + +(x.value > 0);
|
|
44
|
+
return Math.max(1, e - 1);
|
|
45
|
+
});
|
|
46
|
+
return (t, _) => (u(), n(p(s.as), {
|
|
47
|
+
class: c(["stacked-icon-group group/stack relative isolate flex", [s.direction === "vertical" ? "flex-col" : "items-center", s.reversed ? s.direction === "vertical" ? "flex-col-reverse" : "flex-row-reverse" : ""]]),
|
|
48
|
+
"data-direction": s.direction,
|
|
49
|
+
style: l({ "--n": S.value })
|
|
50
|
+
}, {
|
|
51
|
+
default: h(() => [
|
|
52
|
+
(u(!0), i(e, null, d(b.value, (e, n) => (u(), i("div", {
|
|
53
|
+
key: s.keyFn?.(e, n) ?? n,
|
|
54
|
+
class: c([
|
|
55
|
+
v.value,
|
|
56
|
+
"stacked-icon-puck relative flex items-center justify-center rounded-pill transform-gpu",
|
|
57
|
+
n > 0 ? y.value : "",
|
|
58
|
+
s.expandOnHover && n > 0 ? "stacked-icon-puck--fan" : ""
|
|
57
59
|
]),
|
|
58
|
-
style:
|
|
59
|
-
|
|
60
|
+
style: l({
|
|
61
|
+
zIndex: b.value.length + 1 - n,
|
|
62
|
+
"--i": n
|
|
63
|
+
})
|
|
64
|
+
}, [f(t.$slots, "icon", {
|
|
60
65
|
item: e,
|
|
61
66
|
index: n
|
|
62
67
|
})], 6))), 128)),
|
|
63
|
-
|
|
68
|
+
x.value > 0 ? (u(), i("div", {
|
|
64
69
|
key: 0,
|
|
65
|
-
class:
|
|
66
|
-
_.value,
|
|
67
|
-
"relative flex items-center justify-center rounded-pill",
|
|
68
|
-
"border-2 border-background bg-[color-mix(in_srgb,var(--background)_96%,transparent)] text-xs font-semibold text-muted-foreground/60 shadow-cartoon-sm",
|
|
69
|
-
"transform-gpu transition-[background-color,color,transform,box-shadow] duration-fast ease-spring-snappy",
|
|
70
|
-
"hover:bg-background hover:text-muted-foreground hover:shadow-cartoon-md",
|
|
70
|
+
class: c([
|
|
71
71
|
v.value,
|
|
72
|
-
|
|
72
|
+
"stacked-icon-puck stacked-icon-overflow glass-capsule glass-atom",
|
|
73
|
+
"relative flex items-center justify-center rounded-pill text-xs font-semibold text-muted-foreground",
|
|
74
|
+
"transform-gpu",
|
|
75
|
+
y.value,
|
|
76
|
+
s.expandOnHover ? "stacked-icon-puck--fan" : ""
|
|
73
77
|
]),
|
|
74
|
-
style: {
|
|
75
|
-
|
|
76
|
-
|
|
78
|
+
style: l({
|
|
79
|
+
zIndex: 1,
|
|
80
|
+
"--i": b.value.length
|
|
81
|
+
}),
|
|
82
|
+
"data-cast": ""
|
|
83
|
+
}, [_[0] ||= a("span", {
|
|
84
|
+
class: "cartoon-cast",
|
|
85
|
+
"aria-hidden": "true"
|
|
86
|
+
}, null, -1), f(t.$slots, "overflow", { count: x.value }, () => [o(" +" + m(x.value), 1)])], 6)) : r("", !0),
|
|
87
|
+
x.value === 0 && t.$slots.info ? (u(), i("div", g, [f(t.$slots, "info")])) : r("", !0)
|
|
77
88
|
]),
|
|
78
89
|
_: 3
|
|
79
|
-
}, 8, [
|
|
90
|
+
}, 8, [
|
|
91
|
+
"class",
|
|
92
|
+
"data-direction",
|
|
93
|
+
"style"
|
|
94
|
+
]));
|
|
80
95
|
}
|
|
81
96
|
});
|
|
82
97
|
//#endregion
|
|
83
|
-
export {
|
|
98
|
+
export { _ as StackedIconGroup };
|
package/dist/styles/cards.css
CHANGED
|
@@ -6,6 +6,122 @@
|
|
|
6
6
|
* only the 5-rung glass ladder. */
|
|
7
7
|
|
|
8
8
|
@layer components {
|
|
9
|
+
/* ── BD.W-CARD-MATERIAL-FLOOR — the card-surface warm tint-seam enrollment ──
|
|
10
|
+
The §4 leg-(a) material floor, reconciled to the SHIPPED `--glass-tint-*`
|
|
11
|
+
seam (NOT a fork, NOT a global re-tint). The card's glass/cartoon surfaces
|
|
12
|
+
ride the `.glass-${tier}` ladder rung, whose fill is already
|
|
13
|
+
`color-mix(in oklab, --glass-bg-${tier}, --glass-tint-source --glass-tint-
|
|
14
|
+
strength)` (ladder.css) — so the card reaches the warm floor by setting a
|
|
15
|
+
CARD-LOCAL non-zero `--glass-tint-strength` (the global default at
|
|
16
|
+
surface-axis.css:83 stays `0%`, so the 6 other seam-readers — drawer / menu /
|
|
17
|
+
veil / jubilance / .btn-glass / .segmented-indicator — are byte-unchanged:
|
|
18
|
+
the blast-radius bite). `--glass-tint-source` defaults to `var(--card)` (a
|
|
19
|
+
warm cream, glass-fx.css:158), so the floor is warm by construction in BOTH
|
|
20
|
+
modes. The card clears the warm-chroma floor (C ≥ 0.02 warm) in the MATERIAL
|
|
21
|
+
itself — before the field even lands, and on a dead ground (print / reduced-
|
|
22
|
+
transparency), the "far too gray" verdict closes at the material layer.
|
|
23
|
+
|
|
24
|
+
SCOPE — `[data-surface]` is `glass` or `cartoon` (NOT `veil`: veil owns its
|
|
25
|
+
own `--veil-bg` tint seam below; NOT `opaque`: the solid `--card` plate is
|
|
26
|
+
already warm-cream). The strength is set on the host so it inherits into the
|
|
27
|
+
rung's `color-mix`. This is a card-local re-point of the SHIPPED seam — DRY,
|
|
28
|
+
no second compositing axis, the ladder rung does the mix. */
|
|
29
|
+
[data-slot="card"]:where(
|
|
30
|
+
[data-surface="glass"],
|
|
31
|
+
[data-surface="cartoon"]
|
|
32
|
+
) {
|
|
33
|
+
--glass-tint-strength: 8%;
|
|
34
|
+
/* BD.W-CARD-CEL-MOTION (§3.1) — the defined-edge border-ink floor. The
|
|
35
|
+
ladder rung's `--glass-border-resting`/`-quiet` ink is 4% warm
|
|
36
|
+
(glass.css:331-332) — it vanishes cream-on-cream (K3 RED). Floor the
|
|
37
|
+
card's own border-ink UP to ≥8% warm-ink so the cel reads as a defined
|
|
38
|
+
SHAPE (WCAG 1.4.11 non-text). `--glass-border-rung` is the per-rung ink
|
|
39
|
+
the accent-composed `--glass-border-accent` reads (ladder.css /
|
|
40
|
+
surfaces.css); re-pointing it card-locally floors the border WITHOUT
|
|
41
|
+
forking the rim (the keyed two-stop rim from `--glass-material-rim` is
|
|
42
|
+
CONSUMED unchanged — the card does NOT re-mint a rim). Warm (the
|
|
43
|
+
`--foreground` mix is warm-cream in both modes); the `.dark` ink lifts
|
|
44
|
+
off the near-black field through the same `--foreground` flip. */
|
|
45
|
+
--glass-border-rung: color-mix(in srgb, var(--foreground) 9%, transparent);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/* BD.W-CARD-CEL-MOTION (§3.2) — the inner catch-light over the field. A faint
|
|
49
|
+
`screen`-blended warm catch sits where the upper-right `--glass-key` sun
|
|
50
|
+
hits, lifting the cel off the field (the §3 layer-4 catch, coherent with the
|
|
51
|
+
rim + cast — ONE key). It rides the host `background-image` stack ALONGSIDE
|
|
52
|
+
the field underlayer (both are static gradients in the same longhand; the
|
|
53
|
+
catch is the FIRST layer so it sits over the warm underlayer), so it adds NO
|
|
54
|
+
pseudo (`::before` = moving specular, `::after` = grain — both occupied).
|
|
55
|
+
`screen` lifts only where there is light, never darkening — and it is below
|
|
56
|
+
content + clipped to the host radius, so it never washes the text column
|
|
57
|
+
(the K-AA carve). Under `prefers-contrast: more` the screen blend is dropped
|
|
58
|
+
(the catch is decoration, the edge is the legibility asset). */
|
|
59
|
+
[data-slot="card"][data-surface="glass"]:not(.paper-grid) {
|
|
60
|
+
background-blend-mode: screen, normal;
|
|
61
|
+
}
|
|
62
|
+
@media (prefers-contrast: more) {
|
|
63
|
+
[data-slot="card"][data-surface="glass"]:not(.paper-grid) {
|
|
64
|
+
background-blend-mode: normal;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* ── BD.W-CARD-FIELD-FLOOR — the orphan-card static warm field underlayer ──
|
|
69
|
+
The §2 leg-(b) structural contract, card-local fallback. The COMMON case is
|
|
70
|
+
ancestor-supplied: the page mounts ONE global `[data-paper-field]` plane
|
|
71
|
+
(AppShell) behind every route, and the card composites over it. The ORPHAN
|
|
72
|
+
case is a card in an OCCLUDING context an ancestor field cannot reach (a
|
|
73
|
+
dialog / drawer / portal that paints its own opaque ground over the page
|
|
74
|
+
field) — there the card mounts its OWN cheap static warm underlayer so it is
|
|
75
|
+
NEVER gray-over-nothing wherever it is dropped.
|
|
76
|
+
|
|
77
|
+
MECHANISM — ONE static `radial-gradient` on the host `background-image`
|
|
78
|
+
longhand (the proven `.paper-grid` coexistence seam: a later
|
|
79
|
+
`background-image` COEXISTS with the glass tier's `background:` shorthand
|
|
80
|
+
fill — paints OVER the translucent color, UNDER content + UNDER both
|
|
81
|
+
pseudos, clipped to the host `border-radius` by construction). Zero JS, one
|
|
82
|
+
compositor-cached paint, PRM-static. The warm 0-alpha stops are explicit
|
|
83
|
+
`oklch(L C H / 0)` (NEVER bare `transparent` — the WebKit black-premultiply
|
|
84
|
+
hole, build-trap-(d)).
|
|
85
|
+
|
|
86
|
+
THE NO-DOUBLE-PAINT GATE (the presence-BEHIND check, NOT `closest()`): the
|
|
87
|
+
fallback paints ONLY when NO `[data-paper-field]` ancestor is present — `:where(
|
|
88
|
+
[data-paper-field]) &` switches it OFF under the global field, so a card over
|
|
89
|
+
the page field reads the page field (no local underlayer), and a 50-card grid
|
|
90
|
+
under ONE ancestor field is ONE field paint, not N. A `cartoon`/`opaque`
|
|
91
|
+
card already carries a defined edge + warm fill, so the orphan field is the
|
|
92
|
+
glass-surface case; `surface="glass"` only (the orphan glass card is the one
|
|
93
|
+
that reads gray-over-nothing). The `.paper-grid` document register is EXCLUDED
|
|
94
|
+
by selector (it sets its own grid `background-image` underlayer — a grid card
|
|
95
|
+
opts out of the warm-field fallback, not a `background-image: none` race). */
|
|
96
|
+
[data-slot="card"][data-surface="glass"]:not(.paper-grid) {
|
|
97
|
+
/* TWO static layers in ONE longhand (blended by the `background-blend-mode`
|
|
98
|
+
above — `screen, normal`): (1) the upper-right KEYED catch-light (warm,
|
|
99
|
+
`screen`-blended so it only LIFTS — the §3 catch), then (2) the warm cel
|
|
100
|
+
UNDERLAYER (one radial, amber-key toward the upper-right `--glass-key`,
|
|
101
|
+
the field fallback). Both fade to a warm 0-alpha — NEVER bare
|
|
102
|
+
`transparent` (the WebKit black-premultiply hole, build-trap-(d)). */
|
|
103
|
+
background-image:
|
|
104
|
+
radial-gradient(
|
|
105
|
+
60% 55% at 80% 16%,
|
|
106
|
+
oklch(0.96 0.04 78 / 0.5),
|
|
107
|
+
oklch(0.96 0.04 78 / 0) 72%
|
|
108
|
+
),
|
|
109
|
+
radial-gradient(
|
|
110
|
+
120% 110% at 78% 22%,
|
|
111
|
+
oklch(0.9 0.075 72 / 0.5),
|
|
112
|
+
oklch(0.9 0.075 72 / 0) 70%
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/* The presence-behind gate — under an ancestor field, the card reads the REAL
|
|
117
|
+
field (the page plane transmits through the translucent fill), so the local
|
|
118
|
+
fallback is switched OFF (no double paint). A 50-card grid under ONE ancestor
|
|
119
|
+
field is ONE field paint, not N local underlayers. */
|
|
120
|
+
:where([data-paper-field])
|
|
121
|
+
[data-slot="card"][data-surface="glass"]:not(.paper-grid) {
|
|
122
|
+
background-image: none;
|
|
123
|
+
}
|
|
124
|
+
|
|
9
125
|
/* Paper texture overlay */
|
|
10
126
|
.paper-texture {
|
|
11
127
|
background-image: var(--paper-clean-texture);
|
|
@@ -182,13 +298,97 @@
|
|
|
182
298
|
a card surface that often hosts portaled content; `translate: 0` at rest
|
|
183
299
|
mints the stacking context once. Longhand maps `translate(x, y)` 1:1. */
|
|
184
300
|
translate: 0;
|
|
301
|
+
position: relative;
|
|
302
|
+
/* BD.W-CARTOON-CASTER — the LOUD register carries `--motion-weight: 1` in the
|
|
303
|
+
SAME recipe (the loud-register coupling: so the punch is never accidentally
|
|
304
|
+
muted to ~+13.6% by inheriting the rest 0.618 — the BD.W-CARTOON-PUNCH
|
|
305
|
+
loud-register guard's concrete pass-subject). The press ramp ALIASES the
|
|
306
|
+
existing `--card-press-t` (the host's `useLiquidPress` already drives it for
|
|
307
|
+
every `pressable` card) — NO second press var, NO Card press-driver rewrite. */
|
|
308
|
+
--motion-weight: 1;
|
|
309
|
+
--cartoon-press-t: var(--card-press-t, 0);
|
|
185
310
|
transition:
|
|
186
|
-
translate var(--duration-normal) var(--
|
|
311
|
+
translate var(--duration-normal) var(--ease-cartoon-punch),
|
|
312
|
+
scale var(--duration-normal) var(--ease-cartoon-punch),
|
|
187
313
|
box-shadow var(--duration-normal) var(--ease-standard);
|
|
188
314
|
|
|
189
|
-
|
|
315
|
+
/* BD.W-CARTOON-CASTER — the hover RE-POINTS the existing rule onto the punch
|
|
316
|
+
curve (was --spring-smooth) and guards `:not(:active)` so the press squash wins;
|
|
317
|
+
the object lifts a hair UP-RIGHT (toward the upper-right `--glass-key`) and the
|
|
318
|
+
cast deepens to the lg rung (the gap opens). ONE hover rule, no double-declare. */
|
|
319
|
+
&:hover:not(:active):not(:disabled) {
|
|
190
320
|
translate: var(--lift-sm) var(--lift-sm);
|
|
321
|
+
/* BD.W-CARD-CEL-MOTION (§5) — the cel lifts toward the light with a
|
|
322
|
+
sub-perceptual VOL-PRESERVING scale (X·Y ≈ 1: 1.015 × 0.985 ≈ 1.0): the
|
|
323
|
+
cel rising toward its sun reads as PEELING off the field, not a flat
|
|
324
|
+
sticker slide. Composes the existing `scale` transition (declared above)
|
|
325
|
+
on the punch curve. The press squash (`scale: 1.04 0.94`) wins via
|
|
326
|
+
`:not(:active)`. */
|
|
327
|
+
scale: 1.015 0.985;
|
|
191
328
|
box-shadow: var(--shadow-cartoon-lg);
|
|
329
|
+
& .cartoon-cast {
|
|
330
|
+
box-shadow: var(--shadow-cartoon-lg);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
/* BD.W-CARTOON-CASTER — the press is a NON-uniform SQUASH (H5): widen X, compress
|
|
335
|
+
Y — real squash & stretch, NOT a uniform shrink. The CSS `:active` is the no-JS
|
|
336
|
+
floor; `useLiquidPress` drives `--card-press-t` 0→1 for the continuous
|
|
337
|
+
interruptible press the inert caster rides. */
|
|
338
|
+
&:active:not(:disabled) {
|
|
339
|
+
scale: 1.04 0.94;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
/* ── BD.W-CARTOON-CASTER — the inert-child moving cel cast ───────────────────────
|
|
344
|
+
The cast rides an INERT `<span class="cartoon-cast" aria-hidden>` child the Card
|
|
345
|
+
emits when `surface="cartoon"` — NOT a `::before`/`::after` pseudo (both are
|
|
346
|
+
OCCUPIED on the real glass carrier: `::before` is the moving-specular catch-light,
|
|
347
|
+
`::after` is the grain overlay; the H2 hardening). The child is a self-contained
|
|
348
|
+
ink-plate the body floats above: it carries the SAME shipped `--shadow-cartoon-md`
|
|
349
|
+
box-shadow (set ONCE per state-flip — NEVER animated, the §L7 paint-fence) and
|
|
350
|
+
MOVES on the compositor via `translate`/`scale` only.
|
|
351
|
+
|
|
352
|
+
The cast travels DOWN-LEFT (opposite the upper-right `--glass-key`, coherent with
|
|
353
|
+
the shadow.css cel-ink geometry) as the body lifts, and SPREADS as the gap opens.
|
|
354
|
+
ONE scalar drive: `--cartoon-press-t × --motion-weight` (the `:root` PRM carve
|
|
355
|
+
zeroes `--motion-weight` → travel/spread collapse to rest). It LAGS the body
|
|
356
|
+
(~1.15× slower transition) → the ink recoils LATE on release (follow-through /
|
|
357
|
+
overlapping action). The `--cartoon-cast-dx/dy` drag-track deltas are 0 at rest
|
|
358
|
+
(the opt-in `useCartoonCast` DOM bridge is future — labeled honestly). */
|
|
359
|
+
.cartoon-cast {
|
|
360
|
+
position: absolute;
|
|
361
|
+
inset: 0;
|
|
362
|
+
z-index: -1; /* behind the cel face, in front of the page */
|
|
363
|
+
border-radius: inherit;
|
|
364
|
+
pointer-events: none;
|
|
365
|
+
box-shadow: var(--shadow-cartoon-md);
|
|
366
|
+
/* the derived offset + spread — read `--motion-weight × --cartoon-press-t`. The
|
|
367
|
+
sign is DOWN-LEFT (negative X, positive Y) to match the upper-right key. */
|
|
368
|
+
--cast-travel: calc(6px * var(--motion-weight) * var(--cartoon-press-t));
|
|
369
|
+
--cast-spread: calc(1 + 0.18 * var(--motion-weight) * var(--cartoon-press-t));
|
|
370
|
+
translate:
|
|
371
|
+
calc(-1 * var(--cast-travel) + var(--cartoon-cast-dx))
|
|
372
|
+
calc(var(--cast-travel) + var(--cartoon-cast-dy));
|
|
373
|
+
scale: var(--cast-spread);
|
|
374
|
+
/* the caster LAGS the body (~1.15×) → the late ink recoil on release. */
|
|
375
|
+
transition:
|
|
376
|
+
translate calc(var(--duration-normal) * 1.15) var(--ease-cartoon-punch),
|
|
377
|
+
scale calc(var(--duration-normal) * 1.15) var(--ease-cartoon-punch),
|
|
378
|
+
--cartoon-cast-dx var(--duration-normal) var(--ease-cartoon-punch),
|
|
379
|
+
--cartoon-cast-dy var(--duration-normal) var(--ease-cartoon-punch);
|
|
380
|
+
will-change: translate, scale;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
/* BD.W-CARTOON-CASTER — PRM/PRT carve. Under reduced-motion `--motion-weight: 0`
|
|
384
|
+
zeroes travel/spread/squash/lag in ONE assignment (every `calc(… * --motion-weight)`
|
|
385
|
+
collapses to rest); the transition is killed. The static bold cel STAMP persists
|
|
386
|
+
(identity/legibility — only the TRAVEL/PUNCH is removed). */
|
|
387
|
+
@media (prefers-reduced-motion: reduce) {
|
|
388
|
+
.cartoon-surface,
|
|
389
|
+
.cartoon-cast {
|
|
390
|
+
--motion-weight: 0;
|
|
391
|
+
transition: none;
|
|
192
392
|
}
|
|
193
393
|
}
|
|
194
394
|
|