@mkbabb/glass-ui 2.1.0 → 3.0.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/{CommandShortcut-_INFUMu6.js → CommandShortcut-BNDzfFnB.js} +2 -2
- package/dist/{ContextMenuSubContent-DCkweFW9.js → ContextMenuSubContent-DLEyeqbh.js} +3 -3
- package/dist/{DialogContent-CmCijgX9.js → DialogContent-DSo7PKlU.js} +1 -1
- package/dist/{DialogFooter-DRdaCok0.js → DialogFooter-D5KY6sCX.js} +1 -1
- package/dist/{Notification-DrI1DT2v.js → Notification-D97JO0fK.js} +2 -2
- package/dist/{SelectScrollDownButton-yu8EYUnu.js → SelectScrollDownButton-BwTexKeY.js} +2 -2
- package/dist/{Toaster-DY8_jtHv.js → Toaster-CY8gJu9E.js} +69 -58
- package/dist/animated-digit.js +1 -1
- package/dist/aurora.js +100 -87
- package/dist/carousel.js +4 -4
- package/dist/{check-dwgetki8.js → check-Nuw7H9Yh.js} +1 -1
- package/dist/{chevron-down-DILQA1t6.js → chevron-down-Du2b9vY_.js} +1 -1
- package/dist/{chevron-right-fS7fal2t.js → chevron-right-CtDxpE3w.js} +1 -1
- package/dist/{chevron-up-BtYjYQOS.js → chevron-up-CenYokvI.js} +1 -1
- package/dist/command.js +1 -1
- package/dist/components/custom/aurora/composables/runtime.d.ts +24 -1
- package/dist/components/custom/toggle-chip/ToggleChip.vue.d.ts +6 -4
- package/dist/components/ui/toast/Toaster.vue.d.ts +7 -1
- package/dist/components/ui/toast/index.d.ts +1 -0
- package/dist/composables/dark/index.d.ts +1 -0
- package/dist/composables/dom/index.d.ts +1 -0
- package/dist/composables/dom/useIdleReady.d.ts +63 -0
- package/dist/composables/index.d.ts +1 -0
- package/dist/composables/motion/core/index.d.ts +6 -0
- package/dist/composables/motion/index.d.ts +0 -7
- package/dist/configurator.js +1 -1
- package/dist/confirm-dialog.js +1 -1
- package/dist/constants-D-8FN28s.js +13 -0
- package/dist/context-menu.js +1 -1
- package/dist/{createLucideIcon-Bn9a1b70.js → createLucideIcon-rHu18UQW.js} +2 -2
- package/dist/dark.d.ts +1 -1
- package/dist/dark.js +12 -1
- package/dist/dialog.js +2 -2
- package/dist/dock.js +1 -1
- package/dist/dom.js +2 -2
- package/dist/{dropdown-menu-2K-SGkZU.js → dropdown-menu-gHSkffW7.js} +2 -2
- package/dist/dropdown-menu.js +1 -1
- package/dist/expandable-container.js +2 -2
- package/dist/forms.js +2 -2
- package/dist/glass-ui.js +109 -109
- package/dist/icon-tooltip.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/labeled-field.js +3 -3
- package/dist/{minimize-2-LsCJ_eNt.js → minimize-2-C_oyKVwZ.js} +1 -1
- package/dist/motion-core.d.ts +1 -0
- package/dist/motion-core.js +192 -0
- package/dist/motion.js +25 -227
- package/dist/notification.js +1 -1
- package/dist/responsive-tabs.js +1 -1
- package/dist/{search-ocd8tmL9.js → search-7XEx_6hq.js} +1 -1
- package/dist/search.js +4 -4
- package/dist/select.js +1 -1
- package/dist/{sheet-CLVkb3AO.js → sheet-BsBdO5jq.js} +1 -1
- package/dist/sheet.js +1 -1
- package/dist/styles/dock.css +72 -95
- package/dist/styles/drawer.css +2 -2
- package/dist/styles/instrument-chassis.css +28 -1
- package/dist/styles/theme.css +3 -0
- package/dist/styles/tokens.css +109 -266
- package/dist/styles/typography.css +44 -131
- package/dist/styles/utilities.css +23 -58
- package/dist/toast.js +1 -1
- package/dist/{useAnimatedNumber-DcvTR9B4.js → useAnimatedNumber-2l13GibX.js} +9 -20
- package/dist/{useConfiguratorState-BlaevW0S.js → useConfiguratorState-BpZi8QJu.js} +5 -5
- package/dist/{useBreakpoint-BHlX-MhR.js → useIdleReady-DlzJicQH.js} +29 -1
- package/dist/{x-cdWAmO-q.js → x-Cb3NE2Ne.js} +1 -1
- package/package.json +12 -5
- package/src/styles/dock.css +72 -95
- package/src/styles/drawer.css +2 -2
- package/src/styles/instrument-chassis.css +28 -1
- package/src/styles/theme.css +3 -0
- package/src/styles/tokens.css +109 -266
- package/src/styles/typography.css +44 -131
- package/src/styles/utilities.css +23 -58
- package/dist/composables/motion/useSpringOrchestrator.d.ts +0 -15
- /package/dist/{IconTooltip-ge_mBSWR.js → IconTooltip-GIeWdo64.js} +0 -0
- /package/dist/{Input-CbakTe3B.js → Input-CBvqW8kZ.js} +0 -0
- /package/dist/composables/{motion → dark}/installDarkModeSync.d.ts +0 -0
- /package/dist/{useKeyboardShortcuts-B1ev1YEC.js → useKeyboardShortcuts-CPO4AhLx.js} +0 -0
|
@@ -10,59 +10,27 @@
|
|
|
10
10
|
* (`.text-display-*`, `.text-body`, `.text-admin-label`) and feature
|
|
11
11
|
* utilities (`.cm-serif`, `.fira-code`, `.fourier-f`).
|
|
12
12
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* 5-way visual-fidelity test against pre-substitution General Sans
|
|
21
|
-
* baseline at 1200×766 hero size. Closest character match among the
|
|
22
|
-
* OFL candidate menu (Plus Jakarta Sans / Onest / Manrope / Inter /
|
|
23
|
-
* Geist). Carries `font-display: optional` so paint never blocks on
|
|
24
|
-
* the LCP-critical hero font.
|
|
25
|
-
*
|
|
26
|
-
* - **Fira Code** (latin + latin-ext, variable wght 300..700). The
|
|
27
|
-
* canonical glass-ui mono. OFL — full self-host permitted. Carries
|
|
28
|
-
* `font-display: swap` (post-LCP register; visual swap acceptable).
|
|
29
|
-
*
|
|
30
|
-
* Both ship with Capsize-calibrated `size-adjust` / `ascent-override` /
|
|
31
|
-
* `descent-override` metric overrides on the matching fallback faces so
|
|
32
|
-
* the swap (system → primary) is geometry-neutral; CLS contribution
|
|
33
|
-
* from the font-load is zero by construction.
|
|
34
|
-
*
|
|
35
|
-
* Consumers map `--font-brand-sans` / `--font-display` / `--font-mono`
|
|
36
|
-
* to reference these self-hosted families and get the full gestalt-2
|
|
37
|
-
* stack (self-host + optional + size-adjust + metric overrides) at the
|
|
38
|
-
* substrate layer without re-introducing third-party CDN dependencies
|
|
39
|
-
* on the LCP-critical path.
|
|
13
|
+
* Self-host font subsystem — glass-ui ships two OFL-1.1 face families as
|
|
14
|
+
* bundled woff2 assets: Plus Jakarta Sans (brand display sans, font-display:
|
|
15
|
+
* optional) + Fira Code (canonical mono, font-display: swap). Both ship with
|
|
16
|
+
* Capsize-calibrated size-adjust / ascent-override / descent-override on the
|
|
17
|
+
* matching fallback faces so the swap is geometry-neutral (zero CLS). Consumers
|
|
18
|
+
* map --font-brand-sans / --font-display / --font-mono to reference them, no
|
|
19
|
+
* third-party CDN dependency on the LCP-critical path.
|
|
40
20
|
*/
|
|
41
21
|
|
|
42
22
|
/* ═══════════════════════════════════════════════
|
|
43
23
|
OFL FACE FILES — Plus Jakarta Sans (brand display)
|
|
44
24
|
═══════════════════════════════════════════════ */
|
|
45
25
|
|
|
46
|
-
/* The payload-bearing "Plus Jakarta Sans" faces
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
/* Plus Jakarta Sans — calibrated fallback face.
|
|
55
|
-
Wraps the platform's system sans-serif (San Francisco / Segoe UI /
|
|
56
|
-
Roboto / Arial) and overrides its metrics to match Plus Jakarta Sans's
|
|
57
|
-
x-width + ascent + descent. While the primary face hasn't arrived
|
|
58
|
-
(font-display: optional → renders in fallback if not in cache within
|
|
59
|
-
the 100ms block window), the fallback paints at Plus Jakarta's
|
|
60
|
-
geometry — the swap is metrically neutral, no CLS contribution.
|
|
61
|
-
|
|
62
|
-
The four values (size-adjust + ascent-override + descent-override per
|
|
63
|
-
system face) were derived programmatically via @capsizecss/core's
|
|
64
|
-
`createFontStack` against the bundled latin woff2 (AC.W6b Capsize
|
|
65
|
-
calibration; receipts at docs/tranches/AC/artefacts/W6b/). */
|
|
26
|
+
/* The payload-bearing "Plus Jakarta Sans" faces live in `fonts.css`
|
|
27
|
+
(`@mkbabb/glass-ui/styles/fonts`), split off the critical entry path so
|
|
28
|
+
`./styles` does not carry the ~99 KB-gzipped font binary. The calibrated
|
|
29
|
+
`local()` fallback face below carries NO payload, stays on the critical
|
|
30
|
+
path, and paints during the `font-display: optional` window. Its metric
|
|
31
|
+
overrides (per system face) were derived via @capsizecss/core's
|
|
32
|
+
`createFontStack` against the bundled latin woff2 — the swap is metrically
|
|
33
|
+
neutral (no CLS). */
|
|
66
34
|
@font-face {
|
|
67
35
|
font-family: "Plus Jakarta Sans Fallback";
|
|
68
36
|
src: local("System Font"), local(".SFNS-Regular"), local(".SFNSText-Regular"),
|
|
@@ -98,19 +66,12 @@
|
|
|
98
66
|
OFL FACE FILES — Fira Code (canonical mono)
|
|
99
67
|
═══════════════════════════════════════════════ */
|
|
100
68
|
|
|
101
|
-
/* The payload-bearing "Fira Code" faces
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
/* Fira Code — calibrated fallback face. Wraps the platform mono stack
|
|
108
|
-
(SF Mono / Menlo / Consolas / Courier New) with Capsize-derived
|
|
109
|
-
metric overrides referenced against Roboto Mono (the only mono entry
|
|
110
|
-
in `@capsizecss/metrics`; the platform monos cluster within ~2% of
|
|
111
|
-
Roboto Mono's metrics, so the override holds across the chain).
|
|
112
|
-
size-adjust ≈ 1.0 means Fira Code's x-width matches the system mono
|
|
113
|
-
exactly — the swap is geometrically transparent. */
|
|
69
|
+
/* The payload-bearing "Fira Code" faces live in `fonts.css`
|
|
70
|
+
(`@mkbabb/glass-ui/styles/fonts`), split off the critical entry path. The
|
|
71
|
+
calibrated `local()` fallback face below carries NO payload, stays on the
|
|
72
|
+
critical path, and covers the `font-display: swap` window. Its metric
|
|
73
|
+
overrides reference Roboto Mono (the platform monos cluster within ~2%);
|
|
74
|
+
size-adjust ≈ 1.0 makes the swap geometrically transparent. */
|
|
114
75
|
@font-face {
|
|
115
76
|
font-family: "Fira Code Fallback";
|
|
116
77
|
src: local("SF Mono"), local("SFMono-Regular"), local("Menlo"),
|
|
@@ -121,37 +82,16 @@
|
|
|
121
82
|
}
|
|
122
83
|
|
|
123
84
|
:root {
|
|
124
|
-
/* Font family tokens.
|
|
125
|
-
|
|
126
|
-
`--font-
|
|
127
|
-
here
|
|
128
|
-
(
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
retiring the L.W1 `6ce14e5` fossil) removes those literals so the
|
|
135
|
-
tokens.css→theme.css bridge is the single resolution path.
|
|
136
|
-
|
|
137
|
-
Per AC.W6b (v1.5.0): the self-hosted OFL face files declared above
|
|
138
|
-
expose two new family names: `"Plus Jakarta Sans"` (brand display
|
|
139
|
-
sans — Path D substitute) + `"Fira Code"` (canonical mono). Both
|
|
140
|
-
families pair with their respective `"... Fallback"` faces (which
|
|
141
|
-
wrap the system fallback via `local()` + Capsize-calibrated
|
|
142
|
-
metric overrides — the swap is no-shift on geometry).
|
|
143
|
-
|
|
144
|
-
- `--font-brand-sans` ships its neutral default
|
|
145
|
-
(`"Helvetica Neue" → Arial Nova → Arial → system-ui → sans-serif`).
|
|
146
|
-
Consumers opting into Plus Jakarta Sans via the `brand-uniform-sans`
|
|
147
|
-
preset override this token at `:root` to:
|
|
148
|
-
`"Plus Jakarta Sans", "Plus Jakarta Sans Fallback", system-ui, sans-serif`.
|
|
149
|
-
|
|
150
|
-
- `--font-mono` references `"Fira Code"` first so the self-hosted
|
|
151
|
-
face engages by default for every glass-ui consumer; the
|
|
152
|
-
calibrated `"Fira Code Fallback"` covers the swap window, then
|
|
153
|
-
fallback `"Fira Mono"` + the generic `monospace` backstop the
|
|
154
|
-
chain for browsers that reject local() lookups. */
|
|
85
|
+
/* Font family tokens. `--font-serif` / `--font-display` / `--font-mono`
|
|
86
|
+
are NOT declared here — their source-of-truth lives in tokens.css
|
|
87
|
+
(`--font-stack-*`), bridged to Tailwind via theme.css's `@theme` block;
|
|
88
|
+
declaring `:root` literals here would shadow consumer `@theme` overrides
|
|
89
|
+
(un-layered `:root` wins over `@layer theme`). The self-hosted faces
|
|
90
|
+
above expose `"Plus Jakarta Sans"` + `"Fira Code"`, each pairing with a
|
|
91
|
+
calibrated `"... Fallback"`. `--font-brand-sans` ships a neutral default;
|
|
92
|
+
consumers opting into Plus Jakarta via the `brand-uniform-sans` preset
|
|
93
|
+
override it. `--font-mono` references `"Fira Code"` first (engages by
|
|
94
|
+
default) then the fallback chain. */
|
|
155
95
|
/* Independent brand/system sans stack; consumers override once for uniform sans. */
|
|
156
96
|
--font-brand-sans: "Helvetica Neue", "Arial Nova", Arial, system-ui, sans-serif;
|
|
157
97
|
--font-sans: var(--font-brand-sans);
|
|
@@ -219,29 +159,12 @@ body {
|
|
|
219
159
|
font-weight: var(--font-display-weight);
|
|
220
160
|
}
|
|
221
161
|
|
|
222
|
-
/*
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
get the canonical ceiling without re-declaring it.
|
|
229
|
-
|
|
230
|
-
Three knobs let consumers tune without forking the recipe:
|
|
231
|
-
- `--text-hero-size`: total clamp (default = canonical cap). Speedtest
|
|
232
|
-
overrides this to `clamp(3rem, 45cqi, var(--type-display-audacious))`
|
|
233
|
-
for its container-query metric column.
|
|
234
|
-
- `--text-hero-leading`: line-height; default 0.84 matches speedtest's
|
|
235
|
-
AB.W1.T3 tight-leading baseline.
|
|
236
|
-
- `--text-hero-tracking`: letter-spacing; default -0.03em (poster-type
|
|
237
|
-
register — tighter than `--type-tracking-tight`).
|
|
238
|
-
|
|
239
|
-
`font-weight: 300` (poster-type) and `font-feature-settings: ss01,
|
|
240
|
-
tnum, lnum` lock the numeric/stylistic-set baseline; consumers that
|
|
241
|
-
need different features re-declare locally. The utility is otherwise
|
|
242
|
-
substrate-only — consumer-side data-attribute registers (e.g.,
|
|
243
|
-
speedtest's `.text-hero[data-idle]` colour cascade) compose ON TOP of
|
|
244
|
-
this base. */
|
|
162
|
+
/* `.text-hero` — the poster-type hero register. Ceiling pegs to
|
|
163
|
+
`--type-display-audacious` (φ^(11/2) — peak 352px). Three knobs tune without
|
|
164
|
+
forking: `--text-hero-size` (total clamp), `--text-hero-leading` (line-height,
|
|
165
|
+
default 0.84), `--text-hero-tracking` (letter-spacing, default -0.03em).
|
|
166
|
+
`font-weight: 300` + `font-feature-settings: ss01, tnum, lnum` lock the
|
|
167
|
+
numeric/stylistic baseline; consumer data-attribute registers compose on top. */
|
|
245
168
|
@utility text-hero {
|
|
246
169
|
font-family: var(--font-display);
|
|
247
170
|
font-size: var(--text-hero-size, var(--type-display-audacious));
|
|
@@ -352,23 +275,13 @@ body {
|
|
|
352
275
|
font-weight: 600;
|
|
353
276
|
}
|
|
354
277
|
|
|
355
|
-
/*
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
literal bold inside a dock pill (the user mandate is "the start text
|
|
363
|
-
should not be bold", redressed to every bottom-dock label).
|
|
364
|
-
|
|
365
|
-
Composes the audacious-dock `--dock-label-size` knob when set
|
|
366
|
-
(utilities.css §audacious mobile carve declares `--dock-label-size:
|
|
367
|
-
14-15px` at narrow viewports); falls back to `--type-subheading` so
|
|
368
|
-
the register stays one rung above body-small at desktop. Weight 400
|
|
369
|
-
(regular) per the standing precept: Plus Jakarta Sans at the dock
|
|
370
|
-
pill size reads visually heavier than the numeric weight implies, so
|
|
371
|
-
the regular rung is the correct register for the not-bold posture. */
|
|
278
|
+
/* Canonical dock control label register — text labels INSIDE
|
|
279
|
+
`.dock-tab-button` (Start, Next, Submit, …) that want an emphatic character
|
|
280
|
+
without `.text-heading`'s `font-weight: 700` (which reads as literal bold in
|
|
281
|
+
a dock pill). Composes the `--dock-label-size` knob when set (dock.css
|
|
282
|
+
audacious mobile carve), else `--type-subheading`. Weight 400 — Plus Jakarta
|
|
283
|
+
reads heavier than its numeric weight at pill size, so regular is the
|
|
284
|
+
not-bold register. */
|
|
372
285
|
@utility dock-label {
|
|
373
286
|
font-family: var(--font-serif);
|
|
374
287
|
font-size: var(--dock-label-size, var(--type-subheading));
|
package/src/styles/utilities.css
CHANGED
|
@@ -460,8 +460,10 @@
|
|
|
460
460
|
color: color-mix(in srgb, var(--muted-foreground) 50%, transparent);
|
|
461
461
|
}
|
|
462
462
|
|
|
463
|
-
/* ── Hover lift — translate-y + shadow on hover (3 levels) ──
|
|
464
|
-
|
|
463
|
+
/* ── Hover lift — translate-y + shadow on hover (3 levels) ──
|
|
464
|
+
The shared transition is expressed once over the family; the three
|
|
465
|
+
:hover rules carry the per-level translate + shadow. */
|
|
466
|
+
:where(.hover-lift, .hover-lift-md, .hover-lift-lg) {
|
|
465
467
|
transition-property: transform, box-shadow;
|
|
466
468
|
transition-duration: var(--duration-normal);
|
|
467
469
|
transition-timing-function: var(--ease-standard);
|
|
@@ -470,22 +472,10 @@
|
|
|
470
472
|
transform: translateY(var(--lift-sm));
|
|
471
473
|
box-shadow: var(--shadow-md);
|
|
472
474
|
}
|
|
473
|
-
|
|
474
|
-
.hover-lift-md {
|
|
475
|
-
transition-property: transform, box-shadow;
|
|
476
|
-
transition-duration: var(--duration-normal);
|
|
477
|
-
transition-timing-function: var(--ease-standard);
|
|
478
|
-
}
|
|
479
475
|
.hover-lift-md:hover:not(:disabled):not([aria-disabled='true']) {
|
|
480
476
|
transform: translateY(var(--lift-md));
|
|
481
477
|
box-shadow: var(--shadow-md);
|
|
482
478
|
}
|
|
483
|
-
|
|
484
|
-
.hover-lift-lg {
|
|
485
|
-
transition-property: transform, box-shadow;
|
|
486
|
-
transition-duration: var(--duration-normal);
|
|
487
|
-
transition-timing-function: var(--ease-standard);
|
|
488
|
-
}
|
|
489
479
|
.hover-lift-lg:hover:not(:disabled):not([aria-disabled='true']) {
|
|
490
480
|
transform: translateY(var(--lift-lg));
|
|
491
481
|
box-shadow: var(--shadow-lg);
|
|
@@ -501,21 +491,19 @@
|
|
|
501
491
|
the whole cartoon read.
|
|
502
492
|
(Per audit U.W0.C-c §1.3 / Union 1 — collapses the dual-system
|
|
503
493
|
drift onto the token-driven shadow.) */
|
|
494
|
+
:where(.shadow-cartoon-sm, .shadow-cartoon-md, .shadow-cartoon-lg) {
|
|
495
|
+
border: 2px solid var(--border);
|
|
496
|
+
}
|
|
504
497
|
.shadow-cartoon-sm {
|
|
505
498
|
box-shadow: var(--shadow-cartoon-sm);
|
|
506
|
-
border: 2px solid var(--border);
|
|
507
499
|
transform: translateY(-1px);
|
|
508
500
|
}
|
|
509
|
-
|
|
510
501
|
.shadow-cartoon-md {
|
|
511
502
|
box-shadow: var(--shadow-cartoon-md);
|
|
512
|
-
border: 2px solid var(--border);
|
|
513
503
|
transform: translateY(-1px);
|
|
514
504
|
}
|
|
515
|
-
|
|
516
505
|
.shadow-cartoon-lg {
|
|
517
506
|
box-shadow: var(--shadow-cartoon-lg);
|
|
518
|
-
border: 2px solid var(--border);
|
|
519
507
|
transform: translateY(-2px);
|
|
520
508
|
}
|
|
521
509
|
|
|
@@ -574,21 +562,14 @@
|
|
|
574
562
|
data-[state=closed]:duration-[var(--duration-fast)];
|
|
575
563
|
}
|
|
576
564
|
|
|
577
|
-
/* ── Audacious primary CTA recipe
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
blended with a --primary radial). Reservation: disco fires on hover
|
|
586
|
-
only — at rest the button reads as a Vignelli-restrained composed
|
|
587
|
-
glass surface.
|
|
588
|
-
|
|
589
|
-
Pair with `bg-primary text-primary-foreground` for the canonical
|
|
590
|
-
Button variant; the utility owns the texture/highlight/sparkle
|
|
591
|
-
composition only. */
|
|
565
|
+
/* ── Audacious primary CTA recipe ────────────────────────────────────────
|
|
566
|
+
Composes three at-rest marks (top-highlight via --glass-highlight, bottom
|
|
567
|
+
under-shadow via --border-hairline, baseline glass) with three disco accents
|
|
568
|
+
on hover (specular swap via --glass-specular, sparkle sweep via the ::after
|
|
569
|
+
star, disco-grain via --paper-clean-texture blended with a --primary radial).
|
|
570
|
+
Disco fires on hover only — at rest the button reads as a restrained glass
|
|
571
|
+
surface. Pair with `bg-primary text-primary-foreground`; the utility owns
|
|
572
|
+
the texture/highlight/sparkle composition only. */
|
|
592
573
|
@utility btn-audacious {
|
|
593
574
|
position: relative;
|
|
594
575
|
isolation: isolate;
|
|
@@ -782,21 +763,11 @@
|
|
|
782
763
|
padding-inline: var(--table-head-px, 1rem);
|
|
783
764
|
}
|
|
784
765
|
|
|
785
|
-
/* ── Rainbow gradient backgrounds
|
|
766
|
+
/* ── Rainbow gradient backgrounds ───────────────────────────────────────
|
|
786
767
|
`.rainbow-vivid` + `.rainbow-pastel` paint a left-to-right 7-stop spectrum
|
|
787
768
|
from the canonical `--rainbow-*` / `--rainbow-pastel-*` token families
|
|
788
|
-
(tokens.css §14).
|
|
789
|
-
|
|
790
|
-
sweep corpus — keyframes.js's `AnimationMenuBar.vue` round play button
|
|
791
|
-
composes `rainbow-vivid` (playing) / `rainbow-pastel` (idle) and silently
|
|
792
|
-
lost its gradient when the recipes left the library. The `--rainbow-*`
|
|
793
|
-
color tokens survived the retiral; only the class recipes were dropped.
|
|
794
|
-
|
|
795
|
-
Re-promoted as `@utility` recipes — the token half is canonical, so the
|
|
796
|
-
class form that paints it belongs alongside it. Not a backwards-compat
|
|
797
|
-
alias: it is a substrate REVERT, the revert IS the consumer rediscovery
|
|
798
|
-
(≥ 1 consumer exists post-revert, satisfying L invariant 8). Faithful
|
|
799
|
-
to the pre-`b0debec` recipe bodies. */
|
|
769
|
+
(tokens.css §14). Consumed by keyframes.js's `AnimationMenuBar.vue` round
|
|
770
|
+
play button — `rainbow-vivid` (playing) / `rainbow-pastel` (idle). */
|
|
800
771
|
@utility rainbow-vivid {
|
|
801
772
|
background: linear-gradient(
|
|
802
773
|
to right,
|
|
@@ -823,19 +794,13 @@
|
|
|
823
794
|
);
|
|
824
795
|
}
|
|
825
796
|
|
|
826
|
-
/* ── Interactive-button four-state recipe
|
|
797
|
+
/* ── Interactive-button four-state recipe ────────────────────────────────
|
|
827
798
|
`.btn-interactive` carries the canonical "Button-with-spring-hover"
|
|
828
799
|
four-state contract — transition + hover-scale (`--scale-hover`) +
|
|
829
|
-
active-press (`--scale-press`) + disabled-opacity
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
keyframes.js consumes it at 7 sites (CubeScene, EasingScene, demo/cube,
|
|
834
|
-
AnimationControlsGroup RIBBON_BUTTON_CLASS, PlaybackRibbon Reverse).
|
|
835
|
-
|
|
836
|
-
The Button primitive's own variants emit the four states except
|
|
837
|
-
`hover:scale-*` — `.btn-interactive` is the canonical opt-in that adds
|
|
838
|
-
the spring-hover lift. Faithful to the pre-`b0debec` recipe body. */
|
|
800
|
+
active-press (`--scale-press`) + disabled-opacity + focus-ring fade-in.
|
|
801
|
+
The Button primitive's variants emit the four states except `hover:scale-*`;
|
|
802
|
+
this is the canonical opt-in that adds the spring-hover lift. Consumed by
|
|
803
|
+
keyframes.js at 7 sites. */
|
|
839
804
|
@utility btn-interactive {
|
|
840
805
|
transition:
|
|
841
806
|
background-color var(--duration-fast) var(--ease-standard),
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { useNumericTransition, type SpringSnapshot, type UseNumericTransitionOptions } from "./useNumericTransition";
|
|
2
|
-
/**
|
|
3
|
-
* @deprecated Renamed to `useNumericTransition` at AL.W9-δ to reclaim the
|
|
4
|
-
* "spring" name for the physics-based `useSpring` composable. This shim
|
|
5
|
-
* resolves to the same implementation and will be removed at the next
|
|
6
|
-
* major version (v3.0). Migrate to `useNumericTransition`.
|
|
7
|
-
*/
|
|
8
|
-
export declare const useSpringOrchestrator: typeof useNumericTransition;
|
|
9
|
-
/**
|
|
10
|
-
* @deprecated Renamed to `UseNumericTransitionOptions` at AL.W9-δ. This
|
|
11
|
-
* shim will be removed at the next major version (v3.0). Migrate to
|
|
12
|
-
* `UseNumericTransitionOptions`.
|
|
13
|
-
*/
|
|
14
|
-
export type UseSpringOrchestratorOptions<K extends string> = UseNumericTransitionOptions<K>;
|
|
15
|
-
export type { SpringSnapshot };
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|