@mkbabb/glass-ui 4.0.1 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{CardAction-CW7a0m8M.js → CardAction-8whJrLWt.js} +23 -8
- package/dist/{CommandShortcut-DvZNQ_HF.js → CommandShortcut-D3yxgHNn.js} +23 -12
- package/dist/{ConfiguratorRow-BR4l-ixA.js → ConfiguratorRow-CaP7U3ZA.js} +11 -11
- package/dist/ContextMenuContent-B3ZsheLV.js +90 -0
- package/dist/{ContextMenuSubContent-xol4sD2q.js → ContextMenuSubContent-DDRID3qC.js} +15 -15
- package/dist/{DataTable-CuKwF7wr.js → DataTable-Bc9kUtu_.js} +2 -2
- package/dist/{DialogContent-DcKK8k9i.js → DialogContent-6JtTB5x2.js} +8 -5
- package/dist/DialogFooter-9phqcRIS.js +80 -0
- package/dist/DialogScrollContent-TTuovQst.js +93 -0
- package/dist/HoverCardContent-Bel1gdLZ.js +88 -0
- package/dist/{IconChip-BTD-nay5.js → IconChip-DhbdGdFQ.js} +1 -1
- package/dist/{IconTooltip-Bl8gFZ8d.js → IconTooltip-B0zimd2H.js} +1 -1
- package/dist/Input-Cg9DF62r.js +57 -0
- package/dist/{Notification-VUwexFUf.js → Notification-CphK7AAm.js} +3 -3
- package/dist/NumberFieldContent-D8cXeyO4.js +140 -0
- package/dist/PagerDots-Cjx96la-.js +98 -0
- package/dist/{SelectScrollDownButton-CrA8F0iV.js → SelectScrollDownButton-DAKCBEdW.js} +62 -57
- package/dist/{SelectSeparator-DXswVdRz.js → SelectSeparator-C2UGOkXF.js} +1 -1
- package/dist/Separator-DQcwC2TR.js +44 -0
- package/dist/Switch-B8RscmRu.js +49 -0
- package/dist/{Toaster-Bw4xR8xV.js → Toaster-D9qIHjBI.js} +1 -1
- package/dist/{ToggleGroupItem-pEM9vIhs.js → ToggleGroupItem-BLtr3TJq.js} +2 -2
- package/dist/TooltipProvider-BJ_Y5EGX.js +109 -0
- package/dist/animated-digit.js +1 -1
- package/dist/api/index.d.ts +15 -32
- package/dist/api/types-extra.d.ts +31 -0
- package/dist/api.js +1 -1
- package/dist/aurora.js +579 -251
- package/dist/border-progress.js +49 -57
- package/dist/{button-DYCUa-tH.js → button-5dY1Dvhd.js} +13 -14
- package/dist/button.js +1 -1
- package/dist/canvas.js +2 -3
- package/dist/card.js +1 -1
- package/dist/carousel.js +20 -20
- package/dist/color-Cs0-oxYL.js +116 -0
- package/dist/color.js +2 -2
- package/dist/command.js +1 -1
- package/dist/completion-seal.d.ts +1 -0
- package/dist/completion-seal.js +89 -0
- package/dist/components/custom/aurora/Aurora.vue.d.ts +10 -5
- package/dist/components/custom/aurora/composables/color.d.ts +13 -0
- package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
- package/dist/components/custom/aurora/composables/runtime.d.ts +12 -0
- package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +11 -2
- package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +8 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +18 -0
- package/dist/components/custom/aurora/constants/renderMode.d.ts +16 -8
- package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -1
- package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
- package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +14 -18
- package/dist/components/custom/border-progress/index.d.ts +1 -1
- package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +21 -0
- package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
- package/dist/components/custom/completion-seal/constants.d.ts +46 -0
- package/dist/components/custom/completion-seal/index.d.ts +4 -0
- package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +7 -0
- package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +9 -0
- package/dist/components/custom/concentric/composables/ringField.d.ts +57 -16
- package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +2 -1
- package/dist/components/custom/concentric/composables/useConcentric.d.ts +4 -4
- package/dist/components/custom/concentric/constants.d.ts +30 -6
- package/dist/components/custom/concentric/index.d.ts +2 -2
- package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +2 -2
- package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -1
- package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
- package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
- package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
- package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
- package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
- package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
- package/dist/components/custom/constellation/constants.d.ts +33 -0
- package/dist/components/custom/constellation/constellationField.d.ts +31 -1
- package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
- package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
- package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
- package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
- package/dist/components/custom/constellation/index.d.ts +5 -5
- package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
- package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
- package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
- package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
- package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
- package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
- package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
- package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
- package/dist/components/custom/deck/constants.d.ts +14 -0
- package/dist/components/custom/deck/index.d.ts +8 -0
- package/dist/components/custom/dock/DockIconButton.vue.d.ts +12 -0
- package/dist/components/custom/dock/DockStack.vue.d.ts +65 -0
- package/dist/components/custom/dock/GlassDock.vue.d.ts +4 -2
- package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +80 -0
- package/dist/components/custom/dock/composables/index.d.ts +2 -0
- package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
- package/dist/components/custom/dock/composables/useDockShellProps.d.ts +11 -0
- package/dist/components/custom/dock/constants.d.ts +18 -14
- package/dist/components/custom/dock/index.d.ts +5 -2
- package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +15 -11
- package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +48 -6
- package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +23 -8
- package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +6 -5
- package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +18 -5
- package/dist/components/custom/dot-flow-field/constants.d.ts +42 -21
- package/dist/components/custom/dot-flow-field/index.d.ts +2 -2
- package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -1
- package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +4 -20
- package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -1
- package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
- package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
- package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +52 -0
- package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
- package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +27 -0
- package/dist/components/custom/dot-matrix/constants.d.ts +58 -0
- package/dist/components/custom/dot-matrix/index.d.ts +5 -0
- package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
- package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -0
- package/dist/components/custom/easing/EasingPicker.vue.d.ts +2 -2
- package/dist/components/custom/easing/composables/useEasingPicker.d.ts +5 -0
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
- package/dist/components/custom/fourier-field/FourierField.vue.d.ts +40 -47
- package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +15 -0
- package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +20 -0
- package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +41 -0
- package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +40 -37
- package/dist/components/custom/fourier-field/constants.d.ts +61 -4
- package/dist/components/custom/fourier-field/index.d.ts +23 -18
- package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
- package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
- package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +9 -1
- package/dist/components/custom/goo-blob/constants.d.ts +1 -1
- package/dist/components/custom/goo-blob/index.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -1
- package/dist/components/custom/goo-blob/types.d.ts +36 -0
- package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
- package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
- package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +50 -0
- package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +35 -0
- package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
- package/dist/components/custom/goo-dot-matrix/constants.d.ts +76 -0
- package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +11 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +3 -0
- package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +21 -2
- package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
- package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
- package/dist/components/custom/pager-dots/index.d.ts +2 -0
- package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
- package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
- package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +90 -0
- package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +16 -0
- package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +19 -0
- package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
- package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
- package/dist/components/custom/paper-grid/constants.d.ts +57 -0
- package/dist/components/custom/paper-grid/index.d.ts +5 -0
- package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
- package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
- package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
- package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
- package/dist/components/custom/search/index.d.ts +2 -0
- package/dist/components/custom/search/searchVariants.d.ts +19 -0
- package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
- package/dist/components/custom/selectable-chip/index.d.ts +2 -0
- package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +23 -0
- package/dist/components/custom/split-chars/SplitChars.vue.d.ts +39 -0
- package/dist/components/custom/split-chars/index.d.ts +1 -0
- package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +8 -6
- package/dist/components/custom/tabs/constants.d.ts +20 -2
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +29 -16
- package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
- package/dist/components/ui/_shared/index.d.ts +2 -0
- package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
- package/dist/components/ui/button/index.d.ts +1 -1
- package/dist/components/ui/card/Card.vue.d.ts +45 -0
- package/dist/components/ui/card/index.d.ts +1 -1
- package/dist/components/ui/carousel/CarouselNext.vue.d.ts +1 -1
- package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +1 -1
- package/dist/components/ui/command/CommandDialog.vue.d.ts +9 -3
- package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
- package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -1
- package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
- package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
- package/dist/components/ui/input/Input.vue.d.ts +3 -0
- package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
- package/dist/components/ui/select/SelectContent.vue.d.ts +3 -0
- package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
- package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
- package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
- package/dist/composables/color/index.d.ts +2 -0
- package/dist/composables/color/useAccentTone.d.ts +34 -0
- package/dist/composables/glass/useVizChoreography.d.ts +123 -0
- package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +10 -0
- package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
- package/dist/composables/glass/webgpu/index.d.ts +1 -1
- package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +28 -7
- package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +1 -0
- package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
- package/dist/composables/motion/core/index.d.ts +3 -0
- package/dist/composables/motion/scrollReader.d.ts +25 -0
- package/dist/composables/motion/springPresets.d.ts +20 -1
- package/dist/composables/motion/useCharStagger.d.ts +44 -0
- package/dist/composables/motion/useDockCtaReceive.d.ts +31 -6
- package/dist/composables/motion/useScrollChrome.d.ts +58 -0
- package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
- package/dist/composables/motion/useSpringPress.d.ts +5 -5
- package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
- package/dist/composables/sidebar/index.d.ts +4 -1
- package/dist/composables/sidebar/types.d.ts +68 -3
- package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
- package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
- package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
- package/dist/composables/virtual/index.d.ts +4 -0
- package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
- package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
- package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
- package/dist/concentric.js +495 -221
- package/dist/configurator.js +2 -2
- package/dist/confirm-dialog.js +62 -47
- package/dist/constellation.js +635 -235
- package/dist/context-menu.js +2 -2
- package/dist/controls.js +1 -1
- package/dist/createCanvasLifecycle-Gh45Ce-p.js +93 -0
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/deck.d.ts +1 -0
- package/dist/deck.js +105 -0
- package/dist/dialog.js +4 -3
- package/dist/dock.js +602 -458
- package/dist/dot-flow-field.js +580 -290
- package/dist/dot-matrix.d.ts +1 -0
- package/dist/dot-matrix.js +630 -0
- package/dist/dotMatrixField-D_x9_1qq.js +48 -0
- package/dist/{dropdown-menu-CofSZuk8.js → dropdown-menu-aJmV5SqE.js} +83 -79
- package/dist/dropdown-menu.js +1 -1
- package/dist/easing.js +188 -176
- package/dist/expandable-container.js +42 -20
- package/dist/fading-scroll.js +1 -1
- package/dist/flow.glsl-B2P7e0MT.js +4 -0
- package/dist/forms.js +62 -60
- package/dist/fourier-field.js +825 -178
- package/dist/fourier-math.js +1 -1
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +145 -104
- package/dist/goo-blob.js +171 -1228
- package/dist/goo-dot-matrix.d.ts +1 -0
- package/dist/goo-dot-matrix.js +591 -0
- package/dist/handmark.js +1 -1
- package/dist/hover-card.js +1 -1
- package/dist/hover-popover.js +1 -1
- package/dist/icon-chip.js +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/labeled-field.js +70 -60
- package/dist/metric-cell.js +1 -1
- package/dist/metric-stack.js +11 -2
- package/dist/motion-core.js +54 -32
- package/dist/motion-curves.js +11 -1
- package/dist/motion.js +46 -111
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/pager-dots.js +2 -91
- package/dist/paper-backdrop.js +1 -1
- package/dist/paper-grid.d.ts +1 -0
- package/dist/paper-grid.js +788 -0
- package/dist/{presets-BW2b-fr1.js → presets-CvOUqtdY.js} +3 -3
- package/dist/{procedural-color.glsl-CIFsJhwI.js → procedural-color.wgsl-m7Zgv35j.js} +2 -2
- package/dist/progress.js +1 -1
- package/dist/pulse.js +1 -1
- package/dist/reactive.js +1 -1
- package/dist/{useCanvas2D-B8w_E3Rr.js → resolveCanvasColor-yPyIpJt9.js} +12 -2
- package/dist/scrollReader-DI1NWxUw.js +42 -0
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +160 -304
- package/dist/select.js +3 -3
- package/dist/selectable-chip.d.ts +1 -0
- package/dist/selectable-chip.js +65 -0
- package/dist/separator.js +1 -1
- package/dist/{sheet-tZMg0E0w.js → sheet-B2flBfLH.js} +2 -2
- package/dist/sheet.js +1 -1
- package/dist/sidebar.js +216 -114
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +1 -1
- package/dist/spectrum-walk-BVzA7Biz.js +33 -0
- package/dist/{springPresets-CFQGQfdl.js → springPresets-Ce7OYCm9.js} +12 -6
- package/dist/styles/animations.css +13 -3
- package/dist/styles/cards.css +69 -0
- package/dist/styles/completion-seal.css +131 -0
- package/dist/styles/components.css +2 -3
- package/dist/styles/configurator.css +55 -0
- package/dist/styles/critical-partition.mjs +33 -11
- package/dist/styles/deferred.css +2 -0
- package/dist/styles/dock/cta-seat.css +87 -0
- package/dist/styles/dock/density.css +153 -0
- package/dist/styles/dock/layers.css +55 -7
- package/dist/styles/dock/morph-bridge.css +54 -18
- package/dist/styles/dock/morph.css +41 -33
- package/dist/styles/dock/overflow.css +12 -0
- package/dist/styles/dock/search.css +68 -0
- package/dist/styles/dock/shape.css +124 -0
- package/dist/styles/dock/shell.css +23 -5
- package/dist/styles/dock/stack-rail.css +264 -0
- package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/dist/styles/dock-controls/icon-button.css +14 -0
- package/dist/styles/dock.css +11 -1
- package/dist/styles/glass/accent-tone.css +66 -0
- package/dist/styles/glass/control-surfaces.css +167 -0
- package/dist/styles/glass/ladder.css +67 -17
- package/dist/styles/glass/rim.css +19 -9
- package/dist/styles/glass/surfaces.css +69 -148
- package/dist/styles/glass.css +10 -0
- package/dist/styles/index.css +15 -0
- package/dist/styles/scroll-chrome.css +123 -0
- package/dist/styles/scroll-driven.css +38 -0
- package/dist/styles/segmented-tabs.css +50 -14
- package/dist/styles/theme/bridges.css +22 -0
- package/dist/styles/theme/radius.css +18 -1
- package/dist/styles/tokens/color-radius.css +13 -3
- package/dist/styles/tokens/dark-arm.css +39 -6
- package/dist/styles/tokens/glass-deep.css +28 -3
- package/dist/styles/tokens/glass-fx.css +44 -1
- package/dist/styles/tokens/glass.css +91 -31
- package/dist/styles/tokens/light-dark.css +1 -1
- package/dist/styles/tokens/offsets.css +27 -0
- package/dist/styles/tokens/property-regs.css +133 -0
- package/dist/styles/tokens/scale-paper.css +73 -29
- package/dist/styles/tokens/scheme-motion.css +44 -6
- package/dist/styles/tokens/sizing-config.css +110 -0
- package/dist/styles/tokens/sizing.css +55 -104
- package/dist/styles/tokens.css +5 -0
- package/dist/styles/typography/semantic.css +18 -5
- package/dist/styles/utilities/a11y-overrides.css +20 -5
- package/dist/styles/utilities/base-misc.css +52 -0
- package/dist/styles/utilities/btn.css +14 -3
- package/dist/styles/utilities/components.css +31 -6
- package/dist/styles/utilities/metal.css +26 -0
- package/dist/switch.js +1 -1
- package/dist/tabs.js +8 -8
- package/dist/timeline.js +1 -1
- package/dist/toast.js +1 -1
- package/dist/toggle-chip.js +10 -10
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/uniformBridgeWGPU-CtAKl45L.js +1204 -0
- package/dist/{useAnimatedNumber-BfUq2bUM.js → useAnimatedNumber-CLrxicG9.js} +1 -1
- package/dist/{useConfiguratorState-DNlOh6c8.js → useConfiguratorState-4xblKfwd.js} +25 -24
- package/dist/useControlSize-SH1UmJCi.js +9 -0
- package/dist/useDockCtaReceive-DfFkmgL1.js +82 -0
- package/dist/{useDragMorph-DgxnsVJz.js → useDragMorph-BUgAC-zK.js} +4 -4
- package/dist/useFuzzySearch-DIhcYtcw.js +177 -0
- package/dist/useGpuSubstrate-4pTcp6mX.js +294 -0
- package/dist/{useLiquidPress-kfb4KX79.js → useLiquidPress-BooG97RY.js} +2 -2
- package/dist/usePointerVelocityField-QLsy3_kv.js +91 -0
- package/dist/useScrollChrome-D66AVP7C.js +258 -0
- package/dist/{useSpringMount-q1amq1SJ.js → useSpringMount-BWDnKIwh.js} +1 -1
- package/dist/useSpringPress-B1-Czp-V.js +36 -0
- package/dist/useViewTransition-CUI1nAgn.js +95 -0
- package/dist/{vendor-CKmzio-i.js → vendor-B2qOlYY3.js} +24 -11
- package/dist/virtual.d.ts +1 -0
- package/dist/virtual.js +225 -0
- package/dist/watercolor-dot.js +116 -73
- package/package.json +127 -7
- package/src/styles/animations.css +13 -3
- package/src/styles/cards.css +69 -0
- package/src/styles/completion-seal.css +131 -0
- package/src/styles/configurator.css +55 -0
- package/src/styles/critical-partition.mjs +33 -11
- package/src/styles/dock/cta-seat.css +87 -0
- package/src/styles/dock/density.css +153 -0
- package/src/styles/dock/layers.css +55 -7
- package/src/styles/dock/morph-bridge.css +54 -18
- package/src/styles/dock/morph.css +41 -33
- package/src/styles/dock/overflow.css +12 -0
- package/src/styles/dock/search.css +68 -0
- package/src/styles/dock/shape.css +124 -0
- package/src/styles/dock/shell.css +23 -5
- package/src/styles/dock/stack-rail.css +264 -0
- package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/src/styles/dock-controls/icon-button.css +14 -0
- package/src/styles/dock.css +11 -1
- package/src/styles/glass/accent-tone.css +66 -0
- package/src/styles/glass/control-surfaces.css +167 -0
- package/src/styles/glass/ladder.css +67 -17
- package/src/styles/glass/rim.css +19 -9
- package/src/styles/glass/surfaces.css +69 -148
- package/src/styles/glass.css +10 -0
- package/src/styles/index.css +15 -0
- package/src/styles/scroll-chrome.css +123 -0
- package/src/styles/scroll-driven.css +38 -0
- package/src/styles/segmented-tabs.css +50 -14
- package/src/styles/theme/bridges.css +22 -0
- package/src/styles/theme/radius.css +18 -1
- package/src/styles/tokens/color-radius.css +13 -3
- package/src/styles/tokens/dark-arm.css +39 -6
- package/src/styles/tokens/glass-deep.css +28 -3
- package/src/styles/tokens/glass-fx.css +44 -1
- package/src/styles/tokens/glass.css +91 -31
- package/src/styles/tokens/light-dark.css +1 -1
- package/src/styles/tokens/offsets.css +27 -0
- package/src/styles/tokens/property-regs.css +133 -0
- package/src/styles/tokens/scale-paper.css +73 -29
- package/src/styles/tokens/scheme-motion.css +44 -6
- package/src/styles/tokens/sizing-config.css +110 -0
- package/src/styles/tokens/sizing.css +55 -104
- package/src/styles/tokens.css +5 -0
- package/src/styles/typography/semantic.css +18 -5
- package/src/styles/utilities/a11y-overrides.css +20 -5
- package/src/styles/utilities/base-misc.css +52 -0
- package/src/styles/utilities/btn.css +14 -3
- package/src/styles/utilities/components.css +31 -6
- package/src/styles/utilities/metal.css +26 -0
- package/dist/ContextMenuContent-uWnVxDab.js +0 -85
- package/dist/DialogFooter-BZNX5aVr.js +0 -165
- package/dist/HoverCardContent-b2uaAMRR.js +0 -83
- package/dist/Input-h9v5LeXf.js +0 -55
- package/dist/NumberFieldContent-Cq7EzX-U.js +0 -138
- package/dist/Separator-pKF0oA4M.js +0 -37
- package/dist/Switch-CwYNf8bo.js +0 -47
- package/dist/TooltipProvider-rzvnXz60.js +0 -104
- package/dist/color-DweYl7pE.js +0 -86
- package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
- package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
- package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
- package/dist/createCanvasLifecycle-CHD5XrDW.js +0 -82
- package/dist/procedural-color.wgsl-CToRHugY.js +0 -224
- package/dist/resolveCanvasColor-CUyHr5Uu.js +0 -11
- package/dist/styles/dock/rail-extend.css +0 -397
- package/dist/usePointerVelocityField-JbRd5CrM.js +0 -137
- package/dist/useRAFLoop-UYa4zoiN.js +0 -109
- package/dist/useSpringPress-BsqPr7FJ.js +0 -34
- package/src/styles/dock/rail-extend.css +0 -397
- /package/dist/{FadingScroll-DI6hQhT9.js → FadingScroll-DLRbH5Xr.js} +0 -0
- /package/dist/{HoverPopover-CbqbNwgU.js → HoverPopover-BcIxvyqZ.js} +0 -0
- /package/dist/{InstrumentChassis-Bx0F_q5g.js → InstrumentChassis-CxsHSyMj.js} +0 -0
- /package/dist/{PaperBackdrop-Vf3tlpvd.js → PaperBackdrop-CqwjnfLv.js} +0 -0
- /package/dist/{Progress-DctG61iZ.js → Progress-CnqB7gLm.js} +0 -0
- /package/dist/{ScrollingText-yOpBzFYq.js → ScrollingText-CTZbA_cG.js} +0 -0
- /package/dist/{SelectGroup-DwwjicPY.js → SelectGroup-BFiod7X2.js} +0 -0
- /package/dist/{compile-CQEFRTmx.js → compile-nZ1xVYTp.js} +0 -0
- /package/dist/{constants-BPOqYJAm.js → constants--C2DkLW8.js} +0 -0
- /package/dist/{math-BINYmg5z.js → math-Eb0w3LqU.js} +0 -0
- /package/dist/{prng-Za0Rmgag.js → prng-B-d9eYX8.js} +0 -0
- /package/dist/{slider-DVb4HXU-.js → slider-2A0rPn79.js} +0 -0
- /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-CmjB9E32.js} +0 -0
- /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-Dbozzjgm.js} +0 -0
- /package/dist/{useInterval-CvK1mL92.js → useInterval-CNdua40W.js} +0 -0
- /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BPRp33Im.js} +0 -0
- /package/dist/{useLiquidFlex-mZPMiNXh.js → useLiquidFlex-UmA6LMZu.js} +0 -0
- /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-c3yxmH6a.js} +0 -0
- /package/dist/{useSortable-DHjtZSEd.js → useSortable-BVqlJRBR.js} +0 -0
- /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-NmBM5V_4.js} +0 -0
- /package/dist/{vReveal-Czsb7zQC.js → vReveal-D9k0jADx.js} +0 -0
- /package/dist/{vSpecular-CQFmLNzA.js → vSpecular-EX7loENl.js} +0 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/* glass/control-surfaces.css
|
|
2
|
+
The form-control REST register carved from glass/surfaces.css — the
|
|
3
|
+
`.input-pill` family (Input/Textarea/NumberField), the shared `.control-surface`
|
|
4
|
+
class (Select default + TagsInput), the validity vocabulary, and the Select
|
|
5
|
+
trigger resting-border lift. A cohesive sub-concern of surfaces.css (the
|
|
6
|
+
no-god-module re-drain), @import-ed by glass.css in cascade order IMMEDIATELY
|
|
7
|
+
AFTER surfaces.css and BEFORE surface-axis.css — same `@layer components`, same
|
|
8
|
+
source order, so the carve is byte-isomorphic.
|
|
9
|
+
See docs/precepts/design-idioms.md §cohesion-aware partials. */
|
|
10
|
+
@layer components {
|
|
11
|
+
/* ── Pill input ───────────────────────────────── */
|
|
12
|
+
.input-pill {
|
|
13
|
+
@apply flex w-full;
|
|
14
|
+
|
|
15
|
+
/* AX.W51 D18 — the input pill rides the ONE `--ui-scale` comfort axis: the
|
|
16
|
+
height reads the `--control-h-md` cohort (`max(calc(2.5rem * --ui-scale),
|
|
17
|
+
--control-floor)`, the h-10 register with the WCAG-44px coarse clamp), the
|
|
18
|
+
font reads `--control-text`, the inline padding scales — so ONE override
|
|
19
|
+
grows the field's height + padding + font in lockstep. Desktop default is
|
|
20
|
+
the identity. */
|
|
21
|
+
/* BC.W-CONTROL-CUSTOM — the height reads the `--control-pill-h` element-
|
|
22
|
+
override seam, DEFAULTING to the cohort `--control-h-md` so a bare
|
|
23
|
+
control is byte-identical to HEAD. The shared `controlSizeClass(size)`
|
|
24
|
+
(_shared/useControlSize.ts) re-points the seam per rung
|
|
25
|
+
(sm→`--control-h-sm`, lg→`--control-h-lg`), so the `size` prop retunes
|
|
26
|
+
the field height WITHOUT a recipe fork — ONE substitution rung, the
|
|
27
|
+
cohort is still the source. */
|
|
28
|
+
height: var(--control-pill-h, var(--control-h-md));
|
|
29
|
+
border-radius: var(--radius-pill);
|
|
30
|
+
/* AW.W13 — the resting field edge reads as an enclosed control at rest
|
|
31
|
+
(~15%α — ~2× the prior 8% glass-wash floor that vanished on cream). The
|
|
32
|
+
`:focus-visible` accent ring + the `:user-invalid`/`[aria-invalid]`
|
|
33
|
+
destructive ring below still win by order + specificity.
|
|
34
|
+
AX.W54 — moved off the srgb `--surface-tint-15` fork onto the glass
|
|
35
|
+
border seam so the pill is ONE glass model with the rest of the ladder.
|
|
36
|
+
BA.W-SURFACE-AXIS scope 7 — re-pointed onto the SHARED `--control-surface-*`
|
|
37
|
+
REST register so Input/Textarea/NumberField/Select/Combobox/TagsInput are
|
|
38
|
+
ONE material at rest (the input rung was the warmer of the two; Select rode
|
|
39
|
+
the `glass-wash` gray — the no-gray control-family seam). The register reads
|
|
40
|
+
the same `--glass-*` ladder, so `--glass-level`/the W55 bright bucket retune
|
|
41
|
+
the whole form family in lockstep (--control-surface-border defaults to the
|
|
42
|
+
`--glass-border-floating` 15%α rung, --control-surface-bg to `--glass-bg-quiet`,
|
|
43
|
+
--control-surface-blur to `--glass-blur-quiet`). */
|
|
44
|
+
border: 1.5px solid var(--control-surface-border);
|
|
45
|
+
background: var(--control-surface-bg);
|
|
46
|
+
/* The control's REAL glass blur — the shared register's quiet-tier radius
|
|
47
|
+
(the same `--control-surface-blur` pairs with `--control-surface-bg`); the
|
|
48
|
+
`--glass-level` knob clarifies it in lockstep with every surface. */
|
|
49
|
+
backdrop-filter: var(--control-surface-blur);
|
|
50
|
+
padding: 0 calc(1rem * var(--ui-scale));
|
|
51
|
+
/* BC.W-CONTROL-CUSTOM — the font reads the `--control-pill-text` seam,
|
|
52
|
+
DEFAULTING to `--control-text` (byte-identical at unset). The `sm` rung
|
|
53
|
+
re-points it to `--control-text-sm` (the quieter register); `default`/`lg`
|
|
54
|
+
keep `--control-text`. This is the C1 close — the input register reads
|
|
55
|
+
`--control-text` via the recipe, NOT a bare `text-sm` literal. */
|
|
56
|
+
font-size: var(--control-pill-text, var(--control-text));
|
|
57
|
+
color: var(--foreground);
|
|
58
|
+
transition:
|
|
59
|
+
background-color var(--duration-fast) var(--ease-standard),
|
|
60
|
+
border-color var(--duration-fast) var(--ease-standard),
|
|
61
|
+
box-shadow var(--duration-fast) var(--ease-standard),
|
|
62
|
+
color var(--duration-fast) var(--ease-standard),
|
|
63
|
+
opacity var(--duration-fast) var(--ease-standard);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.input-pill::placeholder {
|
|
67
|
+
color: var(--surface-tint-35);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* BA.W-SURFACE-AXIS scope 7 — the shared control REST surface class. The
|
|
71
|
+
NON-pill control families (the Select trigger, the TagsInput root) that do
|
|
72
|
+
NOT compose `.input-pill` but want the SAME resting material read this — so
|
|
73
|
+
the whole form band is ONE register at rest (the Select default rode the
|
|
74
|
+
lighter `glass-wash` gray before; this is the no-gray control-family seam).
|
|
75
|
+
It carries the bg/border/blur ONLY (each control owns its own height/radius/
|
|
76
|
+
padding/font), so a non-pill control composes `.control-surface` + its own
|
|
77
|
+
geometry. The hover lift brightens the fill one step toward the resting rung. */
|
|
78
|
+
.control-surface {
|
|
79
|
+
background: var(--control-surface-bg);
|
|
80
|
+
border: 1px solid var(--control-surface-border);
|
|
81
|
+
backdrop-filter: var(--control-surface-blur);
|
|
82
|
+
-webkit-backdrop-filter: var(--control-surface-blur);
|
|
83
|
+
}
|
|
84
|
+
.control-surface:hover:not(:disabled, [data-disabled]) {
|
|
85
|
+
background: var(--control-surface-bg-hover);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* AQ.W4 §W4.6 — keyboard-focus ring only. Was bare `:focus` (showed the
|
|
89
|
+
accent ring on a mouse click); `:focus-visible` matches the
|
|
90
|
+
`.focus-ring` / `.glass-btn` / dock-control discipline. Ordered BEFORE
|
|
91
|
+
the `:user-invalid` rungs so an invalid focused field shows destructive,
|
|
92
|
+
not accent (the `:user-invalid:focus-visible` rule below wins by order +
|
|
93
|
+
specificity). `:focus-visible` Baseline Widely — no fallback. */
|
|
94
|
+
.input-pill:focus-visible {
|
|
95
|
+
outline: none;
|
|
96
|
+
border-color: var(--color-accent-opaque, var(--ring));
|
|
97
|
+
box-shadow: 0 0 0 2px var(--color-accent, color-mix(in srgb, var(--ring) 30%, transparent));
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/* AQ.W4 §W4.1 — validity vocabulary on `.input-pill` (Input + Textarea).
|
|
101
|
+
The forgiving `:where(:user-invalid, .user-invalid-fallback,
|
|
102
|
+
[aria-invalid="true"])` group is ONE rule covering THREE trigger surfaces:
|
|
103
|
+
native constraint-validation (`:user-invalid`), the `useUserInvalidAria`
|
|
104
|
+
fallback class for engines without `:user-invalid` (css §3.2; NOT a
|
|
105
|
+
live+dead alias — the class is the SOLE fallback), AND (AW.W18) the
|
|
106
|
+
imperative `[aria-invalid="true"]` attribute. The `[aria-invalid]` arm
|
|
107
|
+
serves APP-DRIVEN validity — a custom key match, an async server check —
|
|
108
|
+
where there is no native constraint to trip `:user-invalid`, so the app
|
|
109
|
+
sets the ARIA attribute and the library's own ring paints with no
|
|
110
|
+
`:deep()` re-paint at the consumer. The destructive/success tints reuse
|
|
111
|
+
the semantic tokens via `color-mix` per the house pattern (W2). Non-color
|
|
112
|
+
reinforcement is the error TEXT (W4.5 `error` slot) + the `required`
|
|
113
|
+
asterisk — the border/bg shift is the supplementary cue, never the sole
|
|
114
|
+
one. `:user-valid` is intentionally subtle (border only, no bg fill) so
|
|
115
|
+
a long valid form is not a wall of green. */
|
|
116
|
+
.input-pill:where(:user-invalid, .user-invalid-fallback, [aria-invalid="true"]) {
|
|
117
|
+
border-color: var(--destructive);
|
|
118
|
+
background: color-mix(in srgb, var(--destructive) 8%, var(--glass-bg-quiet));
|
|
119
|
+
}
|
|
120
|
+
.input-pill:where(:user-valid, .user-valid-fallback) {
|
|
121
|
+
border-color: var(--success);
|
|
122
|
+
}
|
|
123
|
+
/* Invalid + keyboard-focused → destructive ring (overrides the accent
|
|
124
|
+
`:focus-visible` ring above by order + the extra invalid compound). The
|
|
125
|
+
`[aria-invalid]` arm rides the same widened group so an app-driven
|
|
126
|
+
invalid field shows the destructive ring on focus too. */
|
|
127
|
+
.input-pill:where(:user-invalid, .user-invalid-fallback, [aria-invalid="true"]):focus-visible {
|
|
128
|
+
border-color: var(--destructive);
|
|
129
|
+
/* BB.W-INVALID-RING — the shared destructive ring register (the
|
|
130
|
+
--focus-ring-shadow sibling). The byte-identical recipe is now ONE
|
|
131
|
+
token; the `8%` at-rest bg arm above stays `.input-pill`-local (a
|
|
132
|
+
glass-tint substrate the bare-ring surfaces do not carry). */
|
|
133
|
+
box-shadow: var(--invalid-ring);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/* AQ.W4 §W4.3 — `field-sizing: content` autosize (opt-in via the Textarea
|
|
137
|
+
`autosize` prop → `[data-autosize]`). The textarea grows vertically with
|
|
138
|
+
content between a 3-line floor and a token-driven ceiling, then scrolls.
|
|
139
|
+
`field-sizing` Baseline Newly (Chromium 2024) — on a non-supporting
|
|
140
|
+
engine the declaration is ignored and the element keeps the
|
|
141
|
+
`min/max-block-size` bounds + standard scroll (no JS, no `@supports`,
|
|
142
|
+
no grid-mirror polyfill). The fixed-size path (default, `min-h-20`) is
|
|
143
|
+
the unchanged no-op fallback. */
|
|
144
|
+
.input-pill[data-autosize] {
|
|
145
|
+
field-sizing: content;
|
|
146
|
+
width: 100%;
|
|
147
|
+
min-block-size: 3lh;
|
|
148
|
+
max-block-size: var(--textarea-autosize-max, 12lh);
|
|
149
|
+
resize: vertical;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.input-pill:disabled {
|
|
153
|
+
opacity: 0.5;
|
|
154
|
+
cursor: not-allowed;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/* AW.W13 — the Select trigger mirrors the input pill's resting border lift.
|
|
158
|
+
The reka-ui SelectTrigger renders `role="combobox"` over the `.glass-wash`
|
|
159
|
+
surface; its 8%α `--glass-border-wash` field edge vanished on cream just
|
|
160
|
+
like the input pill, so the same `--surface-tint-15` lift makes the
|
|
161
|
+
trigger read as an enclosed control at rest. Scoped to the combobox role
|
|
162
|
+
so the lift reaches ONLY the Select trigger, not every `.glass-wash`
|
|
163
|
+
surface. */
|
|
164
|
+
.glass-wash[role="combobox"] {
|
|
165
|
+
border-color: var(--surface-tint-15);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
@@ -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
|
package/src/styles/glass/rim.css
CHANGED
|
@@ -67,12 +67,20 @@
|
|
|
67
67
|
.glass-card,
|
|
68
68
|
.glass-specular-track,
|
|
69
69
|
.dock-icon-button {
|
|
70
|
-
/* the
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
70
|
+
/* BC.W-BLACK-BAR D2 — the rim ring is now DIRECTIONAL: the top catch-light
|
|
71
|
+
(`--glass-rim-top`, glass-fx.css) carries the white-α ink the old
|
|
72
|
+
omnidirectional ring carried (0.30 light / 0.40 dark — the dark arm
|
|
73
|
+
re-points it via dark-arm.css), and the bottom under-shadow
|
|
74
|
+
(`--glass-rim-bottom`) grounds the plate. The accent (BB.W-GLASS-ACCENT)
|
|
75
|
+
still mixes ONTO the top catch-light ink so the chromatic rim reads on the
|
|
76
|
+
lit edge; at 0% strength the mix resolves byte-identical to the bare
|
|
77
|
+
`--glass-rim-top`. `--glass-rim-ink` is the resolved top-ink stop (kept as
|
|
78
|
+
the accent-compose seam — the `.dark` arm below re-points it). */
|
|
79
|
+
--glass-rim-ink: hsl(0 0% 100% / 0.30);
|
|
80
|
+
--glass-material-rim:
|
|
81
|
+
inset 0 1px 0
|
|
82
|
+
color-mix(in oklab, var(--glass-rim-ink), var(--glass-accent) var(--glass-accent-strength)),
|
|
83
|
+
var(--glass-rim-bottom);
|
|
76
84
|
/* the per-rung border ink, accent-composed. `--glass-border-rung` is set by
|
|
77
85
|
each rung at its own declaration (it reads the rung's `--glass-border-*`
|
|
78
86
|
token); the accent mixes onto it so the BORDER half of the rim carries the
|
|
@@ -92,9 +100,11 @@
|
|
|
92
100
|
.dark .glass-card,
|
|
93
101
|
.dark .glass-specular-track,
|
|
94
102
|
.dark .dock-icon-button {
|
|
95
|
-
/* the dark
|
|
96
|
-
|
|
97
|
-
|
|
103
|
+
/* BC.W-BLACK-BAR D2 — the dark top catch-light ink is the lifted 0.40 stop
|
|
104
|
+
(mirroring the dark `--glass-rim-top`, dark-arm.css) so the accent composes
|
|
105
|
+
off the dark silhouette device (W-DARK-MATERIAL): dark glass needs a
|
|
106
|
+
brighter rim to read over the deep canvas. */
|
|
107
|
+
--glass-rim-ink: hsl(0 0% 100% / 0.40);
|
|
98
108
|
}
|
|
99
109
|
|
|
100
110
|
}
|
|
@@ -209,6 +209,22 @@
|
|
|
209
209
|
--glass-specular-intensity-hover: var(--glass-specular-btn-hover);
|
|
210
210
|
}
|
|
211
211
|
|
|
212
|
+
/* BC.W-BUTTON-GLASS-IOS (move 2 / BG-IOS-2) — the hero CTA reaches DEEP glass.
|
|
213
|
+
`.btn-glass` reads `--glass-blur-btn` (not `--glass-blur-floating`), so the bare
|
|
214
|
+
`.glass-deep` axis (which re-points `--glass-blur-floating`) does not deepen a
|
|
215
|
+
button. This arm re-points `--glass-blur-btn` onto the deep family — the SAME
|
|
216
|
+
token-substitution model `.glass-deep` uses (glass/deep.css), composing the ONE
|
|
217
|
+
deep axis, NOT a new blur recipe. So a `default`/`primary-audacious` hero CTA
|
|
218
|
+
reads the apple.com-nav-grade thick refractive liquid glass (16px / saturate 1.5
|
|
219
|
+
family, `--glass-blur-deep`), while the plain content tiers + the quieter
|
|
220
|
+
`outline`/`secondary`/`accent` glass buttons stay calm at the floating-tier
|
|
221
|
+
`--glass-blur-btn`. The deep BLUR is budget-FREE (the W-LENSING budget binds the
|
|
222
|
+
`:liquid` SVG lens, not the deep-blur tier). The a11y `--glass-level:0` brackets
|
|
223
|
+
reach it for free (the deep blur composes `--glass-level`, the opaque-escape path). */
|
|
224
|
+
.btn-glass.glass-deep {
|
|
225
|
+
--glass-blur-btn: var(--glass-blur-deep);
|
|
226
|
+
}
|
|
227
|
+
|
|
212
228
|
/* The depth deepens one rung on hover (the lifted-lozenge read) — additive over
|
|
213
229
|
the variant's own hover surface legs. The variants paint the bg/border on
|
|
214
230
|
hover; this adds the deeper drop. */
|
|
@@ -216,6 +232,29 @@
|
|
|
216
232
|
box-shadow: var(--glass-btn-rim), var(--glass-btn-under-shadow-hover);
|
|
217
233
|
}
|
|
218
234
|
|
|
235
|
+
/* BC.W-BUTTON-GLASS-IOS (move 3 / BG-IOS-4) — the press is COUPLED (W-MOTION-CANON
|
|
236
|
+
P3): the ONE `--glass-btn-press-t` 0..1 spring drive (Button.vue writes it off
|
|
237
|
+
`useSpringPress`) feeds BOTH the squish (the `useLiquidFlex` reciprocal X/Y deform,
|
|
238
|
+
Button.vue) AND a SPECULAR brightness leg here — the touch-ILLUMINATION (apple-
|
|
239
|
+
ios27.md §2.5 ".interactive() → scale + bounce + shimmer + touch-illumination").
|
|
240
|
+
During the press the button's specular tracks the SPRING (not the binary `:active`
|
|
241
|
+
toggle material.css sets): `--specular-intensity` LERPs from the hover gleam toward
|
|
242
|
+
the active gleam as `--glass-btn-press-t` travels, so the gleam ILLUMINATES on the
|
|
243
|
+
SAME spring scalar as the squish (the glass reads as DEFORMING-AND-BRIGHTENING with
|
|
244
|
+
the spring's alive overshoot, not a uniform shrink). It reads the EXISTING
|
|
245
|
+
`--glass-specular-intensity-{hover,active}` cohort (property-regs.css) — no new
|
|
246
|
+
token, ONE drive two legs. Specificity ties material's `.glass-wash:active::before`
|
|
247
|
+
(0,2,1) and wins by source-order-after (surfaces.css @import-s after material.css),
|
|
248
|
+
so the button press follows the spring; the hover gleam + the no-JS `:active` floor
|
|
249
|
+
are untouched. */
|
|
250
|
+
.btn-glass:active::before {
|
|
251
|
+
--specular-intensity: calc(
|
|
252
|
+
var(--glass-specular-intensity-hover) +
|
|
253
|
+
(var(--glass-specular-intensity-active) - var(--glass-specular-intensity-hover)) *
|
|
254
|
+
var(--glass-btn-press-t)
|
|
255
|
+
);
|
|
256
|
+
}
|
|
257
|
+
|
|
219
258
|
/* BB.W-BUTTON-GLASS (a) — the ELEMENT-LEVEL oklab-tinted hover/active fill pair
|
|
220
259
|
(the substitution-vs-inheritance trap fixed on the button register). The glass
|
|
221
260
|
button variants painted `hover:bg-(--glass-bg-resting) active:bg-(--glass-bg-
|
|
@@ -232,15 +271,37 @@
|
|
|
232
271
|
to AA in lockstep with the rest bg. The `:root` raw `--glass-bg-*` tokens are
|
|
233
272
|
UNTOUCHED (other surfaces compose them at the element correctly — the raw token +
|
|
234
273
|
the element-level oklab wrapper is the correct ladder shape). */
|
|
274
|
+
/* BC.W-TABS-IOS — the tinted-FLOATING seam lifted off the `.btn-glass`-only scope
|
|
275
|
+
onto a SHARED `:where()` so the iOS-27 segmented-control active pill reads the
|
|
276
|
+
SAME element-level oklab-tint floating fill the glass button reads (the
|
|
277
|
+
substitution-over-redeclaration discipline: ONE tinted-floating source, NOT a
|
|
278
|
+
tab-local fork). The pill's active plate now reaches the W55 darken-over-bright
|
|
279
|
+
seam — over a bright field the pill darkens-to-legible, over a calm field it
|
|
280
|
+
stays warm-cream/near-white (the iOS adaptive register reaching the pill).
|
|
281
|
+
ZERO-delta at the `--glass-tint-strength: 0%`/floor default. */
|
|
282
|
+
:where(.btn-glass, .segmented-indicator) {
|
|
283
|
+
--glass-bg-floating-tinted: color-mix(
|
|
284
|
+
in oklab,
|
|
285
|
+
var(--glass-bg-floating),
|
|
286
|
+
var(--glass-tint-source) var(--glass-tint-strength)
|
|
287
|
+
);
|
|
288
|
+
}
|
|
235
289
|
.btn-glass {
|
|
236
|
-
|
|
290
|
+
/* BC.W-BUTTON-GLASS-IOS (BG-IOS-6) — the `quiet` rung gains the SAME element-
|
|
291
|
+
level oklab-tint wrapper so the de-shadcn `outline`/`secondary` reskin (the
|
|
292
|
+
QUIETER glass register, prominence-by-tint) reaches the W55 darken on its lit
|
|
293
|
+
fill too — ZERO new compositing axis, the SAME seam the resting/floating pair
|
|
294
|
+
composes. The floating rung is minted on the shared `:where()` seam ABOVE
|
|
295
|
+
(the tab pill reads it too); quiet + resting stay button-scoped (the
|
|
296
|
+
hover/active fill register the segmented pill does not engage). */
|
|
297
|
+
--glass-bg-quiet-tinted: color-mix(
|
|
237
298
|
in oklab,
|
|
238
|
-
var(--glass-bg-
|
|
299
|
+
var(--glass-bg-quiet),
|
|
239
300
|
var(--glass-tint-source) var(--glass-tint-strength)
|
|
240
301
|
);
|
|
241
|
-
--glass-bg-
|
|
302
|
+
--glass-bg-resting-tinted: color-mix(
|
|
242
303
|
in oklab,
|
|
243
|
-
var(--glass-bg-
|
|
304
|
+
var(--glass-bg-resting),
|
|
244
305
|
var(--glass-tint-source) var(--glass-tint-strength)
|
|
245
306
|
);
|
|
246
307
|
}
|
|
@@ -278,150 +339,10 @@
|
|
|
278
339
|
--glass-btn-press-t: 0;
|
|
279
340
|
}
|
|
280
341
|
|
|
281
|
-
/*
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
/* AX.W51 D18 — the input pill rides the ONE `--ui-scale` comfort axis: the
|
|
286
|
-
height reads the `--control-h-md` cohort (`max(calc(2.5rem * --ui-scale),
|
|
287
|
-
--control-floor)`, the h-10 register with the WCAG-44px coarse clamp), the
|
|
288
|
-
font reads `--control-text`, the inline padding scales — so ONE override
|
|
289
|
-
grows the field's height + padding + font in lockstep. Desktop default is
|
|
290
|
-
the identity. */
|
|
291
|
-
height: var(--control-h-md);
|
|
292
|
-
border-radius: var(--radius-pill);
|
|
293
|
-
/* AW.W13 — the resting field edge reads as an enclosed control at rest
|
|
294
|
-
(~15%α — ~2× the prior 8% glass-wash floor that vanished on cream). The
|
|
295
|
-
`:focus-visible` accent ring + the `:user-invalid`/`[aria-invalid]`
|
|
296
|
-
destructive ring below still win by order + specificity.
|
|
297
|
-
AX.W54 — moved off the srgb `--surface-tint-15` fork onto the glass
|
|
298
|
-
border seam so the pill is ONE glass model with the rest of the ladder.
|
|
299
|
-
BA.W-SURFACE-AXIS scope 7 — re-pointed onto the SHARED `--control-surface-*`
|
|
300
|
-
REST register so Input/Textarea/NumberField/Select/Combobox/TagsInput are
|
|
301
|
-
ONE material at rest (the input rung was the warmer of the two; Select rode
|
|
302
|
-
the `glass-wash` gray — the no-gray control-family seam). The register reads
|
|
303
|
-
the same `--glass-*` ladder, so `--glass-level`/the W55 bright bucket retune
|
|
304
|
-
the whole form family in lockstep (--control-surface-border defaults to the
|
|
305
|
-
`--glass-border-floating` 15%α rung, --control-surface-bg to `--glass-bg-quiet`,
|
|
306
|
-
--control-surface-blur to `--glass-blur-quiet`). */
|
|
307
|
-
border: 1.5px solid var(--control-surface-border);
|
|
308
|
-
background: var(--control-surface-bg);
|
|
309
|
-
/* The control's REAL glass blur — the shared register's quiet-tier radius
|
|
310
|
-
(the same `--control-surface-blur` pairs with `--control-surface-bg`); the
|
|
311
|
-
`--glass-level` knob clarifies it in lockstep with every surface. */
|
|
312
|
-
backdrop-filter: var(--control-surface-blur);
|
|
313
|
-
padding: 0 calc(1rem * var(--ui-scale));
|
|
314
|
-
font-size: var(--control-text);
|
|
315
|
-
color: var(--foreground);
|
|
316
|
-
transition:
|
|
317
|
-
background-color var(--duration-fast) var(--ease-standard),
|
|
318
|
-
border-color var(--duration-fast) var(--ease-standard),
|
|
319
|
-
box-shadow var(--duration-fast) var(--ease-standard),
|
|
320
|
-
color var(--duration-fast) var(--ease-standard),
|
|
321
|
-
opacity var(--duration-fast) var(--ease-standard);
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
.input-pill::placeholder {
|
|
325
|
-
color: var(--surface-tint-35);
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
/* BA.W-SURFACE-AXIS scope 7 — the shared control REST surface class. The
|
|
329
|
-
NON-pill control families (the Select trigger, the TagsInput root) that do
|
|
330
|
-
NOT compose `.input-pill` but want the SAME resting material read this — so
|
|
331
|
-
the whole form band is ONE register at rest (the Select default rode the
|
|
332
|
-
lighter `glass-wash` gray before; this is the no-gray control-family seam).
|
|
333
|
-
It carries the bg/border/blur ONLY (each control owns its own height/radius/
|
|
334
|
-
padding/font), so a non-pill control composes `.control-surface` + its own
|
|
335
|
-
geometry. The hover lift brightens the fill one step toward the resting rung. */
|
|
336
|
-
.control-surface {
|
|
337
|
-
background: var(--control-surface-bg);
|
|
338
|
-
border: 1px solid var(--control-surface-border);
|
|
339
|
-
backdrop-filter: var(--control-surface-blur);
|
|
340
|
-
-webkit-backdrop-filter: var(--control-surface-blur);
|
|
341
|
-
}
|
|
342
|
-
.control-surface:hover:not(:disabled, [data-disabled]) {
|
|
343
|
-
background: var(--control-surface-bg-hover);
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
/* AQ.W4 §W4.6 — keyboard-focus ring only. Was bare `:focus` (showed the
|
|
347
|
-
accent ring on a mouse click); `:focus-visible` matches the
|
|
348
|
-
`.focus-ring` / `.glass-btn` / dock-control discipline. Ordered BEFORE
|
|
349
|
-
the `:user-invalid` rungs so an invalid focused field shows destructive,
|
|
350
|
-
not accent (the `:user-invalid:focus-visible` rule below wins by order +
|
|
351
|
-
specificity). `:focus-visible` Baseline Widely — no fallback. */
|
|
352
|
-
.input-pill:focus-visible {
|
|
353
|
-
outline: none;
|
|
354
|
-
border-color: var(--color-accent-opaque, var(--ring));
|
|
355
|
-
box-shadow: 0 0 0 2px var(--color-accent, color-mix(in srgb, var(--ring) 30%, transparent));
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
/* AQ.W4 §W4.1 — validity vocabulary on `.input-pill` (Input + Textarea).
|
|
359
|
-
The forgiving `:where(:user-invalid, .user-invalid-fallback,
|
|
360
|
-
[aria-invalid="true"])` group is ONE rule covering THREE trigger surfaces:
|
|
361
|
-
native constraint-validation (`:user-invalid`), the `useUserInvalidAria`
|
|
362
|
-
fallback class for engines without `:user-invalid` (css §3.2; NOT a
|
|
363
|
-
live+dead alias — the class is the SOLE fallback), AND (AW.W18) the
|
|
364
|
-
imperative `[aria-invalid="true"]` attribute. The `[aria-invalid]` arm
|
|
365
|
-
serves APP-DRIVEN validity — a custom key match, an async server check —
|
|
366
|
-
where there is no native constraint to trip `:user-invalid`, so the app
|
|
367
|
-
sets the ARIA attribute and the library's own ring paints with no
|
|
368
|
-
`:deep()` re-paint at the consumer. The destructive/success tints reuse
|
|
369
|
-
the semantic tokens via `color-mix` per the house pattern (W2). Non-color
|
|
370
|
-
reinforcement is the error TEXT (W4.5 `error` slot) + the `required`
|
|
371
|
-
asterisk — the border/bg shift is the supplementary cue, never the sole
|
|
372
|
-
one. `:user-valid` is intentionally subtle (border only, no bg fill) so
|
|
373
|
-
a long valid form is not a wall of green. */
|
|
374
|
-
.input-pill:where(:user-invalid, .user-invalid-fallback, [aria-invalid="true"]) {
|
|
375
|
-
border-color: var(--destructive);
|
|
376
|
-
background: color-mix(in srgb, var(--destructive) 8%, var(--glass-bg-quiet));
|
|
377
|
-
}
|
|
378
|
-
.input-pill:where(:user-valid, .user-valid-fallback) {
|
|
379
|
-
border-color: var(--success);
|
|
380
|
-
}
|
|
381
|
-
/* Invalid + keyboard-focused → destructive ring (overrides the accent
|
|
382
|
-
`:focus-visible` ring above by order + the extra invalid compound). The
|
|
383
|
-
`[aria-invalid]` arm rides the same widened group so an app-driven
|
|
384
|
-
invalid field shows the destructive ring on focus too. */
|
|
385
|
-
.input-pill:where(:user-invalid, .user-invalid-fallback, [aria-invalid="true"]):focus-visible {
|
|
386
|
-
border-color: var(--destructive);
|
|
387
|
-
/* BB.W-INVALID-RING — the shared destructive ring register (the
|
|
388
|
-
--focus-ring-shadow sibling). The byte-identical recipe is now ONE
|
|
389
|
-
token; the `8%` at-rest bg arm above stays `.input-pill`-local (a
|
|
390
|
-
glass-tint substrate the bare-ring surfaces do not carry). */
|
|
391
|
-
box-shadow: var(--invalid-ring);
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
/* AQ.W4 §W4.3 — `field-sizing: content` autosize (opt-in via the Textarea
|
|
395
|
-
`autosize` prop → `[data-autosize]`). The textarea grows vertically with
|
|
396
|
-
content between a 3-line floor and a token-driven ceiling, then scrolls.
|
|
397
|
-
`field-sizing` Baseline Newly (Chromium 2024) — on a non-supporting
|
|
398
|
-
engine the declaration is ignored and the element keeps the
|
|
399
|
-
`min/max-block-size` bounds + standard scroll (no JS, no `@supports`,
|
|
400
|
-
no grid-mirror polyfill). The fixed-size path (default, `min-h-20`) is
|
|
401
|
-
the unchanged no-op fallback. */
|
|
402
|
-
.input-pill[data-autosize] {
|
|
403
|
-
field-sizing: content;
|
|
404
|
-
width: 100%;
|
|
405
|
-
min-block-size: 3lh;
|
|
406
|
-
max-block-size: var(--textarea-autosize-max, 12lh);
|
|
407
|
-
resize: vertical;
|
|
408
|
-
}
|
|
409
|
-
|
|
410
|
-
.input-pill:disabled {
|
|
411
|
-
opacity: 0.5;
|
|
412
|
-
cursor: not-allowed;
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
/* AW.W13 — the Select trigger mirrors the input pill's resting border lift.
|
|
416
|
-
The reka-ui SelectTrigger renders `role="combobox"` over the `.glass-wash`
|
|
417
|
-
surface; its 8%α `--glass-border-wash` field edge vanished on cream just
|
|
418
|
-
like the input pill, so the same `--surface-tint-15` lift makes the
|
|
419
|
-
trigger read as an enclosed control at rest. Scoped to the combobox role
|
|
420
|
-
so the lift reaches ONLY the Select trigger, not every `.glass-wash`
|
|
421
|
-
surface. */
|
|
422
|
-
.glass-wash[role="combobox"] {
|
|
423
|
-
border-color: var(--surface-tint-15);
|
|
424
|
-
}
|
|
342
|
+
/* The .input-pill / .control-surface form-control REST register is carved into
|
|
343
|
+
glass/control-surfaces.css (a cohesive sub-concern, the no-god-module re-drain)
|
|
344
|
+
— @import-ed by glass.css IMMEDIATELY AFTER surfaces.css, same @layer components,
|
|
345
|
+
same source order (byte-isomorphic). */
|
|
425
346
|
|
|
426
347
|
/* ── BA.W-PAGER — the glass pager pill chassis (.glass-pager-ring) ──────────
|
|
427
348
|
The ONE pager-CHASSIS ring register: a `--radius-pill` glass-floating pill
|
package/src/styles/glass.css
CHANGED
|
@@ -46,8 +46,18 @@
|
|
|
46
46
|
squircle + a11y @supports overrides, which must stay last): */
|
|
47
47
|
@import "./glass/material.css";
|
|
48
48
|
@import "./glass/ladder.css";
|
|
49
|
+
/* BC.W-ACCENT-TONE — the contrast-floored 3-channel tonal-accent register
|
|
50
|
+
(.accent-tone: one --tone → idle/active/edge/ink). AFTER ladder.css (reads the
|
|
51
|
+
warm-cream --card surface the ladder mints); the SOLE writer of the --accent-*
|
|
52
|
+
channels, so the placement is cascade-order-invariant. */
|
|
53
|
+
@import "./glass/accent-tone.css";
|
|
49
54
|
@import "./glass/rim.css";
|
|
50
55
|
@import "./glass/surfaces.css";
|
|
56
|
+
/* BC.W-CARVE6 — the .input-pill / .control-surface form-control REST register
|
|
57
|
+
carved out of surfaces.css to hold the 500-line bound, @import-ed IMMEDIATELY
|
|
58
|
+
AFTER surfaces.css and BEFORE surface-axis.css (same @layer components, same
|
|
59
|
+
source order — the dist is byte-isomorphic). */
|
|
60
|
+
@import "./glass/control-surfaces.css";
|
|
51
61
|
@import "./glass/surface-axis.css";
|
|
52
62
|
@import "./glass/reveal.css";
|
|
53
63
|
@import "./glass/deep.css";
|
package/src/styles/index.css
CHANGED
|
@@ -120,6 +120,12 @@
|
|
|
120
120
|
* native .smooth-scroll opt-in) on the native
|
|
121
121
|
* scroll()/view()/timeline-scope substrate; NO
|
|
122
122
|
* Lenis/GSAP dep (BB.W-SCROLL-MOTION).
|
|
123
|
+
* 10a''. scroll-chrome.css — BC.W-SCROLL-CHROME the scroll-driven floating-
|
|
124
|
+
* CHROME collapse recipe (.scroll-chrome reads
|
|
125
|
+
* --chrome-collapse-t for the compositor shrink/
|
|
126
|
+
* quiet/shadow-lift; PERSISTENT-by-default, crisp
|
|
127
|
+
* blur, never-invisible quiet, PRM-discrete). The
|
|
128
|
+
* useScrollChrome JS machine owns the snap + ramp.
|
|
123
129
|
* 10b. view-transition.css — the `.gl-list-item` View-Transitions group
|
|
124
130
|
* recipe + `--vt-*` axes (AQ.W5; the
|
|
125
131
|
* `useViewTransition` substrate's CSS half).
|
|
@@ -168,6 +174,7 @@
|
|
|
168
174
|
@import "./animations.css";
|
|
169
175
|
@import "./scroll-driven.css";
|
|
170
176
|
@import "./scroll-choreography.css";
|
|
177
|
+
@import "./scroll-chrome.css";
|
|
171
178
|
@import "./view-transition.css";
|
|
172
179
|
@import "./utilities.css";
|
|
173
180
|
/* BA.W-MENU-GLASS — the glass menu-row + menu-section register. @import-ed AFTER
|
|
@@ -193,6 +200,14 @@
|
|
|
193
200
|
masks + the PRM milestone-pulse bracket. */
|
|
194
201
|
@import "./border-progress.css";
|
|
195
202
|
|
|
203
|
+
/* BC.W-AX-COMPLETION-SEAL — the hero-scale earned-GOLD completion seal: a one-shot
|
|
204
|
+
gold-draw mark (a `stroke-dashoffset` wipe on the 4 `@property` motion tokens
|
|
205
|
+
`--seal-draw`/`--seal-scale`/`--seal-glint`/`--seal-ink`, registered in
|
|
206
|
+
tokens/property-regs.css §18). The ink reads the W-PHASE-PALETTE earned-gold
|
|
207
|
+
register; the glint composes the W-AX-METAL-GLOW catch-light. One-shot, PRM-gated,
|
|
208
|
+
compositor-only — the feedback-surface partial. */
|
|
209
|
+
@import "./completion-seal.css";
|
|
210
|
+
|
|
196
211
|
/* Ensure Tailwind scans glass-ui's compiled component templates for the utility
|
|
197
212
|
classes they emit (CVA variant classes like text-destructive-foreground,
|
|
198
213
|
layout utilities like h-full/shrink-0).
|