@mkbabb/glass-ui 3.1.1 → 3.3.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/{CardFooter-CSGcJkqa.js → CardFooter-C390imy7.js} +3 -3
- package/dist/{CollapsibleContent-CVMOcYlV.js → CollapsibleContent-cauTbZEM.js} +1 -1
- package/dist/{CommandShortcut-DWT19a2Y.js → CommandShortcut-BiVyqipe.js} +7 -6
- package/dist/{ContextMenuSubContent-gAFxJ-qi.js → ContextMenuSubContent-DrWkXKQP.js} +4 -4
- package/dist/DataTable-FfkaAg2z.js +465 -0
- package/dist/DialogContent-IQ8_BRrC.js +100 -0
- package/dist/{DialogFooter-ClrNEOVU.js → DialogFooter-Er0wA3K6.js} +2 -2
- package/dist/{DiscoGlyph-C3JfMnRV.js → DiscoGlyph-BaZ8OawK.js} +1 -1
- package/dist/{GlyphFace-BRS8vUb7.js → GlyphFace-B_7vOmYn.js} +1 -1
- package/dist/HoverPopover-DTSYkJtw.js +96 -0
- package/dist/{IconTooltip-BkaA7tZ2.js → IconTooltip-BTyYn4mr.js} +1 -1
- package/dist/Input-CU9CNKmo.js +52 -0
- package/dist/{MetricBadge-DmAihkXd.js → MetricBadge-BlrdbOGN.js} +2 -2
- package/dist/{Notification-OqIpADml.js → Notification-DP_ApJLo.js} +3 -3
- package/dist/{NumberFieldContent-DTH9gb_N.js → NumberFieldContent-iOTQ5rGO.js} +9 -5
- package/dist/{PopoverContent-EiklFrna.js → PopoverContent-B8WtJECb.js} +1 -1
- package/dist/Progress-DjM86vfb.js +254 -0
- package/dist/{ScrollingText-BFd0i2zJ.js → ScrollingText-P9o_DuMn.js} +2 -2
- package/dist/{SelectScrollDownButton-Dth8-wXQ.js → SelectScrollDownButton-BGn3rjs9.js} +12 -11
- package/dist/TabsIndicator-DA0x9gPr.js +97 -0
- package/dist/{Toaster-Bjlunvq4.js → Toaster-DdhMKfus.js} +1 -1
- package/dist/{ToggleGroupItem-OesUouE7.js → ToggleGroupItem-gyXj998A.js} +37 -40
- package/dist/UnderlineTabs-Cq_AD03t.js +39 -0
- package/dist/animated-digit.js +3 -3
- package/dist/api/index.d.ts +2 -0
- package/dist/api.js +1 -1
- package/dist/aurora.js +471 -320
- package/dist/badge.js +1 -1
- package/dist/{button-C0aHmBbt.js → button-Ckn3eDfB.js} +27 -22
- package/dist/button.js +1 -1
- package/dist/card.js +1 -1
- package/dist/carousel.js +6 -6
- package/dist/{check-dwgetki8.js → check-CdkxGxXJ.js} +1 -1
- package/dist/{chevron-down-DILQA1t6.js → chevron-down-pBY8sYfV.js} +1 -1
- package/dist/{chevron-right-fS7fal2t.js → chevron-right-BjeKC22V.js} +1 -1
- package/dist/{chevron-up-BtYjYQOS.js → chevron-up-DBeNHUm1.js} +1 -1
- package/dist/collapsible.js +1 -1
- package/dist/color-rkK4RMx2.js +33 -0
- package/dist/color.d.ts +1 -0
- package/dist/color.js +2 -0
- package/dist/command.js +1 -1
- package/dist/compile-DVgAxagk.js +106 -0
- package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +7 -7
- package/dist/components/custom/aurora/Aurora.vue.d.ts +3 -3
- package/dist/components/custom/aurora/composables/color.d.ts +42 -16
- package/dist/components/custom/aurora/composables/cursorModel.d.ts +45 -0
- package/dist/components/custom/aurora/composables/frameLoop.d.ts +30 -0
- package/dist/components/custom/aurora/composables/glSetup.d.ts +29 -0
- package/dist/components/custom/aurora/composables/runtime.d.ts +45 -35
- package/dist/components/custom/aurora/composables/uniformBridge.d.ts +67 -0
- package/dist/components/custom/aurora/composables/useAurora.d.ts +14 -1
- package/dist/components/custom/aurora/composables/useCursorInteraction.d.ts +1 -1
- package/dist/components/custom/aurora/constants/budget.d.ts +50 -0
- package/dist/components/custom/aurora/{presets.d.ts → constants/presets.d.ts} +3 -6
- package/dist/components/custom/aurora/constants/shaders/aurora.frag.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/brush.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/composition.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/flow.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +2 -0
- package/dist/components/custom/aurora/constants/shaders/tonemap.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/index.d.ts +4 -3
- package/dist/components/custom/configurator/Configurator.vue.d.ts +26 -0
- package/dist/components/custom/configurator/ConfiguratorLayer.vue.d.ts +14 -7
- package/dist/components/custom/configurator/density.d.ts +3 -8
- package/dist/components/custom/configurator/index.d.ts +1 -1
- package/dist/components/custom/dock/DockBackgroundToggle.vue.d.ts +46 -0
- package/dist/components/custom/dock/DockIconButton.vue.d.ts +15 -4
- package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +2 -2
- package/dist/components/custom/dock/GlassDock.vue.d.ts +34 -13
- package/dist/components/custom/dock/composables/dockContext.d.ts +4 -4
- package/dist/components/custom/dock/composables/dockLayerContext.d.ts +13 -6
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +32 -8
- package/dist/components/custom/dock/index.d.ts +1 -0
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +10 -0
- package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +1 -1
- package/dist/components/custom/glyph-face/keys.d.ts +3 -29
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +48 -0
- package/dist/components/custom/goo-blob/composables/easing.d.ts +6 -0
- package/dist/components/custom/goo-blob/composables/useBlobMood.d.ts +14 -0
- package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +18 -0
- package/dist/components/custom/goo-blob/composables/useBlobSatellites.d.ts +13 -0
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +42 -0
- package/dist/components/custom/goo-blob/index.d.ts +7 -0
- package/dist/components/custom/goo-blob/shaders/metaball.frag.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball.vert.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/oklch-perturb.glsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/sdf-body.glsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/watercolor-edges.glsl.d.ts +2 -0
- package/dist/components/custom/goo-blob/types.d.ts +77 -0
- package/dist/components/custom/hover-popover/HoverPopover.vue.d.ts +48 -9
- package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +2 -0
- package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +2 -2
- package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +2 -2
- package/dist/components/custom/responsive-tabs/ResponsiveTabs.vue.d.ts +13 -7
- package/dist/components/custom/search/FuzzySearch.vue.d.ts +1 -1
- package/dist/components/custom/search/SearchBar.vue.d.ts +1 -1
- package/dist/components/custom/sortable-list/SortableHandle.vue.d.ts +7 -1
- package/dist/components/custom/sortable-list/context.d.ts +2 -3
- package/dist/components/custom/tabs/BouncyTabs.vue.d.ts +6 -3
- package/dist/components/custom/tabs/BouncyToggle.vue.d.ts +7 -3
- package/dist/components/custom/tabs/UnderlineTabs.vue.d.ts +6 -3
- package/dist/components/custom/tabs/composables/useBouncySlider.d.ts +39 -0
- package/dist/components/custom/timeline/ContinuousMarkers.vue.d.ts +49 -0
- package/dist/components/custom/timeline/ContinuousRail.vue.d.ts +26 -0
- package/dist/components/custom/timeline/ContinuousTimeline.vue.d.ts +4 -4
- package/dist/components/custom/typewriter/TypewriterText.vue.d.ts +2 -2
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +45 -0
- package/dist/components/custom/watercolor-dot/index.d.ts +3 -0
- package/dist/components/custom/watercolor-dot/prng.d.ts +5 -0
- package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +24 -0
- package/dist/components/ui/_shared/menuItemVariants.d.ts +1 -1
- package/dist/components/ui/avatar/Avatar.vue.d.ts +1 -1
- package/dist/components/ui/avatar/AvatarImage.vue.d.ts +5 -1
- package/dist/components/ui/avatar/index.d.ts +1 -1
- package/dist/components/ui/badge/index.d.ts +2 -2
- package/dist/components/ui/button/Button.vue.d.ts +3 -1
- package/dist/components/ui/button/index.d.ts +2 -2
- package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
- package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
- package/dist/components/ui/combobox/Combobox.vue.d.ts +2 -2
- package/dist/components/ui/combobox/ComboboxInput.vue.d.ts +2 -1
- package/dist/components/ui/command/Command.vue.d.ts +3 -3
- package/dist/components/ui/command/CommandInput.vue.d.ts +2 -1
- package/dist/components/ui/data-table/DataTable.vue.d.ts +5 -4
- package/dist/components/ui/dialog/DialogContent.vue.d.ts +8 -0
- package/dist/components/ui/drawer/Drawer.vue.d.ts +4 -4
- package/dist/components/ui/input/Input.vue.d.ts +19 -1
- package/dist/components/ui/multi-select/MultiSelect.vue.d.ts +8 -4
- package/dist/components/ui/progress/Progress.vue.d.ts +26 -88
- package/dist/components/ui/progress/ProgressDefault.vue.d.ts +14 -0
- package/dist/components/ui/progress/ProgressGradient.vue.d.ts +25 -0
- package/dist/components/ui/progress/ProgressSectioned.vue.d.ts +36 -0
- package/dist/components/ui/progress/index.d.ts +5 -2
- package/dist/components/ui/progress/useProgressGeometry.d.ts +60 -0
- package/dist/components/ui/select/Select.vue.d.ts +2 -2
- package/dist/components/ui/select/SelectContent.vue.d.ts +1 -1
- package/dist/components/ui/select/SelectTrigger.vue.d.ts +3 -0
- package/dist/components/ui/sheet/index.d.ts +1 -1
- package/dist/components/ui/slider/index.d.ts +12 -11
- package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
- package/dist/components/ui/textarea/Textarea.vue.d.ts +5 -1
- package/dist/components/ui/toast/Toast.vue.d.ts +4 -4
- package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
- package/dist/components/ui/toggle/index.d.ts +1 -1
- package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +2 -3
- package/dist/composables/color/index.d.ts +49 -0
- package/dist/composables/context/createContext.d.ts +56 -0
- package/dist/composables/context/index.d.ts +1 -0
- package/dist/composables/dark/darkModeSyncScript.d.ts +23 -0
- package/dist/composables/dark/index.d.ts +3 -0
- package/dist/composables/dark/useGlobalDark.d.ts +19 -2
- package/dist/composables/dom/index.d.ts +1 -3
- package/dist/composables/dom/useClipboard.d.ts +35 -12
- package/dist/composables/dom/useDocumentVisibility.d.ts +20 -0
- package/dist/composables/dom/useTextHighlight.d.ts +40 -0
- package/dist/composables/glass/webgl/compile.d.ts +15 -0
- package/dist/composables/glass/webgl/shaders/procedural-color.glsl.d.ts +3 -0
- package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +55 -0
- package/dist/composables/motion/core/index.d.ts +2 -1
- package/dist/composables/motion/index.d.ts +1 -1
- package/dist/composables/motion/useCountup.d.ts +29 -0
- package/dist/composables/motion/usePrioritizedTask.d.ts +41 -0
- package/dist/composables/motion/vReveal.d.ts +2 -0
- package/dist/composables/sidebar/useSidebarState.d.ts +2 -2
- package/dist/composables/sortable/dragController.d.ts +44 -0
- package/dist/composables/sortable/dropResolver.d.ts +34 -0
- package/dist/composables/sortable/ghostRenderer.d.ts +44 -0
- package/dist/composables/sortable/index.d.ts +1 -1
- package/dist/composables/sortable/touchGate.d.ts +26 -0
- package/dist/composables/sortable/transitionTiming.d.ts +50 -0
- package/dist/composables/sortable/types.d.ts +133 -0
- package/dist/composables/sortable/useSortable.d.ts +25 -140
- package/dist/configurator.js +1 -1
- package/dist/confirm-dialog.js +3 -3
- package/dist/context-menu.js +2 -2
- package/dist/controls.js +5 -5
- package/dist/createContext-DBMGRlx4.js +25 -0
- package/dist/dark.d.ts +2 -1
- package/dist/dark.js +9 -2
- package/dist/data-table.js +1 -1
- package/dist/dialog.js +2 -2
- package/dist/disco-glyph.js +1 -1
- package/dist/dock.js +410 -254
- package/dist/dockContext-spUj_-E5.js +9 -0
- package/dist/dom.js +6 -5
- package/dist/{dropdown-menu-BvRUamNs.js → dropdown-menu-EFjl5iKo.js} +4 -4
- package/dist/dropdown-menu.js +1 -1
- package/dist/expandable-container.js +28 -22
- package/dist/fonts/README.md +21 -0
- package/dist/fonts/fraunces/fraunces-latin.woff2 +0 -0
- package/dist/forms.js +70 -61
- package/dist/glass-carousel.js +59 -52
- package/dist/glass-panel.js +2 -2
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +159 -254
- package/dist/glyph-face.js +2 -2
- package/dist/goo-blob.d.ts +1 -0
- package/dist/goo-blob.js +538 -0
- package/dist/header-ribbon.js +3 -3
- package/dist/hover-card.js +1 -1
- package/dist/hover-popover.js +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/instrument-chassis.js +1 -1
- package/dist/instrument-rail.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/keys-BFoma9vm.js +9 -0
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +57 -39
- package/dist/metric-badge.js +1 -1
- package/dist/metric-stack.js +1 -1
- package/dist/{minimize-2-LsCJ_eNt.js → minimize-2-BP27-qBY.js} +1 -1
- package/dist/motion-core.js +154 -135
- package/dist/motion.js +63 -15
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/paper-backdrop.js +1 -1
- package/dist/popover.js +1 -1
- package/dist/{presets-a-D93K1S.js → presets-1OhFpaIC.js} +5 -5
- package/dist/prng-Bz_1Tydc.js +15 -0
- package/dist/progress.js +2 -2
- package/dist/pulse.js +1 -1
- package/dist/reactive.js +2 -2
- package/dist/responsive-tabs.js +38 -32
- package/dist/scrolling-text.js +1 -1
- package/dist/{search-DBAiUABx.js → search-DBG8qaRs.js} +1 -1
- package/dist/search.js +153 -149
- package/dist/select.js +3 -3
- package/dist/separator.js +1 -1
- package/dist/{sheet-CukNDezz.js → sheet-CQYYrkr9.js} +3 -3
- package/dist/sheet.js +1 -1
- package/dist/{slider-DJvHkTRe.js → slider-BOh8ycfZ.js} +8 -12
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +37 -39
- package/dist/stacked-icons.js +2 -2
- package/dist/styles/animations.css +1 -1
- package/dist/styles/cards.css +1 -1
- package/dist/styles/components.css +45 -0
- package/dist/styles/dock-controls.css +486 -0
- package/dist/styles/dock.css +325 -431
- package/dist/styles/fonts.css +25 -0
- package/dist/styles/glass-specular-track.css +154 -0
- package/dist/styles/glass.css +74 -2
- package/dist/styles/index.css +25 -2
- package/dist/styles/instrument-chassis.css +11 -4
- package/dist/styles/theme.css +73 -21
- package/dist/styles/tokens.css +282 -140
- package/dist/styles/typography.css +14 -8
- package/dist/styles/utilities.css +92 -8
- package/dist/styles/view-transition.css +10 -4
- package/dist/switch.js +1 -1
- package/dist/tabs.js +148 -106
- package/dist/timeline.js +220 -159
- package/dist/toast.js +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/tokens.d.ts +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{useAnimatedNumber-DKQYVB7s.js → useAnimatedNumber-BF6r64lA.js} +1 -1
- package/dist/useClipboard-D8vFyRCa.js +97 -0
- package/dist/useConfiguratorState-DUtC1jxr.js +276 -0
- package/dist/useGlobalDark-CWiaCoEw.js +34 -0
- package/dist/useIntersectionPause-DAdVPVp4.js +53 -0
- package/dist/useSortable-DnyGXKKY.js +246 -0
- package/dist/useTextHighlight-Dmtofpk2.js +72 -0
- package/dist/{useTouchGate-D9Zvrzyc.js → useTouchGate-CS5Csc2h.js} +1 -1
- package/dist/{useViewTransition-DYIK6Gzb.js → useViewTransition-D4ssvnXZ.js} +5 -3
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/platformSupport.d.ts +8 -0
- package/dist/utils/prng.d.ts +4 -0
- package/dist/vReveal-u2wSG2El.js +35 -0
- package/dist/watercolor-dot.d.ts +1 -0
- package/dist/watercolor-dot.js +129 -0
- package/dist/{x-q7pJa83X.js → x-C4pz9nbD.js} +1 -1
- package/package.json +110 -16
- package/src/fonts/README.md +21 -0
- package/src/fonts/fraunces/fraunces-latin.woff2 +0 -0
- package/src/styles/animations.css +1 -1
- package/src/styles/cards.css +1 -1
- package/src/styles/dock-controls.css +486 -0
- package/src/styles/dock.css +325 -431
- package/src/styles/fonts.css +25 -0
- package/src/styles/glass-specular-track.css +154 -0
- package/src/styles/glass.css +74 -2
- package/src/styles/index.css +21 -2
- package/src/styles/instrument-chassis.css +11 -4
- package/src/styles/theme.css +73 -21
- package/src/styles/tokens.css +282 -140
- package/src/styles/typography.css +14 -8
- package/src/styles/utilities.css +92 -8
- package/src/styles/view-transition.css +10 -4
- package/dist/DataTable-R8-Zidms.js +0 -460
- package/dist/DialogContent-2fALDSvc.js +0 -93
- package/dist/HoverPopover-CWFCfLx3.js +0 -96
- package/dist/Input-DDpFn568.js +0 -30
- package/dist/Progress-FApA9fm_.js +0 -126
- package/dist/UnderlineTabs-DAWMLmJG.js +0 -37
- package/dist/components/custom/aurora/shaders/aurora.frag.d.ts +0 -1
- package/dist/composables/dom/useBreakpoint.d.ts +0 -38
- package/dist/composables/dom/useIdleReady.d.ts +0 -63
- package/dist/composables/dom/useViewportReady.d.ts +0 -87
- package/dist/composables/glass/webgl/frostShader.d.ts +0 -27
- package/dist/composables/motion/useAnimatedNumberMap.d.ts +0 -29
- package/dist/composables/motion/useStagger.d.ts +0 -50
- package/dist/dockContext-D5NZCWJs.js +0 -16
- package/dist/keys-CaTQS-vx.js +0 -11
- package/dist/useConfiguratorState-CtRBE0m_.js +0 -268
- package/dist/useGlobalDark-B0WvLJE3.js +0 -24
- package/dist/useIdleReady-Cmkhm03v.js +0 -162
- package/dist/useIntersectionPause-IY2CwPQb.js +0 -39
- package/dist/useSortable-Cq2Y1JLO.js +0 -175
- /package/dist/{ContextMenuContent-otjFIu8v.js → ContextMenuContent-De01_83g.js} +0 -0
- /package/dist/{HoverCardContent-DaGrgJBO.js → HoverCardContent-ICfIMZX1.js} +0 -0
- /package/dist/{InstrumentChassis-CnHTMxds.js → InstrumentChassis-DaHIZCqy.js} +0 -0
- /package/dist/{InstrumentRail-C6dEbi8E.js → InstrumentRail-B0qqLFN0.js} +0 -0
- /package/dist/{Label-DJty89bp.js → Label-CZk-3nTc.js} +0 -0
- /package/dist/{ModalOverlay-iWiAgbYH.js → ModalOverlay-B_CBtqcE.js} +0 -0
- /package/dist/{PaperBackdrop-CeZ-w0R0.js → PaperBackdrop-D_YZW47j.js} +0 -0
- /package/dist/{SelectGroup-DdR4tdDY.js → SelectGroup-CMdoCjRE.js} +0 -0
- /package/dist/{SelectSeparator-CXm_hlqA.js → SelectSeparator-CaJnPF3_.js} +0 -0
- /package/dist/{Separator-D8AUMhxY.js → Separator-C2XtAXRp.js} +0 -0
- /package/dist/{Switch-Cr1t_F_U.js → Switch-x8n6husW.js} +0 -0
- /package/dist/{TooltipProvider-DE78vbEP.js → TooltipProvider-D-JrSqDu.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-Dq1MygBL.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
- /package/dist/{badge-x46my_Fo.js → badge-Cl6JZ1B7.js} +0 -0
- /package/dist/components/custom/aurora/{renderMode.d.ts → constants/renderMode.d.ts} +0 -0
- /package/dist/components/custom/aurora/{shaders → constants/shaders}/aurora.vert.d.ts +0 -0
- /package/dist/{constants-DwBwnG8N.js → constants-DsCdlK9I.js} +0 -0
- /package/dist/{createLucideIcon-Bn9a1b70.js → createLucideIcon-DuDoe_ra.js} +0 -0
- /package/dist/{menuItemVariants-BsbGNq9C.js → menuItemVariants-C2QlXqT3.js} +0 -0
- /package/dist/{useGlassRenderer-Ds-nmrGz.js → useGlassRenderer-Dn3WpfG-.js} +0 -0
- /package/dist/{useInterval-DVgGUf_y.js → useInterval-CHVYFpXV.js} +0 -0
- /package/dist/{useKeyboardShortcuts-Dpw_RUcB.js → useKeyboardShortcuts-BQfnAHHW.js} +0 -0
- /package/dist/{useResizeObserver-Cg9npuM3.js → useResizeObserver-DX-STszm.js} +0 -0
- /package/dist/{useSpringMount-Cfk1XK1R.js → useSpringMount-CnizvZGm.js} +0 -0
- /package/dist/{useTimer-NAaj9zNq.js → useTimer-DGgoxTXL.js} +0 -0
- /package/dist/{useUserInvalidAria-DVu1eTXG.js → useUserInvalidAria-DmvZ_6Dx.js} +0 -0
package/src/styles/fonts.css
CHANGED
|
@@ -141,3 +141,28 @@
|
|
|
141
141
|
U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF,
|
|
142
142
|
U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
143
143
|
}
|
|
144
|
+
|
|
145
|
+
/* ═══════════════════════════════════════════════
|
|
146
|
+
OFL FACE FILES — Fraunces (ornamental display)
|
|
147
|
+
═══════════════════════════════════════════════ */
|
|
148
|
+
|
|
149
|
+
/* Fraunces — Latin subset (basic Latin + ASCII punctuation + common
|
|
150
|
+
diacritics). The FULL variable font: a single woff2 carries wght 100..900
|
|
151
|
+
AND the opsz / SOFT / WONK axes typography.css drives
|
|
152
|
+
(`--font-display-variation-settings: "WONK" 1, "SOFT" 0`). Before AU.W4 the
|
|
153
|
+
`--font-stack-display: "Fraunces"` token (tokens.css:43) had NO shipped face,
|
|
154
|
+
so those axes were SILENTLY INERT (the slipped ship of the grand-audit/AS.W0b
|
|
155
|
+
lineage); this face resolves the dangling display token. `font-display: swap`
|
|
156
|
+
— the display register is a deliberate ornament, post-LCP, with the body
|
|
157
|
+
carried by the calibrated sans/mono fallbacks. */
|
|
158
|
+
@font-face {
|
|
159
|
+
font-family: "Fraunces";
|
|
160
|
+
font-style: normal;
|
|
161
|
+
font-weight: 100 900;
|
|
162
|
+
font-display: swap;
|
|
163
|
+
src: url("@mkbabb/glass-ui/fonts/fraunces/fraunces-latin.woff2") format("woff2");
|
|
164
|
+
unicode-range:
|
|
165
|
+
U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
|
166
|
+
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,
|
|
167
|
+
U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
168
|
+
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/* Pointer-anchored moving specular — the iOS-26 Liquid Glass illuminate-from-
|
|
2
|
+
* within behaviour (AV.W15 M2, the HEADLINE fold).
|
|
3
|
+
*
|
|
4
|
+
* A masked radial-gradient catch-light rides the material surface at the
|
|
5
|
+
* pointer position. The consumer writes the pointer location onto the element
|
|
6
|
+
* as `--mouse-x` / `--mouse-y` (percentages) via a thin pointer-listener; this
|
|
7
|
+
* rung maps those onto the typed `--specular-x` / `--specular-y` properties
|
|
8
|
+
* (registered in tokens.css §11b) and paints a `radial-gradient(circle at …)`
|
|
9
|
+
* over a `mask-image` so the glow stays clipped to the glass plate and travels
|
|
10
|
+
* with the cursor — "the light travels around the material / illuminate under
|
|
11
|
+
* your fingertip".
|
|
12
|
+
*
|
|
13
|
+
* Baseline floors: `@property` 2024-07-09 (the smooth position interpolation),
|
|
14
|
+
* CSS `mask-image` 2023-12-07 (the surface-clip). Both carry a `var()` fallback
|
|
15
|
+
* so an engine without typed-property animation still paints a centred catch-
|
|
16
|
+
* light, and an engine without `mask` still paints the radial (unmasked but
|
|
17
|
+
* surface-bounded by the `::before` `inset: 0` + `border-radius: inherit`).
|
|
18
|
+
*
|
|
19
|
+
* The pointer-position WRITE (`--mouse-x` / `--mouse-y`) is the consumer's seam
|
|
20
|
+
* (DockIconButton wires it; Button glass + Card hover opt in). The CSS half —
|
|
21
|
+
* the masked radial, the reduced-motion static bracket, the var() fallback, the
|
|
22
|
+
* @supports-gated refraction garnish — is the deliverable here.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
@layer components {
|
|
26
|
+
/* The opt-in class. A `::before` pseudo carries the moving catch-light so it
|
|
27
|
+
composes over the host's own glass background/blur without a second
|
|
28
|
+
backdrop-filter (no glass-on-glass — the specular is a LIGHT layer, not a
|
|
29
|
+
second plate). The host need not be positioned-relative by us; the five
|
|
30
|
+
glass tiers + the dock + Button already mint `position: relative`. */
|
|
31
|
+
.glass-specular-track::before {
|
|
32
|
+
content: "";
|
|
33
|
+
position: absolute;
|
|
34
|
+
inset: 0;
|
|
35
|
+
border-radius: inherit;
|
|
36
|
+
pointer-events: none;
|
|
37
|
+
z-index: 1;
|
|
38
|
+
/* Map the consumer's pointer write onto the typed properties, ON THE
|
|
39
|
+
PSEUDO. The `--mouse-x/--mouse-y` write lands on the HOST (inline
|
|
40
|
+
style); those are UNREGISTERED custom properties, so they inherit
|
|
41
|
+
down to this `::before` naturally. The registered `--specular-*`
|
|
42
|
+
props are `inherits: false` (per-surface ownership), which means a
|
|
43
|
+
`::before` does NOT see a value set on its originating element — so
|
|
44
|
+
the mapping must be declared HERE, on the pseudo, where it owns its
|
|
45
|
+
own typed value. The `var(--mouse-x, 50%)` floor is the centred
|
|
46
|
+
fallback: an engine that never receives a pointer write paints a
|
|
47
|
+
centred catch-light, never a broken/absent one. */
|
|
48
|
+
--specular-x: var(--mouse-x, 50%);
|
|
49
|
+
--specular-y: var(--mouse-y, 50%);
|
|
50
|
+
/* The catch-light intensity floor at rest; hover/active lift it (the
|
|
51
|
+
pseudo-targeting rules below). Registered `<number>`, so the layer
|
|
52
|
+
opacity it drives interpolates smoothly. */
|
|
53
|
+
--specular-intensity: 0.35;
|
|
54
|
+
/* The travelling catch-light. A soft circular glow centred on the
|
|
55
|
+
tracked pointer position; the warm-white tint keeps the warm-cream
|
|
56
|
+
identity (NOT iOS blue). The gradient carries FIXED stop alphas — the
|
|
57
|
+
`--specular-intensity` multiplier drives the layer `opacity` below
|
|
58
|
+
(NOT a `calc()` in the stop alpha: a registered-`@property` `var()`
|
|
59
|
+
nested in `calc()` inside an `hsl()` alpha inside a gradient does not
|
|
60
|
+
substitute in Chromium — it computes to 0. Driving the whole layer's
|
|
61
|
+
`opacity` is both correct AND the cleaner model — intensity IS a
|
|
62
|
+
layer brightness, not a per-stop axis). */
|
|
63
|
+
background: radial-gradient(
|
|
64
|
+
circle at var(--specular-x, 50%) var(--specular-y, 50%),
|
|
65
|
+
hsl(40 30% 100% / 0.55) 0%,
|
|
66
|
+
hsl(40 30% 100% / 0.22) 22%,
|
|
67
|
+
transparent 55%
|
|
68
|
+
);
|
|
69
|
+
opacity: var(--specular-intensity, 0.35);
|
|
70
|
+
/* Clip the glow to the plate so it rides the surface (the "light travels
|
|
71
|
+
AROUND the material" read). `mask-image` Baseline 2023-12-07; a
|
|
72
|
+
non-supporting engine ignores it and the `inset: 0` + radius-inherit
|
|
73
|
+
already bound the glow to the host rectangle. */
|
|
74
|
+
mask-image: radial-gradient(
|
|
75
|
+
circle at var(--specular-x, 50%) var(--specular-y, 50%),
|
|
76
|
+
black 0%,
|
|
77
|
+
black 55%,
|
|
78
|
+
transparent 75%
|
|
79
|
+
);
|
|
80
|
+
mix-blend-mode: screen;
|
|
81
|
+
/* Smooth the position + intensity between pointer samples. The typed
|
|
82
|
+
`@property` registrations make the percentage stops interpolable, so
|
|
83
|
+
the catch-light position SETTLES rather than snapping frame-to-frame;
|
|
84
|
+
the intensity rides the layer `opacity` transition. */
|
|
85
|
+
transition:
|
|
86
|
+
--specular-x var(--duration-fast, 150ms) var(--ease-standard, ease-out),
|
|
87
|
+
--specular-y var(--duration-fast, 150ms) var(--ease-standard, ease-out),
|
|
88
|
+
opacity var(--duration-normal, 240ms) var(--ease-standard, ease-out);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.dark .glass-specular-track::before {
|
|
92
|
+
/* Softer over the deep canvas — the screen blend lifts harder on dark. */
|
|
93
|
+
--specular-intensity: 0.22;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* Hover/active lift the intensity — the "illuminate under your fingertip"
|
|
97
|
+
brighten on engagement; settles back on leave via the opacity transition
|
|
98
|
+
above. The rules target the `::before` (the intensity lives on the pseudo
|
|
99
|
+
— see the mapping note above). */
|
|
100
|
+
.glass-specular-track:hover::before {
|
|
101
|
+
--specular-intensity: 0.6;
|
|
102
|
+
}
|
|
103
|
+
.glass-specular-track:active::before {
|
|
104
|
+
--specular-intensity: 0.85;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/* ── Reduced-motion: pin the specular STATIC ───────────────────────────────
|
|
109
|
+
The MANDATORY guard. Under `prefers-reduced-motion: reduce` the catch-light
|
|
110
|
+
paints static at rest position — no pointer-tracking (the position pins to
|
|
111
|
+
centre, ignoring the consumer's `--mouse-x/--mouse-y` write), no transition
|
|
112
|
+
animation. The centred catch-light + the warm-cream tint survive; only the
|
|
113
|
+
MOTION is removed. The pin + the `transition: none` live on the `::before`
|
|
114
|
+
(where the typed `--specular-*` props are owned), overriding the pointer-map
|
|
115
|
+
above by order — the `var(--mouse-x)` write is ignored, the catch-light pins
|
|
116
|
+
centred. */
|
|
117
|
+
@media (prefers-reduced-motion: reduce) {
|
|
118
|
+
.glass-specular-track::before {
|
|
119
|
+
--specular-x: 50%;
|
|
120
|
+
--specular-y: 50%;
|
|
121
|
+
transition: none;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/* ── Reduced-transparency: drop the specular ───────────────────────────────
|
|
126
|
+
When the user requests reduced transparency the surface goes opaque (the
|
|
127
|
+
glass.css bracket maps the blurs to `none`); a travelling catch-light on a
|
|
128
|
+
flat opaque surface is decoration without substrate, so it drops too. */
|
|
129
|
+
@media (prefers-reduced-transparency: reduce) {
|
|
130
|
+
.glass-specular-track::before {
|
|
131
|
+
display: none;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/* ── feDisplacementMap refraction garnish — PE-only, @supports-gated ────────
|
|
136
|
+
True SVG `feDisplacementMap` lensing (`backdrop-filter: url(#…)`) is
|
|
137
|
+
Chromium-only (WebKit bug #245510, Firefox not shipping) and resize-
|
|
138
|
+
expensive. It lands ONLY as a progressive-enhancement garnish layered OVER
|
|
139
|
+
the blur base, NEVER the substrate — gated `@supports (backdrop-filter:
|
|
140
|
+
url(#…))` so a non-supporting engine paints the blur base alone (no broken
|
|
141
|
+
`url(#…)` reference). A consumer opts a glass surface into the refraction by
|
|
142
|
+
adding `.glass-refract` AND mounting the named SVG filter; the gate asserts
|
|
143
|
+
the garnish never reaches the substrate. The blur base paints WITHOUT it. */
|
|
144
|
+
@supports (backdrop-filter: url("#glass-refract")) {
|
|
145
|
+
@layer components {
|
|
146
|
+
.glass-specular-track.glass-refract {
|
|
147
|
+
/* The garnish composes the consumer-mounted `#glass-refract` SVG
|
|
148
|
+
filter OVER the host's existing blur. It is additive — the host's
|
|
149
|
+
`backdrop-filter` blur already painted; this only sharpens the
|
|
150
|
+
refraction edge where the engine supports it. */
|
|
151
|
+
backdrop-filter: var(--glass-blur-resting) url("#glass-refract");
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
package/src/styles/glass.css
CHANGED
|
@@ -1,4 +1,32 @@
|
|
|
1
|
-
/* Glass utilities — glassmorphism surface classes referencing --glass-* tokens
|
|
1
|
+
/* Glass utilities — glassmorphism surface classes referencing --glass-* tokens
|
|
2
|
+
*
|
|
3
|
+
* ── No-glass-on-glass discipline (AV.W15 D5) ───────────────────────────────
|
|
4
|
+
* Apple's Liquid Glass guidance: "glass is best reserved for the navigation
|
|
5
|
+
* layer that floats above the content" — there is no glass-on-glass. glass-ui
|
|
6
|
+
* adopts the same RUNG-PAIRING rule across three layer bands (the existing
|
|
7
|
+
* z-index registry already encodes them, tokens.css §3 `--z-*`):
|
|
8
|
+
*
|
|
9
|
+
* content (--z-background … --z-content) — the page substrate; NOT glass.
|
|
10
|
+
* navigation (--z-controls … --z-dock/panel) — the glass band (dock, panels,
|
|
11
|
+
* floating chrome).
|
|
12
|
+
* overlay (--z-overlay … --z-modal) — the glass band (dialog/sheet
|
|
13
|
+
* over content).
|
|
14
|
+
*
|
|
15
|
+
* A glass surface nested INSIDE another glass surface is a discipline violation
|
|
16
|
+
* — the inner surface should read as a FLAT tier (a `--card` / `--muted` fill),
|
|
17
|
+
* not a second `.glass-*` plate (the blur stacks muddy, the rim doubles, the
|
|
18
|
+
* read collapses). Reach for glass in the navigation/overlay bands only; inside
|
|
19
|
+
* a glass panel, compose flat tiers.
|
|
20
|
+
*
|
|
21
|
+
* ── iOS-spring-on-controls cross-ref (AV.W15 C/M cross-ref) ────────────────
|
|
22
|
+
* The momentum-gated press squish (the control's "lift up on touch, quiet at
|
|
23
|
+
* rest" register — scale toward `--scale-press-dock` / `--scale-press-btn`) is
|
|
24
|
+
* the SPRING half of one Liquid Glass behaviour the rim/specular folds here are
|
|
25
|
+
* the MATERIAL half of. The spring wiring is OWNED by the dock-motion arm
|
|
26
|
+
* (AV.W9, velocity continuity) and the slider arm (AV.W11); it is cross-
|
|
27
|
+
* referenced here and authored there, not re-derived. See
|
|
28
|
+
* `src/components/custom/dock/README.md` for the canonical discipline.
|
|
29
|
+
*/
|
|
2
30
|
|
|
3
31
|
@layer components {
|
|
4
32
|
/* ── Five-tier surface ladder (v0.8.0; visual only, no geometry) ──
|
|
@@ -53,12 +81,20 @@
|
|
|
53
81
|
box-shadow: var(--glass-under-shadow-default), var(--glass-shadow-resting);
|
|
54
82
|
}
|
|
55
83
|
|
|
84
|
+
/* AV.W15 M3 — the floating tier wires the full-perimeter `--glass-edge-light`
|
|
85
|
+
rim as an inset layer alongside the under-shadow + lift stack. The rim is
|
|
86
|
+
the catch-light that "defines the silhouette" (WWDC25 sess. 219), distinct
|
|
87
|
+
from the top-only `--glass-highlight`. It rides INSIDE the box-shadow stack
|
|
88
|
+
so it composes with the under-shadow floor and the elevation lift. */
|
|
56
89
|
.glass-floating {
|
|
57
90
|
position: relative;
|
|
58
91
|
background: var(--glass-bg-floating);
|
|
59
92
|
backdrop-filter: var(--glass-blur-floating);
|
|
60
93
|
border: 1px solid var(--glass-border-floating);
|
|
61
|
-
box-shadow:
|
|
94
|
+
box-shadow:
|
|
95
|
+
var(--glass-edge-light),
|
|
96
|
+
var(--glass-under-shadow-vivid),
|
|
97
|
+
var(--glass-shadow-floating);
|
|
62
98
|
}
|
|
63
99
|
|
|
64
100
|
.glass-overlay {
|
|
@@ -69,6 +105,42 @@
|
|
|
69
105
|
box-shadow: var(--glass-shadow-overlay);
|
|
70
106
|
}
|
|
71
107
|
|
|
108
|
+
/* ── Content-aware under-shadow modifier (AV.W15 M4) ──────────────
|
|
109
|
+
Apple raises the under-shadow over text (so the glass reads as
|
|
110
|
+
lifting OFF the text) and drops it over solid light. The modifier
|
|
111
|
+
is ATTRIBUTE-DRIVEN, no JS: a consumer adds `.glass-over-text`
|
|
112
|
+
(or `[data-over-content="text"]`) to a text-bearing glass surface to
|
|
113
|
+
swap it ONE under-shadow rung heavier, or `[data-over-content="solid"]`
|
|
114
|
+
to lighten it one rung over a solid-light backdrop. It reuses the
|
|
115
|
+
existing `--glass-under-shadow-{quiet,default,vivid}` rungs (no new
|
|
116
|
+
shadow value — `vivid` is sufficient over text), redefining only the
|
|
117
|
+
leading under-shadow layer per tier; the lift stack is untouched.
|
|
118
|
+
|
|
119
|
+
The selectors are per-tier so the swap is rung-correct
|
|
120
|
+
(quiet→default, resting→vivid). `.glass-floating` already sits at the
|
|
121
|
+
`vivid` ceiling over text, so the heavier variant is a no-op there
|
|
122
|
+
(the rung saturates) — documented, not an error. */
|
|
123
|
+
.glass-quiet.glass-over-text,
|
|
124
|
+
.glass-quiet[data-over-content="text"] {
|
|
125
|
+
box-shadow: var(--glass-under-shadow-default), var(--glass-shadow-quiet);
|
|
126
|
+
}
|
|
127
|
+
.glass-resting.glass-over-text,
|
|
128
|
+
.glass-resting[data-over-content="text"] {
|
|
129
|
+
box-shadow: var(--glass-under-shadow-vivid), var(--glass-shadow-resting);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/* The inverse — over a solid-light backdrop the under-shadow lightens
|
|
133
|
+
one rung (the glass need not lift as hard off a flat bright field). */
|
|
134
|
+
.glass-resting[data-over-content="solid"] {
|
|
135
|
+
box-shadow: var(--glass-under-shadow-quiet), var(--glass-shadow-resting);
|
|
136
|
+
}
|
|
137
|
+
.glass-floating[data-over-content="solid"] {
|
|
138
|
+
box-shadow:
|
|
139
|
+
var(--glass-edge-light),
|
|
140
|
+
var(--glass-under-shadow-default),
|
|
141
|
+
var(--glass-shadow-floating);
|
|
142
|
+
}
|
|
143
|
+
|
|
72
144
|
/* Grain noise overlay — reuses paper texture SVG, no extra assets */
|
|
73
145
|
.glass-wash::after,
|
|
74
146
|
.glass-quiet::after,
|
package/src/styles/index.css
CHANGED
|
@@ -51,10 +51,27 @@
|
|
|
51
51
|
* 4. glass.css — .glass-{wash,quiet,resting,floating,overlay}
|
|
52
52
|
* 5-rung ladder + .glass-card / -pill / -btn.
|
|
53
53
|
* Consumes tokens (1) + theme aliases (3).
|
|
54
|
+
* 4a. glass-specular-track.css — the pointer-anchored MOVING specular rung
|
|
55
|
+
* (AV.W15). A `.glass-specular-track` opt-in paints
|
|
56
|
+
* a masked radial catch-light tracking the pointer
|
|
57
|
+
* (@property-animated, reduced-motion-static, var()
|
|
58
|
+
* fallback) + the @supports-gated refraction
|
|
59
|
+
* garnish. Loads after glass.css so it composes
|
|
60
|
+
* over the glass tiers.
|
|
54
61
|
* 5. paper.css — paper underpaint + grain overlay utilities.
|
|
55
62
|
* Pairs with (4) for paper-on-glass compositions.
|
|
56
|
-
* 6. dock.css —
|
|
57
|
-
*
|
|
63
|
+
* 6. dock.css — dock shell / density / grain / layer-crossfade
|
|
64
|
+
* contract + the shared cross-control four-state
|
|
65
|
+
* comma-groups. Component utility layer; consumes
|
|
66
|
+
* (1) + (3).
|
|
67
|
+
* 6b. dock-controls.css — the five dock CONTROL families carved out of
|
|
68
|
+
* dock.css (AU.W8b.3): .dock-icon-button,
|
|
69
|
+
* .dark-mode-toggle-button, .dock-tab-button + tiers,
|
|
70
|
+
* .dock-select-trigger / .dock-dropdown-trigger, and
|
|
71
|
+
* the coarse-pointer touch floor. Same @layer
|
|
72
|
+
* components; MUST load directly after dock.css so
|
|
73
|
+
* the shared :where()/comma-group contract in (6)
|
|
74
|
+
* cascades into these control rules.
|
|
58
75
|
* 7. cards.css — .cartoon-surface, .paper-texture.
|
|
59
76
|
* Component utility layer.
|
|
60
77
|
* 8. floating-panel.css — .floating-panel + .floating-panel-item.
|
|
@@ -96,8 +113,10 @@
|
|
|
96
113
|
@import "./typography.css";
|
|
97
114
|
@import "./theme.css";
|
|
98
115
|
@import "./glass.css";
|
|
116
|
+
@import "./glass-specular-track.css";
|
|
99
117
|
@import "./paper.css";
|
|
100
118
|
@import "./dock.css";
|
|
119
|
+
@import "./dock-controls.css";
|
|
101
120
|
@import "./cards.css";
|
|
102
121
|
@import "./floating-panel.css";
|
|
103
122
|
@import "./transitions.css";
|
|
@@ -71,6 +71,11 @@
|
|
|
71
71
|
paints something readable. */
|
|
72
72
|
--phase-color: var(--muted-foreground);
|
|
73
73
|
--phase-color-label: var(--muted-foreground);
|
|
74
|
+
|
|
75
|
+
/* AV.W16 TW3 — inline-size container named `chassis` so the dial reflow
|
|
76
|
+
below reads the chassis's OWN box, not the viewport (portable into a
|
|
77
|
+
narrow host). */
|
|
78
|
+
container: chassis / inline-size;
|
|
74
79
|
}
|
|
75
80
|
|
|
76
81
|
.dark .instrument-chassis {
|
|
@@ -286,10 +291,12 @@
|
|
|
286
291
|
align-self: stretch;
|
|
287
292
|
}
|
|
288
293
|
|
|
289
|
-
/*
|
|
290
|
-
a vertical groove (
|
|
291
|
-
|
|
292
|
-
|
|
294
|
+
/* Narrow-box reflow — dial stacks vertically; the inner divider rotates
|
|
295
|
+
from a vertical groove (wide) to a horizontal groove (narrow). AV.W16 TW3
|
|
296
|
+
— keyed off the `chassis` container (above), not the viewport, so a
|
|
297
|
+
narrow-host chassis stacks off ITS box. 45rem ≈ 720px at the 16px root
|
|
298
|
+
(the prior viewport cadence as a box width). */
|
|
299
|
+
@container chassis (max-width: 44.9375rem) {
|
|
293
300
|
.instrument-chassis .instrument-dial {
|
|
294
301
|
grid-template-columns: 1fr;
|
|
295
302
|
/* R0G-2 (AO.W3) — reserve the dial's FINAL box from frame 0. The
|
package/src/styles/theme.css
CHANGED
|
@@ -4,9 +4,52 @@
|
|
|
4
4
|
* Maps every CSS custom property from tokens.css + typography.css to a
|
|
5
5
|
* Tailwind utility-generating token. References vars (not literals) so
|
|
6
6
|
* consumers can override at :root / .dark without rebuilding Tailwind.
|
|
7
|
+
*
|
|
8
|
+
* Three blocks (AV.W16 TW1):
|
|
9
|
+
* - LEADING plain `@theme`: the radius primitives + the radius semantic
|
|
10
|
+
* aliases. Plain (not inline) on purpose — the radius scale has no
|
|
11
|
+
* tokens.css twin, so each `--radius-*` is the lone declaration + single
|
|
12
|
+
* override point. Inline is WRONG here: it substitutes the VALUE, so two
|
|
13
|
+
* aliases resolving to one primitive (`--radius-card`/`--radius-dialog`
|
|
14
|
+
* both → `--radius-2xl`) collapse to an identical value and v4 drops one
|
|
15
|
+
* `rounded-*` utility when both are scanned. Plain mints each alias's own
|
|
16
|
+
* var, so value-identical siblings never collide.
|
|
17
|
+
* - `@theme inline`: the tokens.css `var(--token)` BRIDGES (color/shadow/
|
|
18
|
+
* blur/duration/ease/typography). Inline substitutes the referenced value
|
|
19
|
+
* and mints no second var, so the tokens.css token stays the single
|
|
20
|
+
* override point (plain would emit `--color-primary` AND `--primary`).
|
|
21
|
+
* Guardrail: NEVER `@property`-register a color token — registration
|
|
22
|
+
* snapshots the value and breaks light-dark() (see below).
|
|
23
|
+
* - trailing plain `@theme`: the remaining literals (`--animate-*`, opacity).
|
|
7
24
|
*/
|
|
8
25
|
|
|
26
|
+
/* Radius primitives — leading plain @theme (declared before the inline aliases
|
|
27
|
+
reference them; see the order note above). */
|
|
9
28
|
@theme {
|
|
29
|
+
--radius: 0.625rem;
|
|
30
|
+
--radius-xs: 4px;
|
|
31
|
+
--radius-sm: 4px;
|
|
32
|
+
--radius-md: 6px;
|
|
33
|
+
--radius-xl: 12px;
|
|
34
|
+
--radius-2xl: 1rem;
|
|
35
|
+
--radius-pill: 9999px;
|
|
36
|
+
|
|
37
|
+
/* Semantic radius aliases — plain @theme (not inline; see header note).
|
|
38
|
+
Value-identical siblings (e.g. --radius-card + --radius-dialog) would
|
|
39
|
+
collapse + drop a rounded-* utility under inline; plain mints each
|
|
40
|
+
alias's own var. */
|
|
41
|
+
--radius-lg: var(--radius);
|
|
42
|
+
--radius-card: var(--radius-2xl);
|
|
43
|
+
--radius-panel: var(--radius-xl);
|
|
44
|
+
--radius-dialog: var(--radius-2xl);
|
|
45
|
+
--radius-input: var(--radius);
|
|
46
|
+
--radius-button: var(--radius);
|
|
47
|
+
--radius-badge: var(--radius-pill);
|
|
48
|
+
--radius-dock: var(--radius-pill);
|
|
49
|
+
--radius-tooltip: var(--radius-lg);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@theme inline {
|
|
10
53
|
/* ═══════════════════════════════════════════════
|
|
11
54
|
Typography — size scale → text-* utilities
|
|
12
55
|
═══════════════════════════════════════════════ */
|
|
@@ -71,6 +114,12 @@
|
|
|
71
114
|
|
|
72
115
|
--color-muted: var(--muted);
|
|
73
116
|
--color-muted-foreground: var(--muted-foreground);
|
|
117
|
+
/* AU.W8b.4 — the muted-foreground-strong bridge (text-muted-foreground-strong
|
|
118
|
+
utility). The base token already exists (tokens.css:362); only the
|
|
119
|
+
--color-muted-foreground bridge was present. CardDescription consumes
|
|
120
|
+
text-muted-foreground-strong through this. NOT @property-registered (a
|
|
121
|
+
design-token color; registration would break light-dark() re-resolution). */
|
|
122
|
+
--color-muted-foreground-strong: var(--muted-foreground-strong);
|
|
74
123
|
|
|
75
124
|
--color-accent: var(--accent);
|
|
76
125
|
--color-accent-foreground: var(--accent-foreground);
|
|
@@ -100,6 +149,15 @@
|
|
|
100
149
|
--color-muted-soft: var(--muted-soft);
|
|
101
150
|
--color-muted-medium: var(--muted-medium);
|
|
102
151
|
|
|
152
|
+
/* AU.W8b.4 — glass-tier surface/border bridges (bg-glass-quiet /
|
|
153
|
+
border-glass-quiet). Companions to the existing --shadow-glass-quiet
|
|
154
|
+
bridge below; lets the Toggle `card` variant compose bg-glass-quiet /
|
|
155
|
+
border-glass-quiet / shadow-glass-quiet instead of bg-[var(--glass-…)]
|
|
156
|
+
arbitrary wraps. NOT @property-registered (design-token colors —
|
|
157
|
+
registration snapshots the resolved color + breaks light-dark()). */
|
|
158
|
+
--color-glass-quiet: var(--glass-bg-quiet);
|
|
159
|
+
--color-glass-border-quiet: var(--glass-border-quiet);
|
|
160
|
+
|
|
103
161
|
/* Foreground-tint rungs — bg-surface-tint-{4,6,8,10,12,15,18,22,25}. */
|
|
104
162
|
--color-surface-tint-4: var(--surface-tint-4);
|
|
105
163
|
--color-surface-tint-6: var(--surface-tint-6);
|
|
@@ -206,27 +264,10 @@
|
|
|
206
264
|
--z-index-toggle: var(--z-toggle);
|
|
207
265
|
--z-index-max: var(--z-max);
|
|
208
266
|
|
|
209
|
-
/*
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
--radius-xs: 4px;
|
|
214
|
-
--radius-sm: 4px;
|
|
215
|
-
--radius-md: 6px;
|
|
216
|
-
--radius-lg: var(--radius);
|
|
217
|
-
--radius-xl: 12px;
|
|
218
|
-
--radius-2xl: 1rem;
|
|
219
|
-
--radius-pill: 9999px;
|
|
220
|
-
|
|
221
|
-
/* Semantic radius — point at primitives from tokens.css; no self-reference */
|
|
222
|
-
--radius-card: var(--radius-2xl);
|
|
223
|
-
--radius-panel: var(--radius-xl);
|
|
224
|
-
--radius-dialog: var(--radius-2xl);
|
|
225
|
-
--radius-input: var(--radius);
|
|
226
|
-
--radius-button: var(--radius);
|
|
227
|
-
--radius-badge: var(--radius-pill);
|
|
228
|
-
--radius-dock: var(--radius-pill);
|
|
229
|
-
--radius-tooltip: var(--radius-lg);
|
|
267
|
+
/* The radius PRIMITIVES + the semantic radius aliases (→ rounded-*
|
|
268
|
+
utilities) live in the LEADING plain @theme block above — plain, not
|
|
269
|
+
inline, so value-identical aliases never collide during candidate
|
|
270
|
+
resolution. See the order/collision note there. */
|
|
230
271
|
|
|
231
272
|
/* ═══════════════════════════════════════════════
|
|
232
273
|
Sizing → h-*, min-w-*, and spacing utilities
|
|
@@ -236,6 +277,8 @@
|
|
|
236
277
|
--height-chart-large: var(--chart-height-large);
|
|
237
278
|
--min-width-input-sm: var(--input-min-width-sm);
|
|
238
279
|
--spacing-chart-margin: var(--chart-margin);
|
|
280
|
+
/* AU.W8b.4 — w-popover utility (Combobox list width). Lifts `w-[200px]`. */
|
|
281
|
+
--width-popover: var(--popover-width);
|
|
239
282
|
|
|
240
283
|
/* Golden-ratio spacing — p-phi-5 / m-phi-6 etc. via Tailwind's spacing
|
|
241
284
|
utilities. φ² and φ³ rungs for hero/chassis padding ladder. */
|
|
@@ -316,7 +359,16 @@
|
|
|
316
359
|
--transition-duration-xl: var(--duration-xl);
|
|
317
360
|
--transition-duration-xxl: var(--duration-xxl);
|
|
318
361
|
--transition-duration-sparkle: var(--duration-sparkle);
|
|
362
|
+
}
|
|
319
363
|
|
|
364
|
+
/* ═══════════════════════════════════════════════════════════════════════
|
|
365
|
+
Directly-authored LITERALS — plain @theme (the override surface here is
|
|
366
|
+
the namespaced var itself, not a tokens.css bridge, so these mint their
|
|
367
|
+
global variable). Radius primitives, the --animate-* composites (literal
|
|
368
|
+
keyframe name + var() timing — no tokens.css twin to double), and the
|
|
369
|
+
opacity rungs.
|
|
370
|
+
═══════════════════════════════════════════════════════════════════════ */
|
|
371
|
+
@theme {
|
|
320
372
|
/* ═══════════════════════════════════════════════
|
|
321
373
|
Animation → animate-* utilities
|
|
322
374
|
═══════════════════════════════════════════════ */
|