@mkbabb/glass-ui 3.7.0 → 3.8.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-q2qHCJFG.js +157 -0
- package/dist/{CommandShortcut-CY0aQTz5.js → CommandShortcut-SzWRhROC.js} +2 -2
- package/dist/{ContextMenuSubContent-BeDz7G6f.js → ContextMenuSubContent-Do977Cbf.js} +1 -1
- package/dist/{DataTable-gtPOLZvl.js → DataTable-CvlWXz65.js} +3 -3
- package/dist/DeckProgress-AVgbIULY.js +23 -0
- package/dist/{DialogContent-DG1YMR-P.js → DialogContent-DjZWT3lK.js} +2 -2
- package/dist/{DialogFooter-BCIaDP15.js → DialogFooter-Gprw8H_A.js} +1 -1
- package/dist/{DiscoGlyph-ZoBYpoxI.js → DiscoGlyph-CG0F410s.js} +1 -1
- package/dist/{GlyphFace-Ce_oe3tM.js → GlyphFace-DRjDkB0s.js} +1 -1
- package/dist/{HoverPopover-DXpOEw1P.js → HoverPopover-D56O6Ylp.js} +1 -1
- package/dist/{IconTooltip-Cu86JR4e.js → IconTooltip-D2T5nYOM.js} +1 -1
- package/dist/{MetricBadge-D-bRaQUD.js → MetricBadge-lTc002u2.js} +1 -1
- package/dist/{Notification-B5WHP3_1.js → Notification-BxK8LZMw.js} +1 -1
- package/dist/{PopoverContent-F1bWnYoh.js → PopoverContent-BId6ggf_.js} +1 -1
- package/dist/{Progress-c4vo4ALi.js → Progress-iEuD9pxG.js} +4 -4
- package/dist/{ScrollingText-BEp377U5.js → ScrollingText-CVyqxvfv.js} +2 -2
- package/dist/{SelectScrollDownButton-DAo5NmY_.js → SelectScrollDownButton-C7TRe-ep.js} +2 -2
- package/dist/{ToggleGroupItem-C-AIkBUw.js → ToggleGroupItem-CkXUcBlt.js} +1 -1
- package/dist/{UnderlineTabs-D_c1iYo-.js → UnderlineTabs-Uxn-R3MT.js} +2 -2
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +4 -2
- package/dist/api.js +1 -1
- package/dist/aurora.js +336 -405
- package/dist/canvas.d.ts +1 -0
- package/dist/canvas.js +3 -0
- package/dist/card.js +1 -1
- package/dist/carousel.js +105 -104
- package/dist/collapsible.js +1 -1
- package/dist/{color-DjJCAQ6f.js → color-DMLTunJK.js} +22 -14
- package/dist/color.js +2 -2
- package/dist/command.js +1 -1
- package/dist/compile-BBTRjvQS.js +158 -0
- package/dist/components/custom/aurora/composables/atoms.d.ts +90 -25
- package/dist/components/custom/aurora/composables/color.d.ts +0 -12
- package/dist/components/custom/aurora/composables/uniformBridge.d.ts +34 -23
- package/dist/components/custom/aurora/constants/presets.d.ts +10 -7
- package/dist/components/custom/aurora/constants/renderMode.d.ts +22 -0
- package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -1
- package/dist/components/custom/aurora/constants/shaders/brush.glsl.d.ts +1 -1
- package/dist/components/custom/aurora/constants/shaders/composition.glsl.d.ts +1 -1
- package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +1 -1
- package/dist/components/custom/aurora/index.d.ts +3 -3
- package/dist/components/custom/constellation/Constellation.vue.d.ts +40 -5
- package/dist/components/custom/constellation/constellationField.d.ts +110 -5
- package/dist/components/custom/constellation/index.d.ts +2 -2
- package/dist/components/custom/dock/GlassDock.vue.d.ts +12 -4
- package/dist/components/custom/dock/composables/dockMorphContext.d.ts +57 -0
- package/dist/components/custom/dock/composables/index.d.ts +3 -0
- package/dist/components/custom/dock/composables/useDockHold.d.ts +61 -0
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -59
- package/dist/components/custom/dock/index.d.ts +2 -0
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +13 -0
- package/dist/components/custom/goo-blob/composables/useBlobMood.d.ts +4 -0
- package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +2 -0
- package/dist/components/custom/goo-blob/composables/useBlobSatellites.d.ts +2 -0
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +20 -5
- package/dist/components/custom/goo-blob/index.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/sdf-body.glsl.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/watercolor-edges.glsl.d.ts +2 -2
- package/dist/components/custom/goo-blob/types.d.ts +8 -0
- package/dist/components/ui/card/Card.vue.d.ts +23 -7
- package/dist/components/ui/card/index.d.ts +1 -1
- package/dist/components/ui/progress/ProgressDefault.vue.d.ts +14 -4
- package/dist/components/ui/slider/Slider.vue.d.ts +3 -1
- package/dist/composables/color/index.d.ts +19 -0
- package/dist/composables/dom/index.d.ts +1 -1
- package/dist/composables/dom/useResolveTokenColor.d.ts +27 -0
- package/dist/composables/glass/canvas2d/index.d.ts +2 -1
- package/dist/composables/glass/canvas2d/resolveCanvasColor.d.ts +20 -0
- package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +15 -1
- package/dist/composables/glass/index.d.ts +3 -1
- package/dist/composables/glass/useSpecularTracking.d.ts +33 -0
- package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +1 -1
- package/dist/composables/glass/webgl/shaders/procedural-color.glsl.d.ts +4 -0
- package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +1 -1
- package/dist/composables/motion/core/index.d.ts +1 -0
- package/dist/configurator.js +1 -1
- package/dist/confirm-dialog.js +1 -1
- package/dist/constellation.js +144 -75
- package/dist/context-menu.js +2 -2
- package/dist/controls.js +2 -2
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/deck-progress.d.ts +1 -0
- package/dist/deck-progress.js +2 -0
- package/dist/dialog.js +2 -2
- package/dist/disco-glyph.js +1 -1
- package/dist/dock.js +386 -285
- package/dist/{dockContext-DLgrVWsU.js → dockContext-BKeIMmNk.js} +1 -1
- package/dist/dom.js +6 -6
- package/dist/{dropdown-menu-BWpwutt0.js → dropdown-menu-B_4bWyyG.js} +2 -2
- package/dist/dropdown-menu.js +1 -1
- package/dist/expandable-container.js +1 -1
- package/dist/fonts/README.md +26 -18
- package/dist/forms.js +3 -3
- package/dist/fourier-field.js +37 -37
- package/dist/glass-carousel.js +12 -7
- package/dist/glass-panel.js +7 -7
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +150 -162
- package/dist/glyph-face.js +2 -2
- package/dist/goo-blob.js +353 -270
- package/dist/header-ribbon.js +1 -1
- package/dist/hover-card.js +1 -1
- package/dist/hover-popover.js +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/instrument-chassis.js +1 -1
- package/dist/instrument-rail.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/{keys-Dyf_uTs5.js → keys-BsYjEFOW.js} +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +6 -6
- package/dist/metric-badge.js +1 -1
- package/dist/metric-stack.js +1 -1
- package/dist/motion-core.js +65 -65
- package/dist/motion.js +3 -3
- package/dist/notification.js +1 -1
- package/dist/paper-backdrop.js +1 -1
- package/dist/popover.js +1 -1
- package/dist/progress.js +1 -1
- package/dist/pulse.js +1 -1
- package/dist/reactive.js +2 -2
- package/dist/resolveCanvasColor-BBiYfp8g.js +11 -0
- package/dist/responsive-tabs.js +2 -2
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +7 -7
- package/dist/select.js +3 -3
- package/dist/separator.js +1 -1
- package/dist/{sheet-Cv1uO-Gq.js → sheet-VZEtNFvO.js} +2 -2
- package/dist/sheet.js +1 -1
- package/dist/slider-D9puf-Ko.js +142 -0
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +3 -3
- package/dist/styles/components.css +1 -1
- package/dist/styles/dock-controls.css +21 -18
- package/dist/styles/dock.css +415 -224
- package/dist/styles/fonts.css +0 -25
- package/dist/styles/glass.css +100 -41
- package/dist/styles/theme.css +9 -2
- package/dist/styles/tokens.css +139 -32
- package/dist/styles/typography.css +52 -69
- package/dist/styles/utilities.css +2 -1
- package/dist/styles/view-transition.css +12 -40
- package/dist/switch.js +1 -1
- package/dist/tabs.js +5 -5
- package/dist/timeline.js +3 -3
- package/dist/toast.js +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{useAnimatedNumber-C5I3wWd8.js → useAnimatedNumber-C_3wZLx4.js} +1 -1
- package/dist/{useCanvas2D-C31yfUGY.js → useCanvas2D-ClrQuZtp.js} +2 -1
- package/dist/{useConfiguratorState-B24TcgIn.js → useConfiguratorState-CMff4GzH.js} +3 -3
- package/dist/useResolveTokenColor-r9pnNjqK.js +24 -0
- package/dist/useSpecularTracking-BVRZsRHA.js +26 -0
- package/dist/{useTextHighlight-aMPdEpkq.js → useTextHighlight-9nMW23Qb.js} +1 -1
- package/dist/{useTouchGate-YQRwyUGU.js → useTouchGate-WFyJYsth.js} +1 -1
- package/dist/vReveal-CqaCz_mC.js +44 -0
- package/dist/watercolor-dot.js +2 -2
- package/package.json +36 -4
- package/src/fonts/README.md +26 -18
- package/src/styles/dock-controls.css +21 -18
- package/src/styles/dock.css +415 -224
- package/src/styles/fonts.css +0 -25
- package/src/styles/glass.css +100 -41
- package/src/styles/theme.css +9 -2
- package/src/styles/tokens.css +139 -32
- package/src/styles/typography.css +52 -69
- package/src/styles/utilities.css +2 -1
- package/src/styles/view-transition.css +12 -40
- package/dist/CardAction-D8nSE62a.js +0 -163
- package/dist/compile-iM4IUB66.js +0 -158
- package/dist/fonts/fraunces/fraunces-latin.woff2 +0 -0
- package/dist/slider-BA9wIs5e.js +0 -130
- package/dist/useViewTransition-DaN5Zrox.js +0 -21
- package/dist/vReveal-BE2TsPoR.js +0 -24
- package/src/fonts/fraunces/fraunces-latin.woff2 +0 -0
- /package/dist/{CollapsibleContent-D7UNsXQr.js → CollapsibleContent-CP9qF1v4.js} +0 -0
- /package/dist/{ContextMenuContent-DGKZX1Du.js → ContextMenuContent-DDa0v27s.js} +0 -0
- /package/dist/{HoverCardContent-Bn0UBMY9.js → HoverCardContent-B6CcQ8He.js} +0 -0
- /package/dist/{Input-DWQQIOC4.js → Input-DVG_J0ne.js} +0 -0
- /package/dist/{InstrumentChassis-BLJBl1BW.js → InstrumentChassis-C2f6cBaQ.js} +0 -0
- /package/dist/{InstrumentRail-BElFwKyt.js → InstrumentRail-CUJ05YVG.js} +0 -0
- /package/dist/{Label-DBc7bKzZ.js → Label-zRfbQdCn.js} +0 -0
- /package/dist/{ModalOverlay-D1VrWyoi.js → ModalOverlay-B1GkAjNb.js} +0 -0
- /package/dist/{PaperBackdrop-DCGoGatv.js → PaperBackdrop-CqwjnfLv.js} +0 -0
- /package/dist/{SelectGroup-BcaFjvP4.js → SelectGroup-BFiod7X2.js} +0 -0
- /package/dist/{SelectSeparator-COFMJGng.js → SelectSeparator-L8pPEn4L.js} +0 -0
- /package/dist/{Separator-DZyqsCum.js → Separator-D7sD7RKj.js} +0 -0
- /package/dist/{Switch-2rsAtDfA.js → Switch-LDKLmmgx.js} +0 -0
- /package/dist/{TabsList-COqIdW7i.js → TabsList-qyHZ2lKY.js} +0 -0
- /package/dist/{Toaster-BMaeziJJ.js → Toaster-CabYEEF_.js} +0 -0
- /package/dist/{TooltipProvider-CD2IXfRv.js → TooltipProvider-CmZzCuaG.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-gLzyemvl.js → _plugin-vue_export-helper-ok8pgSl5.js} +0 -0
- /package/dist/composables/{dom → motion}/useTextHighlight.d.ts +0 -0
- /package/dist/{constants-CS75AWHG.js → constants-BPOqYJAm.js} +0 -0
- /package/dist/{createContext-CvNyBk4o.js → createContext-B44Sah_H.js} +0 -0
- /package/dist/{menuItemVariants-B4eFR5Ix.js → menuItemVariants-DKM85SNE.js} +0 -0
- /package/dist/{presets-BKVyQfbt.js → presets-D1XPuTj-.js} +0 -0
- /package/dist/{prng-wHuHlNHE.js → prng-COGhh02-.js} +0 -0
- /package/dist/{useGlassRenderer-HebgSEgN.js → useGlassRenderer-5I0YkI4t.js} +0 -0
- /package/dist/{useGlobalDark-yhL4Wp-s.js → useGlobalDark-D3EBWzXK.js} +0 -0
- /package/dist/{useIntersectionPause-Cc-H9ees.js → useIntersectionPause-Bj4sPkMh.js} +0 -0
- /package/dist/{useInterval-D3USn0yc.js → useInterval-CcLfq2WU.js} +0 -0
- /package/dist/{useKeyboardShortcuts-Be3w_Rwk.js → useKeyboardShortcuts-BXWXOZ-9.js} +0 -0
- /package/dist/{useResizeObserver-CSyxGxIX.js → useResizeObserver-CWCbk5Px.js} +0 -0
- /package/dist/{useScrollProgress-CAH8Ofwt.js → useScrollProgress-C9ysDic5.js} +0 -0
- /package/dist/{useSortable-C8ReQ50P.js → useSortable-MGAbCGVJ.js} +0 -0
- /package/dist/{useSpringMount-LRZqJTaF.js → useSpringMount-BJSHcLl3.js} +0 -0
- /package/dist/{useTimer-DEJonOZa.js → useTimer-3xqf_54b.js} +0 -0
- /package/dist/{useUserInvalidAria-CQKjEfwP.js → useUserInvalidAria-DoJKMZ3s.js} +0 -0
- /package/dist/{useViewportReady-K96m-Mdv.js → useViewportReady-RIr5Wgkh.js} +0 -0
package/dist/styles/tokens.css
CHANGED
|
@@ -33,21 +33,24 @@
|
|
|
33
33
|
accent-color: var(--accent-color);
|
|
34
34
|
|
|
35
35
|
/* ═══════════════════════════════════════════════
|
|
36
|
-
§0
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
36
|
+
§0 FONT TOKEN SOURCE-OF-TRUTH
|
|
37
|
+
|
|
38
|
+
The single authoritative declaration of the library's font register.
|
|
39
|
+
theme.css bridges each --font-stack-* to its Tailwind --font-* namespace
|
|
40
|
+
var; typography.css consumes the bridged --font-* names. The public
|
|
41
|
+
runtime knobs remain --font-*, --leading-*, --tracking-*.
|
|
42
|
+
|
|
43
|
+
ONE brand register: Plus Jakarta Sans (text + display) + Fira Code (mono).
|
|
44
|
+
--font-stack-text drives the body/heading/prose/display register — the
|
|
45
|
+
library DEFAULT is the register every live surface paints (the demo +
|
|
46
|
+
speedtest render Plus Jakarta everywhere). The calibrated "Plus Jakarta
|
|
47
|
+
Sans Fallback" / "Fira Code Fallback" faces (declared in typography.css)
|
|
48
|
+
wrap the system stacks with Capsize metric overrides so the swap window
|
|
49
|
+
is geometry-neutral (zero CLS). --font-stack-display aliases the text
|
|
50
|
+
register: there is no separate display-serif voice. */
|
|
51
|
+
--font-stack-text: "Plus Jakarta Sans", "Plus Jakarta Sans Fallback", system-ui, sans-serif;
|
|
52
|
+
--font-stack-display: var(--font-stack-text);
|
|
53
|
+
--font-stack-sans: var(--font-stack-text);
|
|
51
54
|
--font-stack-mono: "Fira Code", "Fira Code Fallback", "Fira Mono", monospace;
|
|
52
55
|
|
|
53
56
|
--type-leading-micro: 1.2;
|
|
@@ -175,10 +178,8 @@
|
|
|
175
178
|
|
|
176
179
|
/* Apple-inspired — micro-interactions, switches, dock hover */
|
|
177
180
|
--motion-ease-apple: cubic-bezier(0.25, 0.1, 0.25, 1);
|
|
178
|
-
--motion-ease-apple-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
|
179
181
|
|
|
180
182
|
--ease-apple: var(--motion-ease-apple);
|
|
181
|
-
--ease-apple-spring: var(--motion-ease-apple-spring);
|
|
182
183
|
--ease-spring: var(--spring-snappy);
|
|
183
184
|
--ease-decelerate: var(--ease-out);
|
|
184
185
|
--ease-accelerate: var(--ease-in);
|
|
@@ -418,6 +419,46 @@
|
|
|
418
419
|
--muted-soft: color-mix(in srgb, var(--muted) 30%, transparent);
|
|
419
420
|
--muted-medium: color-mix(in srgb, var(--muted) 50%, transparent);
|
|
420
421
|
|
|
422
|
+
/* ═══════════════════════════════════════════════
|
|
423
|
+
§5c CONSTELLATION — Canvas2D proximity-graph lattice (AX.W17)
|
|
424
|
+
|
|
425
|
+
The H.W4 legibility intelligence promoted from the slides deck to
|
|
426
|
+
LIBRARY identity: the node tones, the edge hairline color, the per-mode
|
|
427
|
+
edge-alpha multipliers, and the field-yields-to-type translucency knob.
|
|
428
|
+
Only `--constellation-accent` (the anomaly tint) stays a CONSUMER preset
|
|
429
|
+
(slides aliases it to `--ncsu-red`); the library ships a neutral default.
|
|
430
|
+
|
|
431
|
+
PLAIN-hsl LITERALS, per arm — NEVER `light-dark()` and NEVER a
|
|
432
|
+
`var(--neutral-*)`/`var(--foreground)`/`var(--border)`/`var(--card)`
|
|
433
|
+
alias. Canvas2D silently REJECTS a `light-dark()` value into
|
|
434
|
+
`strokeStyle`/`fillStyle` (the W30 86.3%-red-splatter cardinal defect),
|
|
435
|
+
and the rejection is identical whether the value is a literal
|
|
436
|
+
`light-dark(…)` OR a `var()` that RESOLVES to one — so the constellation
|
|
437
|
+
tokens are plain-hsl LEAVES, the `:root` vs `.dark` cascade carrying two
|
|
438
|
+
literals. `proof:constellation-tokens` clause (c) machine-locks this
|
|
439
|
+
(the no-`light-dark(`-substring NOR transitive-`var()` static assertion).
|
|
440
|
+
═══════════════════════════════════════════════ */
|
|
441
|
+
/* Node tones — readable on the warm-cream ground. The two-tone split (the
|
|
442
|
+
`dim` half rides `-node-dim`). Warm-grey ink, NOT a neutral-ladder alias. */
|
|
443
|
+
--constellation-node: hsl(36 8% 46%);
|
|
444
|
+
--constellation-node-dim: hsl(36 8% 60%);
|
|
445
|
+
/* Edge hairline stroke — warm near-black on cream (the plain-hsl complement
|
|
446
|
+
the slides deck reads to fix the `--foreground` light-dark() leak). */
|
|
447
|
+
--constellation-line: hsl(24 14% 14%);
|
|
448
|
+
/* Anomaly tint — NEUTRAL library default (a desaturated warm accent). The
|
|
449
|
+
consumer overrides this (slides → `--ncsu-red`); the library does NOT
|
|
450
|
+
bake a brand hue. This is the single consumer-preset boundary. */
|
|
451
|
+
--constellation-accent: hsl(18 58% 46%);
|
|
452
|
+
/* Edge-alpha multipliers — replace the magic `0.17` hairline / pointer-web
|
|
453
|
+
literals. The cream ground lifts the node tones, so the field can recede;
|
|
454
|
+
the focus-proximity edge reads a touch stronger. */
|
|
455
|
+
--constellation-edge-alpha: 0.22;
|
|
456
|
+
--constellation-edge-focus-alpha: 0.34;
|
|
457
|
+
/* §7 field-yields-to-type translucency knob — the legible-but-RECESSIVE
|
|
458
|
+
MIDPOINT, NOT max-legibility. On cream the node tones already read, so the
|
|
459
|
+
field recedes further: BELOW the slides 0.92 max-legibility reference. */
|
|
460
|
+
--constellation-alpha: 0.80;
|
|
461
|
+
|
|
421
462
|
/* ═══════════════════════════════════════════════
|
|
422
463
|
§6 SECTION PALETTE — 13-stop jewel tones (light)
|
|
423
464
|
═══════════════════════════════════════════════ */
|
|
@@ -535,6 +576,22 @@
|
|
|
535
576
|
--dock-shadow: var(--shadow-dock);
|
|
536
577
|
--dock-shadow-collapsed: var(--shadow-dock-collapsed);
|
|
537
578
|
|
|
579
|
+
/* AX.W04 F1 — the wrap/card-tier dock shadow. A wrapped multi-row dock (and
|
|
580
|
+
any finite-radius card silhouette) is a THICKER material than a flat thin
|
|
581
|
+
pill — WWDC25 §219 "material thickens as glass flexes larger". So when the
|
|
582
|
+
wrap dock expands it lifts its elevation onto the FLOATING-tier shadow
|
|
583
|
+
stack (the `--glass-shadow-floating` family — `--shadow-xl` + the
|
|
584
|
+
`--glass-material-rim` hairline + the `--glass-under-shadow-vivid` under-cast)
|
|
585
|
+
rather than carrying the flat `--shadow-dock` glow of a 40px pill. Composed
|
|
586
|
+
on `:root` as ONE consumer-overridable token (per the cartoon-shadow
|
|
587
|
+
override contract — override on the cascade, never a dead local). The dock
|
|
588
|
+
reads it via `calc()`-on-`--dock-expand-t` so the lift glides in lockstep
|
|
589
|
+
with the pill→card radius morph (ONE clock, ONE register). */
|
|
590
|
+
--glass-material-rim: 0 0 0 0.5px color-mix(in srgb, var(--shadow-color) 5%, transparent);
|
|
591
|
+
--shadow-dock-wrap: var(--shadow-xl),
|
|
592
|
+
var(--glass-material-rim),
|
|
593
|
+
var(--glass-under-shadow-vivid);
|
|
594
|
+
|
|
538
595
|
/* Cartoon shadow color primitives (kept for tiered cartoon utilities) */
|
|
539
596
|
--shadow-cartoon-color: rgb(0 0 0 / 0.12);
|
|
540
597
|
--shadow-cartoon-color-soft: rgb(0 0 0 / 0.06);
|
|
@@ -866,18 +923,16 @@
|
|
|
866
923
|
than cliffs. Defaults clamp to 80vw / 80vh capped at sensible
|
|
867
924
|
desktop widths; consumers override per-dock by setting either
|
|
868
925
|
token directly on a `.glass-dock` instance. User findings 1 + 5a. */
|
|
926
|
+
/* AX.W04 — `--dock-max-inline-size` is the canonical inline cap EVERY overflow
|
|
927
|
+
strategy reads: `overflow="scroll"` scrolls past it, and `overflow="wrap"`
|
|
928
|
+
wraps to N rows on the over-cap crossing (the dock shrink-wraps to content,
|
|
929
|
+
`max-inline-size` caps that intrinsic width at this token). The prior
|
|
930
|
+
`--dock-overflow-bp: 640px` viewport-breakpoint token (the magic-640
|
|
931
|
+
snap-back) is DELETED — the wrap is content-driven, not viewport-coupled, so
|
|
932
|
+
there is no breakpoint threshold to name. */
|
|
869
933
|
--dock-max-inline-size: min(80vw, 64rem);
|
|
870
934
|
--dock-max-block-size: min(80vh, 48rem);
|
|
871
935
|
|
|
872
|
-
/* AT.W7-dock-a — the `overflow="wrap"` desktop snap-back breakpoint, named
|
|
873
|
-
once. Below this viewport width a wrap-mode dock reads as a multi-row pill
|
|
874
|
-
that narrows to the viewport gutter; at/above it the pill snaps back to a
|
|
875
|
-
single nowrap row. The single source-of-record for the threshold the
|
|
876
|
-
`@media` in dock.css realizes (a `var()` cannot drive a media-query
|
|
877
|
-
feature in Baseline CSS, so the MQ carries the literal value of THIS
|
|
878
|
-
token; consumers reading the breakpoint do so through this name). */
|
|
879
|
-
--dock-overflow-bp: 640px;
|
|
880
|
-
|
|
881
936
|
/* AB.W1.T1 — chassis max-block-size guardrail.
|
|
882
937
|
Maximum block size a centred consumer-app card may consume while
|
|
883
938
|
preserving the inline dock footprint. The recipe subtracts the
|
|
@@ -1300,12 +1355,14 @@
|
|
|
1300
1355
|
--top-layer-backdrop-dim: 0.5;
|
|
1301
1356
|
|
|
1302
1357
|
--vt-duration: var(--duration-normal);
|
|
1303
|
-
/*
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
(
|
|
1308
|
-
|
|
1358
|
+
/* AX.W05 — ONE iOS-spring vocabulary: every spring-flavored transition reads
|
|
1359
|
+
a governed `--spring-*` register. The legacy apple-spring cubic-bezier
|
|
1360
|
+
(+27.5% overshoot) was a SECOND authority beside the regen `--spring-*`
|
|
1361
|
+
cohort; it is EXCISED. Its emphatic-overshoot register maps to the playful
|
|
1362
|
+
`--spring-bouncy` (the closest `linear()` overshoot stop-set), so the VT
|
|
1363
|
+
default + the cards/top-layer transitions share one spring primitive
|
|
1364
|
+
(CPU + GPU sample the same curve). No cubic-bezier fallback seed survives —
|
|
1365
|
+
the `linear()` spring degrades to `ease` where `linear()` is unsupported. */
|
|
1309
1366
|
--vt-ease: var(--spring-bouncy);
|
|
1310
1367
|
--vt-rise: 8px;
|
|
1311
1368
|
|
|
@@ -1589,6 +1646,25 @@
|
|
|
1589
1646
|
--shadow-cartoon-color: rgb(255 255 255 / 0.07);
|
|
1590
1647
|
--shadow-cartoon-color-soft: rgb(255 255 255 / 0.03);
|
|
1591
1648
|
|
|
1649
|
+
/* §5c CONSTELLATION — dark arm (AX.W17). The H.W4 dark-mode lift: the node
|
|
1650
|
+
tones step UP off the ink ground (the light arm's mid-grey would vanish on
|
|
1651
|
+
L6 black), the hairline goes warm off-white, the field carries a touch more
|
|
1652
|
+
presence to read at all. PLAIN-hsl literals, NEVER light-dark()/var(). */
|
|
1653
|
+
--constellation-node: hsl(42 9% 72%);
|
|
1654
|
+
--constellation-node-dim: hsl(42 8% 56%);
|
|
1655
|
+
--constellation-line: hsl(45 12% 86%);
|
|
1656
|
+
/* Anomaly — brightened for the deep canvas (same neutral-default register;
|
|
1657
|
+
the consumer still overrides to its brand). */
|
|
1658
|
+
--constellation-accent: hsl(20 70% 60%);
|
|
1659
|
+
/* The dark hairlines lift harder over the ink ground, so the edge multipliers
|
|
1660
|
+
run a touch lower than light to keep the field recessive. */
|
|
1661
|
+
--constellation-edge-alpha: 0.20;
|
|
1662
|
+
--constellation-edge-focus-alpha: 0.32;
|
|
1663
|
+
/* §7 — the ink ground needs MORE field presence than cream to read at all, so
|
|
1664
|
+
the dark alpha is modestly HIGHER than the light arm — but still BELOW the
|
|
1665
|
+
slides 1.0 max-legibility reference (the recessive midpoint, not 1.0). */
|
|
1666
|
+
--constellation-alpha: 0.88;
|
|
1667
|
+
|
|
1592
1668
|
/* Glass opacity + grain for dark — five-tier ladder, alpha-monotonic.
|
|
1593
1669
|
Each rung lifts ~0.08 from its light counterpart so the dark surfaces
|
|
1594
1670
|
carry comparable read-weight against the deeper canvas. */
|
|
@@ -1726,3 +1802,34 @@
|
|
|
1726
1802
|
inherits: false;
|
|
1727
1803
|
initial-value: 0;
|
|
1728
1804
|
}
|
|
1805
|
+
|
|
1806
|
+
/* ── The specular-intensity magnitude cohort (AX.W09) ──────────────────────
|
|
1807
|
+
The catch-light alpha multiplier at each interaction state, as a SINGLE
|
|
1808
|
+
overridable token cohort (was three buried literals across glass.css —
|
|
1809
|
+
`0.35` rest floor / `0.6` hover / `0.85` active — and the `.dark` arm's
|
|
1810
|
+
`0.22`). `glass.css`'s `.glass-material::before` rest/hover/active rules READ
|
|
1811
|
+
these, so the subtle-vs-extreme magnitude is a knob a consumer (or the dark
|
|
1812
|
+
arm) retunes ON THE CASCADE — never a re-buried literal. Override on `:root`
|
|
1813
|
+
to retune library-wide; the cartoon-shadow override contract is the precedent.
|
|
1814
|
+
|
|
1815
|
+
Re-baselined to a SUBTLE ladder (≈ half the retired `0.35/0.6/0.85`):
|
|
1816
|
+
• rest 0 — static, unwired surfaces are CLEAN; the catch-light wakes
|
|
1817
|
+
only on hover/active or on a pointer-wired surface. This
|
|
1818
|
+
aligns the painted rest behaviour with the @property
|
|
1819
|
+
`--specular-intensity { initial-value: 0 }` dormancy the
|
|
1820
|
+
prior unconditional `0.35` floor defeated.
|
|
1821
|
+
• hover 0.22 — a subtle warm-cream lens, not a flash.
|
|
1822
|
+
• active 0.32 — the press whisper; ≈ 0.22α × the warm-cream core, a lens
|
|
1823
|
+
not the prior ≈ 0.47 pure-white-screen hotspot. */
|
|
1824
|
+
:root {
|
|
1825
|
+
--glass-specular-intensity-rest: 0;
|
|
1826
|
+
--glass-specular-intensity-hover: 0.22;
|
|
1827
|
+
--glass-specular-intensity-active: 0.32;
|
|
1828
|
+
}
|
|
1829
|
+
|
|
1830
|
+
/* Over the deep canvas the `screen` blend lifts harder, so the dark arm runs a
|
|
1831
|
+
touch softer on the interaction rungs (rest already 0). */
|
|
1832
|
+
.dark {
|
|
1833
|
+
--glass-specular-intensity-hover: 0.18;
|
|
1834
|
+
--glass-specular-intensity-active: 0.26;
|
|
1835
|
+
}
|
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* typography.css —
|
|
3
|
-
* (
|
|
2
|
+
* typography.css — Plus Jakarta Sans (text + display) + Fira Code (mono)
|
|
3
|
+
* (both OFL faces self-hosted via fonts.css)
|
|
4
4
|
*
|
|
5
|
-
* Golden-ratio scale (√φ ≈ 1.272).
|
|
6
|
-
* body, headings, prose, and math — and
|
|
7
|
-
*
|
|
5
|
+
* Golden-ratio scale (√φ ≈ 1.272). ONE brand register: Plus Jakarta Sans
|
|
6
|
+
* carries the text register — body, headings, prose, display, and math — and
|
|
7
|
+
* Fira Code carries mono. The library DEFAULT is the register every live
|
|
8
|
+
* surface paints (the demo + speedtest render Plus Jakarta everywhere). There
|
|
9
|
+
* is no display-serif voice and no preset opt-out: the default IS the register.
|
|
8
10
|
*
|
|
9
11
|
* Semantic type classes expose both Tailwind-friendly utility names
|
|
10
12
|
* (`.text-display-*`, `.text-body`, `.text-admin-label`) and feature
|
|
11
13
|
* utilities (`.cm-serif`, `.fira-code`, `.fourier-f`).
|
|
12
14
|
*
|
|
13
15
|
* Self-host font subsystem — glass-ui ships two OFL-1.1 face families as
|
|
14
|
-
* bundled woff2 assets: Plus Jakarta Sans (brand display
|
|
16
|
+
* bundled woff2 assets: Plus Jakarta Sans (brand text + display, font-display:
|
|
15
17
|
* optional) + Fira Code (canonical mono, font-display: swap). Both ship with
|
|
16
18
|
* Capsize-calibrated size-adjust / ascent-override / descent-override on the
|
|
17
|
-
* matching fallback faces so the swap is geometry-neutral (zero CLS).
|
|
18
|
-
*
|
|
19
|
-
*
|
|
19
|
+
* matching fallback faces so the swap is geometry-neutral (zero CLS). The
|
|
20
|
+
* register lives in tokens.css §0 (--font-stack-text/-display/-mono), bridged
|
|
21
|
+
* to --font-text/-display/-mono in theme.css; consumers override --font-text
|
|
22
|
+
* once to rebrand, no third-party CDN dependency on the LCP-critical path.
|
|
20
23
|
*/
|
|
21
24
|
|
|
22
25
|
/* ═══════════════════════════════════════════════
|
|
@@ -82,21 +85,15 @@
|
|
|
82
85
|
}
|
|
83
86
|
|
|
84
87
|
:root {
|
|
85
|
-
/* Font family tokens. `--font-
|
|
86
|
-
are NOT declared here — their source-of-truth lives in
|
|
87
|
-
(`--font-stack-*`), bridged to Tailwind via theme.css's
|
|
88
|
-
declaring `:root` literals here would shadow consumer
|
|
89
|
-
(un-layered `:root` wins over `@layer theme`). The
|
|
90
|
-
above expose `"Plus Jakarta Sans"` + `"Fira Code"`,
|
|
91
|
-
calibrated `"... Fallback"`.
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
default) then the fallback chain. */
|
|
95
|
-
/* Independent brand/system sans stack; consumers override once for uniform sans. */
|
|
96
|
-
--font-brand-sans: "Helvetica Neue", "Arial Nova", Arial, system-ui, sans-serif;
|
|
97
|
-
--font-sans: var(--font-brand-sans);
|
|
98
|
-
--font-display-variation-settings: "WONK" 1, "SOFT" 0;
|
|
99
|
-
--font-display-weight: 400;
|
|
88
|
+
/* Font family tokens. `--font-text` / `--font-display` / `--font-serif` /
|
|
89
|
+
`--font-mono` are NOT declared here — their source-of-truth lives in
|
|
90
|
+
tokens.css §0 (`--font-stack-*`), bridged to Tailwind via theme.css's
|
|
91
|
+
`@theme` block; declaring `:root` literals here would shadow consumer
|
|
92
|
+
`@theme` overrides (un-layered `:root` wins over `@layer theme`). The
|
|
93
|
+
self-hosted faces above expose `"Plus Jakarta Sans"` + `"Fira Code"`,
|
|
94
|
+
each pairing with a calibrated `"... Fallback"`. The brand text register
|
|
95
|
+
(Plus Jakarta Sans) engages by default for every consumer; --font-mono
|
|
96
|
+
references `"Fira Code"` first then the fallback chain. */
|
|
100
97
|
|
|
101
98
|
/* Scale tokens */
|
|
102
99
|
--type-admin-label: 0.625rem; /* 10px */
|
|
@@ -116,8 +113,7 @@
|
|
|
116
113
|
/* Audacious display tier (v1.0.3). Extends the φ-ladder three rungs
|
|
117
114
|
beyond display-5 for poster-type consumers (speedtest hero,
|
|
118
115
|
dashboard pane titles when the consumer wants the number to win).
|
|
119
|
-
Same vw-axis as display-1..5 — consumer-agnostic.
|
|
120
|
-
sans preset still overrides via the existing :root override. */
|
|
116
|
+
Same vw-axis as display-1..5 — consumer-agnostic. */
|
|
121
117
|
--type-display-mega: clamp(5.382rem, 4rem + 9vw, 11.089rem); /* φ^(9/2) — peak 177px */
|
|
122
118
|
--type-display-hero: clamp(6.854rem, 4.5rem + 12vw, 17.942rem); /* φ^5 — peak 287px */
|
|
123
119
|
--type-display-audacious: clamp(8.728rem, 5rem + 16vw, 22rem); /* φ^(11/2) — peak 352px (fast.com peg) */
|
|
@@ -129,25 +125,18 @@
|
|
|
129
125
|
were retired in v0.8.6 (audit U.W0.C-c §1.1 / Union 2). */
|
|
130
126
|
}
|
|
131
127
|
|
|
132
|
-
:root[data-typography-preset="brand-uniform-sans"] {
|
|
133
|
-
--font-serif: var(--font-brand-sans);
|
|
134
|
-
--font-display: var(--font-brand-sans);
|
|
135
|
-
--font-display-variation-settings: normal;
|
|
136
|
-
--font-display-weight: 600;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
128
|
/* ═══════════════════════════════════════════════
|
|
140
|
-
BODY CASCADE —
|
|
129
|
+
BODY CASCADE — the brand text register inherits globally
|
|
141
130
|
═══════════════════════════════════════════════ */
|
|
142
131
|
body {
|
|
143
|
-
font-family: var(--font-
|
|
132
|
+
font-family: var(--font-text);
|
|
144
133
|
color: var(--foreground);
|
|
145
134
|
font-size: var(--type-body);
|
|
146
135
|
line-height: var(--type-leading-body);
|
|
147
136
|
}
|
|
148
137
|
|
|
149
138
|
/* ═══════════════════════════════════════════════
|
|
150
|
-
DISPLAY —
|
|
139
|
+
DISPLAY — Plus Jakarta Sans display, tracking-tight
|
|
151
140
|
═══════════════════════════════════════════════ */
|
|
152
141
|
@utility text-display-audacious {
|
|
153
142
|
font-family: var(--font-display);
|
|
@@ -155,8 +144,7 @@ body {
|
|
|
155
144
|
line-height: var(--type-leading-display);
|
|
156
145
|
letter-spacing: var(--type-tracking-tight);
|
|
157
146
|
font-optical-sizing: auto;
|
|
158
|
-
font-
|
|
159
|
-
font-weight: var(--font-display-weight);
|
|
147
|
+
font-weight: 600;
|
|
160
148
|
/* AQ.W3 §W3.3 — balance multi-line display headlines. Text-only (no box) so
|
|
161
149
|
balance is safe; degrades to unbalanced wrapping with zero break. */
|
|
162
150
|
text-wrap: balance;
|
|
@@ -177,7 +165,6 @@ body {
|
|
|
177
165
|
font-feature-settings: "ss01", "tnum", "lnum";
|
|
178
166
|
font-variant-numeric: tabular-nums lining-nums;
|
|
179
167
|
font-optical-sizing: auto;
|
|
180
|
-
font-variation-settings: var(--font-display-variation-settings);
|
|
181
168
|
display: inline-block;
|
|
182
169
|
max-inline-size: 100%;
|
|
183
170
|
/* AQ.W3 §W3.3 — `text-wrap: nowrap` (modern) sits AFTER `white-space:
|
|
@@ -193,8 +180,7 @@ body {
|
|
|
193
180
|
line-height: var(--type-leading-display);
|
|
194
181
|
letter-spacing: var(--type-tracking-tight);
|
|
195
182
|
font-optical-sizing: auto;
|
|
196
|
-
font-
|
|
197
|
-
font-weight: var(--font-display-weight);
|
|
183
|
+
font-weight: 600;
|
|
198
184
|
text-wrap: balance; /* AQ.W3 §W3.3 */
|
|
199
185
|
}
|
|
200
186
|
|
|
@@ -204,8 +190,7 @@ body {
|
|
|
204
190
|
line-height: var(--type-leading-display);
|
|
205
191
|
letter-spacing: var(--type-tracking-tight);
|
|
206
192
|
font-optical-sizing: auto;
|
|
207
|
-
font-
|
|
208
|
-
font-weight: var(--font-display-weight);
|
|
193
|
+
font-weight: 600;
|
|
209
194
|
text-wrap: balance; /* AQ.W3 §W3.3 */
|
|
210
195
|
}
|
|
211
196
|
|
|
@@ -215,8 +200,7 @@ body {
|
|
|
215
200
|
line-height: var(--type-leading-display);
|
|
216
201
|
letter-spacing: var(--type-tracking-tight);
|
|
217
202
|
font-optical-sizing: auto;
|
|
218
|
-
font-
|
|
219
|
-
font-weight: var(--font-display-weight);
|
|
203
|
+
font-weight: 600;
|
|
220
204
|
text-wrap: balance; /* AQ.W3 §W3.3 */
|
|
221
205
|
}
|
|
222
206
|
|
|
@@ -226,8 +210,7 @@ body {
|
|
|
226
210
|
line-height: var(--type-leading-display);
|
|
227
211
|
letter-spacing: var(--type-tracking-tight);
|
|
228
212
|
font-optical-sizing: auto;
|
|
229
|
-
font-
|
|
230
|
-
font-weight: var(--font-display-weight);
|
|
213
|
+
font-weight: 600;
|
|
231
214
|
text-wrap: balance; /* AQ.W3 §W3.3 */
|
|
232
215
|
}
|
|
233
216
|
|
|
@@ -237,8 +220,7 @@ body {
|
|
|
237
220
|
line-height: var(--type-leading-display);
|
|
238
221
|
letter-spacing: var(--type-tracking-tight);
|
|
239
222
|
font-optical-sizing: auto;
|
|
240
|
-
font-
|
|
241
|
-
font-weight: var(--font-display-weight);
|
|
223
|
+
font-weight: 600;
|
|
242
224
|
text-wrap: balance; /* AQ.W3 §W3.3 */
|
|
243
225
|
}
|
|
244
226
|
|
|
@@ -248,8 +230,7 @@ body {
|
|
|
248
230
|
line-height: var(--type-leading-display);
|
|
249
231
|
letter-spacing: var(--type-tracking-tight);
|
|
250
232
|
font-optical-sizing: auto;
|
|
251
|
-
font-
|
|
252
|
-
font-weight: var(--font-display-weight);
|
|
233
|
+
font-weight: 600;
|
|
253
234
|
text-wrap: balance; /* AQ.W3 §W3.3 */
|
|
254
235
|
}
|
|
255
236
|
|
|
@@ -259,16 +240,15 @@ body {
|
|
|
259
240
|
line-height: var(--type-leading-display);
|
|
260
241
|
letter-spacing: var(--type-tracking-tight);
|
|
261
242
|
font-optical-sizing: auto;
|
|
262
|
-
font-
|
|
263
|
-
font-weight: var(--font-display-weight);
|
|
243
|
+
font-weight: 600;
|
|
264
244
|
text-wrap: balance; /* AQ.W3 §W3.3 */
|
|
265
245
|
}
|
|
266
246
|
|
|
267
247
|
/* ═══════════════════════════════════════════════
|
|
268
|
-
HEADINGS / BODY —
|
|
248
|
+
HEADINGS / BODY — Plus Jakarta Sans text register
|
|
269
249
|
═══════════════════════════════════════════════ */
|
|
270
250
|
@utility text-title {
|
|
271
|
-
font-family: var(--font-
|
|
251
|
+
font-family: var(--font-text);
|
|
272
252
|
font-size: var(--type-title);
|
|
273
253
|
line-height: var(--type-leading-heading);
|
|
274
254
|
letter-spacing: var(--type-tracking-tight);
|
|
@@ -277,7 +257,7 @@ body {
|
|
|
277
257
|
}
|
|
278
258
|
|
|
279
259
|
@utility text-heading {
|
|
280
|
-
font-family: var(--font-
|
|
260
|
+
font-family: var(--font-text);
|
|
281
261
|
font-size: var(--type-heading);
|
|
282
262
|
line-height: var(--type-leading-heading);
|
|
283
263
|
font-weight: 700;
|
|
@@ -285,7 +265,7 @@ body {
|
|
|
285
265
|
}
|
|
286
266
|
|
|
287
267
|
@utility text-subheading {
|
|
288
|
-
font-family: var(--font-
|
|
268
|
+
font-family: var(--font-text);
|
|
289
269
|
font-size: var(--type-subheading);
|
|
290
270
|
line-height: var(--type-leading-body);
|
|
291
271
|
font-weight: 600;
|
|
@@ -300,7 +280,7 @@ body {
|
|
|
300
280
|
reads heavier than its numeric weight at pill size, so regular is the
|
|
301
281
|
not-bold register. */
|
|
302
282
|
@utility dock-label {
|
|
303
|
-
font-family: var(--font-
|
|
283
|
+
font-family: var(--font-text);
|
|
304
284
|
font-size: var(--dock-label-size, var(--type-subheading));
|
|
305
285
|
line-height: var(--type-leading-body);
|
|
306
286
|
font-weight: 400;
|
|
@@ -308,7 +288,7 @@ body {
|
|
|
308
288
|
}
|
|
309
289
|
|
|
310
290
|
@utility text-prose {
|
|
311
|
-
font-family: var(--font-
|
|
291
|
+
font-family: var(--font-text);
|
|
312
292
|
font-size: var(--type-prose);
|
|
313
293
|
line-height: var(--type-leading-prose);
|
|
314
294
|
font-weight: 400;
|
|
@@ -318,7 +298,7 @@ body {
|
|
|
318
298
|
}
|
|
319
299
|
|
|
320
300
|
@utility text-body {
|
|
321
|
-
font-family: var(--font-
|
|
301
|
+
font-family: var(--font-text);
|
|
322
302
|
font-size: var(--type-body);
|
|
323
303
|
line-height: var(--type-leading-body);
|
|
324
304
|
font-weight: 400;
|
|
@@ -326,14 +306,14 @@ body {
|
|
|
326
306
|
}
|
|
327
307
|
|
|
328
308
|
@utility text-small {
|
|
329
|
-
font-family: var(--font-
|
|
309
|
+
font-family: var(--font-text);
|
|
330
310
|
font-size: var(--type-small);
|
|
331
311
|
line-height: var(--type-leading-small);
|
|
332
312
|
font-weight: 400;
|
|
333
313
|
}
|
|
334
314
|
|
|
335
315
|
@utility text-caption {
|
|
336
|
-
font-family: var(--font-
|
|
316
|
+
font-family: var(--font-text);
|
|
337
317
|
font-size: var(--type-caption);
|
|
338
318
|
line-height: var(--type-leading-caption);
|
|
339
319
|
font-style: italic;
|
|
@@ -358,15 +338,15 @@ body {
|
|
|
358
338
|
}
|
|
359
339
|
|
|
360
340
|
/* ═══════════════════════════════════════════════
|
|
361
|
-
MATH —
|
|
341
|
+
MATH — Plus Jakarta Sans italic
|
|
362
342
|
═══════════════════════════════════════════════ */
|
|
363
343
|
@utility text-math {
|
|
364
|
-
font-family: var(--font-
|
|
344
|
+
font-family: var(--font-text);
|
|
365
345
|
font-style: italic;
|
|
366
346
|
}
|
|
367
347
|
|
|
368
348
|
@utility text-math-body {
|
|
369
|
-
font-family: var(--font-
|
|
349
|
+
font-family: var(--font-text);
|
|
370
350
|
font-size: var(--type-prose);
|
|
371
351
|
line-height: var(--type-leading-prose);
|
|
372
352
|
font-style: italic;
|
|
@@ -406,8 +386,13 @@ body {
|
|
|
406
386
|
/* ═══════════════════════════════════════════════
|
|
407
387
|
FONT FAMILY UTILITIES
|
|
408
388
|
═══════════════════════════════════════════════ */
|
|
389
|
+
/* .cm-serif — the Computer-Modern math/serif voice. A DISTINCT face from the
|
|
390
|
+
brand text register: it resolves to the consumer-supplied serif (system
|
|
391
|
+
serif by default; a math consumer maps Computer Modern / KaTeX over it). It
|
|
392
|
+
is NOT the Plus Jakarta text register — the one serif survivor of the
|
|
393
|
+
register reconciliation. */
|
|
409
394
|
@utility cm-serif {
|
|
410
|
-
font-family: var(--font-serif);
|
|
395
|
+
font-family: var(--font-serif-math, serif);
|
|
411
396
|
}
|
|
412
397
|
|
|
413
398
|
@utility fira-code {
|
|
@@ -426,7 +411,6 @@ body {
|
|
|
426
411
|
vertical-align: -0.05em;
|
|
427
412
|
font-weight: 700;
|
|
428
413
|
display: inline-block;
|
|
429
|
-
font-variation-settings: var(--font-display-variation-settings);
|
|
430
414
|
}
|
|
431
415
|
|
|
432
416
|
/* ═══════════════════════════════════════════════
|
|
@@ -439,9 +423,8 @@ body {
|
|
|
439
423
|
font-size: clamp(2.4rem, 1.8rem + 2vw, 3.33rem);
|
|
440
424
|
line-height: var(--type-leading-display);
|
|
441
425
|
letter-spacing: var(--type-tracking-tight);
|
|
442
|
-
font-weight:
|
|
426
|
+
font-weight: 600;
|
|
443
427
|
font-optical-sizing: auto;
|
|
444
|
-
font-variation-settings: var(--font-display-variation-settings);
|
|
445
428
|
}
|
|
446
429
|
|
|
447
430
|
/* AV.W16 TW3 — the pane title scales off its PANE's box, not the viewport.
|
|
@@ -982,7 +982,8 @@
|
|
|
982
982
|
|
|
983
983
|
/* ── Text-highlight paint (CSS Custom Highlight API) ─────────────────────
|
|
984
984
|
The default `::highlight()` paint for the `useTextHighlight` composable
|
|
985
|
-
(composables/
|
|
985
|
+
(composables/motion; the `/motion-core` subpath, AX.W37). A named `Highlight`
|
|
986
|
+
registered in `CSS.highlights`
|
|
986
987
|
under one of these keys paints its `Range` set without a `<mark>` wrapper.
|
|
987
988
|
Token-bridged: the search mark reads the canonical pastel-yellow rainbow
|
|
988
989
|
token at a soft alpha; the equation/variable mark reads `--primary`. Both
|
|
@@ -44,46 +44,18 @@
|
|
|
44
44
|
::view-transition-new(.gl-list-item):only-child { animation-name: gl-vt-slide-in; }
|
|
45
45
|
::view-transition-old(.gl-list-item):only-child { animation-name: gl-vt-slide-out; }
|
|
46
46
|
|
|
47
|
-
/*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
::view-transition-group(.gl-dock-layer) {
|
|
60
|
-
animation-duration: var(--vt-duration, var(--duration-normal));
|
|
61
|
-
animation-timing-function: var(--dock-resize-spring, var(--spring-dock));
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/* AW.W3 — typed directional dock curves. The swap tags the active transition
|
|
65
|
-
* `dock-expand` / `dock-collapse` (the outer collapsed↔expanded pair) and
|
|
66
|
-
* `layer-forward` / `layer-back` (the inner DockLayerGroup pane swap) via the
|
|
67
|
-
* `types` argument to `startViewTransition` (Chrome 140+; feature-detected, the
|
|
68
|
-
* untyped fallback is the symmetric `.gl-dock-layer` curve above). iOS-feel
|
|
69
|
-
* motion is ASYMMETRIC — a snappier exit, a softer entry-overshoot. EXPAND
|
|
70
|
-
* (and forward) lead with the overshooting `--spring-dock`; COLLAPSE (and back)
|
|
71
|
-
* exit on the non-overshooting `--spring-snappy` (a quicker settle, no bounce on
|
|
72
|
-
* the way out). The shorter `--duration-fast` on the exit reads as the crisp
|
|
73
|
-
* dismiss. A non-typed engine never matches these — it runs the symmetric curve,
|
|
74
|
-
* which is the acceptable contract. PRM zeroes the animation (the `@media` at
|
|
75
|
-
* the top of this file). */
|
|
76
|
-
:active-view-transition-type(dock-expand) ::view-transition-group(.gl-dock-layer),
|
|
77
|
-
:active-view-transition-type(layer-forward) ::view-transition-group(.gl-dock-layer) {
|
|
78
|
-
animation-duration: var(--vt-duration, var(--duration-normal));
|
|
79
|
-
animation-timing-function: var(--dock-resize-spring, var(--spring-dock));
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
:active-view-transition-type(dock-collapse) ::view-transition-group(.gl-dock-layer),
|
|
83
|
-
:active-view-transition-type(layer-back) ::view-transition-group(.gl-dock-layer) {
|
|
84
|
-
animation-duration: var(--vt-duration-exit, var(--duration-fast));
|
|
85
|
-
animation-timing-function: var(--spring-snappy);
|
|
86
|
-
}
|
|
47
|
+
/* AX.W01 — the dock COLLAPSE View-Transitions recipe is RETIRED. The
|
|
48
|
+
* `::view-transition-group(.gl-dock-layer)` group + its `:active-view-transition-type
|
|
49
|
+
* (dock-expand|dock-collapse|layer-forward|layer-back)` asymmetric curve fork are
|
|
50
|
+
* DELETED: VT crossfades RASTERIZED snapshots — the wrong primitive for a layout
|
|
51
|
+
* morph (the "taffy"-stretch + text-blur + uncaptured-animating-ancestor desync +
|
|
52
|
+
* the co-mounted-docks snapshot-DROP). The dock collapse↔expand (and inner
|
|
53
|
+
* pane-swap) now morphs off the ONE `--dock-morph-t` spring scalar
|
|
54
|
+
* (`useLayerTransition` + `dock.css`), one clock on every engine. The SEPARABLE
|
|
55
|
+
* per-instance `view-transition-name` ROUTE-morph seam on the dock root stays
|
|
56
|
+
* (GlassDock.vue `rootVtStyle`) for the consumer's page/route geometry-morph — it
|
|
57
|
+
* is no longer the dock's own collapse mechanism. The `.gl-list-item` group recipe
|
|
58
|
+
* (non-dock) is UNTOUCHED above. */
|
|
87
59
|
|
|
88
60
|
@keyframes gl-vt-slide-in { from { opacity: 0; translate: 0 var(--vt-rise, 8px); } }
|
|
89
61
|
@keyframes gl-vt-slide-out { to { opacity: 0; translate: 0 var(--vt-rise, 8px); } }
|
package/dist/switch.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as e } from "./Switch-
|
|
1
|
+
import { t as e } from "./Switch-LDKLmmgx.js";
|
|
2
2
|
export { e as Switch };
|
package/dist/tabs.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as e } from "./cn-DJXf4yaB.js";
|
|
2
|
-
import { t } from "./_plugin-vue_export-helper-
|
|
3
|
-
import { i as n, n as r, r as i, t as a } from "./TooltipProvider-
|
|
4
|
-
import { t as o } from "./UnderlineTabs-
|
|
2
|
+
import { t } from "./_plugin-vue_export-helper-ok8pgSl5.js";
|
|
3
|
+
import { i as n, n as r, r as i, t as a } from "./TooltipProvider-CmZzCuaG.js";
|
|
4
|
+
import { t as o } from "./UnderlineTabs-Uxn-R3MT.js";
|
|
5
5
|
import { Fragment as s, computed as c, createBlock as l, createCommentVNode as u, createElementBlock as d, createElementVNode as f, createTextVNode as p, createVNode as m, defineComponent as h, mergeModels as g, nextTick as _, normalizeClass as v, normalizeStyle as y, onMounted as b, onUnmounted as x, openBlock as S, ref as C, renderList as w, renderSlot as T, toDisplayString as E, unref as D, useModel as O, watch as k, withCtx as A } from "vue";
|
|
6
6
|
//#region src/components/custom/tabs/composables/useBouncySlider.ts
|
|
7
7
|
function j(e) {
|
|
@@ -105,7 +105,7 @@ var M = [
|
|
|
105
105
|
function W(e) {
|
|
106
106
|
if (typeof window < "u" && window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
|
|
107
107
|
e.getAnimations().forEach((e) => e.cancel());
|
|
108
|
-
let t = o("--
|
|
108
|
+
let t = o("--spring-bouncy", "ease"), n = o("--scale-press", "0.95"), r = o("--scale-hover", "1.08");
|
|
109
109
|
e.animate([
|
|
110
110
|
{ transform: "scale(1)" },
|
|
111
111
|
{
|
|
@@ -208,7 +208,7 @@ var M = [
|
|
|
208
208
|
}, () => [p(E(e.label), 1)], !0)], 10, N))], 64))), 128))
|
|
209
209
|
], 2));
|
|
210
210
|
}
|
|
211
|
-
}), [["__scopeId", "data-v-
|
|
211
|
+
}), [["__scopeId", "data-v-795d5fdc"]]), F = /* @__PURE__ */ h({
|
|
212
212
|
__name: "BouncyTabs",
|
|
213
213
|
props: /* @__PURE__ */ g({
|
|
214
214
|
options: {},
|