@mkbabb/glass-ui 3.11.2 → 3.13.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-DuArVky-.js → CardAction-Cj2eycQ2.js} +2 -2
- package/dist/{CommandShortcut-CefCj5mt.js → CommandShortcut-RowNEO6i.js} +4 -4
- package/dist/{ContextMenuSubContent-Bhg4f5jX.js → ContextMenuSubContent-BQmxTAdw.js} +4 -4
- package/dist/{DataTable-CUHMukiQ.js → DataTable-BCddn3T3.js} +3 -3
- package/dist/{DialogContent-BRkT1cjP.js → DialogContent-Dl9WkAoS.js} +3 -3
- package/dist/{DialogFooter-Gprw8H_A.js → DialogFooter-Blu4t7tJ.js} +2 -2
- package/dist/{HoverPopover-2LOIW34a.js → HoverPopover-CISOJQuZ.js} +1 -1
- package/dist/{IconTooltip-Cus0fvK0.js → IconTooltip-DPzE09X9.js} +1 -1
- package/dist/MetricBadge-C9QMz1KT.js +79 -0
- package/dist/{Notification-DLMhblXR.js → Notification-DdwNxIrI.js} +2 -2
- package/dist/{NumberFieldContent-BbLOh8RU.js → NumberFieldContent-CqaN-SvN.js} +3 -3
- package/dist/{PopoverContent-BId6ggf_.js → PopoverContent-BYwt2-4x.js} +1 -1
- package/dist/{ScrollingText-BPP84wKo.js → ScrollingText-DfFrwSph.js} +1 -1
- package/dist/{SelectScrollDownButton-T32cVFeM.js → SelectScrollDownButton-CiDUxfEj.js} +6 -6
- package/dist/{Switch-Ch-k3Rv-.js → Switch-CsIuYP_e.js} +1 -1
- package/dist/{TabsList-B8CVOQPC.js → TabsList-Dttss653.js} +9 -5
- package/dist/{Toaster-1rYWrmAm.js → Toaster-D6q4HtXu.js} +50 -47
- package/dist/{ToggleGroupItem-COu_4IW4.js → ToggleGroupItem-D_AHlRw9.js} +18 -22
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +5 -2
- package/dist/api.js +2 -2
- package/dist/aurora.js +69 -69
- package/dist/{badge-CaoFJzRb.js → badge-UILT_3pZ.js} +1 -1
- package/dist/badge.js +1 -1
- package/dist/{button-DN39cGqL.js → button-ChXMfsud.js} +12 -12
- package/dist/button.js +1 -1
- package/dist/card.js +1 -1
- package/dist/carousel.js +8 -8
- package/dist/{check-BBKKKSTf.js → check-njhk-vfu.js} +1 -1
- package/dist/{chevron-down-BSkTP2aL.js → chevron-down-DKkxb4VV.js} +1 -1
- package/dist/{chevron-right-sDM0Yvrf.js → chevron-right-CPXbqQQz.js} +1 -1
- package/dist/{chevron-up-CCOD_FTz.js → chevron-up-n_24SqI-.js} +1 -1
- package/dist/coalesceMetric-5qIeZnTx.js +13 -0
- package/dist/{color-C5ls_QF7.js → color-CUYeFbgd.js} +9 -7
- package/dist/color.js +1 -1
- package/dist/command.js +1 -1
- package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +8 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +5 -62
- package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +1 -1
- package/dist/components/custom/aurora/constants/shaders/vangogh-medium.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/index.d.ts +1 -1
- package/dist/components/custom/configurator/ConfiguratorRow.vue.d.ts +16 -0
- package/dist/components/custom/constellation/Constellation.vue.d.ts +74 -6
- package/dist/components/custom/constellation/composables/createConstellationField.d.ts +41 -0
- package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +35 -0
- package/dist/components/custom/constellation/constants.d.ts +61 -0
- package/dist/components/custom/constellation/constellationDraw.d.ts +30 -0
- package/dist/components/custom/constellation/constellationField.d.ts +116 -149
- package/dist/components/custom/constellation/constellationInteraction.d.ts +132 -0
- package/dist/components/custom/constellation/index.d.ts +5 -2
- package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +11 -0
- package/dist/components/custom/dock/DockRail.vue.d.ts +88 -0
- package/dist/components/custom/dock/DockTabButton.vue.d.ts +3 -4
- package/dist/components/custom/dock/GlassDock.vue.d.ts +5 -118
- package/dist/components/custom/dock/composables/dockMorphContext.d.ts +36 -0
- package/dist/components/custom/dock/composables/index.d.ts +1 -0
- package/dist/components/custom/dock/composables/useDockClickIntegrity.d.ts +23 -0
- package/dist/components/custom/dock/composables/useDockMorphWindow.d.ts +15 -0
- package/dist/components/custom/dock/composables/useDockOrientationMorph.d.ts +44 -0
- package/dist/components/custom/dock/composables/useDockShellProps.d.ts +165 -0
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +44 -0
- package/dist/components/custom/dock/constants.d.ts +48 -0
- package/dist/components/custom/dock/index.d.ts +3 -0
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +5 -37
- package/dist/components/custom/fourier-field/index.d.ts +1 -1
- package/dist/components/custom/fourier-field/math.d.ts +17 -0
- package/dist/components/custom/fourier-field/presets.d.ts +54 -0
- package/dist/components/custom/goo-blob/composables/buildMetaballProgram.d.ts +18 -0
- package/dist/components/custom/goo-blob/composables/uploadBlobUniforms.d.ts +41 -0
- package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +4 -3
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +11 -8
- package/dist/components/custom/goo-blob/constants.d.ts +52 -0
- package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -0
- package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +2 -2
- package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +37 -0
- package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +6 -0
- package/dist/components/custom/labeled-field/LabeledSlider.vue.d.ts +6 -0
- package/dist/components/custom/labeled-field/LabeledSwitch.vue.d.ts +6 -0
- package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +11 -18
- package/dist/components/custom/metric-badge/index.d.ts +1 -0
- package/dist/components/custom/metric-cell/MetricCell.vue.d.ts +15 -4
- package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +6 -4
- package/dist/components/custom/tabs/constants.d.ts +12 -0
- package/dist/components/custom/underline/GlassUnderline.vue.d.ts +84 -0
- package/dist/components/custom/underline/index.d.ts +2 -0
- package/dist/components/custom/underline/types.d.ts +56 -0
- package/dist/components/ui/card/Card.vue.d.ts +15 -3
- package/dist/components/ui/drawer/Drawer.vue.d.ts +1 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +2 -2
- package/dist/components/ui/metric-pill/MetricPill.vue.d.ts +6 -3
- package/dist/components/ui/slider/index.d.ts +22 -19
- package/dist/components/ui/tabs/TabsIndicator.vue.d.ts +4 -1
- package/dist/components/ui/toast/use-toast.d.ts +2 -2
- 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/ToggleGroup.vue.d.ts +1 -7
- package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +1 -3
- package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +0 -13
- package/dist/composables/color/index.d.ts +12 -0
- package/dist/composables/dark/index.d.ts +1 -1
- package/dist/composables/dark/useGlobalDark.d.ts +1 -21
- package/dist/composables/glass/index.d.ts +0 -1
- package/dist/composables/glass/useGlassBackdropLuminance.d.ts +59 -0
- package/dist/composables/glass/useSpecularTracking.d.ts +12 -3
- package/dist/composables/motion/core/index.d.ts +1 -1
- package/dist/composables/motion/curves.d.ts +48 -0
- package/dist/composables/motion/index.d.ts +2 -0
- package/dist/composables/motion/springPresets.d.ts +33 -0
- package/dist/composables/motion/suite.d.ts +2 -0
- package/dist/composables/motion/useLiquidFlex.d.ts +85 -0
- package/dist/composables/motion/useSpringMount.d.ts +1 -1
- package/dist/configurator.js +1 -1
- package/dist/confirm-dialog.js +2 -2
- package/dist/constellation.js +336 -222
- package/dist/context-menu.js +2 -2
- package/dist/controls.js +47 -13
- package/dist/dark.d.ts +1 -1
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/dialog.js +2 -2
- package/dist/dock.js +705 -365
- package/dist/dockContext-BegmJVmx.js +17 -0
- package/dist/dom.js +5 -5
- package/dist/{dropdown-menu-D77jX6Df.js → dropdown-menu-DzkkyBwX.js} +11 -8
- package/dist/dropdown-menu.js +1 -1
- package/dist/expandable-container.js +39 -80
- package/dist/forms.js +5 -5
- package/dist/fourier-field.js +134 -99
- package/dist/fourier-math.js +2 -2
- package/dist/glass-panel.js +86 -20
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +222 -212
- package/dist/goo-blob.js +243 -212
- 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 -3
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +28 -18
- package/dist/{math-DTpRVC0e.js → math-U6-RrLmV.js} +18 -2
- package/dist/metric-badge.js +1 -1
- package/dist/metric-cell.js +25 -21
- package/dist/metric-stack.js +35 -34
- package/dist/{minimize-2-lcXOuc6V.js → minimize-2-BV31Ob_h.js} +1 -1
- package/dist/motion-core.js +32 -137
- package/dist/motion-curves.d.ts +1 -0
- package/dist/motion-curves.js +130 -0
- package/dist/motion.js +38 -37
- 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-BP_ALM0m.js → presets-BKVyQfbt.js} +1 -14
- package/dist/progress.js +1 -1
- package/dist/reactive.js +2 -2
- package/dist/scrolling-text.js +1 -1
- package/dist/{search-nbkvr2dC.js → search-BSGrf2Sk.js} +1 -1
- package/dist/search.js +9 -9
- package/dist/select.js +3 -3
- package/dist/separator.js +1 -1
- package/dist/{sheet-VZEtNFvO.js → sheet-1fChZjtw.js} +3 -3
- package/dist/sheet.js +1 -1
- package/dist/{slider-ClgpP7EB.js → slider-B-JP2JlI.js} +4 -4
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +2 -2
- package/dist/springPresets--YdWTHtm.js +40 -0
- package/dist/stacked-icons.js +6 -6
- package/dist/styles/animations.css +29 -114
- package/dist/styles/cards.css +55 -0
- package/dist/styles/components.css +4 -1
- package/dist/styles/configurator.css +42 -0
- package/dist/styles/dock/layer-group.css +83 -25
- package/dist/styles/dock/layers.css +23 -1
- package/dist/styles/dock/morph-bridge.css +123 -0
- package/dist/styles/dock/morph.css +175 -45
- package/dist/styles/dock/overflow.css +51 -1
- package/dist/styles/dock/rail-extend.css +300 -0
- package/dist/styles/dock/shell.css +63 -105
- package/dist/styles/dock-controls/dark-mode-toggle.css +109 -0
- package/dist/styles/dock-controls/icon-button.css +133 -0
- package/dist/styles/dock-controls/tab-button.css +202 -0
- package/dist/styles/dock-controls/touch-floor.css +94 -0
- package/dist/styles/dock-controls/triggers.css +128 -0
- package/dist/styles/dock-controls.css +30 -595
- package/dist/styles/dock.css +2 -0
- package/dist/styles/drawer.css +2 -0
- package/dist/styles/floating-panel.css +17 -0
- package/dist/styles/glass/a11y-fallback.css +245 -0
- package/dist/styles/glass/ladder.css +337 -0
- package/dist/styles/glass/material.css +238 -0
- package/dist/styles/glass/progress-rail.css +78 -0
- package/dist/styles/glass/squircle.css +66 -0
- package/dist/styles/glass/surfaces.css +306 -0
- package/dist/styles/glass-refract.css +2 -0
- package/dist/styles/glass.css +31 -1188
- package/dist/styles/hover-popover.css +2 -0
- package/dist/styles/index.css +28 -14
- package/dist/styles/instrument-chassis.css +4 -0
- package/dist/styles/paper.css +2 -68
- package/dist/styles/segmented-tabs.css +275 -0
- package/dist/styles/theme/bridges.css +337 -0
- package/dist/styles/theme/dark.css +7 -0
- package/dist/styles/theme/literals.css +94 -0
- package/dist/styles/theme/radius.css +95 -0
- package/dist/styles/theme.css +26 -529
- package/dist/styles/tokens/color-radius.css +260 -0
- package/dist/styles/tokens/dark-arm.css +200 -0
- package/dist/styles/tokens/glass.css +440 -0
- package/dist/styles/tokens/light-dark.css +158 -0
- package/dist/styles/tokens/offsets-sizing.css +500 -0
- package/dist/styles/tokens/property-regs.css +169 -0
- package/dist/styles/tokens/scale-paper.css +366 -0
- package/dist/styles/tokens/scheme-motion.css +334 -0
- package/dist/styles/tokens/shadow.css +166 -0
- package/dist/styles/tokens.css +22 -2360
- package/dist/styles/typography.css +75 -21
- package/dist/styles/utilities/a11y-overrides.css +140 -0
- package/dist/styles/utilities/animate.css +26 -0
- package/dist/styles/utilities/base.css +365 -0
- package/dist/styles/utilities/btn.css +401 -0
- package/dist/styles/utilities/components.css +317 -0
- package/dist/styles/utilities.css +19 -1291
- package/dist/styles/view-transition.css +0 -51
- package/dist/switch.js +1 -1
- package/dist/tabs.js +91 -82
- package/dist/timeline.js +1 -1
- package/dist/toast.js +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/underline.d.ts +1 -0
- package/dist/underline.js +85 -0
- package/dist/{useAnimatedNumber-Bcpy5Etf.js → useAnimatedNumber-C5I3wWd8.js} +1 -1
- package/dist/{useConfiguratorState-DxAqksK6.js → useConfiguratorState-DAoeHVue.js} +8 -8
- package/dist/{useGlobalDark-CAhOXNLO.js → useGlobalDark-yhL4Wp-s.js} +3 -22
- package/dist/useLiquidFlex-BL0lLLN2.js +30 -0
- package/dist/useRAFLoop-Bxv0o6L5.js +109 -0
- package/dist/{useScrollProgress-CffFGLa5.js → useScrollProgress-Dlvx-L3v.js} +1 -1
- package/dist/useSpecularTracking-Bo5su68i.js +32 -0
- package/dist/useSpringMount-CI2jOstM.js +108 -0
- package/dist/{useTouchGate-WFyJYsth.js → useTouchGate-Dg7MQI1G.js} +1 -1
- package/dist/utils/coalesceMetric.d.ts +29 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/vReveal-CqaCz_mC.js +44 -0
- package/dist/watercolor-dot.js +11 -9
- package/dist/{x-Dfsegz9Y.js → x-BUwTKe50.js} +1 -1
- package/package.json +78 -58
- package/src/styles/animations.css +29 -114
- package/src/styles/cards.css +53 -0
- package/src/styles/configurator.css +42 -0
- package/src/styles/dock/layer-group.css +83 -25
- package/src/styles/dock/layers.css +23 -1
- package/src/styles/dock/morph-bridge.css +123 -0
- package/src/styles/dock/morph.css +175 -45
- package/src/styles/dock/overflow.css +51 -1
- package/src/styles/dock/rail-extend.css +300 -0
- package/src/styles/dock/shell.css +63 -105
- package/src/styles/dock-controls/dark-mode-toggle.css +109 -0
- package/src/styles/dock-controls/icon-button.css +133 -0
- package/src/styles/dock-controls/tab-button.css +202 -0
- package/src/styles/dock-controls/touch-floor.css +94 -0
- package/src/styles/dock-controls/triggers.css +128 -0
- package/src/styles/dock-controls.css +30 -595
- package/src/styles/dock.css +2 -0
- package/src/styles/floating-panel.css +15 -0
- package/src/styles/glass/a11y-fallback.css +245 -0
- package/src/styles/glass/ladder.css +337 -0
- package/src/styles/glass/material.css +238 -0
- package/src/styles/glass/progress-rail.css +78 -0
- package/src/styles/glass/squircle.css +66 -0
- package/src/styles/glass/surfaces.css +306 -0
- package/src/styles/glass.css +31 -1188
- package/src/styles/index.css +28 -14
- package/src/styles/paper.css +2 -68
- package/src/styles/segmented-tabs.css +271 -0
- package/src/styles/theme/bridges.css +337 -0
- package/src/styles/theme/dark.css +7 -0
- package/src/styles/theme/literals.css +94 -0
- package/src/styles/theme/radius.css +95 -0
- package/src/styles/theme.css +26 -529
- package/src/styles/tokens/color-radius.css +260 -0
- package/src/styles/tokens/dark-arm.css +200 -0
- package/src/styles/tokens/glass.css +440 -0
- package/src/styles/tokens/light-dark.css +158 -0
- package/src/styles/tokens/offsets-sizing.css +500 -0
- package/src/styles/tokens/property-regs.css +169 -0
- package/src/styles/tokens/scale-paper.css +366 -0
- package/src/styles/tokens/scheme-motion.css +334 -0
- package/src/styles/tokens/shadow.css +166 -0
- package/src/styles/tokens.css +22 -2360
- package/src/styles/typography.css +75 -21
- package/src/styles/utilities/a11y-overrides.css +140 -0
- package/src/styles/utilities/animate.css +26 -0
- package/src/styles/utilities/base.css +365 -0
- package/src/styles/utilities/btn.css +401 -0
- package/src/styles/utilities/components.css +317 -0
- package/src/styles/utilities.css +19 -1291
- package/src/styles/view-transition.css +0 -51
- package/dist/DeckProgress-Dmk4_AKN.js +0 -23
- package/dist/InstrumentRail-CUJ05YVG.js +0 -44
- package/dist/MetricBadge-BZVWIxNy.js +0 -80
- package/dist/components/custom/deck-progress/DeckProgress.vue.d.ts +0 -27
- package/dist/components/custom/deck-progress/index.d.ts +0 -2
- package/dist/components/custom/dialog-native/GlassDialogNative.vue.d.ts +0 -57
- package/dist/components/custom/dialog-native/index.d.ts +0 -1
- package/dist/components/custom/handmark/HandMark.vue.d.ts +0 -29
- package/dist/components/custom/handmark/brush.d.ts +0 -242
- package/dist/components/custom/handmark/freehand.d.ts +0 -69
- package/dist/components/custom/handmark/geometry.d.ts +0 -50
- package/dist/components/custom/handmark/index.d.ts +0 -21
- package/dist/components/custom/handmark/ink.d.ts +0 -11
- package/dist/components/custom/handmark/texture.d.ts +0 -39
- package/dist/components/custom/handmark/types.d.ts +0 -53
- package/dist/components/custom/handmark/useHandMark.d.ts +0 -87
- package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +0 -91
- package/dist/components/custom/instrument-rail/index.d.ts +0 -2
- package/dist/composables/motion/useRouteTransition.d.ts +0 -42
- package/dist/deck-progress.d.ts +0 -1
- package/dist/deck-progress.js +0 -2
- package/dist/dockContext-BKeIMmNk.js +0 -9
- package/dist/handmark.d.ts +0 -1
- package/dist/handmark.js +0 -663
- package/dist/instrument-rail.d.ts +0 -1
- package/dist/instrument-rail.js +0 -2
- package/dist/styles/instrument-rail.css +0 -127
- package/dist/useGlassRenderer-D7YGOYiM.js +0 -69
- package/dist/useSpecularTracking-BVRZsRHA.js +0 -26
- package/dist/useSpringMount-BJSHcLl3.js +0 -113
- package/dist/useViewTransition-DaN5Zrox.js +0 -21
- package/dist/vReveal-zUIQk-rJ.js +0 -53
- package/src/styles/instrument-rail.css +0 -127
- /package/dist/{ContextMenuContent-DDa0v27s.js → ContextMenuContent-CT3AS1WX.js} +0 -0
- /package/dist/{HoverCardContent-B6CcQ8He.js → HoverCardContent-Csywg3YF.js} +0 -0
- /package/dist/{Input-xuDwALQR.js → Input-DWQQIOC4.js} +0 -0
- /package/dist/{InstrumentChassis-C2f6cBaQ.js → InstrumentChassis-UUJX0-mW.js} +0 -0
- /package/dist/{Label-zRfbQdCn.js → Label-r3WzWrsj.js} +0 -0
- /package/dist/{ModalOverlay-B1GkAjNb.js → ModalOverlay-DVLI2VRr.js} +0 -0
- /package/dist/{PaperBackdrop-CqwjnfLv.js → PaperBackdrop-DIXTtVq6.js} +0 -0
- /package/dist/{Progress-iEuD9pxG.js → Progress-DwlUKGbr.js} +0 -0
- /package/dist/{SelectGroup-BFiod7X2.js → SelectGroup-aumMgWLs.js} +0 -0
- /package/dist/{SelectSeparator-C4Ql0gzV.js → SelectSeparator-BQ_1Fcbp.js} +0 -0
- /package/dist/{Separator-D7sD7RKj.js → Separator-0JE6LtNu.js} +0 -0
- /package/dist/{TooltipProvider-CmZzCuaG.js → TooltipProvider-B3MkB_8P.js} +0 -0
- /package/dist/{compile-BOXjLUxu.js → compile-B7NGOBcP.js} +0 -0
- /package/dist/{constants-yKeKnE84.js → constants-CS75AWHG.js} +0 -0
- /package/dist/{createContext-B44Sah_H.js → createContext-BM46COQ-.js} +0 -0
- /package/dist/{createLucideIcon-B6uNAU9G.js → createLucideIcon-DydS2qgk.js} +0 -0
- /package/dist/{menuItemVariants-CCoBNkU5.js → menuItemVariants-DPiEarb0.js} +0 -0
- /package/dist/{supportsCssTimeline-C5oe0lnD.js → supportsCssTimeline-BWenxvHU.js} +0 -0
- /package/dist/{useIntersectionPause-Cck5Uxk8.js → useIntersectionPause-Cc-H9ees.js} +0 -0
- /package/dist/{useInterval-Dsmqwi03.js → useInterval-iHludrxk.js} +0 -0
- /package/dist/{useKeyboardShortcuts-CyIYrndH.js → useKeyboardShortcuts-Be3w_Rwk.js} +0 -0
- /package/dist/{useResizeObserver-CWCbk5Px.js → useResizeObserver-BhgdhOIj.js} +0 -0
- /package/dist/{useResolveTokenColor-r9pnNjqK.js → useResolveTokenColor-Dvn2RZJW.js} +0 -0
- /package/dist/{useSortable-C8ReQ50P.js → useSortable-muI29agz.js} +0 -0
- /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-DmRYkOBx.js} +0 -0
- /package/dist/{useTimer-3xqf_54b.js → useTimer-Dzarvzuk.js} +0 -0
- /package/dist/{useUserInvalidAria-DoJKMZ3s.js → useUserInvalidAria-B2h6jAM_.js} +0 -0
- /package/dist/{useViewportReady-RIr5Wgkh.js → useViewportReady-B40FK4Pa.js} +0 -0
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
/* tokens/scheme-motion.css
|
|
2
|
+
§-1 color-scheme · §0 font · §1 duration · §2 easing (spring linear()) · §2.A ambient-motion · §2.B/§2.C · §3 z-index.
|
|
3
|
+
Carved from the tokens.css cascade root; @import-ed by tokens.css in
|
|
4
|
+
cascade order. Same :root cascade context as its siblings. */
|
|
5
|
+
:root {
|
|
6
|
+
/* ═══════════════════════════════════════════════
|
|
7
|
+
§-1 COLOR-SCHEME (AQ.W2 §1)
|
|
8
|
+
|
|
9
|
+
Lets native UI (scrollbars, spinbuttons, form-control chrome, the
|
|
10
|
+
default focus ring) honor the OS preference when the consumer has
|
|
11
|
+
NOT pinned a `.dark` class. glass-ui's dark mode is class-driven
|
|
12
|
+
(`.dark`, theme.css `@variant dark`), so `.dark` overrides to a hard
|
|
13
|
+
`dark` regardless of OS — but absent the class, native chrome should
|
|
14
|
+
still track `prefers-color-scheme`. `light dark` (not `only light`)
|
|
15
|
+
on `:root` delivers that; `.dark` hard-pins `dark`.
|
|
16
|
+
|
|
17
|
+
Baseline Widely Available → adopt natively, no `@supports` guard
|
|
18
|
+
(older engines ignore the property and keep default-light chrome).
|
|
19
|
+
`accent-color` (AQ.W2 §4) is the companion native-control brand;
|
|
20
|
+
both are inherited built-in <color>/keyword properties re-specified
|
|
21
|
+
inside `.dark`. The `--accent-color` token is defined in the §5
|
|
22
|
+
color block below (custom properties resolve order-independently).
|
|
23
|
+
═══════════════════════════════════════════════ */
|
|
24
|
+
color-scheme: light dark;
|
|
25
|
+
accent-color: var(--accent-color);
|
|
26
|
+
|
|
27
|
+
/* ═══════════════════════════════════════════════
|
|
28
|
+
§0 FONT TOKEN SOURCE-OF-TRUTH
|
|
29
|
+
|
|
30
|
+
The single authoritative declaration of the library's font register.
|
|
31
|
+
theme.css bridges each --font-stack-* to its Tailwind --font-* namespace
|
|
32
|
+
var; typography.css consumes the bridged --font-* names. The public
|
|
33
|
+
runtime knobs remain --font-*, --leading-*, --tracking-*.
|
|
34
|
+
|
|
35
|
+
ONE brand register: Plus Jakarta Sans (text + display) + Fira Code (mono).
|
|
36
|
+
--font-stack-text drives the body/heading/prose/display register — the
|
|
37
|
+
library DEFAULT is the register every live surface paints (the demo +
|
|
38
|
+
speedtest render Plus Jakarta everywhere). The calibrated "Plus Jakarta
|
|
39
|
+
Sans Fallback" / "Fira Code Fallback" faces (declared in typography.css)
|
|
40
|
+
wrap the system stacks with Capsize metric overrides so the swap window
|
|
41
|
+
is geometry-neutral (zero CLS). --font-stack-display aliases the text
|
|
42
|
+
register: there is no separate display-serif voice. */
|
|
43
|
+
--font-stack-text: "Plus Jakarta Sans", "Plus Jakarta Sans Fallback", system-ui, sans-serif;
|
|
44
|
+
--font-stack-display: var(--font-stack-text);
|
|
45
|
+
--font-stack-sans: var(--font-stack-text);
|
|
46
|
+
--font-stack-mono: "Fira Code", "Fira Code Fallback", "Fira Mono", monospace;
|
|
47
|
+
|
|
48
|
+
--type-leading-micro: 1.2;
|
|
49
|
+
--type-leading-caption: 1.3;
|
|
50
|
+
--type-leading-small: 1.4;
|
|
51
|
+
--type-leading-body: 1.5;
|
|
52
|
+
--type-leading-prose: 1.618;
|
|
53
|
+
--type-leading-heading: 1.2;
|
|
54
|
+
--type-leading-display: 1.1;
|
|
55
|
+
|
|
56
|
+
--type-tracking-tight: -0.025em;
|
|
57
|
+
--type-tracking-snug: -0.01em;
|
|
58
|
+
--type-tracking-normal: 0;
|
|
59
|
+
--type-tracking-wide: 0.025em;
|
|
60
|
+
--type-tracking-wider: 0.05em;
|
|
61
|
+
--type-tracking-caps: 0.1em;
|
|
62
|
+
|
|
63
|
+
/* ═══════════════════════════════════════════════
|
|
64
|
+
§1 DURATION
|
|
65
|
+
═══════════════════════════════════════════════ */
|
|
66
|
+
--duration-instant: 0.1s;
|
|
67
|
+
--duration-fast: 0.2s;
|
|
68
|
+
--duration-normal: 0.3s;
|
|
69
|
+
--duration-slow: 0.45s;
|
|
70
|
+
--duration-panel: 0.55s;
|
|
71
|
+
--duration-xl: 1s;
|
|
72
|
+
--duration-xxl: 1.5s;
|
|
73
|
+
--duration-shimmer-fast: 3s;
|
|
74
|
+
--duration-shimmer: 5s;
|
|
75
|
+
/* Sparkle micro-event — primary-CTA disco-grain sparkle sweep, success
|
|
76
|
+
affirmations. R5 vocab.γ gap row 3 (single-site at dock.css:735 today,
|
|
77
|
+
reserved for J.W2.7 §17 audacious-CTA buildout). */
|
|
78
|
+
--duration-sparkle: 600ms;
|
|
79
|
+
|
|
80
|
+
/* AH.W5-e (FA-8 §4d) — motion-duration + staged-reveal canon.
|
|
81
|
+
|
|
82
|
+
Six duration tokens + three delay tokens promoted from raw literals
|
|
83
|
+
at speedtest's celebratory-reveal SFCs (SpeedtestResults, ThankYou,
|
|
84
|
+
ResultStack, CompleteBadge). Unified under the `--motion-*`
|
|
85
|
+
namespace (parallel to `--motion-ease-*`) so all motion tokens
|
|
86
|
+
cluster at one canon — duration + easing arm together. */
|
|
87
|
+
|
|
88
|
+
/* Staged-entrance pairing — opacity + transform Vue <Transition> arms
|
|
89
|
+
in the celebratory headline + result-row reveals. Partners with
|
|
90
|
+
`--motion-ease-staged-entrance` / `--motion-ease-overshoot`. */
|
|
91
|
+
--motion-duration-staged: 320ms;
|
|
92
|
+
|
|
93
|
+
/* One-shot celebratory shimmer — gold-headline shimmer animation
|
|
94
|
+
duration + staging delay. Shared canon so the speedtest results
|
|
95
|
+
headline and the thank-you headline stay in lockstep. */
|
|
96
|
+
--motion-duration-complete-shimmer: 2.4s;
|
|
97
|
+
--motion-delay-complete-shimmer: 220ms;
|
|
98
|
+
/* The gold-headline shimmer reads these two tokens under a one-shot
|
|
99
|
+
animation: at 2.4s + 220ms delay the bright band traverses the headline
|
|
100
|
+
glyphs cleanly. Load-bearing — zeroing either collapses the shimmer to
|
|
101
|
+
an imperceptible blow-through. */
|
|
102
|
+
|
|
103
|
+
/* CompleteBadge staged-reveal cluster — the disc / ring / check curve
|
|
104
|
+
fires at three asymmetric durations + delays per the A4-AF staged-
|
|
105
|
+
variety design intent. Promoting the magic numbers makes the
|
|
106
|
+
staged-variety visible at the canon. */
|
|
107
|
+
--motion-duration-badge-disc: 420ms;
|
|
108
|
+
--motion-duration-badge-ring: 560ms;
|
|
109
|
+
--motion-duration-badge-check: 380ms;
|
|
110
|
+
--motion-delay-badge-disc: 80ms;
|
|
111
|
+
--motion-delay-badge-ring: 220ms;
|
|
112
|
+
--motion-delay-badge-check: 460ms;
|
|
113
|
+
|
|
114
|
+
/* Staggered-reveal increment canon — three perceptually-distinct tiers for
|
|
115
|
+
per-row/per-cell/per-bar cascades:
|
|
116
|
+
• tight (40ms) — dense row cascades, sub-perceptual gap
|
|
117
|
+
• default (80ms) — the canonical row-stagger rhythm (matches
|
|
118
|
+
`useStagger`'s built-in fallback)
|
|
119
|
+
• relaxed (120ms) — wider cascades where each reveal carries its own
|
|
120
|
+
attention budget
|
|
121
|
+
Adjacent tiers keep cross-beats quiet (80 is the LCM of 40 and 2/3 of
|
|
122
|
+
120). Consumers read these via inline-style calc() or `getComputedStyle`
|
|
123
|
+
at runtime. */
|
|
124
|
+
--motion-stagger-tight: 40ms;
|
|
125
|
+
--motion-stagger-default: 80ms;
|
|
126
|
+
--motion-stagger-relaxed: 120ms;
|
|
127
|
+
|
|
128
|
+
/* ═══════════════════════════════════════════════
|
|
129
|
+
§2 EASING — Spring curves via linear()
|
|
130
|
+
|
|
131
|
+
Generated from `scripts/regen-spring-tokens.mjs` — DO NOT hand-edit.
|
|
132
|
+
To tune a spring: edit the PRESETS table in the script and re-run
|
|
133
|
+
`node scripts/regen-spring-tokens.mjs`. The script invokes
|
|
134
|
+
`springLinearStops()` from `@mkbabb/keyframes.js` which solves the
|
|
135
|
+
analytic second-order damped harmonic oscillator and emits CSS
|
|
136
|
+
`linear()` stops; this is the single source of truth tying each
|
|
137
|
+
(response, ζ) pair to its serialized curve.
|
|
138
|
+
|
|
139
|
+
iOS-canonical (response, dampingFraction) per AL-X4 §3:
|
|
140
|
+
smooth: (0.50s, ζ=0.86) — gentle settle, sub-perceptual overshoot ~0.5%
|
|
141
|
+
snappy: (0.35s, ζ=0.65) — quick crisp, overshoot ~+6.8%
|
|
142
|
+
bouncy: (0.50s, ζ=0.45) — emphatic overshoot ~+20.5%
|
|
143
|
+
gentle: (0.70s, ζ=1.00) — patient critically-damped
|
|
144
|
+
dock: (0.32s, ζ=0.70) — dock expand/collapse morph, overshoot ~+4.6%
|
|
145
|
+
|
|
146
|
+
Note on `smooth`: at ζ=0.86 the analytic solver produces a peak
|
|
147
|
+
of 1.00498 (+0.5%) at the 24% slot — mathematically present but
|
|
148
|
+
sub-perceptual. I keep ζ=0.86 rather than promoting to ζ=1.0
|
|
149
|
+
because true critical damping is `gentle`'s register, and
|
|
150
|
+
`smooth` wants a slightly faster visual settle than `gentle`'s
|
|
151
|
+
patient curve. The 0.5% peak does not read as overshoot to the
|
|
152
|
+
eye but does narrowly distinguish `smooth` from `gentle`.
|
|
153
|
+
|
|
154
|
+
── EASING DOCTRINE (AX.W52 §6 — which easing fits which job) ──
|
|
155
|
+
ONE recorded rule so the animation easing stops forking live. This
|
|
156
|
+
FORMALIZES the already-correct `transitions.css` idiom (enter=spring,
|
|
157
|
+
exit=bezier) as the house rule every recipe reaches for:
|
|
158
|
+
|
|
159
|
+
| Transition kind | Easing |
|
|
160
|
+
|--------------------------------------------------|-------------------------------------|
|
|
161
|
+
| Surface props (bg, border, color, box-shadow, | `--ease-standard` (bezier — a |
|
|
162
|
+
| opacity) | colour cross-fade reads as a |
|
|
163
|
+
| | wobble on a spring) |
|
|
164
|
+
| Transform — hover/press/active (scale, translate,| `--spring-smooth` (the ONE button/ |
|
|
165
|
+
| rotate) | interactive scale register) or |
|
|
166
|
+
| | `--spring-snappy` (crisp press) |
|
|
167
|
+
| Enter (mount, popover open, dialog in) | `--spring-bouncy` / `--spring-snappy`|
|
|
168
|
+
| Exit (unmount, close) | `--ease-out` / `--ease-standard` |
|
|
169
|
+
| | (bezier, NO overshoot — an exit |
|
|
170
|
+
| | must never overshoot past gone) |
|
|
171
|
+
| Position-tracked (specular pointer follow) | `--ease-standard` |
|
|
172
|
+
|
|
173
|
+
The BUTTON family (`.btn-pill` / `.tap-squish` / `.glass-btn` /
|
|
174
|
+
`btn-interactive`) UNIFIES its `scale` transform leg onto ONE register —
|
|
175
|
+
`--spring-smooth` — so hover + press read as one motion language (the
|
|
176
|
+
hover lift is the restrained `--scale-hover-btn` = 1.05, not the 1.08
|
|
177
|
+
`--scale-hover`). Springs read alive on TRANSFORM and ENTER (overshoot =
|
|
178
|
+
physicality); a spring on a COLOR or an EXIT reads as a wobble/hesitation.
|
|
179
|
+
`--ease-apple` is the ambient-only register (consumed solely by the Pulse
|
|
180
|
+
aura `--animate-ambient-pulse-easing` — NOT a second smooth-ease authority
|
|
181
|
+
for interactive transforms; those use `--spring-smooth`).
|
|
182
|
+
═══════════════════════════════════════════════ */
|
|
183
|
+
--spring-smooth: linear(0, 0.09804 2.041%, 0.29288 4.082%, 0.49447 6.122%, 0.66436 8.163%, 0.79208 10.204%, 0.88050 12.245%, 0.93754 14.286%, 0.97182 16.327%, 0.99083 18.367%, 1.00027 20.408%, 1.00413 22.449%, 1.00502 24.490%, 1.00453 26.531%, 1.00355 28.571%, 1.00254 30.612%, 1.00169 32.653%, 1.00105 34.694%, 1.00060 36.735%, 1.00031 38.776%, 1.00014 40.816%, 1.00005 42.857%, 1.00000 44.898%, 1.00000 46.939%, 1.00000 48.980%, 1.00000 51.020%, 1.00000 53.061%, 1.00000 55.102%, 1.00000 57.143%, 1.00000 59.184%, 1.00000 61.224%, 1.00000 63.265%, 1.00000 65.306%, 1.00000 67.347%, 1.00000 69.388%, 1.00000 71.429%, 1.00000 73.469%, 1.00000 75.510%, 1.00000 77.551%, 1.00000 79.592%, 1.00000 81.633%, 1.00000 83.673%, 1.00000 85.714%, 1.00000 87.755%, 1.00000 89.796%, 1.00000 91.837%, 1.00000 93.878%, 1.00000 95.918%, 1.00000 97.959%, 1);
|
|
184
|
+
--spring-snappy: linear(0, 0.10438 2.041%, 0.32622 4.082%, 0.56668 6.122%, 0.77153 8.163%, 0.91961 10.204%, 1.01073 12.245%, 1.05549 14.286%, 1.06804 16.327%, 1.06171 18.367%, 1.04686 20.408%, 1.03044 22.449%, 1.01629 24.490%, 1.00596 26.531%, 0.99954 28.571%, 0.99633 30.612%, 0.99537 32.653%, 0.99575 34.694%, 0.99674 36.735%, 0.99786 38.776%, 0.99884 40.816%, 0.99956 42.857%, 1.00001 44.898%, 1.00024 46.939%, 1.00000 48.980%, 1.00000 51.020%, 1.00000 53.061%, 1.00000 55.102%, 1.00000 57.143%, 1.00000 59.184%, 1.00000 61.224%, 1.00000 63.265%, 1.00000 65.306%, 1.00000 67.347%, 1.00000 69.388%, 1.00000 71.429%, 1.00000 73.469%, 1.00000 75.510%, 1.00000 77.551%, 1.00000 79.592%, 1.00000 81.633%, 1.00000 83.673%, 1.00000 85.714%, 1.00000 87.755%, 1.00000 89.796%, 1.00000 91.837%, 1.00000 93.878%, 1.00000 95.918%, 1.00000 97.959%, 1);
|
|
185
|
+
--spring-bouncy: linear(0, 0.11105 2.041%, 0.36430 4.082%, 0.65496 6.122%, 0.90929 8.163%, 1.08828 10.204%, 1.18289 12.245%, 1.20482 14.286%, 1.17641 16.327%, 1.12214 18.367%, 1.06276 20.408%, 1.01239 22.449%, 0.97809 24.490%, 0.96099 26.531%, 0.95826 28.571%, 0.96514 30.612%, 0.97666 32.653%, 0.98873 34.694%, 0.99867 36.735%, 1.00520 38.776%, 1.00825 40.816%, 1.00847 42.857%, 1.00686 44.898%, 1.00443 46.939%, 1.00199 48.980%, 1.00004 51.020%, 0.99880 53.061%, 0.99827 55.102%, 0.99829 57.143%, 0.99866 59.184%, 0.99916 61.224%, 0.99966 63.265%, 1.00004 65.306%, 1.00027 67.347%, 1.00000 69.388%, 1.00000 71.429%, 1.00000 73.469%, 1.00000 75.510%, 1.00000 77.551%, 1.00000 79.592%, 1.00000 81.633%, 1.00000 83.673%, 1.00000 85.714%, 1.00000 87.755%, 1.00000 89.796%, 1.00000 91.837%, 1.00000 93.878%, 1.00000 95.918%, 1.00000 97.959%, 1);
|
|
186
|
+
--spring-gentle: linear(0, 0.09415 2.041%, 0.27374 4.082%, 0.45506 6.122%, 0.60779 8.163%, 0.72570 10.204%, 0.81213 12.245%, 0.87336 14.286%, 0.91570 16.327%, 0.94445 18.367%, 0.96371 20.408%, 0.97645 22.449%, 0.98481 24.490%, 0.99025 26.531%, 0.99377 28.571%, 0.99604 30.612%, 0.99749 32.653%, 0.99841 34.694%, 0.99900 36.735%, 0.99937 38.776%, 0.99961 40.816%, 0.99975 42.857%, 0.99985 44.898%, 1.00000 46.939%, 1.00000 48.980%, 1.00000 51.020%, 1.00000 53.061%, 1.00000 55.102%, 1.00000 57.143%, 1.00000 59.184%, 1.00000 61.224%, 1.00000 63.265%, 1.00000 65.306%, 1.00000 67.347%, 1.00000 69.388%, 1.00000 71.429%, 1.00000 73.469%, 1.00000 75.510%, 1.00000 77.551%, 1.00000 79.592%, 1.00000 81.633%, 1.00000 83.673%, 1.00000 85.714%, 1.00000 87.755%, 1.00000 89.796%, 1.00000 91.837%, 1.00000 93.878%, 1.00000 95.918%, 1.00000 97.959%, 1);
|
|
187
|
+
--spring-dock: linear(0, 0.10282 2.041%, 0.31773 4.082%, 0.54783 6.122%, 0.74309 8.163%, 0.88550 10.204%, 0.97598 12.245%, 1.02452 14.286%, 1.04368 16.327%, 1.04501 18.367%, 1.03739 20.408%, 1.02681 22.449%, 1.01672 24.490%, 1.00873 26.531%, 1.00323 28.571%, 0.99996 30.612%, 0.99837 32.653%, 0.99789 34.694%, 0.99805 36.735%, 0.99848 38.776%, 0.99897 40.816%, 0.99940 42.857%, 0.99972 44.898%, 0.99993 46.939%, 1.00004 48.980%, 1.00000 51.020%, 1.00000 53.061%, 1.00000 55.102%, 1.00000 57.143%, 1.00000 59.184%, 1.00000 61.224%, 1.00000 63.265%, 1.00000 65.306%, 1.00000 67.347%, 1.00000 69.388%, 1.00000 71.429%, 1.00000 73.469%, 1.00000 75.510%, 1.00000 77.551%, 1.00000 79.592%, 1.00000 81.633%, 1.00000 83.673%, 1.00000 85.714%, 1.00000 87.755%, 1.00000 89.796%, 1.00000 91.837%, 1.00000 93.878%, 1.00000 95.918%, 1.00000 97.959%, 1);
|
|
188
|
+
|
|
189
|
+
/* Core cubic-bezier (exits, fallbacks, non-spring uses) */
|
|
190
|
+
--motion-ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
|
|
191
|
+
--motion-ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
192
|
+
--motion-ease-in: cubic-bezier(0.4, 0, 1, 1);
|
|
193
|
+
--motion-ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
|
|
194
|
+
|
|
195
|
+
--ease-standard: var(--motion-ease-standard);
|
|
196
|
+
--ease-out: var(--motion-ease-out);
|
|
197
|
+
--ease-in: var(--motion-ease-in);
|
|
198
|
+
--ease-out-expo: var(--motion-ease-out-expo);
|
|
199
|
+
|
|
200
|
+
/* Apple-inspired — micro-interactions, switches, dock hover */
|
|
201
|
+
--motion-ease-apple: cubic-bezier(0.25, 0.1, 0.25, 1);
|
|
202
|
+
|
|
203
|
+
--ease-apple: var(--motion-ease-apple);
|
|
204
|
+
--ease-spring: var(--spring-snappy);
|
|
205
|
+
--ease-decelerate: var(--ease-out);
|
|
206
|
+
--ease-accelerate: var(--ease-in);
|
|
207
|
+
|
|
208
|
+
/* ═══════════════════════════════════════════════
|
|
209
|
+
§2.A AMBIENT MOTION — Pulse aura tokens
|
|
210
|
+
|
|
211
|
+
Breathing rhythm for `<Pulse variant="aura">`. The 6s duration is the
|
|
212
|
+
canon ambient-pulse rate; scale 1.0 ↔ 1.15 reads as a quiet halo at
|
|
213
|
+
intensity="normal" (Pulse remaps min/max from its `intensity` prop).
|
|
214
|
+
Reduced motion: Pulse.vue parks at the min stop, breath cycle disabled.
|
|
215
|
+
|
|
216
|
+
AX.W57 (P6) — the aura re-baselined from a glowing DISC to an AMBIENT
|
|
217
|
+
halo. The egregiousness was doubly-stacked: a 0.55-density currentColor
|
|
218
|
+
radial multiplied by an element opacity the `ambient-pulse` keyframe
|
|
219
|
+
drove up to 0.95 mid-breath (so a saturated viz hue read as a near-
|
|
220
|
+
opaque throbbing blob). The fix is two decoupled, single-source knobs:
|
|
221
|
+
· `--pulse-aura-strength` (0..1) — the ONE gradient-density scalar
|
|
222
|
+
both color-mix stops derive via calc() (replaces the
|
|
223
|
+
`--pulse-aura-opacity-pct` / `-pct-num` twin desync trap — the
|
|
224
|
+
percent and the raw number had to be hand-kept in sync).
|
|
225
|
+
· `--pulse-aura-breath-{min,max}` — the aura's OWN element-opacity
|
|
226
|
+
range, decoupled from the shared `--pulse-aura-opacity-*` shimmer
|
|
227
|
+
tokens (those stay 0.55/0.95 for the neutral skeleton-breath, where
|
|
228
|
+
a grey shimmer at that range is the correct soft swell).
|
|
229
|
+
The loud old read is the explicit `intensity="vivid"` opt-in. */
|
|
230
|
+
--animate-ambient-pulse-duration: 6s;
|
|
231
|
+
--animate-ambient-pulse-scale-min: 1.0;
|
|
232
|
+
--animate-ambient-pulse-scale-max: 1.15;
|
|
233
|
+
--animate-ambient-pulse-easing: var(--ease-apple);
|
|
234
|
+
|
|
235
|
+
/* Aura gradient density — ONE scalar (0..1). The center stop paints at
|
|
236
|
+
`strength`, the mid stop at `strength * 0.35` (both via calc() in
|
|
237
|
+
Pulse.vue). 0.22 reads as an ambient wash, not a glowing disc. */
|
|
238
|
+
--pulse-aura-strength: 0.22;
|
|
239
|
+
|
|
240
|
+
/* Aura element-opacity breath range (the `ambient-pulse` keyframe stops).
|
|
241
|
+
Quiet: the halo stays a wash at every phase of the 6s cycle. */
|
|
242
|
+
--pulse-aura-breath-min: 0.28;
|
|
243
|
+
--pulse-aura-breath-max: 0.42;
|
|
244
|
+
|
|
245
|
+
/* Skeleton-breath shimmer range — the SHARED neutral-shimmer stops
|
|
246
|
+
(`.skeleton-breath` reads these; a grey shimmer at 0.55↔0.95 is the
|
|
247
|
+
correct soft swell, distinct from the aura's calmer breath above). */
|
|
248
|
+
--pulse-aura-opacity-min: 0.55;
|
|
249
|
+
--pulse-aura-opacity-max: 0.95;
|
|
250
|
+
|
|
251
|
+
/* ═══════════════════════════════════════════════
|
|
252
|
+
§2.B SECTIONED PROGRESS — phase-bus rail (AB.W3.T2)
|
|
253
|
+
|
|
254
|
+
The sectioned `<Progress variant="sectioned">` exposes one
|
|
255
|
+
height knob + one track tint knob. Defaults size the rail at
|
|
256
|
+
0.875rem (14px) — the W3 spec minimum (≥ 14px mobile, ≥ 18px
|
|
257
|
+
desktop). Consumers override the height per breakpoint via the
|
|
258
|
+
same token name on the consumer-side surface.
|
|
259
|
+
|
|
260
|
+
The bar reads as a recessed glass channel: inner top
|
|
261
|
+
catch-light + lower inner shadow + small outer drop. The
|
|
262
|
+
depth lives entirely in the Progress.vue scoped block; this
|
|
263
|
+
token only parameterises the rail BACKGROUND and HEIGHT —
|
|
264
|
+
depth shadows compose from the existing --shadow-color rung.
|
|
265
|
+
═══════════════════════════════════════════════ */
|
|
266
|
+
--progress-sectioned-height: 0.875rem;
|
|
267
|
+
--progress-sectioned-track: var(--secondary);
|
|
268
|
+
|
|
269
|
+
/* ═══════════════════════════════════════════════
|
|
270
|
+
§2.C ANIMATION EXPRESSIVENESS
|
|
271
|
+
|
|
272
|
+
Three idiom families:
|
|
273
|
+
• Progress lifecycle — the progress bar rides an intake pulse on
|
|
274
|
+
rising-edge, a crescendo brightening at ≥85%, and a one-shot discharge
|
|
275
|
+
flash at 100% (the crescendo is the typed `@property --progress-crescendo`).
|
|
276
|
+
• Chassis phase-tint companion — `@property --phase-tint-amount` so the
|
|
277
|
+
chassis backdrop warms toward the active phase, interpolating with
|
|
278
|
+
`--phase-color` across the consumer's phase-handoff window (600ms default).
|
|
279
|
+
• Audacious button press-ripple — `btn-audacious` gains a typed
|
|
280
|
+
`@property --ripple-radius` ramping 0 → max over the ripple duration.
|
|
281
|
+
═══════════════════════════════════════════════ */
|
|
282
|
+
|
|
283
|
+
/* Progress lifecycle — typed crescendo + segment-local durations */
|
|
284
|
+
--motion-duration-progress-intake: 220ms; /* rising-edge pulse */
|
|
285
|
+
--motion-duration-progress-crescendo: 240ms; /* leading-edge brighten */
|
|
286
|
+
--motion-duration-progress-indeterminate: 4s; /* indeterminate sweep period */
|
|
287
|
+
|
|
288
|
+
/* Chassis depth-of-tint peak — the amount `--phase-tint-amount`
|
|
289
|
+
interpolates toward when a phase is active. Subtle by intent;
|
|
290
|
+
a 6% color-mix reads as "warmth toward the phase" without
|
|
291
|
+
overwhelming the chassis chrome's resting register. */
|
|
292
|
+
--phase-tint-peak: 6%;
|
|
293
|
+
|
|
294
|
+
/* Audacious button press-ripple — geometry + duration. The ripple
|
|
295
|
+
radius caps at 12rem so an oversized button doesn't paint a
|
|
296
|
+
transparent halo beyond its bounds (the parent's `overflow:
|
|
297
|
+
hidden` clips the visible region; the cap keeps the gradient
|
|
298
|
+
falloff well-defined). */
|
|
299
|
+
--ripple-radius-max: 12rem;
|
|
300
|
+
--motion-duration-ripple: 340ms;
|
|
301
|
+
|
|
302
|
+
/* Skeleton breath variant — the M.3 "known-imminent" loading
|
|
303
|
+
register. 6s cycle (the canon ambient rate) so a known-imminent
|
|
304
|
+
skeleton breathes in lockstep with the dial and the Pulse aura.
|
|
305
|
+
Coexists with the 1.5s shimmer (sliding gradient) and the
|
|
306
|
+
Tailwind animate-pulse (2s, short-wait) variants — distinct
|
|
307
|
+
temporal registers per use-case. */
|
|
308
|
+
--skeleton-breath-duration: 6s;
|
|
309
|
+
|
|
310
|
+
/* ═══════════════════════════════════════════════
|
|
311
|
+
§3 Z-INDEX SCALE
|
|
312
|
+
═══════════════════════════════════════════════ */
|
|
313
|
+
/* V.W2 T12 — Aurora background tier (sits behind --z-background).
|
|
314
|
+
Consumed by `<Aurora>` in speedtest's App.vue (`-z-10` literal today). */
|
|
315
|
+
--z-behind: -10;
|
|
316
|
+
--z-background: 0;
|
|
317
|
+
--z-content: 10;
|
|
318
|
+
--z-controls: 20;
|
|
319
|
+
--z-bar: 30;
|
|
320
|
+
--z-header: 35;
|
|
321
|
+
--z-dock: 40;
|
|
322
|
+
--z-panel: 45;
|
|
323
|
+
--z-overlay: 50;
|
|
324
|
+
--z-hovercard: 120;
|
|
325
|
+
--z-tooltip: 120;
|
|
326
|
+
--z-popover: 130;
|
|
327
|
+
--z-modal: 140;
|
|
328
|
+
--z-fullscreen: 150;
|
|
329
|
+
--z-toast: 160;
|
|
330
|
+
--z-toggle: 999;
|
|
331
|
+
--z-max: 9999;
|
|
332
|
+
--z-debug: 99999;
|
|
333
|
+
|
|
334
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/* tokens/shadow.css
|
|
2
|
+
§7 shadows — the cartoon offset-stamp signature + the shadow-color base.
|
|
3
|
+
Carved from the tokens.css cascade root; @import-ed by tokens.css in
|
|
4
|
+
cascade order. Same :root cascade context as its siblings. */
|
|
5
|
+
:root {
|
|
6
|
+
/* ═══════════════════════════════════════════════
|
|
7
|
+
§7 SHADOWS — cartoon offset is the signature
|
|
8
|
+
═══════════════════════════════════════════════ */
|
|
9
|
+
--shadow-cartoon: 3px 3px 0px 0px color-mix(in srgb, var(--foreground) 8%, transparent);
|
|
10
|
+
--shadow-cartoon-hover: 4px 4px 0px 0px color-mix(in srgb, var(--foreground) 10%, transparent);
|
|
11
|
+
--shadow-soft: 0 4px 12px rgba(0, 0, 0, 0.1);
|
|
12
|
+
--shadow-elevated: 0 8px 24px rgba(0, 0, 0, 0.12);
|
|
13
|
+
--shadow-modal:
|
|
14
|
+
4px 4px 0px 0px color-mix(in srgb, var(--foreground) 8%, transparent),
|
|
15
|
+
0 24px 64px color-mix(in srgb, var(--foreground) 12%, transparent);
|
|
16
|
+
|
|
17
|
+
--cartoon-shadow: var(--shadow-cartoon);
|
|
18
|
+
--cartoon-shadow-hover: var(--shadow-cartoon-hover);
|
|
19
|
+
--soft-shadow: var(--shadow-soft);
|
|
20
|
+
--elevated-shadow: var(--shadow-elevated);
|
|
21
|
+
--modal-shadow: var(--shadow-modal);
|
|
22
|
+
|
|
23
|
+
/* Elevation scale */
|
|
24
|
+
--shadow-xs: 0 1px 3px color-mix(in srgb, var(--shadow-color) 4%, transparent),
|
|
25
|
+
0 1px 2px color-mix(in srgb, var(--shadow-color) 6%, transparent);
|
|
26
|
+
--shadow-sm: 0 2px 8px color-mix(in srgb, var(--shadow-color) 6%, transparent);
|
|
27
|
+
--shadow-md: 0 4px 16px color-mix(in srgb, var(--shadow-color) 8%, transparent);
|
|
28
|
+
--shadow-lg: 0 4px 20px color-mix(in srgb, var(--shadow-color) 12%, transparent);
|
|
29
|
+
--shadow-xl: 0 8px 24px color-mix(in srgb, var(--shadow-color) 14%, transparent);
|
|
30
|
+
--shadow-2xl: 0 25px 50px -12px color-mix(in srgb, var(--shadow-color) 25%, transparent);
|
|
31
|
+
|
|
32
|
+
/* Z.W2.T3a — uniform-cast shadow rung. Offset 0 / 0, no directional
|
|
33
|
+
Y bias. Use case: dock-hosted icons (e.g. the speedtest settings
|
|
34
|
+
gear) where the surrounding dock shadow's downward cast reads as
|
|
35
|
+
a per-icon right-edge halo on the rightmost child (A2 §B7). The
|
|
36
|
+
uniform variant carries the same color-mix recipe family as the
|
|
37
|
+
sized rungs (`--shadow-md`, `--shadow-lg`) so the perceived
|
|
38
|
+
elevation is a peer, not a sibling. Consumers compose via
|
|
39
|
+
`--shadow-dock-override: var(--shadow-uniform)` per-instance, or
|
|
40
|
+
attach to per-icon-button stacks where directional cast is wrong-
|
|
41
|
+
shape. Documented in DESIGN.md token table. */
|
|
42
|
+
--shadow-uniform: 0 0 12px color-mix(in srgb, var(--shadow-color) 8%, transparent);
|
|
43
|
+
|
|
44
|
+
/* Card = soft drop plate by default. The cartoon offset is a brand-flavoured
|
|
45
|
+
decoration (a sticker look), not the canonical card shape. Consumers
|
|
46
|
+
wanting the cartoon look pass <Card surface="cartoon">, which composes the
|
|
47
|
+
`.cartoon-surface` utility (it reads --shadow-cartoon directly). R3-spec
|
|
48
|
+
§F.1, S.W4; Q.W3 Lane H. */
|
|
49
|
+
--shadow-card: var(--shadow-md);
|
|
50
|
+
--card-shadow: var(--shadow-card);
|
|
51
|
+
|
|
52
|
+
/* AI.W1-α — sticky CardHeader background. Parameterises the
|
|
53
|
+
`bg-card/60` literal value.js's PaneHeader.vue carried so the
|
|
54
|
+
glass-ui canon owns the recipe. The scroll-driven `<CardHeader
|
|
55
|
+
shrink>` choreography reads this token for its sticky-header
|
|
56
|
+
backdrop tint; consumers retune per-app by overriding the
|
|
57
|
+
variable at any ancestor. Auto-dark via `--card`. */
|
|
58
|
+
--card-header-bg: color-mix(in srgb, var(--card) 60%, transparent);
|
|
59
|
+
|
|
60
|
+
/* Dock shadows — a single omnidirectional glow in the
|
|
61
|
+
`--shadow-md`/`--shadow-lg` family (a directional drop concentrated on
|
|
62
|
+
the pill's rounded right cap as a right-edge halo; the dock's own
|
|
63
|
+
border already defines the silhouette). Per-instance directional drop
|
|
64
|
+
reinstates via `--shadow-dock-override` (consumed by every `.glass-dock`
|
|
65
|
+
state selector — see dock.css). */
|
|
66
|
+
--shadow-dock: 0 0 20px color-mix(in srgb, var(--shadow-color) 14%, transparent);
|
|
67
|
+
--shadow-dock-collapsed: 0 0 12px color-mix(in srgb, var(--shadow-color) 12%, transparent);
|
|
68
|
+
--dock-shadow: var(--shadow-dock);
|
|
69
|
+
--dock-shadow-collapsed: var(--shadow-dock-collapsed);
|
|
70
|
+
|
|
71
|
+
/* AX.W04 F1 — the wrap/card-tier dock shadow. A wrapped multi-row dock (and
|
|
72
|
+
any finite-radius card silhouette) is a THICKER material than a flat thin
|
|
73
|
+
pill — WWDC25 §219 "material thickens as glass flexes larger". So when the
|
|
74
|
+
wrap dock expands it lifts its elevation onto the FLOATING-tier shadow
|
|
75
|
+
stack (the `--glass-shadow-floating` family — `--shadow-xl` + the
|
|
76
|
+
`--glass-material-rim` hairline + the `--glass-under-shadow-vivid` under-cast)
|
|
77
|
+
rather than carrying the flat `--shadow-dock` glow of a 40px pill. Composed
|
|
78
|
+
on `:root` as ONE consumer-overridable token (per the cartoon-shadow
|
|
79
|
+
override contract — override on the cascade, never a dead local). The dock
|
|
80
|
+
reads it via `calc()`-on-`--dock-expand-t` so the lift glides in lockstep
|
|
81
|
+
with the pill→card radius morph (ONE clock, ONE register). */
|
|
82
|
+
--glass-material-rim: 0 0 0 0.5px color-mix(in srgb, var(--shadow-color) 5%, transparent);
|
|
83
|
+
--shadow-dock-wrap: var(--shadow-xl),
|
|
84
|
+
var(--glass-material-rim),
|
|
85
|
+
var(--glass-under-shadow-vivid);
|
|
86
|
+
|
|
87
|
+
/* Cartoon shadow color primitives (kept for tiered cartoon utilities) */
|
|
88
|
+
--shadow-cartoon-color: rgb(0 0 0 / 0.12);
|
|
89
|
+
--shadow-cartoon-color-soft: rgb(0 0 0 / 0.06);
|
|
90
|
+
|
|
91
|
+
/* Tiered cartoon shadows */
|
|
92
|
+
--shadow-cartoon-sm: -3px 2px 1px color-mix(in srgb, var(--shadow-color) 10%, transparent),
|
|
93
|
+
0 3px 1px color-mix(in srgb, var(--shadow-color) 10%, transparent),
|
|
94
|
+
-3px 3px 1px color-mix(in srgb, var(--shadow-color) 6%, transparent);
|
|
95
|
+
--shadow-cartoon-md: -4px 3px 1px color-mix(in srgb, var(--shadow-color) 12%, transparent),
|
|
96
|
+
0 4px 1px color-mix(in srgb, var(--shadow-color) 12%, transparent),
|
|
97
|
+
-4px 4px 2px color-mix(in srgb, var(--shadow-color) 8%, transparent);
|
|
98
|
+
--shadow-cartoon-lg: -6px 4px 1px color-mix(in srgb, var(--shadow-color) 12%, transparent),
|
|
99
|
+
0 6px 1px color-mix(in srgb, var(--shadow-color) 12%, transparent),
|
|
100
|
+
-6px 6px 2px color-mix(in srgb, var(--shadow-color) 8%, transparent);
|
|
101
|
+
--cartoon-shadow-sm: var(--shadow-cartoon-sm);
|
|
102
|
+
--cartoon-shadow-md: var(--shadow-cartoon-md);
|
|
103
|
+
--cartoon-shadow-lg: var(--shadow-cartoon-lg);
|
|
104
|
+
|
|
105
|
+
/* AY.W-COHERE E2 — the gel-bead ambient contact shadow (the GooBlob lit dome).
|
|
106
|
+
The metaball bead is NOT a Memphis sticker — it is a lit gel dome sitting IN
|
|
107
|
+
a scene, so it casts a SOFT, NEAR-CENTERED, low-offset ambient contact
|
|
108
|
+
shadow (small downward offset, a large soft blur, ambient-tinted), in the
|
|
109
|
+
same soft-ambient-light register the constellation / fourier / aurora
|
|
110
|
+
substrates speak — NOT the hard `5px 5px` near-black offset-stamp the
|
|
111
|
+
cartoon family carries (that stamp stays the identity of
|
|
112
|
+
<Card surface="cartoon">; it is removed ONLY from the gel bead, a different
|
|
113
|
+
lighting language). The shadow color is ambient: the bead's own
|
|
114
|
+
`--blob-color` mixed toward `--shadow-color` at a LOW strength, so the dome
|
|
115
|
+
casts a faint tinted contact shade. Adaptive-by-construction: `--shadow-color`
|
|
116
|
+
is `var(--foreground)`, which flips light→dark, so the contact shadow
|
|
117
|
+
re-resolves under `.dark` with NO hardcoded `.dark` re-declaration (the house
|
|
118
|
+
cartoon-shadow contract's pattern, applied to the ambient shadow). A consumer
|
|
119
|
+
retunes the bead's lighting by overriding `--blob-shadow` (or the
|
|
120
|
+
`--blob-shadow-*` sub-axes) on the cascade. */
|
|
121
|
+
--blob-shadow-offset: 0 4px;
|
|
122
|
+
--blob-shadow-blur: 14px;
|
|
123
|
+
--blob-shadow-color: color-mix(in srgb,
|
|
124
|
+
var(--blob-color, var(--shadow-color)) 22%, var(--shadow-color));
|
|
125
|
+
--blob-shadow-strength: 20%;
|
|
126
|
+
/* The AMBIENT cast (the soft diffuse drop) — the dome floats a little above its
|
|
127
|
+
surface. This is the first drop-shadow rung. */
|
|
128
|
+
--blob-shadow-ambient: var(--blob-shadow-offset) var(--blob-shadow-blur)
|
|
129
|
+
color-mix(in srgb, var(--blob-shadow-color) var(--blob-shadow-strength), transparent);
|
|
130
|
+
|
|
131
|
+
/* AZ.W-BLOB-STUDIO D4 — the GROUNDED gel-dome read. A single soft ambient cast
|
|
132
|
+
reads as a swatch FLOATING — there is no contact, no AO, nothing that says the
|
|
133
|
+
dome SITS on a surface. The grounded read is a TWO-RUNG drop-shadow composite
|
|
134
|
+
(drop-shadow filters chain, and EACH follows the irregular metaball silhouette —
|
|
135
|
+
a box-shadow would stamp a rectangle, missing the necking satellites): the soft
|
|
136
|
+
AMBIENT cast above PLUS a TIGHT, LOW-OFFSET, DARKER CONTACT band hugging the dome
|
|
137
|
+
base. The contact rung is the gravity cue — a near-zero blur, a small downward
|
|
138
|
+
offset, and ~2× the ambient strength, so the silhouette base READS pressed against
|
|
139
|
+
the surface (the contact-darkening AO the satellites pick up where they merge into
|
|
140
|
+
the body, since the drop-shadow hugs the WHOLE necked silhouette including the
|
|
141
|
+
satellite bulges). Both rungs ride the SAME `--blob-shadow-color` (the ambient
|
|
142
|
+
`--shadow-color`/`--foreground` base), so the grounded read re-resolves under
|
|
143
|
+
`.dark` with no hardcoded dark block (the house cartoon-shadow adaptive pattern).
|
|
144
|
+
A consumer retunes grounding by overriding `--blob-shadow-contact-*` or the whole
|
|
145
|
+
`--blob-shadow` composite on the cascade. */
|
|
146
|
+
--blob-shadow-contact-offset: 0 1px;
|
|
147
|
+
--blob-shadow-contact-blur: 3px;
|
|
148
|
+
--blob-shadow-contact-strength: 38%;
|
|
149
|
+
--blob-shadow-contact: var(--blob-shadow-contact-offset) var(--blob-shadow-contact-blur)
|
|
150
|
+
color-mix(in srgb, var(--blob-shadow-color) var(--blob-shadow-contact-strength), transparent);
|
|
151
|
+
|
|
152
|
+
/* The grounded composite is consumed by GooBlob.vue as TWO chained drop-shadow()
|
|
153
|
+
filters: drop-shadow(ambient) drop-shadow(contact). `--blob-shadow` keeps the
|
|
154
|
+
single-rung ambient value (back-compat: a consumer reading the old token still
|
|
155
|
+
gets the soft cast); the grounded read is the explicit two-rung pair. */
|
|
156
|
+
--blob-shadow: var(--blob-shadow-ambient);
|
|
157
|
+
|
|
158
|
+
/* The hover lift — the ambient cast deepens + softens (the dome rises) AND the
|
|
159
|
+
contact band TIGHTENS toward the lifted base (a touch of extra grounding-darken
|
|
160
|
+
as the dome presses on its surface on the rise). */
|
|
161
|
+
--blob-shadow-hover: 0 6px 20px
|
|
162
|
+
color-mix(in srgb, var(--blob-shadow-color) 26%, transparent);
|
|
163
|
+
--blob-shadow-contact-hover: 0 1px 4px
|
|
164
|
+
color-mix(in srgb, var(--blob-shadow-color) 44%, transparent);
|
|
165
|
+
|
|
166
|
+
}
|