@mkbabb/glass-ui 3.12.0 → 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 +48 -20
- 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 -1318
- 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 -1318
- 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,401 @@
|
|
|
1
|
+
/* utilities/btn.css
|
|
2
|
+
The interactive/button @utility cluster — scale-on-hover, twin-line-divider, transition-control/collapse, sheet-animate, btn-audacious + btn-audacious-gold (+ the btn-gold-bg-sweep keyframes), table-cell/head density, rainbow-vivid/pastel, the text-highlight paint, and btn-interactive.
|
|
3
|
+
Carved from the utilities.css cascade root; @import-ed by utilities.css in
|
|
4
|
+
cascade order. See docs/precepts/design-idioms.md §cohesion-aware partials. */
|
|
5
|
+
/* ── Hover scale (O.W6 Lane C) ──
|
|
6
|
+
Canonical hover-transform utility consuming the `--scale-hover` token
|
|
7
|
+
(tokens.css §11). Promoted from consumer-side `hover:scale-105`
|
|
8
|
+
recipe — 13 sites in keyframes.js demo + 9 sites in words/frontend
|
|
9
|
+
per O11/d L3 + O11/a I4. Single-token recipe (no ladder); the dual
|
|
10
|
+
`--scale-press-{xs..lg}` ladder discussion is the press-axis cohort
|
|
11
|
+
(O-N-7), not hover. Consumers reach the utility via
|
|
12
|
+
`class="scale-on-hover"`; transition + easing bind to the canonical
|
|
13
|
+
`--duration-fast` + `--ease-standard` tokens. */
|
|
14
|
+
@utility scale-on-hover {
|
|
15
|
+
/* Individual-transform identity base (AQ.W3 §W3.2). Transition the `scale`
|
|
16
|
+
longhand (not `transform`) so the migrated hover scale animates.
|
|
17
|
+
AX.W52 §6 doctrine — the `scale` transform leg rides `--spring-smooth`
|
|
18
|
+
(the settle register), NOT the bezier `--ease-standard` (a transform on a
|
|
19
|
+
bezier reads mechanical; springs read alive on transform). */
|
|
20
|
+
scale: 1;
|
|
21
|
+
transition: scale var(--duration-fast) var(--spring-smooth);
|
|
22
|
+
|
|
23
|
+
&:hover {
|
|
24
|
+
scale: var(--scale-hover);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* ── Twin-line divider — the chassis catch-light / under-shadow groove ───────
|
|
29
|
+
AW.W15 DRY extraction. The twin-line idiom (a 1px white catch-light over a
|
|
30
|
+
1px black under-shadow reading as one engraved hairline groove) is the
|
|
31
|
+
chassis-divider signature. This utility is the SINGLE source of that
|
|
32
|
+
α pair: it publishes `--twin-line-catch` (the top catch-light) and
|
|
33
|
+
`--twin-line-shadow` (the bottom under-shadow) as cascade tokens, dark-adaptive
|
|
34
|
+
by construction (the `.dark &` arm re-resolves them). `instrument-chassis.css`
|
|
35
|
+
(`.bezel-line.top`/`.bottom`) `@apply`s it and reads the tokens; a retint
|
|
36
|
+
touches one rule. (The prior `instrument-rail.css` co-consumer retired at
|
|
37
|
+
AZ.W-PRUNE2 with its component — the α pair stays canonicalised here.) */
|
|
38
|
+
@utility twin-line-divider {
|
|
39
|
+
--twin-line-catch: rgb(255 255 255 / 0.10);
|
|
40
|
+
--twin-line-shadow: rgb(0 0 0 / 0.12);
|
|
41
|
+
|
|
42
|
+
:where(.dark) & {
|
|
43
|
+
--twin-line-catch: rgb(255 255 255 / 0.06);
|
|
44
|
+
--twin-line-shadow: rgb(0 0 0 / 0.18);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/* ── Control transition recipe (AU.W8b.4) ───────────────────────────────
|
|
49
|
+
Shared compound transition for interactive controls that animate their
|
|
50
|
+
surface (background-color/color/box-shadow/border-color) on the four-state
|
|
51
|
+
contract. Replaces the per-site
|
|
52
|
+
`transition-[background-color,color,box-shadow,border-color] duration-[var(--duration-fast)] ease-[var(--ease-standard)]`
|
|
53
|
+
arbitrary wraps at ≥2 sites (TabsTrigger, SelectTrigger, Toggle `card`
|
|
54
|
+
variant). Binds the canonical --duration-fast + --ease-standard tokens. */
|
|
55
|
+
@utility transition-control {
|
|
56
|
+
transition-property: background-color, color, box-shadow, border-color;
|
|
57
|
+
transition-duration: var(--duration-fast);
|
|
58
|
+
transition-timing-function: var(--ease-standard);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* ── Collapse transition recipe (AU.W8b.4) ──────────────────────────────
|
|
62
|
+
Shared height+opacity transition for reka-ui collapse surfaces (Accordion
|
|
63
|
+
content, Collapsible content). Replaces the per-site `transition-[height,opacity]`
|
|
64
|
+
wrap at ≥2 sites. The duration/easing rides the data-state
|
|
65
|
+
`animate-accordion-*`/`animate-collapsible-*` keyframes (this only declares
|
|
66
|
+
WHICH properties transition; the keyframes own the timing). */
|
|
67
|
+
@utility transition-collapse {
|
|
68
|
+
transition-property: height, opacity;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/* ── Sheet/drawer slide-out animation grammar ──
|
|
72
|
+
Mirror of `.popover-animate` for sheet/drawer panels. Pairs with
|
|
73
|
+
`slide-in-from-{top,right,bottom,left}-N` to compose side-keyed entries.
|
|
74
|
+
The open path uses --duration-panel (slow, deliberate); the close path
|
|
75
|
+
uses --duration-fast so dismiss feels snappy. R5 vocab.γ gap row 6;
|
|
76
|
+
consumed by W2.A sheet/drawer migration. */
|
|
77
|
+
@utility sheet-animate {
|
|
78
|
+
@apply data-[state=open]:animate-in data-[state=closed]:animate-out
|
|
79
|
+
data-[state=open]:fade-in data-[state=closed]:fade-out
|
|
80
|
+
data-[state=open]:duration-[var(--duration-panel)]
|
|
81
|
+
data-[state=closed]:duration-[var(--duration-fast)];
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/* ── Audacious primary CTA recipe ────────────────────────────────────────
|
|
85
|
+
Composes three at-rest marks (top-highlight via --glass-highlight, bottom
|
|
86
|
+
under-shadow via --border-hairline, baseline glass) with three disco accents
|
|
87
|
+
on hover (specular swap via --glass-specular, sparkle sweep via the ::after
|
|
88
|
+
star, disco-grain via --paper-clean-texture blended with a --primary radial).
|
|
89
|
+
Disco fires on hover only — at rest the button reads as a restrained glass
|
|
90
|
+
surface. Pair with `bg-primary text-primary-foreground`; the utility owns
|
|
91
|
+
the texture/highlight/sparkle composition only. */
|
|
92
|
+
@utility btn-audacious {
|
|
93
|
+
position: relative;
|
|
94
|
+
isolation: isolate;
|
|
95
|
+
overflow: hidden;
|
|
96
|
+
border: 1px solid var(--glass-border-quiet);
|
|
97
|
+
box-shadow:
|
|
98
|
+
var(--border-hairline),
|
|
99
|
+
var(--glass-highlight);
|
|
100
|
+
transition:
|
|
101
|
+
background var(--duration-fast) var(--ease-standard),
|
|
102
|
+
color var(--duration-fast) var(--ease-standard),
|
|
103
|
+
transform var(--duration-fast) var(--ease-standard),
|
|
104
|
+
box-shadow var(--duration-fast) var(--ease-standard),
|
|
105
|
+
--ripple-radius var(--motion-duration-ripple, 340ms) var(--ease-out-expo);
|
|
106
|
+
|
|
107
|
+
/* Hover composition: paper-grain texture overlaid on a soft
|
|
108
|
+
--primary radial, with the specular catch-light replacing the
|
|
109
|
+
resting hairline highlight. The radial uses --primary at 18%
|
|
110
|
+
— same alpha rung the dock primary tier consumes for phase
|
|
111
|
+
tinting, just bound to the canonical CTA color instead. */
|
|
112
|
+
&:hover:not(:disabled) {
|
|
113
|
+
background-image:
|
|
114
|
+
var(--paper-clean-texture),
|
|
115
|
+
radial-gradient(
|
|
116
|
+
ellipse at 30% 30%,
|
|
117
|
+
color-mix(in srgb, var(--primary) 18%, transparent),
|
|
118
|
+
transparent 70%
|
|
119
|
+
);
|
|
120
|
+
background-blend-mode: overlay, normal;
|
|
121
|
+
background-size: var(--paper-texture-size), auto;
|
|
122
|
+
box-shadow:
|
|
123
|
+
var(--glass-specular),
|
|
124
|
+
0 0.5px 0 0 rgb(0 0 0 / 0.06);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/* AI.W4-M.2 (Q5 — G-AI-D27 ratified) — press-ripple via a typed
|
|
128
|
+
`--ripple-radius` length custom property. The `::before`
|
|
129
|
+
element paints a radial gradient whose stop radius equals the
|
|
130
|
+
typed length; the `:active` rule sets the length to the cap
|
|
131
|
+
(`--ripple-radius-max`, 12rem), and the host's transition
|
|
132
|
+
(above) interpolates the radius via the @property registration
|
|
133
|
+
(tokens.css §18). Release returns the length to its 0px initial
|
|
134
|
+
value and the ripple retires. The ripple paints at z-index 0
|
|
135
|
+
(above the host's background, below the slot content which sits
|
|
136
|
+
in the default 0 stacking context but with text inheriting the
|
|
137
|
+
slot's foreground colour). */
|
|
138
|
+
&::before {
|
|
139
|
+
content: "";
|
|
140
|
+
position: absolute;
|
|
141
|
+
inset: 0;
|
|
142
|
+
pointer-events: none;
|
|
143
|
+
z-index: 0;
|
|
144
|
+
border-radius: inherit;
|
|
145
|
+
background: radial-gradient(
|
|
146
|
+
circle at center,
|
|
147
|
+
color-mix(in srgb, var(--primary-foreground, hsl(0 0% 100%)) 35%, transparent) 0,
|
|
148
|
+
color-mix(in srgb, var(--primary-foreground, hsl(0 0% 100%)) 18%, transparent)
|
|
149
|
+
calc(var(--ripple-radius, 0px) * 0.55),
|
|
150
|
+
transparent var(--ripple-radius, 0px)
|
|
151
|
+
);
|
|
152
|
+
transition: inherit;
|
|
153
|
+
will-change: background;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
&:active:not(:disabled) {
|
|
157
|
+
--ripple-radius: var(--ripple-radius-max, 12rem);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/* Sparkle glyph — hidden at rest, animated on hover. The star
|
|
161
|
+
sweeps diagonally from top-left to bottom-right per the canonical
|
|
162
|
+
sparkle-sweep keyframe (animations.css). */
|
|
163
|
+
&::after {
|
|
164
|
+
content: "✦";
|
|
165
|
+
position: absolute;
|
|
166
|
+
top: 0.25rem;
|
|
167
|
+
left: 0.5rem;
|
|
168
|
+
color: hsl(0 0% 100% / 0.7);
|
|
169
|
+
font-size: 0.75rem;
|
|
170
|
+
line-height: 1;
|
|
171
|
+
pointer-events: none;
|
|
172
|
+
opacity: 0;
|
|
173
|
+
will-change: transform, opacity;
|
|
174
|
+
z-index: 1;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
178
|
+
&:hover::after {
|
|
179
|
+
animation: sparkle-sweep var(--duration-sparkle) var(--ease-out-expo);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/* PRM bracket — the press-ripple retires; the press still reads
|
|
184
|
+
via the audacious recipe's transform/scale beat (the ripple is
|
|
185
|
+
affirmation atop affirmation). */
|
|
186
|
+
@media (prefers-reduced-motion: reduce) {
|
|
187
|
+
transition:
|
|
188
|
+
background var(--duration-fast) var(--ease-standard),
|
|
189
|
+
color var(--duration-fast) var(--ease-standard),
|
|
190
|
+
transform var(--duration-fast) var(--ease-standard),
|
|
191
|
+
box-shadow var(--duration-fast) var(--ease-standard);
|
|
192
|
+
|
|
193
|
+
&:active:not(:disabled) {
|
|
194
|
+
--ripple-radius: 0px;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/* ── Gold CTA shimmer modifier — AN.R0 D9 ───────────────────────────────
|
|
200
|
+
`btn-audacious-gold` extends `btn-audacious` with a gold sweep shimmer
|
|
201
|
+
on hover. Pair as `btn-audacious btn-audacious-gold` (or use the Button
|
|
202
|
+
`variant="gold-audacious"` which composes both). The hover shimmer is a
|
|
203
|
+
translucent linear-gradient sweep (low alpha — tasteful, not garish)
|
|
204
|
+
that slides left-to-right via the existing `gold-shimmer-slide` keyframe
|
|
205
|
+
(animations.css). The gold gradient uses the canonical `--color-gold-*`
|
|
206
|
+
token triad (tokens.css §13).
|
|
207
|
+
|
|
208
|
+
Design register:
|
|
209
|
+
• PRM no-preference: shimmer sweeps continuously at `--duration-shimmer`
|
|
210
|
+
rate; the sparkle-sweep (from btn-audacious) coexists on hover.
|
|
211
|
+
• PRM reduce: static gold tint shows on hover; no animation.
|
|
212
|
+
• The gold shimmer is a background-image layer ABOVE the existing
|
|
213
|
+
btn-audacious paper-grain + primary-radial layers, blended with
|
|
214
|
+
`overlay` so the glass substrate reads through at partial opacity.
|
|
215
|
+
• The `::before` ripple and `::after` sparkle from btn-audacious are
|
|
216
|
+
unchanged; this modifier only retunes the hover background layers.
|
|
217
|
+
• Consumer applies: `<Button variant="gold-audacious">Next →</Button>` */
|
|
218
|
+
@utility btn-audacious-gold {
|
|
219
|
+
/* At rest: a faint warm gold tint over the glass surface reads as "warm
|
|
220
|
+
glass" without announcing the hover state prematurely. */
|
|
221
|
+
background-image:
|
|
222
|
+
linear-gradient(
|
|
223
|
+
135deg,
|
|
224
|
+
color-mix(in srgb, var(--color-gold) 8%, transparent),
|
|
225
|
+
color-mix(in srgb, var(--color-gold-light) 5%, transparent) 50%,
|
|
226
|
+
color-mix(in srgb, var(--color-gold) 8%, transparent)
|
|
227
|
+
);
|
|
228
|
+
|
|
229
|
+
/* Hover: deepen the plate to a SATURATED gold the white label clears (AW.W13
|
|
230
|
+
names a "saturated gold backplate"; the D1 fix). The bottom layer is the
|
|
231
|
+
OPAQUE fixed deep gold (`--color-gold-deep`, mode-INVARIANT) — a solid plate
|
|
232
|
+
at ~6.5:1 (light) / ~5.5:1 (dark) against white, well below the ~0.18
|
|
233
|
+
luminance floor white text needs for ≥4.5:1 (was a translucent 22-30% wash
|
|
234
|
+
over near-cream glass → 1.29:1 white-on-pale-gold). The plate is FIXED-dark
|
|
235
|
+
in both modes — deepening toward the mode-flipping `--foreground` brightened
|
|
236
|
+
the dark plate to a cream-gold; `--color-gold-deep` does not flip. The
|
|
237
|
+
shimmer sweep rides ABOVE as a LOW-alpha gold gradient (normal blend, ≤18% —
|
|
238
|
+
it textures the plate without brightening it past the floor), and the
|
|
239
|
+
paper-grain overlays for the disco facet. */
|
|
240
|
+
&:hover:not(:disabled) {
|
|
241
|
+
background-image:
|
|
242
|
+
var(--paper-clean-texture),
|
|
243
|
+
linear-gradient(
|
|
244
|
+
90deg,
|
|
245
|
+
transparent 0%,
|
|
246
|
+
color-mix(in srgb, var(--color-gold) 14%, transparent) 25%,
|
|
247
|
+
color-mix(in srgb, var(--color-gold) 18%, transparent) 50%,
|
|
248
|
+
color-mix(in srgb, var(--color-gold) 14%, transparent) 75%,
|
|
249
|
+
transparent 100%
|
|
250
|
+
),
|
|
251
|
+
linear-gradient(
|
|
252
|
+
135deg,
|
|
253
|
+
var(--color-gold-deep),
|
|
254
|
+
color-mix(in srgb, var(--color-gold-deep), var(--color-gold-dark) 18%) 50%,
|
|
255
|
+
var(--color-gold-deep)
|
|
256
|
+
);
|
|
257
|
+
background-blend-mode: overlay, normal, normal;
|
|
258
|
+
background-size: var(--paper-texture-size), 250% 100%, 100% 100%;
|
|
259
|
+
background-position: 0 0, 100% 0, 0 0;
|
|
260
|
+
box-shadow:
|
|
261
|
+
var(--glass-specular),
|
|
262
|
+
0 0 0 1px color-mix(in srgb, var(--color-gold-dark) 40%, transparent),
|
|
263
|
+
0 0.5px 0 0 rgb(0 0 0 / 0.06);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
267
|
+
&:hover:not(:disabled) {
|
|
268
|
+
animation: btn-gold-bg-sweep var(--duration-shimmer) linear infinite;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/* Background-position sweep for the gold CTA hover shimmer.
|
|
274
|
+
Distinct from `gold-shimmer-slide` (which animates background-position for
|
|
275
|
+
a text-clip gradient). This variant sweeps the `background-position` of the
|
|
276
|
+
250% wide gradient across the button's bounding box. */
|
|
277
|
+
@keyframes btn-gold-bg-sweep {
|
|
278
|
+
0% { background-position: 0 0, 100% 0, 0 0; }
|
|
279
|
+
100% { background-position: 0 0, -100% 0, 0 0; }
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/* ── Table density utilities — AN.R0 ─────────────────────────────────────
|
|
283
|
+
`table-cell` and `table-head` replace the former Tailwind `p-4` / `h-12`
|
|
284
|
+
literals in TableCell.vue / TableHead.vue. Both read `--table-density`
|
|
285
|
+
(tokens.css §19) so a single CSS-var assignment on a wrapping element
|
|
286
|
+
scales all row padding + header height simultaneously. Default density=1
|
|
287
|
+
resolves to the identical geometry as the previous Tailwind literals. */
|
|
288
|
+
@utility table-cell {
|
|
289
|
+
padding-inline: var(--table-cell-px, 1rem);
|
|
290
|
+
padding-block: var(--table-cell-py, 1rem);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
@utility table-head {
|
|
294
|
+
height: var(--table-head-h, 3rem);
|
|
295
|
+
padding-inline: var(--table-head-px, 1rem);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
/* ── Rainbow gradient backgrounds ───────────────────────────────────────
|
|
299
|
+
`.rainbow-vivid` + `.rainbow-pastel` paint a left-to-right 7-stop spectrum
|
|
300
|
+
from the canonical `--rainbow-*` / `--rainbow-pastel-*` token families
|
|
301
|
+
(tokens.css §14). Consumed by keyframes.js's demo transport chrome —
|
|
302
|
+
`TransportDock.vue` / `RibbonBar.vue` bind `rainbow-vivid` (playing/active)
|
|
303
|
+
vs `rainbow-pastel` (idle) on the play + Apply buttons (re-confirmed live at
|
|
304
|
+
AZ.W-PRUNE2 E4-2). */
|
|
305
|
+
@utility rainbow-vivid {
|
|
306
|
+
background: linear-gradient(
|
|
307
|
+
to right,
|
|
308
|
+
var(--rainbow-red),
|
|
309
|
+
var(--rainbow-orange),
|
|
310
|
+
var(--rainbow-yellow),
|
|
311
|
+
var(--rainbow-green),
|
|
312
|
+
var(--rainbow-blue),
|
|
313
|
+
var(--rainbow-indigo),
|
|
314
|
+
var(--rainbow-violet)
|
|
315
|
+
);
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
@utility rainbow-pastel {
|
|
319
|
+
background: linear-gradient(
|
|
320
|
+
to right,
|
|
321
|
+
var(--rainbow-pastel-red),
|
|
322
|
+
var(--rainbow-pastel-orange),
|
|
323
|
+
var(--rainbow-pastel-yellow),
|
|
324
|
+
var(--rainbow-pastel-green),
|
|
325
|
+
var(--rainbow-pastel-blue),
|
|
326
|
+
var(--rainbow-pastel-indigo),
|
|
327
|
+
var(--rainbow-pastel-violet)
|
|
328
|
+
);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/* ── Text-highlight paint (CSS Custom Highlight API) ─────────────────────
|
|
332
|
+
The default `::highlight()` paint for the `useTextHighlight` composable
|
|
333
|
+
(composables/motion; the `/motion-core` subpath, AX.W37). A named `Highlight`
|
|
334
|
+
registered in `CSS.highlights`
|
|
335
|
+
under one of these keys paints its `Range` set without a `<mark>` wrapper.
|
|
336
|
+
Token-bridged: the search mark reads the canonical pastel-yellow rainbow
|
|
337
|
+
token at a soft alpha; the equation/variable mark reads `--primary`. Both
|
|
338
|
+
axes are overridable via the `--text-highlight-*` custom properties. */
|
|
339
|
+
::highlight(glass-search-mark) {
|
|
340
|
+
background-color: var(
|
|
341
|
+
--text-highlight-search-bg,
|
|
342
|
+
color-mix(in srgb, var(--rainbow-pastel-yellow) 55%, transparent)
|
|
343
|
+
);
|
|
344
|
+
color: var(--text-highlight-search-fg, inherit);
|
|
345
|
+
}
|
|
346
|
+
::highlight(glass-mark) {
|
|
347
|
+
background-color: var(
|
|
348
|
+
--text-highlight-bg,
|
|
349
|
+
color-mix(in srgb, var(--primary) 18%, transparent)
|
|
350
|
+
);
|
|
351
|
+
color: var(--text-highlight-fg, inherit);
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
/* ── Interactive-button four-state recipe ────────────────────────────────
|
|
355
|
+
`.btn-interactive` carries the canonical "Button-with-spring-hover"
|
|
356
|
+
four-state contract — transition + hover-scale + active-press + disabled-
|
|
357
|
+
opacity + focus-ring fade-in. The Button primitive's variants emit the four
|
|
358
|
+
states except `hover:scale-*`; this is the canonical opt-in that adds the
|
|
359
|
+
spring-hover lift. Consumed by keyframes.js at 7 sites.
|
|
360
|
+
|
|
361
|
+
AX.W52 §6 — the hover lift is the restrained `--scale-hover-btn` (1.05, NOT
|
|
362
|
+
the emphatic 1.08 `--scale-hover`) routed through `--spring-smooth` — the ONE
|
|
363
|
+
button scale register the §6 doctrine records and the gate asserts across
|
|
364
|
+
`.btn-pill`/`.tap-squish`/`.glass-btn`/`btn-interactive`. The surface legs
|
|
365
|
+
stay on the bezier `--ease-standard` (a colour cross-fade reads as a wobble
|
|
366
|
+
on a spring); only the `scale` transform leg springs. */
|
|
367
|
+
@utility btn-interactive {
|
|
368
|
+
/* AQ.W3 §W3.2 identity base */
|
|
369
|
+
scale: 1;
|
|
370
|
+
transition:
|
|
371
|
+
background-color var(--duration-fast) var(--ease-standard),
|
|
372
|
+
color var(--duration-fast) var(--ease-standard),
|
|
373
|
+
scale var(--duration-fast) var(--spring-smooth),
|
|
374
|
+
opacity var(--duration-fast) var(--ease-standard);
|
|
375
|
+
|
|
376
|
+
&:hover {
|
|
377
|
+
scale: var(--scale-hover-btn);
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
&:active {
|
|
381
|
+
scale: var(--scale-press);
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
&:disabled {
|
|
385
|
+
opacity: var(--opacity-disabled);
|
|
386
|
+
pointer-events: none;
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
&:focus-visible {
|
|
390
|
+
box-shadow: var(--focus-ring-shadow);
|
|
391
|
+
outline: none;
|
|
392
|
+
/* Fade in; base state has no box-shadow transition → instant
|
|
393
|
+
removal. The `scale` leg keeps the `--spring-smooth` register. */
|
|
394
|
+
transition:
|
|
395
|
+
background-color var(--duration-fast) var(--ease-standard),
|
|
396
|
+
color var(--duration-fast) var(--ease-standard),
|
|
397
|
+
scale var(--duration-fast) var(--spring-smooth),
|
|
398
|
+
opacity var(--duration-fast) var(--ease-standard),
|
|
399
|
+
box-shadow var(--duration-fast) var(--ease-standard);
|
|
400
|
+
}
|
|
401
|
+
}
|