@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
|
@@ -54,21 +54,12 @@
|
|
|
54
54
|
grid-auto-columns: 1fr;
|
|
55
55
|
padding: var(--bouncy-track-trim);
|
|
56
56
|
border-radius: var(--bouncy-track-radius);
|
|
57
|
-
/*
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
backdrop-filter: var(--glass-blur-quiet);
|
|
64
|
-
-webkit-backdrop-filter: var(--glass-blur-quiet);
|
|
65
|
-
/* BC.W-TABS-IOS — the track hairline re-points off the `--border` ring (which read
|
|
66
|
-
dark over the cream plate — the D2 "black bar" on the strip top edge) onto the
|
|
67
|
-
BC.W-BLACK-BAR directional rim register: a bright top catch-light + a faint warm
|
|
68
|
-
under-shadow. The track is a thin warm-glass quiet capsule with a lit top edge,
|
|
69
|
-
never a dark hairline. The pill (above) carries the SAME rim plus the lift shadow
|
|
70
|
-
so it reads FORWARD; the track carries only the rim. */
|
|
71
|
-
box-shadow: var(--glass-rim-top), var(--glass-rim-bottom);
|
|
57
|
+
/* BD.W-TAB-IOS-CAPSULE — the warm-glass quiet surface + the rim + the iOS-27
|
|
58
|
+
sunken recess now live in the SHARED `.glass-capsule-track` register (the SFC
|
|
59
|
+
composes it onto the pill track). The track is a thin warm-glass quiet capsule
|
|
60
|
+
with a lit top edge + a recessed well, never a dark hairline, never gray. The
|
|
61
|
+
indicator (`.glass-capsule`) reads FORWARD off the SAME rim + the lift shadow.
|
|
62
|
+
The underline material does NOT compose the track (paper, no surface). */
|
|
72
63
|
}
|
|
73
64
|
|
|
74
65
|
/* ── The vertical orientation axis (the block stack) ── */
|
|
@@ -92,37 +83,51 @@
|
|
|
92
83
|
/* ── The shared indicator body (the PILL plate) ── */
|
|
93
84
|
.segmented-indicator {
|
|
94
85
|
position: absolute;
|
|
95
|
-
/*
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
below, NOT from cranking the same-hue alpha. */
|
|
102
|
-
background: var(--glass-bg-floating-tinted);
|
|
103
|
-
-webkit-backdrop-filter: var(--glass-blur-floating);
|
|
104
|
-
|
|
105
|
-
backdrop-filter: var(--glass-blur-floating);
|
|
106
|
-
-webkit-backdrop-filter: var(--glass-blur-floating);
|
|
86
|
+
/* BD.W-TAB-IOS-CAPSULE — the active pill COMPOSES the shared `.glass-capsule`
|
|
87
|
+
(the SFC adds the class). The warm-floor fill (`--glass-bg-floating-tinted`
|
|
88
|
+
composed toward the warm-floor source, meanChroma ≥ 0.02 both modes — never
|
|
89
|
+
gray), the floating blur, the directional rim + the lift under-shadow ALL live
|
|
90
|
+
there now, ONE recipe ≥3 consumers. This block keeps only the position +
|
|
91
|
+
inset + the indicator-local stadium radius + the motion transform. */
|
|
107
92
|
z-index: 0;
|
|
108
93
|
inset-block: var(--bouncy-track-trim);
|
|
109
94
|
border-radius: var(--bouncy-slider-radius);
|
|
110
|
-
/*
|
|
111
|
-
(
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
quiet track. Replaces the HEAD weak `0 1px 3px rgba(0,0,0,0.08)` + the 30%-border
|
|
116
|
-
dark ring (the same-hue low-contrast plate that read "not glassy"). */
|
|
117
|
-
box-shadow:
|
|
118
|
-
var(--glass-rim-top),
|
|
119
|
-
var(--glass-rim-bottom),
|
|
120
|
-
var(--glass-shadow-floating);
|
|
121
|
-
/* The volume-preserving travel-squish: stretch along X, compress Y in
|
|
122
|
-
inverse proportion. `transform-origin: center` → a symmetric width-flex
|
|
123
|
-
as it travels (the indicator grows wider mid-travel, settles to fit). */
|
|
95
|
+
/* BD.W-TABS-LIQUID — the COMPOSED transform write: the area-inflation BLOB
|
|
96
|
+
(uniform, both axes, `--tab-blob` driven imperatively by the 2nd
|
|
97
|
+
`useLiquidFlex` channel — grow→overshoot→shrink) × the volume-preserving
|
|
98
|
+
travel-squish (`--stretch`, reciprocal). `transform-origin: center` → the blob
|
|
99
|
+
grows from center (the label stays put) and the squish stays center-pinned. */
|
|
124
100
|
transform-origin: center;
|
|
125
|
-
scale: var(--
|
|
101
|
+
scale: calc(var(--tab-blob, 1) * var(--stretch))
|
|
102
|
+
calc(var(--tab-blob, 1) / var(--stretch));
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* BD.W-TABS-LIQUID — the COMMIT accent-flood (T4, opt-in). A momentary full-capsule
|
|
106
|
+
wash of `--glass-accent`, driven by `--tab-flood-t` (0→1→0), that TRAILS the
|
|
107
|
+
spatial glide a beat then clears (EFFECTS-after-SPATIAL). `isolation: isolate` on
|
|
108
|
+
the host so the `plus-lighter` blend composites the flood against the capsule
|
|
109
|
+
only (not the page); the gradient is `in srgb` (additive bloom, NOT oklab). The
|
|
110
|
+
accent is a CONSUMER accent — default `--glass-accent: transparent` → byte-
|
|
111
|
+
identical rest, provable no-op. The SAME register dock-tabs adopt (dormant at
|
|
112
|
+
`--tab-flood-t: 0`). */
|
|
113
|
+
.segmented-indicator {
|
|
114
|
+
isolation: isolate;
|
|
115
|
+
}
|
|
116
|
+
@supports (mix-blend-mode: plus-lighter) {
|
|
117
|
+
.segmented-indicator::after {
|
|
118
|
+
content: "";
|
|
119
|
+
position: absolute;
|
|
120
|
+
inset: 0;
|
|
121
|
+
border-radius: inherit;
|
|
122
|
+
pointer-events: none;
|
|
123
|
+
background: radial-gradient(
|
|
124
|
+
120% 140% at 50% 50%,
|
|
125
|
+
color-mix(in srgb, var(--glass-accent, transparent) 55%, transparent),
|
|
126
|
+
transparent 70%
|
|
127
|
+
);
|
|
128
|
+
mix-blend-mode: plus-lighter;
|
|
129
|
+
opacity: var(--tab-flood-t, 0);
|
|
130
|
+
}
|
|
126
131
|
}
|
|
127
132
|
|
|
128
133
|
/* Vertical: the indicator deforms on the BLOCK axis (compress X / stretch Y) and
|
|
@@ -130,15 +135,23 @@
|
|
|
130
135
|
.segmented-tabs--vertical .segmented-indicator {
|
|
131
136
|
inset-block: auto;
|
|
132
137
|
inset-inline: var(--bouncy-track-trim);
|
|
133
|
-
|
|
138
|
+
/* BD.W-TABS-LIQUID — the vertical arm mirrors the blob × squish: the block axis
|
|
139
|
+
carries the stretch, the inline axis its reciprocal, both uniformly inflated. */
|
|
140
|
+
scale: calc(var(--tab-blob, 1) / var(--stretch))
|
|
141
|
+
calc(var(--tab-blob, 1) * var(--stretch));
|
|
134
142
|
}
|
|
135
143
|
|
|
136
144
|
@media (prefers-reduced-motion: no-preference) {
|
|
137
145
|
.segmented-indicator {
|
|
138
|
-
/*
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
146
|
+
/* BD.W-TABS-LIQUID — the composed `scale` (`--tab-blob × --stretch`) rides the
|
|
147
|
+
DEPENDED `--ease-cartoon-punch` curve (the booked Band-0 token, CONSUMED
|
|
148
|
+
never minted) so the 5-beat blob anticipates (the curve's pre-dip < 0),
|
|
149
|
+
overshoots past the destination footprint (peaks > 1), then settles soft.
|
|
150
|
+
The discrete imperative `--tab-blob` writes (open/release) INTERPOLATE on
|
|
151
|
+
this clock via the `@property` registration — no snap-flicker. ONE clock,
|
|
152
|
+
ONE composited transform pair — the glide (inset) + the squish + the blob
|
|
153
|
+
cannot desync. The `--tab-flood-t` accent-flood trails a beat after. */
|
|
154
|
+
transition: scale var(--tab-indicator-duration) var(--ease-cartoon-punch);
|
|
142
155
|
}
|
|
143
156
|
}
|
|
144
157
|
|
|
@@ -231,7 +244,13 @@
|
|
|
231
244
|
font: inherit;
|
|
232
245
|
font-size: 0.8125rem;
|
|
233
246
|
color: var(--muted-foreground);
|
|
234
|
-
|
|
247
|
+
/* BD.W-TABS-LIQUID — the glyph scale-pop (overlapping action / follow-through):
|
|
248
|
+
the label settles AFTER the capsule (the child trails the parent). The `scale`
|
|
249
|
+
channel rides the snappy spring with a 60ms delay so it OVERLAPS the capsule
|
|
250
|
+
arrival; the colour cross-fade stays on the fast bezier. */
|
|
251
|
+
transition:
|
|
252
|
+
color var(--duration-fast) ease,
|
|
253
|
+
scale var(--spring-snappy-duration) var(--spring-snappy) 60ms;
|
|
235
254
|
/* AQ.W3 identity base — keep `scale:1; translate:0` so a hover/press
|
|
236
255
|
transform never mints a stacking context that severs `anchor()`
|
|
237
256
|
resolution (the WAAPI press writes `transform` transiently — harmless). */
|
|
@@ -251,6 +270,19 @@
|
|
|
251
270
|
color: var(--foreground);
|
|
252
271
|
}
|
|
253
272
|
|
|
273
|
+
/* BD.W-TABS-LIQUID — the glyph scale-pop on the PILL selection. The live selection
|
|
274
|
+
model is `aria-pressed` (the pill is a ToggleGroup-shaped surface — verified in
|
|
275
|
+
SegmentedTabs.vue, NOT `aria-selected` which the underline paper material uses).
|
|
276
|
+
The pop magnitude DEPENDS `--motion-weight` (the booked Band-0 token, CONSUMED):
|
|
277
|
+
`calc(1 + 0.06 × --motion-weight)` → ~+3.7% at rest weight 0.618, and exactly 1
|
|
278
|
+
under PRM (`--motion-weight: 0`). The 60ms transition delay (above) settles it a
|
|
279
|
+
beat after the capsule arrives (overlapping action). The underline label does NOT
|
|
280
|
+
pop (paper ink, no inflation — the material fence). */
|
|
281
|
+
.segmented-tabs:not(.segmented-tabs--underline)
|
|
282
|
+
.segmented-tab[aria-pressed="true"] {
|
|
283
|
+
scale: calc(1 + 0.06 * var(--motion-weight));
|
|
284
|
+
}
|
|
285
|
+
|
|
254
286
|
.segmented-tab.is-disabled {
|
|
255
287
|
opacity: 0.4;
|
|
256
288
|
cursor: not-allowed;
|
|
@@ -407,7 +439,9 @@
|
|
|
407
439
|
/* Promote to its own compositor layer for the 1:1 follow (the translate write
|
|
408
440
|
is compositor-only; the hint keeps the plate off the main-thread paint). */
|
|
409
441
|
will-change: transform;
|
|
410
|
-
/*
|
|
411
|
-
|
|
412
|
-
|
|
442
|
+
/* BD.W-TAB-IOS-CAPSULE C7 — the grabbed-state catch-light COMPOSES the SHARED
|
|
443
|
+
specular-lift step declared ONCE in glass/glass-capsule.css (the
|
|
444
|
+
`.glass-capsule-hover:hover, .glass-drag-lift { --glass-specular }` group), NOT
|
|
445
|
+
a parallel `--glass-specular` fork. This block carries only the grabbing-distinct
|
|
446
|
+
bits (the grab cursor + the `will-change` hint). */
|
|
413
447
|
}
|
package/dist/styles/select.css
CHANGED
|
@@ -48,3 +48,154 @@
|
|
|
48
48
|
precompiled contract). */
|
|
49
49
|
overflow-y: auto;
|
|
50
50
|
}
|
|
51
|
+
|
|
52
|
+
/* ════════════════════════════════════════════════════════════════════════
|
|
53
|
+
BD.W-SELECT-WELL (P4 select-forms) — the welling WARM-GLASS listbox + the
|
|
54
|
+
keyed warm control EDGE. The Select is the REFERENCE consumer of the shared
|
|
55
|
+
field + capsule + accent + reveal union — every leg COMPOSES a shipped/sibling
|
|
56
|
+
register, ZERO new component, ZERO fork.
|
|
57
|
+
|
|
58
|
+
The three legs that live HERE (the consumer side):
|
|
59
|
+
· .glass-control-edge — the keyed two-stop warm rim every form control reads
|
|
60
|
+
so it has a DEFINED edge over the field (fixes the trigger box-shadow:none
|
|
61
|
+
cream-on-cream melt). Composes the SHIPPED `--glass-rim-top`/`--glass-rim-
|
|
62
|
+
bottom` keyed pair (the `--glass-key` upper-right cel key) — NOT a select-
|
|
63
|
+
private border, NOT a re-minted rim.
|
|
64
|
+
· the menu plate WARM FLOOR + α-drop — the menu reads the SHIPPED warm-capsule
|
|
65
|
+
floor (`--glass-capsule-warm` at `--glass-capsule-warm-floor`, the proven
|
|
66
|
+
meanChroma ≥ 0.02 source) so it is warm-cream even over a flat page, AND the
|
|
67
|
+
plate α drops so the warmed source + the portal field TRANSMIT.
|
|
68
|
+
· the portal warm FIELD — a clipped menu-local layer carrying the route's
|
|
69
|
+
`--field-h` (re-emitted on the portal root) so the menu transmits its route
|
|
70
|
+
identity even where the page field is faint behind the body plate.
|
|
71
|
+
════════════════════════════════════════════════════════════════════════ */
|
|
72
|
+
@layer components {
|
|
73
|
+
/* ── .glass-control-edge — the keyed warm control rim (the cream-on-cream fix) ──
|
|
74
|
+
The form controls read `.control-surface` / `.input-pill` (control-surfaces.css)
|
|
75
|
+
which carry a border + fill but `box-shadow: none` — so over a warm cream field
|
|
76
|
+
the trigger's 1.5px border melts and the control reads as a flat cream smudge.
|
|
77
|
+
This register adds the SHIPPED keyed two-stop directional rim (the bright top/
|
|
78
|
+
right catch-light + the faint warm bottom/left under-shadow, `--glass-key` upper-
|
|
79
|
+
right) so the control reads as a lifted glass plate with a defined warm edge over
|
|
80
|
+
the field. ONE register, ≥8 consumers (Select trigger + Input/Textarea/NumberField
|
|
81
|
+
pill + Checkbox/Radio + Switch track + Combobox anchor) — the DRY bar cleared by
|
|
82
|
+
construction. Composed (not re-declared): the rim is the SAME `--glass-rim-top`/
|
|
83
|
+
`--glass-rim-bottom` pair `.glass-capsule` reads, so `--glass-key` re-points BOTH
|
|
84
|
+
the capsule and the control edge from ONE handle (cel coherence). */
|
|
85
|
+
.glass-control-edge {
|
|
86
|
+
box-shadow:
|
|
87
|
+
var(--glass-rim-top),
|
|
88
|
+
var(--glass-rim-bottom);
|
|
89
|
+
}
|
|
90
|
+
/* Compose the keyed edge UNDER any control-owned ring/shadow: a control with its
|
|
91
|
+
OWN box-shadow (the Switch thumb, the focus ring on the pill) layers its shadow
|
|
92
|
+
FIRST, then the rim — the rim is the resting silhouette, the ring is the focus
|
|
93
|
+
overlay (the pill's `:focus-visible` box-shadow wins by source order + its own
|
|
94
|
+
rule). The rim travels with the control on the SHARED bezier (the pill/control-
|
|
95
|
+
surface already transition box-shadow on `--ease-standard`). */
|
|
96
|
+
|
|
97
|
+
/* ── The menu plate WARM FLOOR + α-drop (the un-gray amplifier) ──
|
|
98
|
+
The floating recipe (`.glass-floating`, ladder.css) composes
|
|
99
|
+
`color-mix(--glass-bg-floating, --glass-tint-source --glass-tint-strength)`,
|
|
100
|
+
and `--glass-tint-strength` floors at 0% at calm rest — so the menu plate is
|
|
101
|
+
near-gray-flat. RE-POINT the menu fill to compose the SHIPPED warm-capsule floor
|
|
102
|
+
(`--glass-capsule-warm` at `--glass-capsule-warm-floor`, the proven meanChroma
|
|
103
|
+
≥ 0.02 source — the SAME token the tab capsule reads, DRY) ON TOP of the floating
|
|
104
|
+
tint, AND drop the plate α so the warmed source + the portal field TRANSMIT and
|
|
105
|
+
give real L-variance (the menu is warm GLASS, never an opaque cream slab). The
|
|
106
|
+
six-layer rim/blur/shadow composite is UNTOUCHED — only the FILL admit changes. */
|
|
107
|
+
[data-slot="select-content"],
|
|
108
|
+
[data-slot="combobox-list"] {
|
|
109
|
+
/* The α-drop seam: a consumer can re-solidify via `--select-plate-alpha: 1`.
|
|
110
|
+
Default 0.90 (light) drops the ~0.80α floating base to ~0.72 effective (the
|
|
111
|
+
amendment's transmit target) so the warmed source + the portal field show
|
|
112
|
+
through while the plate keeps body. The dark arm keeps more body (see .dark
|
|
113
|
+
below). The combobox list is the SAME overlay-family warm-glass plate
|
|
114
|
+
(DRY — one warm-floor register for both portalled pickers). */
|
|
115
|
+
--select-plate-alpha: 0.90;
|
|
116
|
+
background: color-mix(
|
|
117
|
+
in oklab,
|
|
118
|
+
color-mix(
|
|
119
|
+
in oklab,
|
|
120
|
+
var(--glass-bg-floating-tinted, var(--glass-bg-floating)),
|
|
121
|
+
var(--glass-capsule-warm) var(--glass-capsule-warm-floor)
|
|
122
|
+
),
|
|
123
|
+
transparent calc((1 - var(--select-plate-alpha)) * 100%)
|
|
124
|
+
);
|
|
125
|
+
/* the cartoon weight — the SHIPPED `--shadow-cartoon-lg` warm cel stamp UNDER
|
|
126
|
+
the floating elevation so the panel reads as a physical card lifted off the
|
|
127
|
+
page. Composed onto the floating box-shadow stack via the plate's own rule
|
|
128
|
+
(the floating tier's `--glass-material-rim` + shadows stay; this ADDS the
|
|
129
|
+
cartoon under-stamp). Static, PRM-immune. */
|
|
130
|
+
box-shadow:
|
|
131
|
+
var(--glass-material-rim),
|
|
132
|
+
var(--glass-under-shadow-vivid),
|
|
133
|
+
var(--glass-shadow-floating),
|
|
134
|
+
var(--shadow-cartoon-lg);
|
|
135
|
+
}
|
|
136
|
+
.dark [data-slot="select-content"],
|
|
137
|
+
.dark [data-slot="combobox-list"] {
|
|
138
|
+
/* dark glass needs more body — the warm field reads as a glow band, not a wash
|
|
139
|
+
lost in near-black; keep the fill nearly solid so the dark menu has presence.
|
|
140
|
+
PLAIN per-mode arm (not a light-dark() fragment — the inset-shadow trap, and
|
|
141
|
+
the box-shadow above carries no inset leg but the discipline holds). */
|
|
142
|
+
--select-plate-alpha: 0.94;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/* ── .glass-field-portal — the portal-local warm field (route identity) ──
|
|
146
|
+
The menu portals to <body>, OUTSIDE the route's field, so its `backdrop-filter`
|
|
147
|
+
has nothing warm to transmit. A clipped menu-local layer BEHIND the plate (z -1,
|
|
148
|
+
NO backdrop-filter on it — glass-cannot-sample-glass avoided by construction)
|
|
149
|
+
paints a 3-stop warm spine keyed to the route's `--field-h` (re-emitted on the
|
|
150
|
+
portal root via `data-field-palette` → `--field-h`). `inset: 0` (clipped INSIDE
|
|
151
|
+
— the blur bends it THROUGH the plate as real L-variance, NOT an `inset:-20%`
|
|
152
|
+
halo leaking around the box). Defaults to `--field-h: 48` (forms terracotta)
|
|
153
|
+
when the route does not re-emit, so a bare Select still reads warm. */
|
|
154
|
+
.glass-field-portal {
|
|
155
|
+
position: relative;
|
|
156
|
+
}
|
|
157
|
+
.glass-field-portal::before {
|
|
158
|
+
content: "";
|
|
159
|
+
position: absolute;
|
|
160
|
+
inset: 0;
|
|
161
|
+
z-index: -1;
|
|
162
|
+
pointer-events: none;
|
|
163
|
+
border-radius: inherit;
|
|
164
|
+
background:
|
|
165
|
+
radial-gradient(70% 60% at 24% 22%,
|
|
166
|
+
oklch(0.92 0.08 var(--field-h, 48) / 0.55), transparent 72%),
|
|
167
|
+
radial-gradient(64% 58% at 82% 80%,
|
|
168
|
+
oklch(0.88 0.07 calc(var(--field-h, 48) + 18) / 0.50), transparent 70%),
|
|
169
|
+
radial-gradient(60% 62% at 60% 40%,
|
|
170
|
+
oklch(0.90 0.06 calc(var(--field-h, 48) - 14) / 0.48), transparent 74%);
|
|
171
|
+
}
|
|
172
|
+
/* DARK arm (PLAIN per-mode, not :global()/light-dark()) — the dark field stops lift
|
|
173
|
+
to a real glow band (oklch L ~0.22–0.30, higher chroma) so the field-thesis is met
|
|
174
|
+
in dark, not a wash lost in near-black. */
|
|
175
|
+
.dark .glass-field-portal::before {
|
|
176
|
+
background:
|
|
177
|
+
radial-gradient(70% 60% at 24% 22%,
|
|
178
|
+
oklch(0.30 0.10 var(--field-h, 48) / 0.55), transparent 72%),
|
|
179
|
+
radial-gradient(64% 58% at 82% 80%,
|
|
180
|
+
oklch(0.26 0.09 calc(var(--field-h, 48) + 18) / 0.50), transparent 70%),
|
|
181
|
+
radial-gradient(60% 62% at 60% 40%,
|
|
182
|
+
oklch(0.28 0.08 calc(var(--field-h, 48) - 14) / 0.48), transparent 74%);
|
|
183
|
+
}
|
|
184
|
+
/* honest-degraded arm — engines without oklch() get an hsl warm spine, never gray. */
|
|
185
|
+
@supports not (color: oklch(0.9 0.08 48)) {
|
|
186
|
+
.glass-field-portal::before {
|
|
187
|
+
background: radial-gradient(70% 60% at 24% 22%,
|
|
188
|
+
hsl(var(--field-h, 48) 60% 88% / 0.5), transparent 72%);
|
|
189
|
+
}
|
|
190
|
+
.dark .glass-field-portal::before {
|
|
191
|
+
background: radial-gradient(70% 60% at 24% 22%,
|
|
192
|
+
hsl(var(--field-h, 48) 45% 26% / 0.55), transparent 72%);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/* ── PRM is colour-static here — the field + floor + edge + cartoon shadow are PAINT,
|
|
198
|
+
not motion, so they REMAIN under `prefers-reduced-motion: reduce` (un-gray and
|
|
199
|
+
selection-legibility need no motion). The reveal/pour/chevron motion legs are
|
|
200
|
+
carved in their own home recipes (reveal.css / menu.css) — this consumer file
|
|
201
|
+
introduces no motion to gate. */
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
allows a near-white translucent surface. The DARK --card is W-DARK-MATERIAL's
|
|
70
70
|
lifted hsl(24 8% 16%) (NOT re-warmed here — the dark register is its work).
|
|
71
71
|
Bounded: the cream family, never a tinted cast (the triumvirate bar). */
|
|
72
|
-
--card: hsl(
|
|
72
|
+
--card: hsl(30 85% 96%);
|
|
73
73
|
--card-foreground: var(--foreground);
|
|
74
74
|
--popover: var(--card);
|
|
75
75
|
--popover-foreground: var(--foreground);
|
|
@@ -71,8 +71,8 @@
|
|
|
71
71
|
/* BA.W-DARK-MATERIAL scope 1 — the --card plate LIFTS L10→L16 (a warm-dark elevated
|
|
72
72
|
surface, macOS-window territory) so it sits ~5× the deepened L4 page relL — a
|
|
73
73
|
clearly distinct surface the five glass rungs ladder up from. LOCKSTEP light-dark.css:80. */
|
|
74
|
-
--card: hsl(
|
|
75
|
-
--popover: hsl(
|
|
74
|
+
--card: hsl(26 22% 17%);
|
|
75
|
+
--popover: hsl(26 22% 17%);
|
|
76
76
|
|
|
77
77
|
/* R0G-5 (AO.W4) — dark mirror of the warm-neutral public-data panel.
|
|
78
78
|
--card's dark hsl(24 8% 16%) nudged one warmth step toward amber
|
|
@@ -164,12 +164,28 @@
|
|
|
164
164
|
--warning-foreground: hsl(24 10% 10%);
|
|
165
165
|
--info-foreground: hsl(48 10% 96%);
|
|
166
166
|
|
|
167
|
-
|
|
168
|
-
|
|
167
|
+
/* BD.W-CARTOON-CEL-INK — the WARM DARK ink. In dark, `--foreground` flips to
|
|
168
|
+
near-cream, so the SAME `oklch(from --foreground …)` construction would lift the
|
|
169
|
+
ink toward a light warm LINE (the iOS-7-sticker glow). A cel cast is dark INK on
|
|
170
|
+
any cel — so the dark ink is built by the SAME `oklch(from)` mechanism (NOT a
|
|
171
|
+
hardcoded `oklch(0.22 0.07 70)` literal — the H3/R6 retirement) but L-TARGETED to
|
|
172
|
+
a warm MID-tone: `clamp(0.20, 1 − l, 0.30)` deepens the flipped-cream L back down
|
|
173
|
+
to a warm dark mid that READS as a defined edge against the near-black `--card`
|
|
174
|
+
(ΔL ≥ 0.12), chroma floored `max(c, 0.11)` for TECHNICOLOR, hue preserved. The
|
|
175
|
+
opacity rungs floor UP (46/38/26%) for presence on the dark ground. Plain `.dark`
|
|
176
|
+
ancestor — NO `:global()`, NO `light-dark()` (the recorded traps). */
|
|
177
|
+
--cartoon-ink: oklch(from var(--foreground) clamp(0.20, calc(1 - l), 0.30) max(c, 0.11) h);
|
|
178
|
+
--cartoon-ink-lead: color-mix(in oklab, var(--cartoon-ink) 46%, transparent);
|
|
179
|
+
--cartoon-ink-mid: color-mix(in oklab, var(--cartoon-ink) 38%, transparent);
|
|
180
|
+
--cartoon-ink-contact: color-mix(in oklab, var(--cartoon-ink) 26%, transparent);
|
|
181
|
+
--cartoon-ink-fallback: #5a3f28;
|
|
182
|
+
|
|
183
|
+
--shadow-cartoon: -3px 3px 0px 0px var(--cartoon-ink-lead);
|
|
184
|
+
--shadow-cartoon-hover: -4px 4px 0px 0px var(--cartoon-ink-lead);
|
|
169
185
|
--shadow-soft: 0 4px 12px rgba(0, 0, 0, 0.3);
|
|
170
186
|
--shadow-elevated: 0 8px 24px rgba(0, 0, 0, 0.35);
|
|
171
187
|
--shadow-modal:
|
|
172
|
-
4px 4px 0px 0px
|
|
188
|
+
-4px 4px 0px 0px var(--cartoon-ink-lead),
|
|
173
189
|
0 24px 64px color-mix(in srgb, var(--foreground) 18%, transparent);
|
|
174
190
|
|
|
175
191
|
--shadow-cartoon-color: rgb(255 255 255 / 0.07);
|
|
@@ -222,6 +238,12 @@
|
|
|
222
238
|
automatically per mode. */
|
|
223
239
|
--glass-opacity-dialog: 0.76;
|
|
224
240
|
--glass-grain-opacity: 0.045;
|
|
241
|
+
/* BD.W-PAPER-MORPHISM — re-calibrated to the JND floor for the CORRECTED coarse
|
|
242
|
+
tooth + SCREEN blend (std ≥ 3.86 dark): screen on the ink pole BITES HARD so it
|
|
243
|
+
needs LESS alpha (the honest inversion the measurements force — the opacity
|
|
244
|
+
ladder light→dark 0.22→0.16 ≈ ×1/√φ, dark steps DOWN). Was 0.11 on the
|
|
245
|
+
self-cancelling soft-light arm. */
|
|
246
|
+
--paper-grain-opacity: 0.16;
|
|
225
247
|
--glass-highlight: inset 0 0.5px 0 0 hsl(0 0% 100% / 0.08);
|
|
226
248
|
|
|
227
249
|
/* BA.W-DARK-MATERIAL scope 2 — dark glass is TRANSMISSIVE. The dark rung
|
|
@@ -255,7 +277,12 @@
|
|
|
255
277
|
--glass-blur-resting: blur(calc(var(--glass-blur-resting-radius) * var(--glass-level))) saturate(var(--glass-saturate-resting)) brightness(1.14);
|
|
256
278
|
--glass-blur-floating: blur(calc(var(--glass-blur-floating-radius) * var(--glass-level))) saturate(var(--glass-saturate-floating)) brightness(1.10);
|
|
257
279
|
--glass-blur-overlay: blur(calc(var(--glass-blur-overlay-radius) * var(--glass-level))) saturate(var(--glass-saturate-overlay)) brightness(1.06);
|
|
258
|
-
|
|
280
|
+
/* W-NAV-DOCK-FIX — re-point the dark dock saturate to the named --glass-saturate-dock
|
|
281
|
+
knob (the single retune point in BOTH modes; the dark value 1.30 is declared here
|
|
282
|
+
so the descendant var() substitutes the dark value — the substitution-vs-redeclare
|
|
283
|
+
discipline). Value unchanged. */
|
|
284
|
+
--glass-saturate-dock: 1.30;
|
|
285
|
+
--glass-blur-dock: blur(calc(var(--glass-blur-dock-radius) * var(--glass-level))) saturate(var(--glass-saturate-dock)) brightness(1.12);
|
|
259
286
|
|
|
260
287
|
/* BB.W-DEEP-GLASS — the DARK arm of the OPT-IN deep tier (the luminous-dark
|
|
261
288
|
deep mirror, the W-DARK-MATERIAL scope-2 "dark glass glows where light
|
|
@@ -288,6 +315,13 @@
|
|
|
288
315
|
self-engage uses the AA arm directly (the luminous-dark lift is the desired default,
|
|
289
316
|
not a sub-perceptual silhouette). */
|
|
290
317
|
--glass-tint-strength-aa: 12%;
|
|
318
|
+
/* BD.W-DOCK-CORE (D4) — the dark §2c dock-ink lockstep (the MIRROR of the light
|
|
319
|
+
darken). In dark the dock tint is a LIFT toward a luminous warm-cream (L 0.90,
|
|
320
|
+
C 0.045) — `oklch(from var(--foreground) …)` extracts the dark foreground's warm
|
|
321
|
+
hue/chroma and lifts L (the dark `--foreground` is the light cream, so this stays a
|
|
322
|
+
luminous lift). The dark `--glass-tint-strength-aa` stays 12% (FROZEN,
|
|
323
|
+
W-DARK-MATERIAL). The dock self-engage reads this dock-scoped ink in BOTH modes. */
|
|
324
|
+
--glass-tint-ink-dock: oklch(from var(--foreground) 0.90 0.045 h);
|
|
291
325
|
/* The unconditional content-tier self-engage (glass/ladder.css) reads
|
|
292
326
|
--glass-tint-strength-floor. In LIGHT that is the 4% sub-perceptual silhouette (the
|
|
293
327
|
calm-light card stays warm); in DARK the content tiers WANT the full luminous-dark
|
|
@@ -368,8 +402,23 @@
|
|
|
368
402
|
page, so the rim is the PRIMARY silhouette device — dark glass glows where light
|
|
369
403
|
passes; mirrors the --glass-edge-light-dark 0.18→0.22 lift). The bottom warm
|
|
370
404
|
under-shadow holds at 6% — the shadow grounds the plate in BOTH modes. */
|
|
371
|
-
|
|
372
|
-
|
|
405
|
+
/* BD.W-GLASS-KEY-EDGE — the dark rim rides the SAME `--glass-key-{lit,shade}-{x,y}`
|
|
406
|
+
sign tokens (inherited from :root — not re-declared here) so the dark plate's
|
|
407
|
+
lit edge agrees with the cartoon cast's key in both modes. The top/lit catch
|
|
408
|
+
lifts to 0.40 (the dark silhouette device); the key-facing side stop a touch
|
|
409
|
+
brighter (0.24). The shade under-shadow holds warm at 6%/4%. */
|
|
410
|
+
--glass-rim-top:
|
|
411
|
+
inset 0 var(--glass-key-lit-y) 0 hsl(0 0% 100% / 0.40),
|
|
412
|
+
inset var(--glass-key-lit-x) 0 0 hsl(0 0% 100% / 0.24);
|
|
413
|
+
--glass-rim-bottom:
|
|
414
|
+
inset 0 var(--glass-key-shade-y) 0 color-mix(in srgb, var(--foreground) 6%, transparent),
|
|
415
|
+
inset var(--glass-key-shade-x) 0 0 color-mix(in srgb, var(--foreground) 4%, transparent);
|
|
416
|
+
|
|
417
|
+
/* BD.W-TAB-IOS-CAPSULE — the `.glass-capsule-track` recess ink, DARK arm (the
|
|
418
|
+
PLAIN per-mode pair's dark leg; the light arm is in `tokens/glass-fx.css`).
|
|
419
|
+
NEVER a `light-dark()` fragment (the inset-shadow trap). Deeper on the dark
|
|
420
|
+
canvas (11%) so the sunken well still reads against the near-black page. */
|
|
421
|
+
--tab-track-recess-ink: color-mix(in srgb, var(--foreground) 11%, transparent);
|
|
373
422
|
|
|
374
423
|
/* AW.W23 — the chromatic-fringe + adaptive-tint dark arm. The fringe drops
|
|
375
424
|
to a lower-luminance warm/cool pair on the deep canvas; `--glass-tint-
|
|
@@ -55,9 +55,12 @@
|
|
|
55
55
|
BUDGET CALL (L4): stays 16px, the 18-20px push
|
|
56
56
|
toward the apple.com nav ceiling is BOOKED
|
|
57
57
|
behind a recorded profile:budget clearance. */
|
|
58
|
-
--glass-saturate-deep: 1.
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
--glass-saturate-deep: 1.8; /* BD.W-GLASS-ABROGATE-GRAY — lifted 1.5→1.8 (the
|
|
59
|
+
apple.com nav ceiling) IN LOCKSTEP with FIX-D's
|
|
60
|
+
content/floating saturate lift, so the deep tier
|
|
61
|
+
STAYS the richest register (calm floating now 1.6;
|
|
62
|
+
deep must clear it). == --glass-saturate-deep-ceiling
|
|
63
|
+
(1.8 — at the bound, never over-shot, L4 holds). */
|
|
61
64
|
--glass-saturate-deep-ceiling: 1.8; /* the apple.com-nav saturate CEILING, BAKED as
|
|
62
65
|
the deep-tier load-bearing term (research/
|
|
63
66
|
apple-glass.md §4); the deep saturate never
|
|
@@ -85,7 +88,8 @@
|
|
|
85
88
|
chroma, it does NOT inject a hue; the warm-cream `--card` base is the same). */
|
|
86
89
|
--glass-saturate-deep-active:
|
|
87
90
|
calc(
|
|
88
|
-
|
|
91
|
+
var(--glass-saturate-floating)
|
|
92
|
+
+ (var(--glass-saturate-deep) - var(--glass-saturate-floating)) * var(--glass-depth)
|
|
89
93
|
);
|
|
90
94
|
|
|
91
95
|
/* The composed deep backdrop-filter — the SEPARATE deep family. The calm
|
|
@@ -15,6 +15,16 @@
|
|
|
15
15
|
so it sits at the perceptual floor. Dark companion drops 0.06 →
|
|
16
16
|
0.045 below to keep the soft-light blend alive without stippling. */
|
|
17
17
|
--glass-grain-opacity: 0.025;
|
|
18
|
+
/* BD.W-PAPER-MORPHISM — the PAPER grain is its OWN register (~3× the glass grain):
|
|
19
|
+
paper texture is MEANT to READ (the user: "I don't see any paper grain or grit
|
|
20
|
+
anywhere"), not sit at the glass perceptual floor. ONE token retunes paper grit
|
|
21
|
+
library-wide WITHOUT coarsening the subtle glass-material grain (the split keeps
|
|
22
|
+
glass calm + paper tactile). The dark arm (dark-arm.css) lifts it for soft-light. */
|
|
23
|
+
/* BD.W-PAPER-MORPHISM — re-calibrated to the JND floor for the CORRECTED coarse
|
|
24
|
+
tooth + multiply blend (std ≥ 4.5 light, the no-squint floor): multiply on the
|
|
25
|
+
cream pole is GENTLE so it needs MORE alpha. The prior 0.08 rode a blend
|
|
26
|
+
(overlay) that was mathematically incapable of moving a near-white pixel. */
|
|
27
|
+
--paper-grain-opacity: 0.22;
|
|
18
28
|
/* BB.W-LIQUIDHOVER — the grain ENGAGE clock: a hover/active grain lift cross-fades
|
|
19
29
|
the grain `::after` OPACITY on this thin ~120ms linear write while the
|
|
20
30
|
`background-image` stays ALWAYS PRESENT (never a none→image swap — the one-frame
|
|
@@ -85,8 +95,39 @@
|
|
|
85
95
|
re-declares both in dark-arm.css; light-dark() round an inset computes the WHOLE
|
|
86
96
|
box-shadow to none). The dark arm lifts the top to 0.40 (dark glass glows where
|
|
87
97
|
light passes) + keeps the bottom under-shadow at 6%. */
|
|
88
|
-
|
|
89
|
-
|
|
98
|
+
/* BD.W-GLASS-KEY-EDGE — the cel KEYSTONE. ONE light vector (the 1940s cel
|
|
99
|
+
upper-right key) drives WHICH edge of the existing two-stop directional rim
|
|
100
|
+
reads LIT vs SHADE, in lockstep with the shipped `.shadow-cartoon-*` down-LEFT
|
|
101
|
+
cast (shadow.css `-Npx Npx` → key upper-right). The key is expressed NOT as a
|
|
102
|
+
`-58deg` angle with sign-inverted cos()/sin() trig (the glass-material sign
|
|
103
|
+
trap — banned here), but as two PLAIN per-axis sign tokens the rim stops read
|
|
104
|
+
directly: the LIT catch wraps the key-facing edges (top + right), the SHADE
|
|
105
|
+
under-shadow grounds the opposite edges (bottom + left). A consumer re-points
|
|
106
|
+
`--glass-key-lit-x`/`--glass-key-lit-y` to move the key (e.g. upper-LEFT →
|
|
107
|
+
`1px`/`1px`) and the rim re-reads off it with ZERO new layer, ZERO new conic,
|
|
108
|
+
ZERO new DOM node. The key's SIGN tokens below are the wired form (the
|
|
109
|
+
upper-right keystone). */
|
|
110
|
+
--glass-key-lit-x: -1px; /* the lit catch sits on the RIGHT edge (key-facing) */
|
|
111
|
+
--glass-key-lit-y: 1px; /* …and the TOP edge — the upper-right key */
|
|
112
|
+
--glass-key-shade-x: 1px; /* the under-shadow grounds the LEFT edge */
|
|
113
|
+
--glass-key-shade-y: -1px; /* …and the BOTTOM edge — opposite the key */
|
|
114
|
+
/* BC.W-BLACK-BAR D2 + BD.W-GLASS-KEY-EDGE — the two-stop directional rim, now
|
|
115
|
+
KEY-DRIVEN: the bright catch-light `--glass-rim-top` rides the lit (key-facing)
|
|
116
|
+
edges, the faint warm under-shadow `--glass-rim-bottom` rides the shade edges.
|
|
117
|
+
Which edge each lands on is `--glass-key-{lit,shade}-{x,y}` so the rim and the
|
|
118
|
+
cartoon cast AGREE on one light source (the cel coherence). At the default
|
|
119
|
+
upper-right key these resolve byte-compatibly to the shipped top-lit/bottom-shade
|
|
120
|
+
silhouette (top catch + bottom under-shadow) PLUS the key-facing side stops, so
|
|
121
|
+
the lit edge reads as a real lit pane corner, not a flat omnidirectional halo.
|
|
122
|
+
The accent (BB.W-GLASS-ACCENT) still mixes onto the lit ink in rim.css — at 0%
|
|
123
|
+
strength byte-identical. Plain per-mode arms — NEVER an inset fragment inside
|
|
124
|
+
light-dark() (the dark arm re-declares both in dark-arm.css). */
|
|
125
|
+
--glass-rim-top:
|
|
126
|
+
inset 0 var(--glass-key-lit-y) 0 hsl(0 0% 100% / 0.30),
|
|
127
|
+
inset var(--glass-key-lit-x) 0 0 hsl(0 0% 100% / 0.18);
|
|
128
|
+
--glass-rim-bottom:
|
|
129
|
+
inset 0 var(--glass-key-shade-y) 0 color-mix(in srgb, var(--foreground) 6%, transparent),
|
|
130
|
+
inset var(--glass-key-shade-x) 0 0 color-mix(in srgb, var(--foreground) 4%, transparent);
|
|
90
131
|
/* BA.W-DARK-MATERIAL scope 2 — the dark edge/rim is the PRIMARY silhouette device in
|
|
91
132
|
dark. The light register's fill+shadow carry the plate; in dark the fill barely
|
|
92
133
|
separates (the deep page is near-black), so the EDGE + the transmitted glow carry the
|
|
@@ -116,6 +157,29 @@
|
|
|
116
157
|
--glass-tint-source: var(--card);
|
|
117
158
|
--glass-tint-strength: 0%;
|
|
118
159
|
|
|
160
|
+
/* BD.W-TAB-IOS-CAPSULE — the `.glass-capsule` warm-floor (C6). `--card` itself
|
|
161
|
+
is too pale to clear the meanChroma ≥ 0.02 floor (its own OKLab chroma is
|
|
162
|
+
~0.015), so the capsule composes a SMALL fixed floor toward an explicitly
|
|
163
|
+
WARM oklch source — a warm cream/amber that carries real chroma. This is the
|
|
164
|
+
build-trap-(d) safe form (a warm color, never bare `transparent`). At the 16%
|
|
165
|
+
floor the painted capsule fill clears chroma ≥ 0.02 with negligible L lift
|
|
166
|
+
(stays near-white). Mode-invariant warm (the oklch reads warm on both the
|
|
167
|
+
light cream page and the dark canvas — the warm-floor is a property of the
|
|
168
|
+
LOZENGE, not the page); the floor is INDEPENDENT of the `--glass-tint-strength:
|
|
169
|
+
0%` adaptive default (which is zero-delta at rest, lifting only under the
|
|
170
|
+
bright bucket). Both are composed in `.glass-capsule`'s fill. */
|
|
171
|
+
--glass-capsule-warm: oklch(0.88 0.1 75);
|
|
172
|
+
--glass-capsule-warm-floor: 16%;
|
|
173
|
+
|
|
174
|
+
/* BD.W-TAB-IOS-CAPSULE — the `.glass-capsule-track` recess ink (the iOS-27
|
|
175
|
+
sunken-well inner-top edge). A PLAIN per-mode pair — this light arm + the dark
|
|
176
|
+
arm in `tokens/dark-arm.css`. NEVER a `light-dark()` fragment: an inset-shadow
|
|
177
|
+
leg inside `light-dark()` computes the WHOLE `box-shadow` to `none` (the
|
|
178
|
+
binding MEMORY lesson) and the recess would silently vanish. Bounded warm ink
|
|
179
|
+
so it darkens the inner-top edge without re-coloring the warm fill (no gray
|
|
180
|
+
well). */
|
|
181
|
+
--tab-track-recess-ink: color-mix(in srgb, var(--foreground) 7%, transparent);
|
|
182
|
+
|
|
119
183
|
/* AX.W55 — adaptive glass legibility (the iOS-26/27 "locally darken the glass
|
|
120
184
|
over light content" move; G2). There is NO web API that reads the pixels
|
|
121
185
|
painted BEHIND a `backdrop-filter` element, so the backdrop-luminance signal
|
|
@@ -155,6 +219,20 @@
|
|
|
155
219
|
--glass-backdrop: dark;
|
|
156
220
|
--glass-tint-ink: var(--foreground);
|
|
157
221
|
|
|
222
|
+
/* BD.W-DOCK-CORE (D1) — the warm-CHROMATIC dock tint ink (the keystone, RESEARCH-3).
|
|
223
|
+
The dock self-engage (dock/morph.css) mixes its thin ~0.42-alpha plate toward the
|
|
224
|
+
near-black `--foreground` (chroma ≈ 0.0062) → it darkens L with chroma DEAD-FLAT (the
|
|
225
|
+
gray dock the user reports). This dock-SCOPED ink extracts the foreground's warm
|
|
226
|
+
hue/chroma via `oklch(from …)` (the BB.W-DARK-INK-WARM idiom — NOT a new mechanism),
|
|
227
|
+
LIFTS the chroma to 0.05 (well above foreground's 0.0062), and DROPS L to 0.42 (the
|
|
228
|
+
darken anchor). At the bright-bucket AA engage the composited plate yields a WARM
|
|
229
|
+
material darken (C ≈ 0.016, ~2× HEAD, H ≈ 62°) — never gray. The OUTER mix stays
|
|
230
|
+
`color-mix(in oklab)` (the glass-tint family, AW.W26 in-srgb fence untouched); this
|
|
231
|
+
`oklch(from)` is only the INK SOURCE. The GLOBAL `--glass-tint-ink` above is FROZEN
|
|
232
|
+
(W-DARK-MATERIAL's whole-system register) — this is a NEW dock-scoped token read ONLY
|
|
233
|
+
by the dock self-engage (file-line-disjoint, no-dual-path). */
|
|
234
|
+
--glass-tint-ink-dock: oklch(from var(--foreground) 0.42 0.05 h);
|
|
235
|
+
|
|
158
236
|
/* BC.W-ADAPTIVE-RECONCILE — the ONE retune knob for the continuous observer
|
|
159
237
|
driver. `--glass-backdrop-luma` (the measured sampled relative-luminance the
|
|
160
238
|
useGlassBackdropLuminance observer WRITES, registered typed in property-regs.css)
|