@mkbabb/glass-ui 4.0.1 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{CardAction-CW7a0m8M.js → CardAction-8whJrLWt.js} +23 -8
- package/dist/{CommandShortcut-DvZNQ_HF.js → CommandShortcut-D3yxgHNn.js} +23 -12
- package/dist/{ConfiguratorRow-BR4l-ixA.js → ConfiguratorRow-CaP7U3ZA.js} +11 -11
- package/dist/ContextMenuContent-B3ZsheLV.js +90 -0
- package/dist/{ContextMenuSubContent-xol4sD2q.js → ContextMenuSubContent-DDRID3qC.js} +15 -15
- package/dist/{DataTable-CuKwF7wr.js → DataTable-Bc9kUtu_.js} +2 -2
- package/dist/{DialogContent-DcKK8k9i.js → DialogContent-6JtTB5x2.js} +8 -5
- package/dist/DialogFooter-9phqcRIS.js +80 -0
- package/dist/DialogScrollContent-TTuovQst.js +93 -0
- package/dist/HoverCardContent-Bel1gdLZ.js +88 -0
- package/dist/{IconChip-BTD-nay5.js → IconChip-DhbdGdFQ.js} +1 -1
- package/dist/{IconTooltip-Bl8gFZ8d.js → IconTooltip-B0zimd2H.js} +1 -1
- package/dist/Input-Cg9DF62r.js +57 -0
- package/dist/{Notification-VUwexFUf.js → Notification-CphK7AAm.js} +3 -3
- package/dist/NumberFieldContent-D8cXeyO4.js +140 -0
- package/dist/PagerDots-Cjx96la-.js +98 -0
- package/dist/{SelectScrollDownButton-CrA8F0iV.js → SelectScrollDownButton-DAKCBEdW.js} +62 -57
- package/dist/{SelectSeparator-DXswVdRz.js → SelectSeparator-C2UGOkXF.js} +1 -1
- package/dist/Separator-DQcwC2TR.js +44 -0
- package/dist/Switch-B8RscmRu.js +49 -0
- package/dist/{Toaster-Bw4xR8xV.js → Toaster-D9qIHjBI.js} +1 -1
- package/dist/{ToggleGroupItem-pEM9vIhs.js → ToggleGroupItem-BLtr3TJq.js} +2 -2
- package/dist/TooltipProvider-BJ_Y5EGX.js +109 -0
- package/dist/animated-digit.js +1 -1
- package/dist/api/index.d.ts +15 -32
- package/dist/api/types-extra.d.ts +31 -0
- package/dist/api.js +1 -1
- package/dist/aurora.js +579 -251
- package/dist/border-progress.js +49 -57
- package/dist/{button-DYCUa-tH.js → button-5dY1Dvhd.js} +13 -14
- package/dist/button.js +1 -1
- package/dist/canvas.js +2 -3
- package/dist/card.js +1 -1
- package/dist/carousel.js +20 -20
- package/dist/color-Cs0-oxYL.js +116 -0
- package/dist/color.js +2 -2
- package/dist/command.js +1 -1
- package/dist/completion-seal.d.ts +1 -0
- package/dist/completion-seal.js +89 -0
- package/dist/components/custom/aurora/Aurora.vue.d.ts +10 -5
- package/dist/components/custom/aurora/composables/color.d.ts +13 -0
- package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
- package/dist/components/custom/aurora/composables/runtime.d.ts +12 -0
- package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +11 -2
- package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +8 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +18 -0
- package/dist/components/custom/aurora/constants/renderMode.d.ts +16 -8
- package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -1
- package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
- package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +14 -18
- package/dist/components/custom/border-progress/index.d.ts +1 -1
- package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +21 -0
- package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
- package/dist/components/custom/completion-seal/constants.d.ts +46 -0
- package/dist/components/custom/completion-seal/index.d.ts +4 -0
- package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +7 -0
- package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +9 -0
- package/dist/components/custom/concentric/composables/ringField.d.ts +57 -16
- package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +2 -1
- package/dist/components/custom/concentric/composables/useConcentric.d.ts +4 -4
- package/dist/components/custom/concentric/constants.d.ts +30 -6
- 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/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
- package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
- package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
- package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
- package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
- package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
- package/dist/components/custom/constellation/constants.d.ts +33 -0
- package/dist/components/custom/constellation/constellationField.d.ts +31 -1
- package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
- package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
- package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
- package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
- package/dist/components/custom/constellation/index.d.ts +5 -5
- package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
- package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
- package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
- package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
- package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
- package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
- package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
- package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
- package/dist/components/custom/deck/constants.d.ts +14 -0
- package/dist/components/custom/deck/index.d.ts +8 -0
- package/dist/components/custom/dock/DockIconButton.vue.d.ts +12 -0
- package/dist/components/custom/dock/DockStack.vue.d.ts +65 -0
- package/dist/components/custom/dock/GlassDock.vue.d.ts +4 -2
- package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +80 -0
- package/dist/components/custom/dock/composables/index.d.ts +2 -0
- package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
- package/dist/components/custom/dock/composables/useDockShellProps.d.ts +11 -0
- package/dist/components/custom/dock/constants.d.ts +18 -14
- package/dist/components/custom/dock/index.d.ts +5 -2
- package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +15 -11
- package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +48 -6
- package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +23 -8
- package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +6 -5
- package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +18 -5
- package/dist/components/custom/dot-flow-field/constants.d.ts +42 -21
- package/dist/components/custom/dot-flow-field/index.d.ts +2 -2
- 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 +4 -20
- package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -1
- package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
- package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
- package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +52 -0
- package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
- package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +27 -0
- package/dist/components/custom/dot-matrix/constants.d.ts +58 -0
- package/dist/components/custom/dot-matrix/index.d.ts +5 -0
- package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
- package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -0
- package/dist/components/custom/easing/EasingPicker.vue.d.ts +2 -2
- package/dist/components/custom/easing/composables/useEasingPicker.d.ts +5 -0
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
- package/dist/components/custom/fourier-field/FourierField.vue.d.ts +40 -47
- package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +15 -0
- package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +20 -0
- package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +41 -0
- package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +40 -37
- package/dist/components/custom/fourier-field/constants.d.ts +61 -4
- package/dist/components/custom/fourier-field/index.d.ts +23 -18
- package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
- package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
- package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +9 -1
- package/dist/components/custom/goo-blob/constants.d.ts +1 -1
- package/dist/components/custom/goo-blob/index.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -1
- package/dist/components/custom/goo-blob/types.d.ts +36 -0
- package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
- package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
- package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +50 -0
- package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +35 -0
- package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
- package/dist/components/custom/goo-dot-matrix/constants.d.ts +76 -0
- package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +11 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +3 -0
- package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +21 -2
- package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
- package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
- package/dist/components/custom/pager-dots/index.d.ts +2 -0
- package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
- package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
- package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +90 -0
- package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +16 -0
- package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +19 -0
- package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
- package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
- package/dist/components/custom/paper-grid/constants.d.ts +57 -0
- package/dist/components/custom/paper-grid/index.d.ts +5 -0
- package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
- package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
- package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
- package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
- package/dist/components/custom/search/index.d.ts +2 -0
- package/dist/components/custom/search/searchVariants.d.ts +19 -0
- package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
- package/dist/components/custom/selectable-chip/index.d.ts +2 -0
- package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +23 -0
- package/dist/components/custom/split-chars/SplitChars.vue.d.ts +39 -0
- package/dist/components/custom/split-chars/index.d.ts +1 -0
- package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +8 -6
- package/dist/components/custom/tabs/constants.d.ts +20 -2
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +29 -16
- package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
- package/dist/components/ui/_shared/index.d.ts +2 -0
- package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
- package/dist/components/ui/button/index.d.ts +1 -1
- package/dist/components/ui/card/Card.vue.d.ts +45 -0
- package/dist/components/ui/card/index.d.ts +1 -1
- package/dist/components/ui/carousel/CarouselNext.vue.d.ts +1 -1
- package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +1 -1
- package/dist/components/ui/command/CommandDialog.vue.d.ts +9 -3
- package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
- package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
- package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
- package/dist/components/ui/input/Input.vue.d.ts +3 -0
- package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
- package/dist/components/ui/select/SelectContent.vue.d.ts +3 -0
- package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
- package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
- package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
- package/dist/composables/color/index.d.ts +2 -0
- package/dist/composables/color/useAccentTone.d.ts +34 -0
- package/dist/composables/glass/useVizChoreography.d.ts +123 -0
- package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +10 -0
- package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
- package/dist/composables/glass/webgpu/index.d.ts +1 -1
- package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +28 -7
- package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +1 -0
- package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
- package/dist/composables/motion/core/index.d.ts +3 -0
- package/dist/composables/motion/scrollReader.d.ts +25 -0
- package/dist/composables/motion/springPresets.d.ts +20 -1
- package/dist/composables/motion/useCharStagger.d.ts +44 -0
- package/dist/composables/motion/useDockCtaReceive.d.ts +31 -6
- package/dist/composables/motion/useScrollChrome.d.ts +58 -0
- package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
- package/dist/composables/motion/useSpringPress.d.ts +5 -5
- package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
- package/dist/composables/sidebar/index.d.ts +4 -1
- package/dist/composables/sidebar/types.d.ts +68 -3
- package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
- package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
- package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
- package/dist/composables/virtual/index.d.ts +4 -0
- package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
- package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
- package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
- package/dist/concentric.js +495 -221
- package/dist/configurator.js +2 -2
- package/dist/confirm-dialog.js +62 -47
- package/dist/constellation.js +635 -235
- package/dist/context-menu.js +2 -2
- package/dist/controls.js +1 -1
- package/dist/createCanvasLifecycle-Gh45Ce-p.js +93 -0
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/deck.d.ts +1 -0
- package/dist/deck.js +105 -0
- package/dist/dialog.js +4 -3
- package/dist/dock.js +602 -458
- package/dist/dot-flow-field.js +580 -290
- package/dist/dot-matrix.d.ts +1 -0
- package/dist/dot-matrix.js +630 -0
- package/dist/dotMatrixField-D_x9_1qq.js +48 -0
- package/dist/{dropdown-menu-CofSZuk8.js → dropdown-menu-aJmV5SqE.js} +83 -79
- package/dist/dropdown-menu.js +1 -1
- package/dist/easing.js +188 -176
- package/dist/expandable-container.js +42 -20
- package/dist/fading-scroll.js +1 -1
- package/dist/flow.glsl-B2P7e0MT.js +4 -0
- package/dist/forms.js +62 -60
- package/dist/fourier-field.js +825 -178
- package/dist/fourier-math.js +1 -1
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +145 -104
- package/dist/goo-blob.js +171 -1228
- package/dist/goo-dot-matrix.d.ts +1 -0
- package/dist/goo-dot-matrix.js +591 -0
- package/dist/handmark.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 +2 -0
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/labeled-field.js +70 -60
- package/dist/metric-cell.js +1 -1
- package/dist/metric-stack.js +11 -2
- package/dist/motion-core.js +54 -32
- package/dist/motion-curves.js +11 -1
- package/dist/motion.js +46 -111
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/pager-dots.js +2 -91
- package/dist/paper-backdrop.js +1 -1
- package/dist/paper-grid.d.ts +1 -0
- package/dist/paper-grid.js +788 -0
- package/dist/{presets-BW2b-fr1.js → presets-CvOUqtdY.js} +3 -3
- package/dist/{procedural-color.glsl-CIFsJhwI.js → procedural-color.wgsl-m7Zgv35j.js} +2 -2
- package/dist/progress.js +1 -1
- package/dist/pulse.js +1 -1
- package/dist/reactive.js +1 -1
- package/dist/{useCanvas2D-B8w_E3Rr.js → resolveCanvasColor-yPyIpJt9.js} +12 -2
- package/dist/scrollReader-DI1NWxUw.js +42 -0
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +160 -304
- package/dist/select.js +3 -3
- package/dist/selectable-chip.d.ts +1 -0
- package/dist/selectable-chip.js +65 -0
- package/dist/separator.js +1 -1
- package/dist/{sheet-tZMg0E0w.js → sheet-B2flBfLH.js} +2 -2
- package/dist/sheet.js +1 -1
- package/dist/sidebar.js +216 -114
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +1 -1
- package/dist/spectrum-walk-BVzA7Biz.js +33 -0
- package/dist/{springPresets-CFQGQfdl.js → springPresets-Ce7OYCm9.js} +12 -6
- package/dist/styles/animations.css +13 -3
- package/dist/styles/cards.css +69 -0
- package/dist/styles/completion-seal.css +131 -0
- package/dist/styles/components.css +2 -3
- package/dist/styles/configurator.css +55 -0
- package/dist/styles/critical-partition.mjs +33 -11
- package/dist/styles/deferred.css +2 -0
- package/dist/styles/dock/cta-seat.css +87 -0
- package/dist/styles/dock/density.css +153 -0
- package/dist/styles/dock/layers.css +55 -7
- package/dist/styles/dock/morph-bridge.css +54 -18
- package/dist/styles/dock/morph.css +41 -33
- package/dist/styles/dock/overflow.css +12 -0
- package/dist/styles/dock/search.css +68 -0
- package/dist/styles/dock/shape.css +124 -0
- package/dist/styles/dock/shell.css +23 -5
- package/dist/styles/dock/stack-rail.css +264 -0
- package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/dist/styles/dock-controls/icon-button.css +14 -0
- package/dist/styles/dock.css +11 -1
- package/dist/styles/glass/accent-tone.css +66 -0
- package/dist/styles/glass/control-surfaces.css +167 -0
- package/dist/styles/glass/ladder.css +67 -17
- package/dist/styles/glass/rim.css +19 -9
- package/dist/styles/glass/surfaces.css +69 -148
- package/dist/styles/glass.css +10 -0
- package/dist/styles/index.css +15 -0
- package/dist/styles/scroll-chrome.css +123 -0
- package/dist/styles/scroll-driven.css +38 -0
- package/dist/styles/segmented-tabs.css +50 -14
- package/dist/styles/theme/bridges.css +22 -0
- package/dist/styles/theme/radius.css +18 -1
- package/dist/styles/tokens/color-radius.css +13 -3
- package/dist/styles/tokens/dark-arm.css +39 -6
- package/dist/styles/tokens/glass-deep.css +28 -3
- package/dist/styles/tokens/glass-fx.css +44 -1
- package/dist/styles/tokens/glass.css +91 -31
- package/dist/styles/tokens/light-dark.css +1 -1
- package/dist/styles/tokens/offsets.css +27 -0
- package/dist/styles/tokens/property-regs.css +133 -0
- package/dist/styles/tokens/scale-paper.css +73 -29
- package/dist/styles/tokens/scheme-motion.css +44 -6
- package/dist/styles/tokens/sizing-config.css +110 -0
- package/dist/styles/tokens/sizing.css +55 -104
- package/dist/styles/tokens.css +5 -0
- package/dist/styles/typography/semantic.css +18 -5
- package/dist/styles/utilities/a11y-overrides.css +20 -5
- package/dist/styles/utilities/base-misc.css +52 -0
- package/dist/styles/utilities/btn.css +14 -3
- package/dist/styles/utilities/components.css +31 -6
- package/dist/styles/utilities/metal.css +26 -0
- package/dist/switch.js +1 -1
- package/dist/tabs.js +8 -8
- package/dist/timeline.js +1 -1
- package/dist/toast.js +1 -1
- package/dist/toggle-chip.js +10 -10
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/uniformBridgeWGPU-CtAKl45L.js +1204 -0
- package/dist/{useAnimatedNumber-BfUq2bUM.js → useAnimatedNumber-CLrxicG9.js} +1 -1
- package/dist/{useConfiguratorState-DNlOh6c8.js → useConfiguratorState-4xblKfwd.js} +25 -24
- package/dist/useControlSize-SH1UmJCi.js +9 -0
- package/dist/useDockCtaReceive-DfFkmgL1.js +82 -0
- package/dist/{useDragMorph-DgxnsVJz.js → useDragMorph-BUgAC-zK.js} +4 -4
- package/dist/useFuzzySearch-DIhcYtcw.js +177 -0
- package/dist/useGpuSubstrate-4pTcp6mX.js +294 -0
- package/dist/{useLiquidPress-kfb4KX79.js → useLiquidPress-BooG97RY.js} +2 -2
- package/dist/usePointerVelocityField-QLsy3_kv.js +91 -0
- package/dist/useScrollChrome-D66AVP7C.js +258 -0
- package/dist/{useSpringMount-q1amq1SJ.js → useSpringMount-BWDnKIwh.js} +1 -1
- package/dist/useSpringPress-B1-Czp-V.js +36 -0
- package/dist/useViewTransition-CUI1nAgn.js +95 -0
- package/dist/{vendor-CKmzio-i.js → vendor-B2qOlYY3.js} +24 -11
- package/dist/virtual.d.ts +1 -0
- package/dist/virtual.js +225 -0
- package/dist/watercolor-dot.js +116 -73
- package/package.json +127 -7
- package/src/styles/animations.css +13 -3
- package/src/styles/cards.css +69 -0
- package/src/styles/completion-seal.css +131 -0
- package/src/styles/configurator.css +55 -0
- package/src/styles/critical-partition.mjs +33 -11
- package/src/styles/dock/cta-seat.css +87 -0
- package/src/styles/dock/density.css +153 -0
- package/src/styles/dock/layers.css +55 -7
- package/src/styles/dock/morph-bridge.css +54 -18
- package/src/styles/dock/morph.css +41 -33
- package/src/styles/dock/overflow.css +12 -0
- package/src/styles/dock/search.css +68 -0
- package/src/styles/dock/shape.css +124 -0
- package/src/styles/dock/shell.css +23 -5
- package/src/styles/dock/stack-rail.css +264 -0
- package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/src/styles/dock-controls/icon-button.css +14 -0
- package/src/styles/dock.css +11 -1
- package/src/styles/glass/accent-tone.css +66 -0
- package/src/styles/glass/control-surfaces.css +167 -0
- package/src/styles/glass/ladder.css +67 -17
- package/src/styles/glass/rim.css +19 -9
- package/src/styles/glass/surfaces.css +69 -148
- package/src/styles/glass.css +10 -0
- package/src/styles/index.css +15 -0
- package/src/styles/scroll-chrome.css +123 -0
- package/src/styles/scroll-driven.css +38 -0
- package/src/styles/segmented-tabs.css +50 -14
- package/src/styles/theme/bridges.css +22 -0
- package/src/styles/theme/radius.css +18 -1
- package/src/styles/tokens/color-radius.css +13 -3
- package/src/styles/tokens/dark-arm.css +39 -6
- package/src/styles/tokens/glass-deep.css +28 -3
- package/src/styles/tokens/glass-fx.css +44 -1
- package/src/styles/tokens/glass.css +91 -31
- package/src/styles/tokens/light-dark.css +1 -1
- package/src/styles/tokens/offsets.css +27 -0
- package/src/styles/tokens/property-regs.css +133 -0
- package/src/styles/tokens/scale-paper.css +73 -29
- package/src/styles/tokens/scheme-motion.css +44 -6
- package/src/styles/tokens/sizing-config.css +110 -0
- package/src/styles/tokens/sizing.css +55 -104
- package/src/styles/tokens.css +5 -0
- package/src/styles/typography/semantic.css +18 -5
- package/src/styles/utilities/a11y-overrides.css +20 -5
- package/src/styles/utilities/base-misc.css +52 -0
- package/src/styles/utilities/btn.css +14 -3
- package/src/styles/utilities/components.css +31 -6
- package/src/styles/utilities/metal.css +26 -0
- package/dist/ContextMenuContent-uWnVxDab.js +0 -85
- package/dist/DialogFooter-BZNX5aVr.js +0 -165
- package/dist/HoverCardContent-b2uaAMRR.js +0 -83
- package/dist/Input-h9v5LeXf.js +0 -55
- package/dist/NumberFieldContent-Cq7EzX-U.js +0 -138
- package/dist/Separator-pKF0oA4M.js +0 -37
- package/dist/Switch-CwYNf8bo.js +0 -47
- package/dist/TooltipProvider-rzvnXz60.js +0 -104
- package/dist/color-DweYl7pE.js +0 -86
- package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
- package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
- package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
- package/dist/createCanvasLifecycle-CHD5XrDW.js +0 -82
- package/dist/procedural-color.wgsl-CToRHugY.js +0 -224
- package/dist/resolveCanvasColor-CUyHr5Uu.js +0 -11
- package/dist/styles/dock/rail-extend.css +0 -397
- package/dist/usePointerVelocityField-JbRd5CrM.js +0 -137
- package/dist/useRAFLoop-UYa4zoiN.js +0 -109
- package/dist/useSpringPress-BsqPr7FJ.js +0 -34
- package/src/styles/dock/rail-extend.css +0 -397
- /package/dist/{FadingScroll-DI6hQhT9.js → FadingScroll-DLRbH5Xr.js} +0 -0
- /package/dist/{HoverPopover-CbqbNwgU.js → HoverPopover-BcIxvyqZ.js} +0 -0
- /package/dist/{InstrumentChassis-Bx0F_q5g.js → InstrumentChassis-CxsHSyMj.js} +0 -0
- /package/dist/{PaperBackdrop-Vf3tlpvd.js → PaperBackdrop-CqwjnfLv.js} +0 -0
- /package/dist/{Progress-DctG61iZ.js → Progress-CnqB7gLm.js} +0 -0
- /package/dist/{ScrollingText-yOpBzFYq.js → ScrollingText-CTZbA_cG.js} +0 -0
- /package/dist/{SelectGroup-DwwjicPY.js → SelectGroup-BFiod7X2.js} +0 -0
- /package/dist/{compile-CQEFRTmx.js → compile-nZ1xVYTp.js} +0 -0
- /package/dist/{constants-BPOqYJAm.js → constants--C2DkLW8.js} +0 -0
- /package/dist/{math-BINYmg5z.js → math-Eb0w3LqU.js} +0 -0
- /package/dist/{prng-Za0Rmgag.js → prng-B-d9eYX8.js} +0 -0
- /package/dist/{slider-DVb4HXU-.js → slider-2A0rPn79.js} +0 -0
- /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-CmjB9E32.js} +0 -0
- /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-Dbozzjgm.js} +0 -0
- /package/dist/{useInterval-CvK1mL92.js → useInterval-CNdua40W.js} +0 -0
- /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BPRp33Im.js} +0 -0
- /package/dist/{useLiquidFlex-mZPMiNXh.js → useLiquidFlex-UmA6LMZu.js} +0 -0
- /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-c3yxmH6a.js} +0 -0
- /package/dist/{useSortable-DHjtZSEd.js → useSortable-BVqlJRBR.js} +0 -0
- /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-NmBM5V_4.js} +0 -0
- /package/dist/{vReveal-Czsb7zQC.js → vReveal-D9k0jADx.js} +0 -0
- /package/dist/{vSpecular-CQFmLNzA.js → vSpecular-EX7loENl.js} +0 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/* dock/cta-seat.css — the `[data-cta-pending]` CTA-receive landing SEAT (BC.W-AX-DOCK-
|
|
2
|
+
* CTA-SEAT; the speedtest-AX BC-W2 + BC-W3 fold).
|
|
3
|
+
*
|
|
4
|
+
* THE MOVE. `useDockCtaReceive` (the BB.B2 morph half) flies an EXTERNAL CTA onto a
|
|
5
|
+
* dock control's rect; this partial makes the control it lands on a SEAT that was
|
|
6
|
+
* visibly RESERVED for it. While the CTA is in flight (or pending), the target dock
|
|
7
|
+
* control carries `data-cta-pending` (written by `setPending()` on the
|
|
8
|
+
* `useDockCtaReceive` return): the control shows a quiet dim GHOST (a placeholder
|
|
9
|
+
* awaiting its arrival) AND reserves its resting footprint from frame 0 so the dock
|
|
10
|
+
* box does NOT jump when the CTA lands. On `clearPending()` (the default hand-off
|
|
11
|
+
* fires it as the CTA lands) the attribute is removed and the seat REVEALS its real
|
|
12
|
+
* content with a plain `transition: opacity` FLIP.
|
|
13
|
+
*
|
|
14
|
+
* THE NO-BOX-JUMP (T2). The reserve is a STATIC `min-inline-size`/`min-block-size`
|
|
15
|
+
* keyed off `--dock-control-size`/`--dock-layer-height` (the control's resting box) —
|
|
16
|
+
* a ONE-TIME reservation set the instant `setPending()` fires, NEVER an animated
|
|
17
|
+
* dimension (the W-DESKTOP-RESERVE static-frame-0 precedent). The dock's shrink-wrap
|
|
18
|
+
* is already at the seated width, so the CTA lands into an already-sized hole; the box
|
|
19
|
+
* never grows on reveal. `proof:no-layout-animation` holds — no `transition: width`/
|
|
20
|
+
* animated min-* anywhere here.
|
|
21
|
+
*
|
|
22
|
+
* THE FLIP REVEAL (T3). The seat is a CONTENT swap on an already-sized box, NOT a box
|
|
23
|
+
* morph — so the reveal is a PLAIN `transition: opacity` on the `--ease-out`
|
|
24
|
+
* no-overshoot register (a content reveal must not overshoot — W-MOTION-CANON P2). It
|
|
25
|
+
* does NOT ride the dock collapse/expand morph-stagger (`--dock-expand-t`/the child
|
|
26
|
+
* stagger); re-using the morph clock would read as a janky stagger-restart on a
|
|
27
|
+
* content reveal.
|
|
28
|
+
*
|
|
29
|
+
* RECT-DRIVEN, LAYOUT-AGNOSTIC (Gate-1 Q5). The seat targets `[data-cta-pending]` on
|
|
30
|
+
* ANY dock control — it makes NO assumption about a skip-arrow affordance (a
|
|
31
|
+
* consumer-side functional skip control that may or may not be present). The reserve
|
|
32
|
+
* is the control's own resting footprint; the seat works with or without arrows.
|
|
33
|
+
*
|
|
34
|
+
* COMPOSITOR-ONLY. `setPending`/`clearPending` toggle the data attribute; this partial
|
|
35
|
+
* paints with `opacity` + the static reserve. No layout property is animated. The
|
|
36
|
+
* `--cta-seat-*` knobs are the consumer retune seam.
|
|
37
|
+
*
|
|
38
|
+
* @import-ed by dock.css in the dock partial cascade, in the SAME `@layer components`. */
|
|
39
|
+
|
|
40
|
+
@layer components {
|
|
41
|
+
/* The armed seat — the control is RESERVED. The static min-*-size locks the resting
|
|
42
|
+
footprint from frame 0 (the no-box-jump); the dim opacity is the placeholder
|
|
43
|
+
ghost awaiting the CTA's arrival. The `transition: opacity` is declared HERE (not
|
|
44
|
+
only on the cleared state) so the GHOST→content reveal is a smooth fade in BOTH
|
|
45
|
+
directions on the SAME compositor-safe register — the box is already sized, only
|
|
46
|
+
the opacity moves. */
|
|
47
|
+
[data-cta-pending] {
|
|
48
|
+
/* The STATIC resting-geometry reserve (T2) — a one-time min-*-size off the
|
|
49
|
+
control's own resting box. NEVER transitioned (an animated dimension
|
|
50
|
+
CLS-storms — the proof:no-layout-animation floor). */
|
|
51
|
+
min-inline-size: var(--dock-control-size, var(--size-icon-btn));
|
|
52
|
+
min-block-size: var(
|
|
53
|
+
--dock-layer-height,
|
|
54
|
+
var(--dock-control-size, var(--size-icon-btn))
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
/* The dim GHOST placeholder — the control awaits its arrival (T3). */
|
|
58
|
+
opacity: var(--cta-seat-ghost-opacity, 0.35);
|
|
59
|
+
|
|
60
|
+
/* The FLIP reveal register — a PLAIN opacity transition on --ease-out
|
|
61
|
+
(no-overshoot). Default duration tracks the snappy spring envelope so the
|
|
62
|
+
reveal reads as the same family as the morph that lands the CTA. */
|
|
63
|
+
transition: opacity
|
|
64
|
+
var(--cta-seat-reveal-duration, var(--spring-snappy-duration))
|
|
65
|
+
var(--ease-out);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* The seated CONTENT also dims while pending — the icon/label is the thing that
|
|
69
|
+
fades back in on reveal. Direct-child targeting keeps the seat layout-agnostic
|
|
70
|
+
(it does not name a control class — Q5). */
|
|
71
|
+
[data-cta-pending] > * {
|
|
72
|
+
opacity: var(--cta-seat-ghost-opacity, 0.35);
|
|
73
|
+
transition: opacity
|
|
74
|
+
var(--cta-seat-reveal-duration, var(--spring-snappy-duration))
|
|
75
|
+
var(--ease-out);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* PRM — the reveal is an INSTANT opacity swap (the vestibular floor; the seat snaps
|
|
79
|
+
to its content, zero transition frames). The reserve is unchanged (it is static,
|
|
80
|
+
not a motion). The gesture completes; the animation is off. */
|
|
81
|
+
@media (prefers-reduced-motion: reduce) {
|
|
82
|
+
[data-cta-pending],
|
|
83
|
+
[data-cta-pending] > * {
|
|
84
|
+
transition: none;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -33,6 +33,65 @@
|
|
|
33
33
|
consumers). NEVER re-point this AT --dock-control-safe-inset (the de-overload). */
|
|
34
34
|
:root {
|
|
35
35
|
--dock-content-safe-inset: var(--dock-rail-extend-length, 2.5rem);
|
|
36
|
+
|
|
37
|
+
/* ── BC.W-DOCK-ARBITRARY — the arbitrary-shape morph tokens ─────────────────
|
|
38
|
+
The dock morph is no longer locked to circle↔pill. The shape is now a SCALAR
|
|
39
|
+
PARAMETER: a `--dock-shape-from`/`--dock-shape-to` corner-radius pair the chrome
|
|
40
|
+
radius arm interpolates on `--dock-morph-t`, an OPT-IN `--dock-shape-clip-from`/
|
|
41
|
+
`--dock-shape-clip-to` clip-path silhouette pair (compositor-only, no layout),
|
|
42
|
+
and a `--dock-morph-max-stretch` squish cap. The library DEFAULTS preserve the
|
|
43
|
+
collapsed-perfect-circle ↔ expanded-pill identity (CLAUDE.md `aspect-ratio: 1` +
|
|
44
|
+
`--radius-dock` 9999px), so the common case needs no consumer override; a consumer
|
|
45
|
+
sets these to morph to an arbitrary silhouette (a wide bar, a teardrop, a tall
|
|
46
|
+
rail). Clean break (MEMORY: no backwards compat) — the prior hardcoded circle/pill
|
|
47
|
+
endpoints become these token DEFAULTS, no `--dock-radius-legacy`. */
|
|
48
|
+
|
|
49
|
+
/* The corner profile span — the `from`-radius (the collapsed perfect circle, a
|
|
50
|
+
9999px pill that rounds the height-pinned square into a circle) ↔ the `to`-radius
|
|
51
|
+
(the expanded pill, `--radius-dock`). Consumer-targetable: set either to any
|
|
52
|
+
radius to morph to an arbitrary corner profile. */
|
|
53
|
+
--dock-shape-from: var(--radius-dock, 9999px);
|
|
54
|
+
--dock-shape-to: var(--radius-dock, 9999px);
|
|
55
|
+
|
|
56
|
+
/* The arbitrary-silhouette span — an OPT-IN `clip-path` pair (a compositor property,
|
|
57
|
+
NO layout). DEFAULT-OFF: `none`/`none` means the rectangle/pill morph (the common
|
|
58
|
+
case) needs no clip. A consumer opts into a teardrop/blob silhouette by setting the
|
|
59
|
+
clip-from/to to two `inset()`/`path()`/`shape()` values the morph LERPS between on
|
|
60
|
+
`--dock-morph-t`. */
|
|
61
|
+
--dock-shape-clip-from: none;
|
|
62
|
+
--dock-shape-clip-to: none;
|
|
63
|
+
|
|
64
|
+
/* The squish cap — the LOW volume-preserving `--stretch` ceiling for the shape-morph
|
|
65
|
+
deformation, mirroring the tab-indicator's iOS-segmented register (the
|
|
66
|
+
`DEFAULT_INDICATOR_MAX_STRETCH` 1.08). A fast morph swells the plate then caps —
|
|
67
|
+
a lively settle, never a taffy-pull. */
|
|
68
|
+
--dock-morph-max-stretch: 1.08;
|
|
69
|
+
|
|
70
|
+
/* ── BC.W-LIQUID-MORPH — the reserve floor (the white morph can never paint) ──
|
|
71
|
+
The morph box reserves `inline-size`/`block-size: max(var(--dock-morph-to),
|
|
72
|
+
var(--dock-morph-min))` (layers.css). A degenerate `to:0` measurement (the
|
|
73
|
+
BA-VJS-1 nested-group race, glass-dock-codebase.md §2.2) would otherwise reserve
|
|
74
|
+
a ZERO-width footprint → `overflow: clip` blanks the content → the white/invisible
|
|
75
|
+
morph the user reports. The floor seats it at the collapsed-pill minimum (~44px,
|
|
76
|
+
the WCAG touch floor / `--dock-control-floor`), so a missed measurement degrades to
|
|
77
|
+
"visible at the floor," never "white." A SAFETY NET: on every healthy measurement
|
|
78
|
+
the `max()` resolves to the real `to` (inert above the floor); it fires ONLY on the
|
|
79
|
+
degenerate race. Density-scaled, riding `--dock-scale` transitively. */
|
|
80
|
+
--dock-morph-min: max(2.75rem, var(--dock-control-floor, 0px));
|
|
81
|
+
|
|
82
|
+
/* ── BC.W-DOCK-SEARCH — the collapse-on-scroll trigger-points ─────────────────
|
|
83
|
+
The dock-search optional shrink-on-scroll (composing useScrollChrome — the
|
|
84
|
+
native dual-path reader, persistent-default) reads these two tunable px
|
|
85
|
+
trigger-points: the shrink BEGINS at `--dock-search-shrink-start` of scroll and
|
|
86
|
+
reaches the compact form at `--dock-search-shrink-end` (the words
|
|
87
|
+
`scrollInflectionPoint` generalized into dock-scoped tokens). They ride
|
|
88
|
+
`--dock-scale` transitively (a coarse-pointer dock's trigger-points scale with
|
|
89
|
+
its geometry), and a consumer retunes the inflection in ONE write. NOTE the
|
|
90
|
+
PERSISTENT default — these are inert unless the consumer opts in via
|
|
91
|
+
`collapseOnScroll`; the morph itself NEVER fires on a passive scroll (the
|
|
92
|
+
iOS-27 lesson — the scroll path is the distinct compositor shrink). */
|
|
93
|
+
--dock-search-shrink-start: calc(0rem * var(--dock-scale));
|
|
94
|
+
--dock-search-shrink-end: calc(7.25rem * var(--dock-scale));
|
|
36
95
|
}
|
|
37
96
|
|
|
38
97
|
@layer components {
|
|
@@ -246,6 +305,91 @@
|
|
|
246
305
|
);
|
|
247
306
|
}
|
|
248
307
|
|
|
308
|
+
/* ── BC.W-AX-DOCK-COCKPIT — the `cockpit` geometry PRESET ─────────────────────
|
|
309
|
+
The tight instrument-cockpit register: a FIXED `2.75rem` control floor (the
|
|
310
|
+
Gate-1 Q6 fixed value — NOT a range) with COMPACT-tight chrome (the tightest
|
|
311
|
+
padding/gap/tile-pad, distinct from `spacious`'s LOOSE chrome at the SAME
|
|
312
|
+
2.75rem control). It closes the dock-oversize chronic (speedtest A-9): a
|
|
313
|
+
consumer opts into a dense, proportioned instrument strip — `2.75rem` control,
|
|
314
|
+
compact chrome, the label tracking the control by `--dock-label-ratio` (so the
|
|
315
|
+
label never reads OVERSIZE on the tight pill).
|
|
316
|
+
|
|
317
|
+
It is a NAMED preset, NOT a 5th density rung — the density axis stays FOUR rungs
|
|
318
|
+
(`proof:dock-unify`'s density census is unaffected). The preset is a geometry
|
|
319
|
+
OVERRIDE composing WITH a `data-density` base: `[data-preset="cockpit"]` wins the
|
|
320
|
+
control-size/layer-height/chrome by source-order (this block comes AFTER the rungs),
|
|
321
|
+
so a `<GlassDock data-density="comfortable" data-preset="cockpit">` resolves the
|
|
322
|
+
cockpit geometry. An ancestor `[data-preset="cockpit"]` scope re-declares these
|
|
323
|
+
tokens too (the substitution-vs-inheritance discipline) so descendant docks inherit.
|
|
324
|
+
|
|
325
|
+
The control floor rides the SAME `* var(--dock-scale)` thread + the `max(…,
|
|
326
|
+
--dock-control-floor)` WCAG 2.5.5 clamp as the rungs — the cockpit is tight, but
|
|
327
|
+
the coarse-pointer touch target NEVER drops below the 44px floor. */
|
|
328
|
+
.glass-dock[data-preset="cockpit"] {
|
|
329
|
+
/* The FIXED 2.75rem control floor (Q6) — the cockpit register, riding
|
|
330
|
+
`--dock-scale` + the 44px clamp. NOT a `clamp(2.5rem, …, 3rem)` range. */
|
|
331
|
+
--dock-control-size: max(
|
|
332
|
+
calc(2.75rem * var(--dock-scale)),
|
|
333
|
+
var(--dock-control-floor, 0px)
|
|
334
|
+
);
|
|
335
|
+
--dock-layer-height: max(
|
|
336
|
+
calc(2.75rem * var(--dock-scale)),
|
|
337
|
+
var(--dock-control-floor, 0px)
|
|
338
|
+
);
|
|
339
|
+
/* The TIGHT chrome — the COMPACT-rung tightness (the cockpit is a dense
|
|
340
|
+
instrument strip, NOT the spacious loosening). This is the distinction
|
|
341
|
+
from `spacious` (same control, LOOSE chrome). */
|
|
342
|
+
--dock-padding-block: calc(
|
|
343
|
+
var(--dock-density-compact-padding-block, 0.25rem) * var(--dock-scale)
|
|
344
|
+
);
|
|
345
|
+
--dock-padding-inline: calc(
|
|
346
|
+
var(--dock-density-compact-padding-inline, 0.375rem) * var(--dock-scale)
|
|
347
|
+
);
|
|
348
|
+
--dock-layer-gap: calc(
|
|
349
|
+
var(--dock-density-compact-gap, 0.25rem) * var(--dock-scale)
|
|
350
|
+
);
|
|
351
|
+
/* BA.W-DOCK-GEOMETRY — the control-plate clearance inset, in lockstep with
|
|
352
|
+
the rungs (the 10%-per-side painted-plate inset). */
|
|
353
|
+
--dock-control-safe-inset: calc(var(--dock-control-size) * 0.1);
|
|
354
|
+
--dock-tile-min: calc(
|
|
355
|
+
var(--dock-control-size) + var(--dock-tile-pad, 1rem) * var(--dock-scale)
|
|
356
|
+
);
|
|
357
|
+
--dock-trigger-padding-block: calc(
|
|
358
|
+
var(--dock-density-compact-trigger-padding-block, 0.1875rem) *
|
|
359
|
+
var(--dock-scale)
|
|
360
|
+
);
|
|
361
|
+
--dock-trigger-padding-inline: calc(
|
|
362
|
+
var(--dock-density-compact-trigger-padding-inline, 0.4375rem) *
|
|
363
|
+
var(--dock-scale)
|
|
364
|
+
);
|
|
365
|
+
--dock-tab-padding-block: calc(
|
|
366
|
+
var(--dock-density-compact-tab-padding-block, 0.3125rem) *
|
|
367
|
+
var(--dock-scale)
|
|
368
|
+
);
|
|
369
|
+
--dock-tab-padding-inline: calc(
|
|
370
|
+
var(--dock-density-compact-tab-padding-inline, 0.625rem) *
|
|
371
|
+
var(--dock-scale)
|
|
372
|
+
);
|
|
373
|
+
--dock-tab-h: calc(32px * var(--dock-scale));
|
|
374
|
+
/* The cockpit-tight label ratio — the label reads EVEN tighter relative to
|
|
375
|
+
its control than the `:root` default (the A-9 close). The `dock-label`
|
|
376
|
+
font-size is `calc(--dock-control-size * --dock-label-ratio)`; the cockpit
|
|
377
|
+
tunes the ratio DOWN so a 2.75rem cockpit control carries a label sized for
|
|
378
|
+
the dense strip, not the comfortable-default proportion. */
|
|
379
|
+
--dock-label-ratio: 0.42;
|
|
380
|
+
/* RE-RESOLVE the density-painted glyph tokens against the cockpit
|
|
381
|
+
`--dock-layer-height` (the same substitution-vs-inheritance trap the
|
|
382
|
+
`.glass-dock[data-density]` re-resolve below fixes — a `[data-preset]`
|
|
383
|
+
scope paints its OWN `--dock-layer-height`, so the `:root`-derived glyph
|
|
384
|
+
would freeze at the fallback). Identical formula to the density re-resolve;
|
|
385
|
+
only the resolution element moves so the cockpit height flows into the glyph. */
|
|
386
|
+
--dock-icon-glyph: max(
|
|
387
|
+
calc(var(--dock-layer-height) * var(--dock-icon-glyph-ratio)),
|
|
388
|
+
var(--dock-icon-glyph-floor)
|
|
389
|
+
);
|
|
390
|
+
--dock-control-glyph-size: var(--dock-icon-glyph);
|
|
391
|
+
}
|
|
392
|
+
|
|
249
393
|
/* BB.W-PERF-PRODUCER A′-6 — RE-RESOLVE the glyph token inside the density-painted
|
|
250
394
|
scope. `--dock-icon-glyph` (offsets-sizing.css) is a RATIO of
|
|
251
395
|
`--dock-layer-height`, but density.css paints `--dock-layer-height` ONLY on
|
|
@@ -265,6 +409,15 @@
|
|
|
265
409
|
calc(var(--dock-layer-height, calc(2.5rem * var(--dock-scale))) * var(--dock-icon-glyph-ratio)),
|
|
266
410
|
var(--dock-icon-glyph-floor)
|
|
267
411
|
);
|
|
412
|
+
/* BC.W-DOCK-ENGINE move 3 (the Atlas A-9 fold) — RE-RESOLVE the in-dock
|
|
413
|
+
control-glyph knob against the density-painted `--dock-icon-glyph` (the
|
|
414
|
+
same substitution-vs-inheritance trap as the glyph above: a `:root`-only
|
|
415
|
+
`--dock-control-glyph-size` would freeze at the `:root` glyph while
|
|
416
|
+
`--dock-icon-glyph` lifts per density). Re-declaring it HERE keeps the
|
|
417
|
+
docked dark-toggle glyph + its inset pad on the density axis with the nav
|
|
418
|
+
glyphs. Identical to the `:root` default; only the resolution element
|
|
419
|
+
moves so the density-painted glyph flows in. */
|
|
420
|
+
--dock-control-glyph-size: var(--dock-icon-glyph);
|
|
268
421
|
}
|
|
269
422
|
|
|
270
423
|
/* Density-audacious narrow-box carve (AV.W16 TW3) — when the dock's OWN
|
|
@@ -61,18 +61,62 @@
|
|
|
61
61
|
--dock-morph-ratio: calc(
|
|
62
62
|
var(--dock-morph-from, 0px) / max(var(--dock-morph-to, 1px), 1px)
|
|
63
63
|
);
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
/* BC.W-LIQUID-MORPH — the SCALE FLOOR (the white morph can never paint). A
|
|
65
|
+
degenerate `from:0`/`to:0` measurement (the BA-VJS-1 nested-group race)
|
|
66
|
+
drives `--dock-morph-ratio` to 0 → `scaleX(0)` at t=0 → the zero-width void
|
|
67
|
+
`overflow: clip` blanks (the white/invisible morph, glass-dock-codebase.md
|
|
68
|
+
§2.2 fix (2)). Flooring the scale at ~6% bottoms a degenerate ratio at a
|
|
69
|
+
thin-but-VISIBLE glass sliver (clipped, but never white), recovered by the
|
|
70
|
+
next correct measurement one frame later. A SAFETY NET: a real measurement is
|
|
71
|
+
always well above 6%, so the `max()` is inert on the healthy path (the
|
|
72
|
+
gestalt of a healthy morph is byte-unchanged). */
|
|
73
|
+
--dock-morph-scale: max(
|
|
74
|
+
calc(
|
|
75
|
+
var(--dock-morph-ratio) +
|
|
76
|
+
(1 - var(--dock-morph-ratio)) * var(--dock-morph-t, 0)
|
|
77
|
+
),
|
|
78
|
+
0.06
|
|
67
79
|
);
|
|
68
80
|
/* The box RESERVES its settled `to` footprint — a single layout solve, NOT
|
|
69
|
-
the live scalar calc. The transform composites over it.
|
|
70
|
-
|
|
81
|
+
the live scalar calc. The transform composites over it.
|
|
82
|
+
BC.W-LIQUID-MORPH — the RESERVE FLOOR: `max(var(--dock-morph-to),
|
|
83
|
+
var(--dock-morph-min))` so a `to:0` measurement reserves the collapsed-pill
|
|
84
|
+
minimum (~44px), never a zero-width box (the white morph root). Inert above
|
|
85
|
+
the floor on every healthy measurement. */
|
|
86
|
+
inline-size: max(var(--dock-morph-to), var(--dock-morph-min, 2.75rem));
|
|
71
87
|
transform: scaleX(var(--dock-morph-scale));
|
|
72
88
|
transform-origin: left center;
|
|
73
89
|
will-change: transform;
|
|
74
90
|
}
|
|
75
91
|
|
|
92
|
+
/* BC.W-DOCK-ROOT-MORPH — the ROOT box rides the scalar (THE snap fix). The inner
|
|
93
|
+
`.dock-layers` above reserves its settled `to` + morphs via `scaleX()` (paint-
|
|
94
|
+
only), so the root `.glass-dock` (inline-flex) shrink-wraps to that reserved full
|
|
95
|
+
`to` and SNAPS on frame 0 while the inner scales smoothly — yet the gate + the
|
|
96
|
+
page reflow both read the ROOT box. The orchestrator (dockMorphContext.ts)
|
|
97
|
+
measures + writes the root's own `--dock-root-morph-{from,to}` px span; this
|
|
98
|
+
drives the morph-axis size as a `calc()` of the SAME `--dock-morph-t` scalar the
|
|
99
|
+
spring glides — NOT a `transition: width` (proof:no-layout-animation stays GREEN;
|
|
100
|
+
a `calc()` over the scalar is not a transition). The span is armed inline ONLY by
|
|
101
|
+
the outer collapse↔expand swap; a nested-only pane-swap leaves it unset → the
|
|
102
|
+
fallback-less `var()` invalidates the rule → the box returns to its at-rest
|
|
103
|
+
shrink-wrap (the inert path). Horizontal morphs `inline-size`, vertical morphs
|
|
104
|
+
`block-size` (matching the orchestrator's `morphAxisProp` axis pick). */
|
|
105
|
+
.glass-dock[data-morphing]:not(.vertical) {
|
|
106
|
+
inline-size: calc(
|
|
107
|
+
var(--dock-root-morph-from) +
|
|
108
|
+
(var(--dock-root-morph-to) - var(--dock-root-morph-from)) *
|
|
109
|
+
var(--dock-morph-t, 0)
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
.glass-dock[data-morphing].vertical {
|
|
113
|
+
block-size: calc(
|
|
114
|
+
var(--dock-root-morph-from) +
|
|
115
|
+
(var(--dock-root-morph-to) - var(--dock-root-morph-from)) *
|
|
116
|
+
var(--dock-morph-t, 0)
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
|
|
76
120
|
/* AZ.W-DOCK-TAXONOMY (move 2) — a VERTICAL dock's outer `.dock-layers` morphs the
|
|
77
121
|
BLOCK axis (its collapse↔expand shrinks `height`, not `width`). The orchestrator
|
|
78
122
|
measures/writes the same `--dock-morph-from/to` span on the block axis
|
|
@@ -85,7 +129,10 @@
|
|
|
85
129
|
relayout on the vertical axis either. */
|
|
86
130
|
.glass-dock.vertical[data-morphing] .dock-layers {
|
|
87
131
|
inline-size: auto;
|
|
88
|
-
|
|
132
|
+
/* BC.W-LIQUID-MORPH — the vertical RESERVE FLOOR (the inverse axis twin of the
|
|
133
|
+
horizontal floor above): a `to:0` block measurement reserves the collapsed-pill
|
|
134
|
+
minimum, never a zero-height void. Inert above the floor on every healthy read. */
|
|
135
|
+
block-size: max(var(--dock-morph-to), var(--dock-morph-min, 2.75rem));
|
|
89
136
|
transform: scaleY(var(--dock-morph-scale));
|
|
90
137
|
transform-origin: center top;
|
|
91
138
|
will-change: transform;
|
|
@@ -95,7 +142,8 @@
|
|
|
95
142
|
reserve + `scaleY()` composite over it. */
|
|
96
143
|
.glass-dock[data-morphing] .dock-layer-group.vertical .dock-layer-stack {
|
|
97
144
|
inline-size: auto;
|
|
98
|
-
|
|
145
|
+
/* BC.W-LIQUID-MORPH — the nested vertical group's reserve is floored too. */
|
|
146
|
+
block-size: max(var(--dock-morph-to), var(--dock-morph-min, 2.75rem));
|
|
99
147
|
transform: scaleY(var(--dock-morph-scale));
|
|
100
148
|
transform-origin: center top;
|
|
101
149
|
will-change: transform;
|
|
@@ -76,36 +76,72 @@
|
|
|
76
76
|
color-mix(in oklab, var(--card), var(--foreground) 6%) 100%
|
|
77
77
|
);
|
|
78
78
|
border-radius: 999px;
|
|
79
|
-
/*
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
79
|
+
/* BC.W-GLASS-GLOW-FIX (Atlas A-8 root, CANDIDATE 4) — BOUND the 120%×120% radial
|
|
80
|
+
to the plate box. The gradient SIZE (120%) reaches past the plate's content box
|
|
81
|
+
so the domed droplet would over-paint were the silhouette ever un-clipped;
|
|
82
|
+
`overflow: clip` keeps the radial fill inside the teardrop silhouette (the
|
|
83
|
+
`border-radius: 999px` capsule), so the oversized radial can NEVER paint a giant
|
|
84
|
+
cream blob past the plate. The domed-droplet read is PRESERVED — the radial still
|
|
85
|
+
fills the plate; only the past-bounds escape is killed. Defensive, structural,
|
|
86
|
+
zero visual change (the border-radius already clips the fill — this makes the
|
|
87
|
+
bound explicit so the leak-class gate holds). */
|
|
88
|
+
overflow: clip;
|
|
89
|
+
/* BC.W-LIQUID-MORPH — the teardrop silhouette is the COMPOSITOR `clip-path`
|
|
90
|
+
inset (NOT a per-frame `width`/`height` — the layout-jank root, glass-dock-
|
|
91
|
+
codebase.md §2.2 fix (3)). Each plate RESERVES its MAX footprint (a single
|
|
92
|
+
layout solve, the settled box) and the silhouette necks via a `clip-path:
|
|
93
|
+
inset()` interpolated on `--dock-morph-t`. The volume-preserving squish reads
|
|
94
|
+
`--stretch` (the liquid-flex derivative) on `scale`. NO `width`/`height`
|
|
95
|
+
animation — only `clip-path`/`scale`/`opacity` (compositor/paint), so the
|
|
96
|
+
CDP Layout track stays FLAT across the morph (proof:no-layout-animation +
|
|
97
|
+
proof:liquid-morph M4). will-change promotes the compositor channels ONLY. */
|
|
98
|
+
will-change: clip-path, transform, opacity;
|
|
83
99
|
}
|
|
84
100
|
|
|
85
|
-
/* The VERTICAL plate — a tall capsule (the t=0 silhouette). It
|
|
86
|
-
|
|
87
|
-
|
|
101
|
+
/* The VERTICAL plate — a tall capsule (the t=0 silhouette). It RESERVES its full
|
|
102
|
+
tall footprint (a one-time layout solve, NOT a per-frame height lerp) and necks
|
|
103
|
+
its silhouette toward the center via a `clip-path: inset()` whose block insets
|
|
104
|
+
GROW as t: 0 → 0.5 (the tall capsule collapses to a thin neck at the midpoint
|
|
105
|
+
where the goo merges, gone by t=1). `--dock-bridge-v-neck` is the inset travel:
|
|
106
|
+
0 at t=0 (full height shows) → ~half the reserved height by t=0.5 (necked to a
|
|
107
|
+
circle ~the width). The box footprint is static; the clip carves the silhouette
|
|
108
|
+
on the compositor. */
|
|
88
109
|
.dock-morph-bridge-plate--vertical {
|
|
89
110
|
width: var(--dock-bridge-v-w, 3.25rem);
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
111
|
+
height: var(--dock-bridge-v-h, 16rem);
|
|
112
|
+
/* the block-axis inset travel: 0 → (half the reserved height − half the width)
|
|
113
|
+
so the necked silhouette is ~a circle (the width) at t=0.5. */
|
|
114
|
+
--dock-bridge-v-neck: calc(
|
|
115
|
+
(var(--dock-bridge-v-h, 16rem) - var(--dock-bridge-v-w, 3.25rem)) / 2 *
|
|
116
|
+
clamp(0, calc(var(--dock-morph-t, 0) * 2), 1)
|
|
117
|
+
);
|
|
118
|
+
clip-path: inset(
|
|
119
|
+
var(--dock-bridge-v-neck) 0 var(--dock-bridge-v-neck) 0 round 999px
|
|
95
120
|
);
|
|
96
121
|
opacity: calc(1 - clamp(0, calc((var(--dock-morph-t, 0) - 0.5) * 2), 1));
|
|
97
122
|
/* squish Y on travel (the tall plate stretches along its collapse axis) */
|
|
98
123
|
scale: calc(1 / var(--stretch, 1)) var(--stretch, 1);
|
|
99
124
|
}
|
|
100
125
|
|
|
101
|
-
/* The HORIZONTAL plate — a wide capsule (the t=1 silhouette). It
|
|
102
|
-
|
|
103
|
-
|
|
126
|
+
/* The HORIZONTAL plate — a wide capsule (the t=1 silhouette). It RESERVES its full
|
|
127
|
+
wide footprint (a one-time layout solve) and grows its silhouette from the center
|
|
128
|
+
via a `clip-path: inset()` whose inline insets SHRINK as t: 0.5 → 1 (a thin neck
|
|
129
|
+
at the midpoint → the full wide bar at t=1). `--dock-bridge-h-neck` is the inset
|
|
130
|
+
travel: ~half the reserved width − half the height at t=0.5 (necked to a circle)
|
|
131
|
+
→ 0 at t=1 (full width shows). NO per-frame width — the clip carves the silhouette
|
|
132
|
+
on the compositor. */
|
|
104
133
|
.dock-morph-bridge-plate--horizontal {
|
|
134
|
+
width: var(--dock-bridge-h-w, 18rem);
|
|
105
135
|
height: var(--dock-bridge-h-h, 3.25rem);
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
136
|
+
/* the inline-axis inset travel: (half the reserved width − half the height) at
|
|
137
|
+
t=0.5 → 0 at t=1, so the necked silhouette is ~a circle (the height) at the
|
|
138
|
+
midpoint and the full bar at t=1. */
|
|
139
|
+
--dock-bridge-h-neck: calc(
|
|
140
|
+
(var(--dock-bridge-h-w, 18rem) - var(--dock-bridge-h-h, 3.25rem)) / 2 *
|
|
141
|
+
(1 - clamp(0, calc((var(--dock-morph-t, 0) - 0.5) * 2), 1))
|
|
142
|
+
);
|
|
143
|
+
clip-path: inset(
|
|
144
|
+
0 var(--dock-bridge-h-neck) 0 var(--dock-bridge-h-neck) round 999px
|
|
109
145
|
);
|
|
110
146
|
opacity: clamp(0, calc(var(--dock-morph-t, 0) * 2), 1);
|
|
111
147
|
/* squish X on travel (the wide plate stretches along its growth axis) */
|
|
@@ -62,25 +62,22 @@
|
|
|
62
62
|
--dock-expand-t: calc(1 - var(--dock-morph-t));
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
/*
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
dock
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
(
|
|
74
|
-
|
|
75
|
-
layout property — the proof:no-layout-animation floor). The beat rides the ONE
|
|
76
|
-
`--dock-expand-t` scalar, so it tracks the `DOCK_SPRING` clock with NO second
|
|
77
|
-
clock + NO re-added CSS transition (the morph already animates `--dock-morph-t`).
|
|
78
|
-
PRM: the `--dock-reveal-blur` knob is zeroed under reduce (the carve below). */
|
|
65
|
+
/* BC.W-DOCK-SHRINK-BLUR — the BB.W-LIQUID-REVEAL bloom-from-source decongest is a
|
|
66
|
+
TRANSIENT, not a resting state. HEAD keyed the bare `.glass-dock` self-blur off
|
|
67
|
+
`--dock-expand-t`, which AT REST resolves to the class endpoint → a PERMANENT 3px
|
|
68
|
+
self-blur on the resting collapsed dock, STACKED on the 9px backdrop (the "blurry
|
|
69
|
+
mess when shrunken", glass-dock-codebase §2.4). The FIX gates the self-blur (a
|
|
70
|
+
SURFACE `filter` arm on the dock's own pixels — NOT `backdrop-filter`, so the glass
|
|
71
|
+
plate blur is never clobbered; compositor-safe) to `[data-morphing]`: at REST the
|
|
72
|
+
dock is CRISP; ONLY mid-morph does the 3px bloom settle to 0 as the pill
|
|
73
|
+
materializes (the iOS-27 bloom, gesture-only). The backdrop blur (the glass
|
|
74
|
+
material) is UNTOUCHED. PRM zeroes it (the carve below). Clean break, no alias. */
|
|
79
75
|
.glass-dock {
|
|
80
|
-
--dock-reveal-blur:
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
76
|
+
--dock-reveal-blur: 0px; /* resting: CRISP — no own-pixel self-blur */
|
|
77
|
+
}
|
|
78
|
+
.glass-dock[data-morphing] {
|
|
79
|
+
--dock-reveal-blur: 3px; /* the transient decongest bloom — mid-morph only */
|
|
80
|
+
filter: blur(calc(var(--dock-reveal-blur) * (1 - var(--dock-expand-t, 1))));
|
|
84
81
|
}
|
|
85
82
|
|
|
86
83
|
/* The morphing root chrome — background / border-color interpolate between the
|
|
@@ -357,6 +354,7 @@
|
|
|
357
354
|
|
|
358
355
|
.glass-dock.collapsed:hover:not([data-morphing]) {
|
|
359
356
|
scale: var(--dock-collapsed-hover-scale);
|
|
357
|
+
will-change: transform; /* BC.W-DOCK-ENGINE move 2 — promote the armed-at-rest scale lift */
|
|
360
358
|
}
|
|
361
359
|
|
|
362
360
|
/* J.W5.C — held-state substrate response.
|
|
@@ -427,15 +425,23 @@
|
|
|
427
425
|
ink, which clears ~10:1). */
|
|
428
426
|
:where(.glass-dock) {
|
|
429
427
|
--glass-tint-source: var(--glass-tint-ink);
|
|
430
|
-
/* BC.W-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
--glass-tint-strength:
|
|
428
|
+
/* BC.W-ADAPTIVE-RECONCILE — the dock JOINS the continuous observer driver (the
|
|
429
|
+
literal G2 surface: "darken DYNAMICALLY like iOS 27"). The dock's own
|
|
430
|
+
`useGlassBackdropLuminance` observer samples the threaded `:background-canvas`
|
|
431
|
+
(aurora/blob) and WRITES `--glass-backdrop-luma`; this clamp READS it and lerps
|
|
432
|
+
the plate from the warm-cream floor toward the ≤24% AA ceiling as the field
|
|
433
|
+
brightens past the knee — deepening over a bright bleed, lifting translucent over
|
|
434
|
+
a dark trough (the SAME clamp the content/overlay tiers get — ONE axis/driver/
|
|
435
|
+
signal; the discrete `@container` bucket RETIRED). Calm (luma ≤ knee) → floor. */
|
|
436
|
+
--glass-tint-strength: clamp(
|
|
437
|
+
var(--glass-tint-strength-floor),
|
|
438
|
+
calc(
|
|
439
|
+
var(--glass-tint-strength-floor) +
|
|
440
|
+
(var(--glass-tint-strength-aa) - var(--glass-tint-strength-floor)) *
|
|
441
|
+
max(0, (var(--glass-backdrop-luma, 0) - var(--glass-backdrop-luma-knee, 0.6)) / (1 - var(--glass-backdrop-luma-knee, 0.6)))
|
|
442
|
+
),
|
|
443
|
+
var(--glass-tint-strength-aa)
|
|
444
|
+
);
|
|
439
445
|
--dock-fg-on-aurora: var(--glass-tint-ink);
|
|
440
446
|
--muted-foreground: var(--foreground);
|
|
441
447
|
}
|
|
@@ -479,13 +485,15 @@
|
|
|
479
485
|
}
|
|
480
486
|
|
|
481
487
|
/* BB.W-LIQUID-REVEAL — the dock-expand bloom beat's blur-settle is OFF under
|
|
482
|
-
`prefers-reduced-motion: reduce` (the vestibular floor)
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
488
|
+
`prefers-reduced-motion: reduce` (the vestibular floor): a reduced-motion dock reads
|
|
489
|
+
crisp at every state, no in-between blur frames.
|
|
490
|
+
BC.W-DOCK-SHRINK-BLUR — the self-blur is now gated to `[data-morphing]`, so the PRM
|
|
491
|
+
carve zeroes it on the ARMED scope too (specificity 0,2,0) — a PRM dock that briefly
|
|
492
|
+
arms `[data-morphing]` carries no 3px bloom; the resting `.glass-dock` is already
|
|
493
|
+
crisp by the re-gate. */
|
|
487
494
|
@media (prefers-reduced-motion: reduce) {
|
|
488
|
-
.glass-dock
|
|
495
|
+
.glass-dock,
|
|
496
|
+
.glass-dock[data-morphing] {
|
|
489
497
|
--dock-reveal-blur: 0px;
|
|
490
498
|
}
|
|
491
499
|
}
|
|
@@ -262,6 +262,18 @@
|
|
|
262
262
|
calc(var(--dock-layer-height, calc(2.5rem * var(--dock-scale))) * var(--dock-icon-glyph-ratio)),
|
|
263
263
|
var(--dock-icon-glyph-floor)
|
|
264
264
|
);
|
|
265
|
+
/* BC.W-DOCK-ENGINE move 3 (the Atlas A-9 fold) — RE-DECLARE the in-dock
|
|
266
|
+
toggle glyph knob on coarse beside `--dock-icon-glyph`. Its `:root`
|
|
267
|
+
default tracks `--dock-icon-glyph`, but a `:root`-only default would
|
|
268
|
+
freeze at the `:root` `--dock-scale` (the identity 1) while the coarse
|
|
269
|
+
`--dock-icon-glyph` above lifts — the AZ.R5-TOKENS substitution-vs-
|
|
270
|
+
inheritance dead-knob (the SAME trap the dock-scale re-declare closed,
|
|
271
|
+
mirrored for the toggle glyph). Re-declaring it HERE, against the
|
|
272
|
+
coarse-re-resolved `--dock-icon-glyph`, keeps the in-dock dark-toggle
|
|
273
|
+
glyph optically uniform with the nav glyphs on coarse AND fine pointer.
|
|
274
|
+
The `--dark-mode-toggle-padding` clamp (dark-mode-toggle.css) subtracts
|
|
275
|
+
THIS knob, so the box pad re-resolves in lockstep too. */
|
|
276
|
+
--dock-control-glyph-size: var(--dock-icon-glyph);
|
|
265
277
|
--dock-collapsed-padding: calc(0.25rem * var(--dock-scale));
|
|
266
278
|
--dock-layer-tab-size: calc(1.75rem * var(--dock-scale));
|
|
267
279
|
/* --dock-collapsed-summary-min-size derives from --dock-layer-height (the
|