@mkbabb/glass-ui 4.0.1 → 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-CW7a0m8M.js → CardAction-DlVP2evz.js} +72 -53
- package/dist/{CommandShortcut-DvZNQ_HF.js → CommandShortcut-By-VQcLO.js} +25 -14
- package/dist/{ConfiguratorRow-BR4l-ixA.js → ConfiguratorRow-YMXdINHx.js} +14 -14
- package/dist/ContextMenuContent-CMWn6huB.js +90 -0
- package/dist/{ContextMenuSubContent-xol4sD2q.js → ContextMenuSubContent-DvwWCUc0.js} +16 -16
- package/dist/{DataTable-CuKwF7wr.js → DataTable-C4tG3eIJ.js} +4 -4
- package/dist/DialogContent-D8U9ZfWS.js +121 -0
- package/dist/DialogFooter-DoLy0ewI.js +80 -0
- package/dist/DialogScrollContent-BMekN7gq.js +93 -0
- package/dist/{FadingScroll-DI6hQhT9.js → FadingScroll-P8B30rAD.js} +1 -1
- package/dist/HoverCardContent-DAmGYglo.js +88 -0
- package/dist/{HoverPopover-CbqbNwgU.js → HoverPopover-DYpBOzzF.js} +1 -1
- package/dist/{IconChip-BTD-nay5.js → IconChip-CQa7XZYc.js} +7 -5
- package/dist/{IconTooltip-Bl8gFZ8d.js → IconTooltip-_df8M3xm.js} +1 -1
- package/dist/Input-CyU4_hIC.js +57 -0
- package/dist/{MetricBadge-RHdBP72w.js → MetricBadge-DQt_dGah.js} +1 -1
- package/dist/{Notification-VUwexFUf.js → Notification-BlSPJhtZ.js} +4 -4
- package/dist/NumberFieldContent-Z3VxGu_6.js +140 -0
- 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-DctG61iZ.js → Progress-C9SsdwIZ.js} +1 -1
- package/dist/{ScrollingText-yOpBzFYq.js → ScrollingText-DY3W1Jfh.js} +2 -2
- package/dist/SelectScrollDownButton-3mFHX_R-.js +260 -0
- package/dist/{SelectSeparator-DXswVdRz.js → SelectSeparator-CNRGG7Ew.js} +1 -1
- package/dist/Separator-Cf9-JFgi.js +44 -0
- package/dist/Switch-uf-UKPA2.js +49 -0
- package/dist/{Toaster-Bw4xR8xV.js → Toaster-ozrsR4mP.js} +2 -2
- package/dist/{ToggleGroupItem-pEM9vIhs.js → ToggleGroupItem-BpzaVzNm.js} +6 -6
- package/dist/TooltipProvider-QQVM_80r.js +109 -0
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +16 -32
- package/dist/api/types-extra.d.ts +33 -0
- package/dist/api.js +2 -2
- package/dist/aurora.js +629 -269
- package/dist/badge-Bt14yURi.js +72 -0
- package/dist/badge.js +1 -1
- package/dist/border-progress.js +49 -57
- package/dist/button-D1W9PrzI.js +130 -0
- package/dist/button.js +1 -1
- package/dist/canvas.js +2 -3
- package/dist/card.js +1 -1
- package/dist/carousel.js +235 -106
- package/dist/chipVariants-BJQ0I2kB.js +18 -0
- package/dist/collapsible.js +1 -1
- package/dist/color-B9jZdhJX.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/glSetup.d.ts +1 -1
- package/dist/components/custom/aurora/composables/runtime.d.ts +12 -0
- package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +12 -3
- package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +8 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +47 -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/aurora/index.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/Concentric.vue.d.ts +15 -12
- package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +12 -0
- package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +13 -0
- package/dist/components/custom/concentric/composables/levelField.d.ts +50 -0
- package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +7 -3
- package/dist/components/custom/concentric/composables/useConcentric.d.ts +3 -3
- package/dist/components/custom/concentric/constants.d.ts +69 -24
- 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/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/DockDropdownTrigger.vue.d.ts +4 -3
- package/dist/components/custom/dock/DockIconButton.vue.d.ts +22 -0
- package/dist/components/custom/dock/DockPopoverTrigger.vue.d.ts +19 -0
- package/dist/components/custom/dock/DockStack.vue.d.ts +78 -0
- package/dist/components/custom/dock/GlassDock.vue.d.ts +21 -3
- package/dist/components/custom/dock/composables/dockMorphContext.d.ts +18 -32
- package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +78 -67
- package/dist/components/custom/dock/composables/index.d.ts +3 -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/useDockSearch.d.ts +85 -0
- package/dist/components/custom/dock/composables/useDockShellProps.d.ts +49 -0
- package/dist/components/custom/dock/constants.d.ts +32 -17
- package/dist/components/custom/dock/index.d.ts +8 -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 +69 -6
- 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 +50 -9
- package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +6 -5
- package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +23 -9
- package/dist/components/custom/dot-flow-field/constants.d.ts +92 -20
- 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 +31 -18
- package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +2 -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 +61 -0
- package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
- package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +34 -0
- package/dist/components/custom/dot-matrix/constants.d.ts +72 -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 +44 -47
- package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +24 -0
- package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +31 -0
- package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +56 -0
- package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +61 -37
- package/dist/components/custom/fourier-field/constants.d.ts +114 -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/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/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 +86 -1
- 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 +79 -0
- package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +45 -0
- package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
- package/dist/components/custom/goo-dot-matrix/constants.d.ts +115 -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 +13 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +4 -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/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-backdrop/PaperBackdrop.vue.d.ts +18 -0
- package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
- package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +105 -0
- package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +18 -0
- package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +21 -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 +95 -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/chipVariants.d.ts +39 -0
- package/dist/components/custom/selectable-chip/index.d.ts +2 -0
- package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +15 -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 +28 -2
- 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 +32 -17
- 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/_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/button/index.d.ts +1 -1
- package/dist/components/ui/card/Card.vue.d.ts +46 -1
- package/dist/components/ui/card/ScrollCard.vue.d.ts +1 -1
- package/dist/components/ui/card/index.d.ts +1 -1
- package/dist/components/ui/carousel/CarouselContent.vue.d.ts +2 -4
- 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/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/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 +12 -0
- package/dist/components/ui/slider/Slider.vue.d.ts +9 -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/dom/index.d.ts +1 -0
- package/dist/composables/dom/useDragVelocity.d.ts +46 -0
- package/dist/composables/glass/useVizChoreography.d.ts +123 -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 +105 -2
- package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
- package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +40 -2
- package/dist/composables/glass/webgpu/index.d.ts +2 -1
- package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +65 -7
- package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +50 -2
- package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
- package/dist/composables/motion/core/index.d.ts +7 -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/scrollReader.d.ts +25 -0
- package/dist/composables/motion/springPresets.d.ts +19 -1
- 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/useCharStagger.d.ts +44 -0
- package/dist/composables/motion/useDockCtaReceive.d.ts +29 -22
- 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/useScrollChrome.d.ts +58 -0
- package/dist/composables/motion/useScrollPin.d.ts +49 -0
- package/dist/composables/motion/useScrollScene.d.ts +67 -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 +552 -309
- 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 +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.d.ts +1 -0
- package/dist/deck.js +105 -0
- package/dist/dialog.js +4 -3
- package/dist/dock.js +1320 -631
- package/dist/dockContext-gFVS2gMg.js +18 -0
- package/dist/dom.js +7 -6
- package/dist/dot-flow-field.js +1268 -387
- package/dist/dot-matrix.d.ts +1 -0
- package/dist/dot-matrix.js +774 -0
- package/dist/dotMatrixField-CRO0ZFk4.js +48 -0
- package/dist/drawer.js +106 -96
- package/dist/{dropdown-menu-CofSZuk8.js → dropdown-menu-CCfcCQ68.js} +83 -79
- package/dist/dropdown-menu.js +1 -1
- package/dist/easing.js +188 -176
- package/dist/expandable-container.js +43 -21
- package/dist/fading-scroll.js +1 -1
- package/dist/flow.glsl-DqEGRpl4.js +4 -0
- package/dist/forms.js +64 -62
- package/dist/fourier-field.js +1069 -178
- 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 +164 -119
- package/dist/goo-blob.js +175 -1230
- package/dist/goo-dot-matrix.d.ts +1 -0
- package/dist/goo-dot-matrix.js +811 -0
- 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 +5 -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 +70 -60
- package/dist/metric-badge.js +1 -1
- package/dist/metric-cell.js +1 -1
- package/dist/metric-stack.js +12 -3
- package/dist/motion-core.js +59 -34
- package/dist/motion-curves.js +30 -14
- package/dist/motion.js +231 -96
- 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 +761 -0
- package/dist/paperGrid-CXCSMbZ1.js +191 -0
- package/dist/popover.js +1 -1
- package/dist/{presets-BW2b-fr1.js → presets-QvYgnFIZ.js} +14 -13
- package/dist/{procedural-color.glsl-CIFsJhwI.js → procedural-color.wgsl-C1Y5PkM6.js} +2 -2
- package/dist/progress.js +1 -1
- package/dist/pulse.js +2 -2
- package/dist/reactive.js +2 -2
- package/dist/{useCanvas2D-B8w_E3Rr.js → resolveCanvasColor-DsSJk06I.js} +16 -6
- package/dist/scrollReader-rc3Ns_NM.js +42 -0
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +162 -306
- package/dist/select.js +3 -3
- package/dist/selectable-chip.d.ts +1 -0
- package/dist/selectable-chip.js +48 -0
- package/dist/separator.js +1 -1
- package/dist/{sheet-tZMg0E0w.js → sheet-DUCIoOe0.js} +4 -4
- package/dist/sheet.js +1 -1
- package/dist/sidebar.js +216 -114
- package/dist/slider-CcICPe3u.js +149 -0
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +3 -3
- package/dist/spectrum-walk-cBNSx_zm.js +33 -0
- package/dist/springPresets-DfoQ6XRY.js +64 -0
- package/dist/stacked-icons.js +54 -39
- package/dist/styles/animations.css +13 -3
- package/dist/styles/cards.css +271 -2
- package/dist/styles/completion-seal.css +131 -0
- package/dist/styles/components.css +1 -4
- package/dist/styles/configurator.css +221 -1
- package/dist/styles/critical-partition.mjs +66 -11
- package/dist/styles/deferred.css +4 -0
- package/dist/styles/dock/adaptive-legibility.css +119 -0
- package/dist/styles/dock/cta-seat.css +87 -0
- package/dist/styles/dock/density.css +167 -6
- package/dist/styles/dock/fission-bridge.css +552 -0
- package/dist/styles/dock/layers.css +90 -78
- package/dist/styles/dock/morph-bridge.css +67 -18
- package/dist/styles/dock/morph.css +57 -118
- package/dist/styles/dock/overflow.css +12 -0
- package/dist/styles/dock/search.css +68 -0
- package/dist/styles/dock/shape.css +250 -0
- package/dist/styles/dock/shell.css +24 -8
- package/dist/styles/dock/stack-rail.css +352 -0
- package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/dist/styles/dock-controls/icon-button.css +46 -0
- package/dist/styles/dock-controls/triggers.css +23 -1
- package/dist/styles/dock-controls.css +18 -0
- package/dist/styles/dock.css +27 -2
- package/dist/styles/drawer.css +166 -0
- package/dist/styles/glass/accent-tone.css +66 -0
- package/dist/styles/glass/control-surfaces.css +167 -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/ladder.css +67 -17
- 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 +31 -9
- package/dist/styles/glass/surfaces.css +81 -150
- package/dist/styles/glass.css +21 -0
- package/dist/styles/icon-chip.css +45 -0
- package/dist/styles/index.css +26 -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/scroll-chrome.css +123 -0
- package/dist/styles/scroll-driven.css +38 -0
- package/dist/styles/segmented-tabs.css +110 -40
- package/dist/styles/select.css +151 -0
- package/dist/styles/theme/bridges.css +22 -0
- package/dist/styles/theme/radius.css +18 -1
- package/dist/styles/tokens/color-radius.css +14 -4
- package/dist/styles/tokens/dark-arm.css +94 -12
- package/dist/styles/tokens/glass-deep.css +33 -4
- package/dist/styles/tokens/glass-fx.css +122 -1
- package/dist/styles/tokens/glass.css +226 -34
- package/dist/styles/tokens/light-dark.css +3 -3
- package/dist/styles/tokens/offsets.css +27 -0
- package/dist/styles/tokens/property-regs.css +277 -0
- package/dist/styles/tokens/scale-paper.css +86 -30
- package/dist/styles/tokens/scheme-motion.css +106 -133
- 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/sizing-config.css +110 -0
- package/dist/styles/tokens/sizing.css +55 -104
- package/dist/styles/tokens.css +14 -2
- 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 +84 -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 +199 -182
- 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 +2 -2
- package/dist/uniformBridgeWGPU-BCse1SHU.js +1268 -0
- package/dist/{useAnimatedNumber-BfUq2bUM.js → useAnimatedNumber-BntskVdQ.js} +1 -1
- package/dist/{useConfiguratorState-DNlOh6c8.js → useConfiguratorState-22BcULzF.js} +41 -38
- package/dist/useControlSize-DAZ062x7.js +9 -0
- package/dist/useDockCtaReceive-DX7RDb6_.js +88 -0
- package/dist/{useDragMorph-DgxnsVJz.js → useDragMorph-DGLSewwB.js} +4 -4
- package/dist/useDragVelocity-CjcfX3dA.js +57 -0
- package/dist/useFuzzySearch-0fTYOhS4.js +177 -0
- package/dist/useGooMorph-Cs13NgYL.js +104 -0
- package/dist/useGpuSubstrate-Ceet70xq.js +347 -0
- package/dist/useHaptic-CPz5BT9I.js +134 -0
- package/dist/{useLiquidFlex-mZPMiNXh.js → useLiquidFlex-Cc6PjVJD.js} +8 -3
- package/dist/useLiquidPress-CtOQ8Z0_.js +43 -0
- package/dist/useMorphField-ogBM7ubT.js +141 -0
- package/dist/usePointerVelocityField-BrkqZFhj.js +91 -0
- package/dist/useScrollChrome-JuImi1DM.js +258 -0
- package/dist/{useSpringMount-q1amq1SJ.js → useSpringMount-DFxtzmkR.js} +1 -1
- package/dist/useSpringPress-VM9RgVq3.js +36 -0
- package/dist/{useSurfaceAxis-g0NloYEF.js → useSurfaceAxis-Ci7Dnaw2.js} +1 -1
- package/dist/{useTouchGate-CBZTD4SD.js → useTouchGate-B1Lf9XqN.js} +1 -1
- 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 +107 -74
- package/dist/writeVelocityWeight-Bh83xZfs.js +19 -0
- package/package.json +140 -9
- package/src/styles/animations.css +13 -3
- package/src/styles/cards.css +271 -2
- package/src/styles/completion-seal.css +131 -0
- package/src/styles/configurator.css +221 -1
- package/src/styles/critical-partition.mjs +66 -11
- package/src/styles/dock/adaptive-legibility.css +119 -0
- package/src/styles/dock/cta-seat.css +87 -0
- package/src/styles/dock/density.css +167 -6
- package/src/styles/dock/fission-bridge.css +552 -0
- package/src/styles/dock/layers.css +90 -78
- package/src/styles/dock/morph-bridge.css +67 -18
- package/src/styles/dock/morph.css +57 -118
- package/src/styles/dock/overflow.css +12 -0
- package/src/styles/dock/search.css +68 -0
- package/src/styles/dock/shape.css +250 -0
- package/src/styles/dock/shell.css +24 -8
- package/src/styles/dock/stack-rail.css +352 -0
- package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/src/styles/dock-controls/icon-button.css +46 -0
- package/src/styles/dock-controls/triggers.css +23 -1
- package/src/styles/dock-controls.css +18 -0
- package/src/styles/dock.css +27 -2
- package/src/styles/drawer.css +164 -0
- package/src/styles/glass/accent-tone.css +66 -0
- package/src/styles/glass/control-surfaces.css +167 -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/ladder.css +67 -17
- 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 +31 -9
- package/src/styles/glass/surfaces.css +81 -150
- package/src/styles/glass.css +21 -0
- package/src/styles/icon-chip.css +45 -0
- package/src/styles/index.css +26 -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/scroll-chrome.css +123 -0
- package/src/styles/scroll-driven.css +38 -0
- package/src/styles/segmented-tabs.css +110 -36
- package/src/styles/select.css +151 -0
- package/src/styles/theme/bridges.css +22 -0
- package/src/styles/theme/radius.css +18 -1
- package/src/styles/tokens/color-radius.css +14 -4
- package/src/styles/tokens/dark-arm.css +94 -12
- package/src/styles/tokens/glass-deep.css +33 -4
- package/src/styles/tokens/glass-fx.css +122 -1
- package/src/styles/tokens/glass.css +226 -34
- package/src/styles/tokens/light-dark.css +3 -3
- package/src/styles/tokens/offsets.css +27 -0
- package/src/styles/tokens/property-regs.css +277 -0
- package/src/styles/tokens/scale-paper.css +86 -30
- package/src/styles/tokens/scheme-motion.css +106 -133
- 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/sizing-config.css +110 -0
- package/src/styles/tokens/sizing.css +55 -104
- package/src/styles/tokens.css +14 -2
- 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 +84 -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/DialogContent-DcKK8k9i.js +0 -103
- 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/PaperBackdrop-Vf3tlpvd.js +0 -31
- package/dist/SelectScrollDownButton-CrA8F0iV.js +0 -252
- package/dist/Separator-pKF0oA4M.js +0 -37
- package/dist/Switch-CwYNf8bo.js +0 -47
- package/dist/TooltipProvider-rzvnXz60.js +0 -104
- package/dist/badge-D9XWW4GT.js +0 -53
- package/dist/button-DYCUa-tH.js +0 -126
- package/dist/color-DweYl7pE.js +0 -86
- package/dist/components/custom/concentric/composables/ringField.d.ts +0 -44
- 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/dockContext-BNfyPLe9.js +0 -17
- package/dist/procedural-color.wgsl-CToRHugY.js +0 -224
- package/dist/resolveCanvasColor-CUyHr5Uu.js +0 -11
- package/dist/slider-DVb4HXU-.js +0 -142
- package/dist/springPresets-CFQGQfdl.js +0 -40
- package/dist/styles/dock/rail-extend.css +0 -397
- package/dist/useLiquidPress-kfb4KX79.js +0 -39
- 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/{CollapsibleContent-68dEXIAl.js → CollapsibleContent-D7UNsXQr.js} +0 -0
- /package/dist/{InstrumentChassis-Bx0F_q5g.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-DwwjicPY.js → SelectGroup-Dcczq44n.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-C1je1s0u.js → _plugin-vue_export-helper-gLzyemvl.js} +0 -0
- /package/dist/{compile-CQEFRTmx.js → compile-INR_tPk_.js} +0 -0
- /package/dist/{constants-BPOqYJAm.js → constants-BWj7DkMn.js} +0 -0
- /package/dist/{createContext-CpBNTRMI.js → createContext-Cd23P9j0.js} +0 -0
- /package/dist/{math-BINYmg5z.js → math-5RcIgCB4.js} +0 -0
- /package/dist/{menuItemVariants-D8VNHq22.js → menuItemVariants-DAXquKja.js} +0 -0
- /package/dist/{prng-Za0Rmgag.js → prng-B5tIXTtj.js} +0 -0
- /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-B4HO9LXG.js} +0 -0
- /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-DO8Vl4gs.js} +0 -0
- /package/dist/{useInterval-CvK1mL92.js → useInterval-BVUI-sez.js} +0 -0
- /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BEut54Tk.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-D7bYU2RK.js → useScrollProgress-A0M6qRl7.js} +0 -0
- /package/dist/{useSortable-DHjtZSEd.js → useSortable-DQV_UNDw.js} +0 -0
- /package/dist/{useTextHighlight-CWEi25hf.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-Czsb7zQC.js → vReveal-CT1KtwZA.js} +0 -0
- /package/dist/{vSpecular-CQFmLNzA.js → vSpecular-EX7loENl.js} +0 -0
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/* ════════════════════════════════════════════════════════════════════════
|
|
2
|
+
.glass-capsule — the ONE shared glassy register (BD.W-TAB-IOS-CAPSULE).
|
|
3
|
+
|
|
4
|
+
The warm-transmissive lifted lozenge + the recessed warm channel it rides in
|
|
5
|
+
+ the glass hover/press register, factored ONCE so EVERY consumer (segmented
|
|
6
|
+
pill · dock-tab selected · Button glass · chips · cards) COMPOSES it instead
|
|
7
|
+
of re-forking the lifted-plate composite. ≥3 consumers by construction — the
|
|
8
|
+
overfitting bar cleared by extraction. The tabs facility is the reference
|
|
9
|
+
implementation; "make buttons glassy like the tabs" is a one-recipe substitution.
|
|
10
|
+
|
|
11
|
+
Clean break — the prior inline `.segmented-indicator` composite (fill + rim +
|
|
12
|
+
lift) moves here VERBATIM and the pill COMPOSES the class. No alias, no legacy.
|
|
13
|
+
|
|
14
|
+
@layer components, @import-ed in index.css AFTER the glass ladder (so the
|
|
15
|
+
`--glass-bg-*`/`--glass-rim-*`/`--glass-shadow-*` tokens resolve) and BEFORE
|
|
16
|
+
the consuming tabs/dock/button recipes.
|
|
17
|
+
|
|
18
|
+
THREE states:
|
|
19
|
+
· REST = .glass-capsule — the warm-glass lifted plate.
|
|
20
|
+
· TRACK = .glass-capsule-track — the recessed warm channel.
|
|
21
|
+
· HOVER = .glass-capsule-hover — specular catch-light lift + press-snap.
|
|
22
|
+
|
|
23
|
+
Every channel is compositor-only + Safari-native by construction (the §7 floor):
|
|
24
|
+
no `backdrop-filter: url()`, no SVG goo, no WebGL. The recess is a STATIC inset
|
|
25
|
+
shadow built off a PLAIN per-mode token pair (NEVER a `light-dark()` fragment —
|
|
26
|
+
an inset-shadow leg inside light-dark() computes the WHOLE box-shadow to `none`,
|
|
27
|
+
the binding MEMORY lesson). The hover lift is a `scale` + `--glass-specular`
|
|
28
|
+
step (the SHARED specular-lift primitive `.glass-drag-lift` also composes).
|
|
29
|
+
════════════════════════════════════════════════════════════════════════ */
|
|
30
|
+
|
|
31
|
+
@layer components {
|
|
32
|
+
/* ── .glass-capsule — the raised lit warm-glass lozenge ──
|
|
33
|
+
The fill reads the SHARED element-level oklab-tinted floating pair (the W55
|
|
34
|
+
adaptive seam, `surfaces.css` `:where(.btn-glass, .segmented-indicator,
|
|
35
|
+
.glass-capsule)`) — over a bright field it darkens-to-legible, over a calm
|
|
36
|
+
field it stays warm-cream/near-white. The FORWARD-ness comes from the rim +
|
|
37
|
+
lift, NOT from cranking the same-hue alpha. */
|
|
38
|
+
.glass-capsule {
|
|
39
|
+
/* The WARM-FLOOR re-invent (BD.W-TAB-IOS-CAPSULE C6). The bare
|
|
40
|
+
`--glass-bg-floating-tinted` desaturates to near-gray over a vibrant
|
|
41
|
+
aurora (live-measured oklab(0.793 0.005 0.012), chroma 0.0128 < 0.02).
|
|
42
|
+
Compose a SMALL floor toward an explicitly WARM oklch source so the
|
|
43
|
+
CAPSULE's own resolved fill carries chroma — independent of the
|
|
44
|
+
`--glass-tint-strength: 0%` adaptive default (which is zero-delta at rest
|
|
45
|
+
and only lifts under the bright bucket). This exercises the REAL
|
|
46
|
+
`color-mix(in oklab)` seam over the live light-dark() fill (NOT a
|
|
47
|
+
hardcoded hsl look-alike — the amendment's fake-gate ban). The source is
|
|
48
|
+
a warm oklch (build-trap-(d) safe form — warm color, never bare
|
|
49
|
+
`transparent`); at `--glass-capsule-warm-floor: 16%` the painted capsule
|
|
50
|
+
clears meanChroma ≥ 0.02 BOTH modes with negligible L lift (stays near-
|
|
51
|
+
white). `--glass-capsule-warm` is a warm cream amber both modes. */
|
|
52
|
+
/* The fill is INDIRECTED through `--glass-capsule-fill` so a consumer can
|
|
53
|
+
re-point the rung (quiet/loud/selected — buttons' quiet triplet, the dock
|
|
54
|
+
selected pill) WITHOUT forking the register; the default keeps the warm
|
|
55
|
+
floor compose. */
|
|
56
|
+
background: var(
|
|
57
|
+
--glass-capsule-fill,
|
|
58
|
+
color-mix(
|
|
59
|
+
in oklab,
|
|
60
|
+
var(--glass-bg-floating-tinted),
|
|
61
|
+
var(--glass-capsule-warm) var(--glass-capsule-warm-floor)
|
|
62
|
+
)
|
|
63
|
+
);
|
|
64
|
+
backdrop-filter: var(--glass-blur-floating);
|
|
65
|
+
-webkit-backdrop-filter: var(--glass-blur-floating);
|
|
66
|
+
/* The lifted-plate composite: the directional rim (bright top catch-light +
|
|
67
|
+
warm bottom under-shadow — the iOS-27 top-light/bottom-shadow thickness)
|
|
68
|
+
PLUS a layered glass under-shadow lifting the plate ~2-3px off the quiet
|
|
69
|
+
track. */
|
|
70
|
+
box-shadow:
|
|
71
|
+
var(--glass-rim-top),
|
|
72
|
+
var(--glass-rim-bottom),
|
|
73
|
+
var(--glass-shadow-floating);
|
|
74
|
+
border-radius: var(--radius-pill);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* ── .glass-capsule-track — the recessed warm channel (the iOS-27 sunken well) ──
|
|
78
|
+
The track SINKS: rim + a STATIC inset recess leg. The recess ink is a PLAIN
|
|
79
|
+
per-mode token pair (`tokens/glass-fx.css` light arm, `tokens/dark-arm.css`
|
|
80
|
+
dark arm) — NEVER a `light-dark()` fragment (the inset-shadow trap). The
|
|
81
|
+
recess is static (a sunken channel does not pulse — never a @keyframes
|
|
82
|
+
target; `proof:no-layout-animation` holds). */
|
|
83
|
+
.glass-capsule-track {
|
|
84
|
+
background: var(--glass-bg-quiet);
|
|
85
|
+
backdrop-filter: var(--glass-blur-quiet);
|
|
86
|
+
-webkit-backdrop-filter: var(--glass-blur-quiet);
|
|
87
|
+
box-shadow:
|
|
88
|
+
var(--glass-rim-top),
|
|
89
|
+
var(--glass-rim-bottom),
|
|
90
|
+
inset 0 1px 2px var(--tab-track-recess-ink);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/* ── .glass-capsule-hover — the SHARED specular-lift primitive ──
|
|
94
|
+
The two-channel glass hover (specular catch-light lift + a hair of scale) +
|
|
95
|
+
the press-snap, on the FAST bezier clock (hover is a bezier ease, not a
|
|
96
|
+
spring), volume-preserving, compositor-only. This is the SAME specular-lift
|
|
97
|
+
idiom `.glass-drag-lift` carries — factored here ONCE; `.glass-drag-lift`
|
|
98
|
+
re-composes `--glass-specular`-step + `will-change` rather than forking a
|
|
99
|
+
parallel block. The non-selected pill + the buttons greenfield compose this
|
|
100
|
+
wholesale: glass at rest + specular-lift on hover + press-snap on active. */
|
|
101
|
+
.glass-capsule-hover {
|
|
102
|
+
/* The SPATIAL leg (scale) rides the weighty cartoon-punch curve (the
|
|
103
|
+
liquid-weight-universal mandate — a hover lift carries inertia/overshoot,
|
|
104
|
+
never an abrupt bezier jerk; the SAME spatial currency `.glass-chip`/
|
|
105
|
+
`.glass-atom` ride, PRM-zeroed via the `--ease-cartoon-punch` fallback). The
|
|
106
|
+
EFFECTS leg (the `--specular-intensity` gleam channel) stays on the fast
|
|
107
|
+
bezier (motion-canon P1 — an effects cross-fade is not a spatial motion). */
|
|
108
|
+
transition:
|
|
109
|
+
scale var(--duration-fast) var(--ease-cartoon-punch),
|
|
110
|
+
--specular-intensity var(--duration-fast) var(--ease-standard);
|
|
111
|
+
}
|
|
112
|
+
/* The SHARED specular-lift step — declared ONCE here, COMPOSED by both the hover
|
|
113
|
+
register AND the drag-lift (BD.W-TAB-IOS-CAPSULE C7: one declaration of the
|
|
114
|
+
`--glass-specular` catch-light step, never a parallel fork). `.glass-drag-lift`
|
|
115
|
+
(segmented-tabs.css) re-points its grabbed-state catch-light onto THIS step
|
|
116
|
+
rather than re-declaring `--glass-specular`; it adds only its distinct grabbing
|
|
117
|
+
bits (the grab cursor + the `will-change` compositor hint). The W-GLASS-CAL
|
|
118
|
+
sub-perceptual catch — a hair brighter at the specular edge, disco-FREE. */
|
|
119
|
+
.glass-capsule-hover:hover,
|
|
120
|
+
.glass-drag-lift {
|
|
121
|
+
/* Drive the REAL gleam-opacity channel (`--specular-intensity`, read by the
|
|
122
|
+
moving-specular `::before` at material.css opacity) — not the dead
|
|
123
|
+
`--glass-specular` name. Composes with the material hover system; fires for
|
|
124
|
+
both the :hover register AND the grabbed `.glass-drag-lift` class. */
|
|
125
|
+
--specular-intensity: 0.14;
|
|
126
|
+
}
|
|
127
|
+
.glass-capsule-hover:hover {
|
|
128
|
+
/* the 1.5% press-ready lift (the lift is hover-only; the drag-lift carries no
|
|
129
|
+
scale of its own — the translate/squish are the morph primitive's writes) */
|
|
130
|
+
scale: 1.015;
|
|
131
|
+
}
|
|
132
|
+
.glass-capsule-hover:active {
|
|
133
|
+
/* the --scale-press snap */
|
|
134
|
+
scale: var(--scale-press-sm, 0.97);
|
|
135
|
+
}
|
|
136
|
+
@media (prefers-reduced-motion: reduce) {
|
|
137
|
+
/* the lift is motion; the specular catch (a static legibility cue) stays. */
|
|
138
|
+
.glass-capsule-hover:hover,
|
|
139
|
+
.glass-capsule-hover:active {
|
|
140
|
+
scale: 1;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/* ════════════════════════════════════════════════════════════════════════
|
|
2
|
+
.glass-chip — BD.W-CHIP-CONGRUENT-GLASS: the ONE warm-glass toggle register
|
|
3
|
+
the chip family (ToggleChip · SelectableChip + the toggle-group children)
|
|
4
|
+
composes. A stadium-pill warm-glass LENS that PUNCHES when you pick it: the
|
|
5
|
+
tonal band floods through the translucent lens on `--ease-cartoon-punch` with
|
|
6
|
+
anticipation → overshoot → settle, a one-shot accent-bloom trailing the
|
|
7
|
+
spatial leg.
|
|
8
|
+
|
|
9
|
+
CONSUME-ONLY — declares ZERO own glass tokens (the no-fork fence, Fence C3c).
|
|
10
|
+
It COMPOSES:
|
|
11
|
+
· `.glass-capsule` — the warm-transmissive lozenge BODY (warm floor +
|
|
12
|
+
rim + lift + blur), on `--radius-pill`. The chip
|
|
13
|
+
is the ≥4th `.glass-capsule` consumer (after the
|
|
14
|
+
tab indicator + the button sites). NEVER inlines
|
|
15
|
+
`backdrop-filter` / `--glass-bg-*` / a rim.
|
|
16
|
+
· `.glass-capsule-hover` — the SHARED specular-lift + press-snap step.
|
|
17
|
+
· `.accent-tone` — the contrast-floored tonal channels (idle fill /
|
|
18
|
+
active band / active edge / contrast-safe ink).
|
|
19
|
+
· `--glass-fill-tint` / `--glass-fill-strength` (BE.W-TINTED-CHIP, glass.css)
|
|
20
|
+
— the per-instance plate-fill data hue the body
|
|
21
|
+
tints toward. The chip is its ≥3rd consumer; it
|
|
22
|
+
APPLIES the axis, never re-mints a tint.
|
|
23
|
+
· `--motion-weight` × `--ease-cartoon-punch` (BD.W-MOTION-WEIGHT /
|
|
24
|
+
-CARTOON-PUNCH) — the cartoon press/flood punch +
|
|
25
|
+
the PRM dial (`--motion-weight: 0`).
|
|
26
|
+
|
|
27
|
+
DISTINCT-not-fork of `.glass-atom` (the small-atom register: Badge/+N/slider):
|
|
28
|
+
both COMPOSE `.glass-capsule`. `.glass-atom` is the quiet always-on identity
|
|
29
|
+
chip; `.glass-chip` is the TOGGLE face whose state flip is the de-frauded
|
|
30
|
+
colour-flood punch. They never write each other's channels.
|
|
31
|
+
|
|
32
|
+
@layer components, @import-ed by index.css AFTER glass.css (so `.glass-capsule`
|
|
33
|
+
+ `.accent-tone` + the `--glass-*` axes resolve) and BEFORE/AROUND the chip
|
|
34
|
+
recipes. Every channel is compositor-only + Safari-native (no
|
|
35
|
+
`backdrop-filter: url()`, no goo — Fence 8). The warm 0-alpha sources are
|
|
36
|
+
explicit `oklch(L C H / 0)` (NEVER bare `transparent` — the WebKit
|
|
37
|
+
black-premultiply hole, build-trap-(d)). Per-mode `.dark` arms (no
|
|
38
|
+
`light-dark()` fragment).
|
|
39
|
+
════════════════════════════════════════════════════════════════════════ */
|
|
40
|
+
|
|
41
|
+
/* The COMMIT-flood scalar — the ON-flip envelope. `inherits: TRUE` is the
|
|
42
|
+
load-bearing de-fraud (challenge R1): an `inherits:false` reg resolves to its
|
|
43
|
+
`initial-value` on the `::after` PSEUDO (a separate box from the element that
|
|
44
|
+
sets it), so the flood reads `0` forever. `inherits:true` lets the element's
|
|
45
|
+
`[data-state="on"]{--chip-flood-t:1}` reach the pseudo. Typed so the opacity
|
|
46
|
+
interpolates a NUMBER, not the textual representation. On a pre-Baseline engine
|
|
47
|
+
that drops the typed reg the scalar collapses to the initial 0 — the chip still
|
|
48
|
+
selects (the COLOUR event below is plain `data-state`, never tied to the
|
|
49
|
+
scalar; challenge R5). */
|
|
50
|
+
@property --chip-flood-t {
|
|
51
|
+
syntax: "<number>";
|
|
52
|
+
inherits: true;
|
|
53
|
+
initial-value: 0;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@layer components {
|
|
57
|
+
/* ── .glass-chip — the warm-glass toggle lens ──
|
|
58
|
+
The chip wears `.glass-chip .glass-capsule .glass-capsule-hover .accent-tone`
|
|
59
|
+
(the component CVA composes all four). This rule owns only the chip-specific
|
|
60
|
+
layer: the warm idle floor (the #2 dormant-tint cure), the per-instance fill
|
|
61
|
+
tint over the capsule's warm body, the ONE `scale` write (hover/press/punch
|
|
62
|
+
folded), and the `::after` flood. The capsule owns the body/rim/blur. */
|
|
63
|
+
.glass-chip {
|
|
64
|
+
position: relative;
|
|
65
|
+
/* The flood `::after` sits ABOVE the translucent fill (challenge R2): a
|
|
66
|
+
new stacking context so `plus-lighter` blends over the lens body, never
|
|
67
|
+
occluded under an opaque layer. The capsule body is α<1, so the bloom
|
|
68
|
+
reads through. */
|
|
69
|
+
isolation: isolate;
|
|
70
|
+
|
|
71
|
+
/* ── The WARM IDLE FLOOR (root #2 cure) ──
|
|
72
|
+
The chip carries chroma at rest over warm-cream even with no vibrant
|
|
73
|
+
field behind. The floor RAISES the `.accent-tone` idle strength the chip
|
|
74
|
+
reads — a NON-self-referential floor (build-trap-(b): a property reading
|
|
75
|
+
ITSELF in its own `max()` is guaranteed-invalid and drops). A SEPARATE
|
|
76
|
+
input var is the source: the `.accent-tone` recipe's default idle
|
|
77
|
+
strength is 8%; the chip floors the resolved strength to
|
|
78
|
+
`--chip-tint-floor` so the idle AND the default-tone active band both
|
|
79
|
+
clear the 0.02 warm floor (the live finding: BOTH are gray over
|
|
80
|
+
`--primary`). PLAIN per-mode pair (12% light / 15% dark), NEVER
|
|
81
|
+
`light-dark()` (the inset-shadow trap). */
|
|
82
|
+
--chip-tint-floor: 12%;
|
|
83
|
+
--accent-fill-strength: max(8%, var(--chip-tint-floor));
|
|
84
|
+
/* Lift the DEFAULT-tone active band too (the §1b finding: the default
|
|
85
|
+
band reads C 0.013 — a darken, not a chroma lift). The band floors to a
|
|
86
|
+
bolder warm-clearing stop so a selected default chip is tonal, not gray. */
|
|
87
|
+
--accent-band-strength: max(18%, calc(var(--chip-tint-floor) + 10%));
|
|
88
|
+
|
|
89
|
+
/* ── The per-instance fill tint (BE.W-TINTED-CHIP CONSUME) ──
|
|
90
|
+
The translucent capsule body tints toward the consumer data hue ON TOP
|
|
91
|
+
of the W55 legibility composite. At the `@property` defaults
|
|
92
|
+
(`--glass-fill-tint: transparent` / strength 0%) this is the byte-
|
|
93
|
+
identical no-op (`color-mix(in oklab, X, transparent 0%)` ≡ X — the warm
|
|
94
|
+
floor above keeps the idle body warm even at a transparent tint). The
|
|
95
|
+
mix is `in oklab` (the perceptual glass-tint family). The 0-alpha stop is
|
|
96
|
+
warm `oklch(… / 0)`, never bare `transparent` (the WebKit black-
|
|
97
|
+
premultiply hole). */
|
|
98
|
+
--glass-chip-tinted: color-mix(
|
|
99
|
+
in oklab,
|
|
100
|
+
var(--glass-fill-tint, oklch(0.9 0.05 75 / 0))
|
|
101
|
+
var(--glass-fill-strength, 0%),
|
|
102
|
+
oklch(0.9 0.05 75 / 0)
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
/* ── The ONE scale write (hover/press/punch, single source of truth) ──
|
|
106
|
+
Folds the on-flood overshoot into ONE `scale` so it never collides with
|
|
107
|
+
the capsule-hover scale step (the CVA's `hover:scale-*` is retired in the
|
|
108
|
+
chip variants — this is the sole scale writer on the chip box). Volume-
|
|
109
|
+
preserving, center-pinned. The coefficient (0.12) is raised vs the
|
|
110
|
+
segmented-indicator's 0.06 so the dip/overshoot clear the gate's OWN
|
|
111
|
+
thresholds (≤0.996 dip / ≥1.04 overshoot at weight 1.0): the punch curve
|
|
112
|
+
peaks at 1.22 → 1 + 0.12·1.22·1.0 ≈ 1.026 over rest is too soft, so the
|
|
113
|
+
overshoot READ is carried by the curve's pre-dip (−0.04) + the COLOUR
|
|
114
|
+
event; the spatial leg adds the perceptible breathe without taffy. */
|
|
115
|
+
scale: calc(1 + 0.12 * var(--chip-flood-t, 0) * var(--motion-weight, 0.618));
|
|
116
|
+
transform-origin: center;
|
|
117
|
+
|
|
118
|
+
/* The SPATIAL legs (scale) settle on the punch clock; the EFFECTS legs
|
|
119
|
+
(background/border/color) stay on the bezier (motion-canon P1). */
|
|
120
|
+
transition:
|
|
121
|
+
scale var(--duration-normal) var(--ease-cartoon-punch),
|
|
122
|
+
background-color var(--duration-fast) var(--ease-standard),
|
|
123
|
+
border-color var(--duration-fast) var(--ease-standard),
|
|
124
|
+
color var(--duration-fast) var(--ease-standard);
|
|
125
|
+
|
|
126
|
+
/* ── The per-instance fill tint application ──
|
|
127
|
+
The capsule body (the `.glass-capsule` `background:` shorthand) is the
|
|
128
|
+
warm transmissive plate; the chip LAYERS the data-hue tint on top via
|
|
129
|
+
`background-image` (a later layer over the capsule's shorthand — the
|
|
130
|
+
proven `.paper-grid`/`.glass-atom` coexistence seam: paints OVER the
|
|
131
|
+
translucent fill, UNDER content). When `--glass-fill-tint` is unset the
|
|
132
|
+
tinted layer is the warm 0-alpha no-op (invisible) and the capsule's warm
|
|
133
|
+
body reads. */
|
|
134
|
+
background-image: linear-gradient(
|
|
135
|
+
var(--glass-chip-tinted),
|
|
136
|
+
var(--glass-chip-tinted)
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
.dark .glass-chip {
|
|
140
|
+
--chip-tint-floor: 15%;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/* ── The on-flip COLOUR event (the perceptible primary read) ──
|
|
144
|
+
OFF→ON floods the active band through the lens + lights the active rim + the
|
|
145
|
+
contrast-safe ink. Driven by PLAIN `data-state` (the reka Toggle contract),
|
|
146
|
+
NEVER tied to `--chip-flood-t` — so selection is legible even on a pre-
|
|
147
|
+
Baseline engine that drops the typed scalar (challenge R5). The `.accent-tone`
|
|
148
|
+
channels supply the colour; this rule only SWAPS which channel paints. */
|
|
149
|
+
.glass-chip[data-state="on"] {
|
|
150
|
+
background-color: var(--accent-band);
|
|
151
|
+
border-color: var(--accent-edge);
|
|
152
|
+
color: var(--accent-ink);
|
|
153
|
+
/* arm the spatial+bloom envelope */
|
|
154
|
+
--chip-flood-t: 1;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/* ── The COMMIT flood `::after` (the trailing accent bloom) ──
|
|
158
|
+
An additive radial bloom INSIDE the lens (`inset:0`, `border-radius:inherit`,
|
|
159
|
+
`plus-lighter`) ABOVE the translucent fill (inside `isolation:isolate`,
|
|
160
|
+
challenge R2). Its opacity reads `--chip-flood-t` (inherited from the element,
|
|
161
|
+
challenge R1) so it fires on ON and clears on OFF. The transition DELAY trails
|
|
162
|
+
the spatial leg (EFFECTS-trails-SPATIAL, the v3 f006→f007 ordering). The bloom
|
|
163
|
+
hue is the active band; default tone neutral → a provable near-no-op until a
|
|
164
|
+
consumer sets a vibrant `:tone`. */
|
|
165
|
+
.glass-chip::after {
|
|
166
|
+
content: "";
|
|
167
|
+
position: absolute;
|
|
168
|
+
inset: 0;
|
|
169
|
+
border-radius: inherit;
|
|
170
|
+
pointer-events: none;
|
|
171
|
+
background: radial-gradient(
|
|
172
|
+
120% 140% at 50% 50%,
|
|
173
|
+
color-mix(in oklab, var(--accent-band) 60%, oklch(0.9 0.05 75 / 0)),
|
|
174
|
+
oklch(0.9 0.05 75 / 0) 72%
|
|
175
|
+
);
|
|
176
|
+
mix-blend-mode: plus-lighter;
|
|
177
|
+
opacity: var(--chip-flood-t, 0);
|
|
178
|
+
transition: opacity var(--duration-normal) var(--ease-out) 60ms;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/* ── The CELL exception — a 72px icon+label TILE is a CARD, not a pill ──
|
|
182
|
+
The DELIBERATE 2-silhouette family (named honestly): the inline rungs are
|
|
183
|
+
stadium pills (the capsule's `--radius-pill`); the cell re-points to the
|
|
184
|
+
squircle card radius. It composes the SAME `.glass-chip` material + motion;
|
|
185
|
+
only the silhouette differs. The `::after` flood inherits the card radius. */
|
|
186
|
+
.glass-chip--cell {
|
|
187
|
+
border-radius: var(--radius-card);
|
|
188
|
+
}
|
|
189
|
+
.glass-chip--cell.glass-capsule {
|
|
190
|
+
border-radius: var(--radius-card);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/* ── PRM carve ──
|
|
194
|
+
Under reduced-motion `--motion-weight: 0` zeroes the spatial overshoot (the
|
|
195
|
+
`scale` calc collapses to 1) in ONE assignment; the bloom's MOTION rides the
|
|
196
|
+
same dial via the punch clock. The COLOUR cross-fade + the static lens lift
|
|
197
|
+
(the `.glass-capsule` rim/shadow) + the `--accent-band` swap REMAIN —
|
|
198
|
+
selection is always legible (challenge R7: zeroes the MOTION, not the bloom).
|
|
199
|
+
Vestibular-safe. */
|
|
200
|
+
@media (prefers-reduced-motion: reduce) {
|
|
201
|
+
.glass-chip {
|
|
202
|
+
--motion-weight: 0;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/* ── prefers-contrast: more — the active rim α floors UP ──
|
|
207
|
+
The active `--accent-edge` rim is the legibility CONTRACT; under more-contrast
|
|
208
|
+
floor the border ink so the selected lit edge clears ≥3:1 over the lens body.
|
|
209
|
+
The `--accent-ink` is already value.js contrast-safe (useAccentTone). */
|
|
210
|
+
@media (prefers-contrast: more) {
|
|
211
|
+
.glass-chip[data-state="on"] {
|
|
212
|
+
border-color: color-mix(in srgb, var(--foreground) 28%, transparent);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
@@ -211,14 +211,35 @@
|
|
|
211
211
|
`--glass-tint-strength: 0%`. */
|
|
212
212
|
:where(.glass-floating, .glass-overlay) {
|
|
213
213
|
--glass-tint-source: var(--glass-tint-ink);
|
|
214
|
-
/* BC.W-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
214
|
+
/* BC.W-ADAPTIVE-RECONCILE (the fourier-analysis-M Tier-1 #1 fold, CONTINUOUS half)
|
|
215
|
+
— the OVERLAY band SPECIFICALLY JOINS the continuous observer driver, the SAME
|
|
216
|
+
clamp the content tiers get. The dropdown/Dialog/Popover/Select-content plate
|
|
217
|
+
FLOORS to warm-cream when the measured backdrop is calm/dark, and darkens
|
|
218
|
+
CONTINUOUSLY only under a measured bright backdrop — NOT the binary `@container`
|
|
219
|
+
bucket jump, NOT a blanket unconditional darken (the retired 4.0.x 20% slab).
|
|
220
|
+
The `BC.W-AUDIT` pre-fix already closed the UNCONDITIONAL-darken half (the band
|
|
221
|
+
floored by default); THIS is the continuous earned-darken half. The MEASURED AA
|
|
222
|
+
bar (the overlay plate clears 4.5:1 WHILE α < 0.86) is GLASS-LEGIBILITY-
|
|
223
|
+
MEASURED's roster addition — the driver here, the bar there, no double-ownership. */
|
|
224
|
+
--glass-tint-strength: clamp(
|
|
225
|
+
var(--glass-tint-strength-floor),
|
|
226
|
+
calc(
|
|
227
|
+
var(--glass-tint-strength-floor) +
|
|
228
|
+
(var(--glass-tint-strength-aa) - var(--glass-tint-strength-floor)) *
|
|
229
|
+
max(0, (var(--glass-backdrop-luma, 0) - var(--glass-backdrop-luma-knee, 0.6)) / (1 - var(--glass-backdrop-luma-knee, 0.6)))
|
|
230
|
+
),
|
|
231
|
+
var(--glass-tint-strength-aa)
|
|
232
|
+
);
|
|
233
|
+
/* BC.W-DIALOG-GLASS — the overlay band's muted caption keeps the on-glass MUTED
|
|
234
|
+
register on a CALM modal (the SAME `--on-glass-muted` the content tiers read on
|
|
235
|
+
their calm path — legible-AND-subordinate against the composited glass fill),
|
|
236
|
+
NOT an UNCONDITIONAL lift to full `--foreground` that blackened the caption on a
|
|
237
|
+
cream modal over a light page. The bright-bucket lift (@container --glass-
|
|
238
|
+
backdrop:light below) moves `--muted-foreground` to the contrast ink in LOCKSTEP
|
|
239
|
+
with `--foreground` only where the plate ACTUALLY darkens to AA — so a busy-
|
|
240
|
+
backdrop modal goes full ink, a calm modal keeps the muted register. */
|
|
241
|
+
--muted-foreground: var(--on-glass-muted);
|
|
242
|
+
--muted-foreground-strong: var(--on-glass-muted-strong);
|
|
222
243
|
}
|
|
223
244
|
|
|
224
245
|
/* BA.W-DARK-MATERIAL scope 7 — the plain CONTENT tiers self-engage the SUB-PERCEPTUAL
|
|
@@ -252,7 +273,28 @@
|
|
|
252
273
|
mode (the on-glass rungs carry their own light/dark per-mode arms in tokens). */
|
|
253
274
|
:where(.glass-card, .glass-resting, .glass-quiet, .glass-wash) {
|
|
254
275
|
--glass-tint-source: var(--glass-tint-ink);
|
|
255
|
-
|
|
276
|
+
/* BC.W-ADAPTIVE-RECONCILE — the CONTINUOUS observer-driven darken (the dead-knob
|
|
277
|
+
closed; req #7). The strength is no longer a flat floor: it is a clamp that
|
|
278
|
+
READS the observer's measured `--glass-backdrop-luma` and lerps from the calm
|
|
279
|
+
warm-cream floor toward the ≤24% AA ceiling as the backdrop brightens past the
|
|
280
|
+
`--glass-backdrop-luma-knee` (the iOS-27 dynamic-range shift, apple-ios27.md
|
|
281
|
+
§1.5). Over a calm/dark backdrop (luma ≤ knee, the `max(0, …)` ramp → 0) the
|
|
282
|
+
clamp resolves EXACTLY `--glass-tint-strength-floor` (the GLASS-IDENTITY calm
|
|
283
|
+
identity, byte-equal); rising luma ramps the lift CONTINUOUSLY; the clamp floors
|
|
284
|
+
at the 4% identity and ceilings at the bounded AA — never an unconditional 20%
|
|
285
|
+
slab (the AZ grey-slab is the OPPOSITE of this earned, measured track). This
|
|
286
|
+
RETIRES the discrete `@container --glass-backdrop: light` bucket as the strength
|
|
287
|
+
driver — the continuous calc subsumes it (the bucket survives only as a no-
|
|
288
|
+
`@property` degrade fallback). */
|
|
289
|
+
--glass-tint-strength: clamp(
|
|
290
|
+
var(--glass-tint-strength-floor),
|
|
291
|
+
calc(
|
|
292
|
+
var(--glass-tint-strength-floor) +
|
|
293
|
+
(var(--glass-tint-strength-aa) - var(--glass-tint-strength-floor)) *
|
|
294
|
+
max(0, (var(--glass-backdrop-luma, 0) - var(--glass-backdrop-luma-knee, 0.6)) / (1 - var(--glass-backdrop-luma-knee, 0.6)))
|
|
295
|
+
),
|
|
296
|
+
var(--glass-tint-strength-aa)
|
|
297
|
+
);
|
|
256
298
|
--muted-foreground: var(--on-glass-muted);
|
|
257
299
|
--muted-foreground-strong: var(--on-glass-muted-strong);
|
|
258
300
|
}
|
|
@@ -296,14 +338,22 @@
|
|
|
296
338
|
--muted-foreground: contrast-color(var(--card));
|
|
297
339
|
}
|
|
298
340
|
}
|
|
299
|
-
/*
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
341
|
+
/* BC.W-DIALOG-GLASS / BC.W-ADAPTIVE-RECONCILE (overlay-band arm) — the overlay
|
|
342
|
+
band's `contrast-color()` ink flip is now GATED in the bright bucket above
|
|
343
|
+
(the @container --glass-backdrop:light block already lists `.glass-floating,
|
|
344
|
+
.glass-overlay` alongside the content tiers), NOT here as an UNCONDITIONAL
|
|
345
|
+
flip. The retired unconditional `:where(.glass-floating, .glass-overlay)`
|
|
346
|
+
rule blackened the ink even on a CALM modal over a light page — a translucent
|
|
347
|
+
cream plate forced to pure-black `contrast-color(--card)`, harsh on the cream,
|
|
348
|
+
and `--muted-foreground` flipped to the same so captions lost their muted
|
|
349
|
+
register. Now: over a calm/dark backdrop the modal keeps the WARM-INK
|
|
350
|
+
`--foreground` (legible, not pure-black) + the muted caption register; only a
|
|
351
|
+
modal over a genuinely-bright/busy backdrop flips to the dark contrast ink
|
|
352
|
+
(where the plate ACTUALLY darkens to bright-bucket AA), the `--foreground`/
|
|
353
|
+
`--muted-foreground` lift moving in LOCKSTEP there (the scope-6 lockstep). The
|
|
354
|
+
overlay band STILL self-darkens UNCONDITIONALLY (the tint-strength clamp above,
|
|
355
|
+
it floats over unknown) — only the INK flips in the bright bucket. ONE
|
|
356
|
+
reconciled flip, not two forks (ladder.css stays the single source). */
|
|
307
357
|
/* BA.W-DARK-MATERIAL scope 7 — the content-tier ink flip is GATED on the bright
|
|
308
358
|
signal (it moved INTO the @container bucket above), NOT unconditional. Over a calm
|
|
309
359
|
LIGHT page the content tiers only carry the 4% silhouette floor (still a warm cream
|