@gradeui/ui 3.3.0 → 4.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/components/ui/media-surface.md +1 -1
- package/dist/composer.d.mts +262 -0
- package/dist/composer.d.ts +262 -0
- package/dist/composer.js +3 -0
- package/dist/composer.js.map +1 -0
- package/dist/composer.mjs +3 -0
- package/dist/composer.mjs.map +1 -0
- package/dist/contracts.js +1 -1
- package/dist/contracts.js.map +1 -1
- package/dist/contracts.mjs +1 -1
- package/dist/contracts.mjs.map +1 -1
- package/dist/index.d.mts +28 -327
- package/dist/index.d.ts +28 -327
- package/dist/index.js +70 -70
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +70 -70
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types-DUwnWaxR.d.mts +43 -0
- package/dist/types-DUwnWaxR.d.ts +43 -0
- package/package.json +6 -1
- package/styles/globals.css +430 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types + presets for scripted component demos.
|
|
3
|
+
*
|
|
4
|
+
* Lives at the bottom of the demo primitive stack so the hook, the
|
|
5
|
+
* cursor, and any component that opts in (`<Code>`, `<Composer>`,
|
|
6
|
+
* `<DemoStage>`) all read from one definition of "what slow / normal /
|
|
7
|
+
* fast feels like" and one definition of "when do we start playing".
|
|
8
|
+
*
|
|
9
|
+
* If you ever want to retune the cadence of every demo on the marketing
|
|
10
|
+
* site at once, this is the file to edit.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Animation feel. Maps onto a triple of timing values so authors can
|
|
14
|
+
* pick a vibe (slow / normal / fast) instead of hand-tuning ms.
|
|
15
|
+
* Components that need finer control can still override the resolved
|
|
16
|
+
* values per-instance.
|
|
17
|
+
*/
|
|
18
|
+
type DemoSpeed = "slow" | "normal" | "fast";
|
|
19
|
+
/**
|
|
20
|
+
* What kicks the demo off:
|
|
21
|
+
* - `mount` plays immediately on first paint
|
|
22
|
+
* - `inView` waits for the container to cross the viewport threshold
|
|
23
|
+
* - `manual` driven by the `play` prop or imperative ref
|
|
24
|
+
*/
|
|
25
|
+
type DemoTrigger = "mount" | "inView" | "manual";
|
|
26
|
+
/**
|
|
27
|
+
* Speed presets shared across every scripted-demo surface. Three
|
|
28
|
+
* unambiguously distinct feels: `slow` is "I am being shown", `normal`
|
|
29
|
+
* is "I am being told", `fast` is "I am being briefed".
|
|
30
|
+
*
|
|
31
|
+
* - `tokenStagger` per-character cadence for typing-style steps
|
|
32
|
+
* - `lineStagger` per-line cadence for reveal-style demos
|
|
33
|
+
* - `preDelay` pause after the trigger fires before the first tick
|
|
34
|
+
* - `fadeMs` default enter-transition duration for revealed parts
|
|
35
|
+
*/
|
|
36
|
+
declare const DEMO_SPEED_PRESETS: Record<DemoSpeed, {
|
|
37
|
+
tokenStagger: number;
|
|
38
|
+
lineStagger: number;
|
|
39
|
+
preDelay: number;
|
|
40
|
+
fadeMs: number;
|
|
41
|
+
}>;
|
|
42
|
+
|
|
43
|
+
export { DEMO_SPEED_PRESETS as D, type DemoSpeed as a, type DemoTrigger as b };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types + presets for scripted component demos.
|
|
3
|
+
*
|
|
4
|
+
* Lives at the bottom of the demo primitive stack so the hook, the
|
|
5
|
+
* cursor, and any component that opts in (`<Code>`, `<Composer>`,
|
|
6
|
+
* `<DemoStage>`) all read from one definition of "what slow / normal /
|
|
7
|
+
* fast feels like" and one definition of "when do we start playing".
|
|
8
|
+
*
|
|
9
|
+
* If you ever want to retune the cadence of every demo on the marketing
|
|
10
|
+
* site at once, this is the file to edit.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Animation feel. Maps onto a triple of timing values so authors can
|
|
14
|
+
* pick a vibe (slow / normal / fast) instead of hand-tuning ms.
|
|
15
|
+
* Components that need finer control can still override the resolved
|
|
16
|
+
* values per-instance.
|
|
17
|
+
*/
|
|
18
|
+
type DemoSpeed = "slow" | "normal" | "fast";
|
|
19
|
+
/**
|
|
20
|
+
* What kicks the demo off:
|
|
21
|
+
* - `mount` plays immediately on first paint
|
|
22
|
+
* - `inView` waits for the container to cross the viewport threshold
|
|
23
|
+
* - `manual` driven by the `play` prop or imperative ref
|
|
24
|
+
*/
|
|
25
|
+
type DemoTrigger = "mount" | "inView" | "manual";
|
|
26
|
+
/**
|
|
27
|
+
* Speed presets shared across every scripted-demo surface. Three
|
|
28
|
+
* unambiguously distinct feels: `slow` is "I am being shown", `normal`
|
|
29
|
+
* is "I am being told", `fast` is "I am being briefed".
|
|
30
|
+
*
|
|
31
|
+
* - `tokenStagger` per-character cadence for typing-style steps
|
|
32
|
+
* - `lineStagger` per-line cadence for reveal-style demos
|
|
33
|
+
* - `preDelay` pause after the trigger fires before the first tick
|
|
34
|
+
* - `fadeMs` default enter-transition duration for revealed parts
|
|
35
|
+
*/
|
|
36
|
+
declare const DEMO_SPEED_PRESETS: Record<DemoSpeed, {
|
|
37
|
+
tokenStagger: number;
|
|
38
|
+
lineStagger: number;
|
|
39
|
+
preDelay: number;
|
|
40
|
+
fadeMs: number;
|
|
41
|
+
}>;
|
|
42
|
+
|
|
43
|
+
export { DEMO_SPEED_PRESETS as D, type DemoSpeed as a, type DemoTrigger as b };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gradeui/ui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "Grade Design System — React components, theme engine, and design tokens",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
@@ -67,6 +67,11 @@
|
|
|
67
67
|
"import": "./dist/contracts.mjs",
|
|
68
68
|
"require": "./dist/contracts.js"
|
|
69
69
|
},
|
|
70
|
+
"./composer": {
|
|
71
|
+
"types": "./dist/composer.d.ts",
|
|
72
|
+
"import": "./dist/composer.mjs",
|
|
73
|
+
"require": "./dist/composer.js"
|
|
74
|
+
},
|
|
70
75
|
"./map/maplibre": {
|
|
71
76
|
"types": "./dist/map/maplibre.d.ts",
|
|
72
77
|
"import": "./dist/map/maplibre.mjs",
|
package/styles/globals.css
CHANGED
|
@@ -684,6 +684,7 @@
|
|
|
684
684
|
--surface-alpha-translucent: 0.82;
|
|
685
685
|
--surface-alpha-glass: 0.58;
|
|
686
686
|
--surface-alpha-glass-strong: 0.42;
|
|
687
|
+
--surface-alpha-frosted: 0.92; /* near-opaque, just a whisper of the page behind */
|
|
687
688
|
|
|
688
689
|
/* -- Atomic blurs -- */
|
|
689
690
|
--surface-blur-subtle: 6px;
|
|
@@ -699,6 +700,7 @@
|
|
|
699
700
|
--surface-translucent: oklch(var(--card) / var(--surface-alpha-translucent));
|
|
700
701
|
--surface-glass: oklch(var(--card) / var(--surface-alpha-glass));
|
|
701
702
|
--surface-glass-strong: oklch(var(--card) / var(--surface-alpha-glass-strong));
|
|
703
|
+
--surface-frosted: oklch(var(--card) / var(--surface-alpha-frosted));
|
|
702
704
|
|
|
703
705
|
/* ============================================
|
|
704
706
|
AURA SYSTEM
|
|
@@ -1091,6 +1093,7 @@
|
|
|
1091
1093
|
--surface-alpha-translucent: 0.74;
|
|
1092
1094
|
--surface-alpha-glass: 0.48;
|
|
1093
1095
|
--surface-alpha-glass-strong: 0.32;
|
|
1096
|
+
--surface-alpha-frosted: 0.88;
|
|
1094
1097
|
--surface-edge-alpha: 0.06;
|
|
1095
1098
|
|
|
1096
1099
|
/* Code surface tokens — dark mode mirror. Background sits a touch
|
|
@@ -1531,6 +1534,17 @@
|
|
|
1531
1534
|
box-shadow: var(--surface-edge);
|
|
1532
1535
|
}
|
|
1533
1536
|
|
|
1537
|
+
/* Frosted — near-opaque (≈0.92) but keeps the strong blur, so it reads almost
|
|
1538
|
+
solid with just a halo of the page behind. The most solid of the blurred
|
|
1539
|
+
surfaces; above this, reach for `solid`. */
|
|
1540
|
+
.gds-surface-frosted {
|
|
1541
|
+
background-color: var(--surface-frosted);
|
|
1542
|
+
backdrop-filter: blur(var(--surface-blur-strong));
|
|
1543
|
+
-webkit-backdrop-filter: blur(var(--surface-blur-strong));
|
|
1544
|
+
border: 1px solid oklch(var(--border) / 0.4);
|
|
1545
|
+
box-shadow: var(--surface-edge);
|
|
1546
|
+
}
|
|
1547
|
+
|
|
1534
1548
|
/* ============================================
|
|
1535
1549
|
AURA — RING (pulsing outer halo)
|
|
1536
1550
|
============================================
|
|
@@ -2220,6 +2234,422 @@ html[data-gds-streaming] body * {
|
|
|
2220
2234
|
}
|
|
2221
2235
|
}
|
|
2222
2236
|
|
|
2237
|
+
/* ============================================
|
|
2238
|
+
TYPE SCALE — scoped, switchable, fluid (mobile → desktop)
|
|
2239
|
+
============================================
|
|
2240
|
+
Two scales, one fluid ramp. Pick a mobile + a desktop scale and the whole
|
|
2241
|
+
--text-* ramp (Tailwind 2xs…7xl + semantic display/h1…body) interpolates
|
|
2242
|
+
between them by viewport, CLAMPED to the mobile floor and desktop ceiling
|
|
2243
|
+
(the clamp lives on --ts-fluid: 0→1, so values never exceed either end):
|
|
2244
|
+
data-type-scale-mobile="minor-third" data-type-scale-desktop="perfect-fifth"
|
|
2245
|
+
Shorthand (flat): data-type-scale="major-third" (sets both). Assign to :root,
|
|
2246
|
+
a page, or any element — composes via the cascade like the colour scopes.
|
|
2247
|
+
|
|
2248
|
+
ASYMMETRIC by design: steps go UP at the chosen ratio but DOWN capped at
|
|
2249
|
+
major-third, so a dramatic display scale keeps sm/xs/2xs readable instead of
|
|
2250
|
+
shrinking body/caption text into the floor. Generated from @gradeui/core. */
|
|
2251
|
+
|
|
2252
|
+
[data-type-scale-mobile="minor-second"] {
|
|
2253
|
+
--tsm-2xs: 0.823rem;
|
|
2254
|
+
--tsm-xs: 0.878rem;
|
|
2255
|
+
--tsm-sm: 0.937rem;
|
|
2256
|
+
--tsm-base: 1rem;
|
|
2257
|
+
--tsm-lg: 1.067rem;
|
|
2258
|
+
--tsm-xl: 1.138rem;
|
|
2259
|
+
--tsm-2xl: 1.215rem;
|
|
2260
|
+
--tsm-3xl: 1.296rem;
|
|
2261
|
+
--tsm-4xl: 1.383rem;
|
|
2262
|
+
--tsm-5xl: 1.476rem;
|
|
2263
|
+
--tsm-6xl: 1.575rem;
|
|
2264
|
+
--tsm-7xl: 1.68rem;
|
|
2265
|
+
}
|
|
2266
|
+
[data-type-scale-desktop="minor-second"] {
|
|
2267
|
+
--tsd-2xs: 0.823rem;
|
|
2268
|
+
--tsd-xs: 0.878rem;
|
|
2269
|
+
--tsd-sm: 0.937rem;
|
|
2270
|
+
--tsd-base: 1rem;
|
|
2271
|
+
--tsd-lg: 1.067rem;
|
|
2272
|
+
--tsd-xl: 1.138rem;
|
|
2273
|
+
--tsd-2xl: 1.215rem;
|
|
2274
|
+
--tsd-3xl: 1.296rem;
|
|
2275
|
+
--tsd-4xl: 1.383rem;
|
|
2276
|
+
--tsd-5xl: 1.476rem;
|
|
2277
|
+
--tsd-6xl: 1.575rem;
|
|
2278
|
+
--tsd-7xl: 1.68rem;
|
|
2279
|
+
}
|
|
2280
|
+
[data-type-scale="minor-second"] {
|
|
2281
|
+
--tsm-2xs: 0.823rem; --tsd-2xs: 0.823rem;
|
|
2282
|
+
--tsm-xs: 0.878rem; --tsd-xs: 0.878rem;
|
|
2283
|
+
--tsm-sm: 0.937rem; --tsd-sm: 0.937rem;
|
|
2284
|
+
--tsm-base: 1rem; --tsd-base: 1rem;
|
|
2285
|
+
--tsm-lg: 1.067rem; --tsd-lg: 1.067rem;
|
|
2286
|
+
--tsm-xl: 1.138rem; --tsd-xl: 1.138rem;
|
|
2287
|
+
--tsm-2xl: 1.215rem; --tsd-2xl: 1.215rem;
|
|
2288
|
+
--tsm-3xl: 1.296rem; --tsd-3xl: 1.296rem;
|
|
2289
|
+
--tsm-4xl: 1.383rem; --tsd-4xl: 1.383rem;
|
|
2290
|
+
--tsm-5xl: 1.476rem; --tsd-5xl: 1.476rem;
|
|
2291
|
+
--tsm-6xl: 1.575rem; --tsd-6xl: 1.575rem;
|
|
2292
|
+
--tsm-7xl: 1.68rem; --tsd-7xl: 1.68rem;
|
|
2293
|
+
}
|
|
2294
|
+
|
|
2295
|
+
[data-type-scale-mobile="major-second"] {
|
|
2296
|
+
--tsm-2xs: 0.702rem;
|
|
2297
|
+
--tsm-xs: 0.79rem;
|
|
2298
|
+
--tsm-sm: 0.889rem;
|
|
2299
|
+
--tsm-base: 1rem;
|
|
2300
|
+
--tsm-lg: 1.125rem;
|
|
2301
|
+
--tsm-xl: 1.266rem;
|
|
2302
|
+
--tsm-2xl: 1.424rem;
|
|
2303
|
+
--tsm-3xl: 1.602rem;
|
|
2304
|
+
--tsm-4xl: 1.802rem;
|
|
2305
|
+
--tsm-5xl: 2.027rem;
|
|
2306
|
+
--tsm-6xl: 2.281rem;
|
|
2307
|
+
--tsm-7xl: 2.566rem;
|
|
2308
|
+
}
|
|
2309
|
+
[data-type-scale-desktop="major-second"] {
|
|
2310
|
+
--tsd-2xs: 0.702rem;
|
|
2311
|
+
--tsd-xs: 0.79rem;
|
|
2312
|
+
--tsd-sm: 0.889rem;
|
|
2313
|
+
--tsd-base: 1rem;
|
|
2314
|
+
--tsd-lg: 1.125rem;
|
|
2315
|
+
--tsd-xl: 1.266rem;
|
|
2316
|
+
--tsd-2xl: 1.424rem;
|
|
2317
|
+
--tsd-3xl: 1.602rem;
|
|
2318
|
+
--tsd-4xl: 1.802rem;
|
|
2319
|
+
--tsd-5xl: 2.027rem;
|
|
2320
|
+
--tsd-6xl: 2.281rem;
|
|
2321
|
+
--tsd-7xl: 2.566rem;
|
|
2322
|
+
}
|
|
2323
|
+
[data-type-scale="major-second"] {
|
|
2324
|
+
--tsm-2xs: 0.702rem; --tsd-2xs: 0.702rem;
|
|
2325
|
+
--tsm-xs: 0.79rem; --tsd-xs: 0.79rem;
|
|
2326
|
+
--tsm-sm: 0.889rem; --tsd-sm: 0.889rem;
|
|
2327
|
+
--tsm-base: 1rem; --tsd-base: 1rem;
|
|
2328
|
+
--tsm-lg: 1.125rem; --tsd-lg: 1.125rem;
|
|
2329
|
+
--tsm-xl: 1.266rem; --tsd-xl: 1.266rem;
|
|
2330
|
+
--tsm-2xl: 1.424rem; --tsd-2xl: 1.424rem;
|
|
2331
|
+
--tsm-3xl: 1.602rem; --tsd-3xl: 1.602rem;
|
|
2332
|
+
--tsm-4xl: 1.802rem; --tsd-4xl: 1.802rem;
|
|
2333
|
+
--tsm-5xl: 2.027rem; --tsd-5xl: 2.027rem;
|
|
2334
|
+
--tsm-6xl: 2.281rem; --tsd-6xl: 2.281rem;
|
|
2335
|
+
--tsm-7xl: 2.566rem; --tsd-7xl: 2.566rem;
|
|
2336
|
+
}
|
|
2337
|
+
|
|
2338
|
+
[data-type-scale-mobile="minor-third"] {
|
|
2339
|
+
--tsm-2xs: 0.625rem;
|
|
2340
|
+
--tsm-xs: 0.694rem;
|
|
2341
|
+
--tsm-sm: 0.833rem;
|
|
2342
|
+
--tsm-base: 1rem;
|
|
2343
|
+
--tsm-lg: 1.2rem;
|
|
2344
|
+
--tsm-xl: 1.44rem;
|
|
2345
|
+
--tsm-2xl: 1.728rem;
|
|
2346
|
+
--tsm-3xl: 2.074rem;
|
|
2347
|
+
--tsm-4xl: 2.488rem;
|
|
2348
|
+
--tsm-5xl: 2.986rem;
|
|
2349
|
+
--tsm-6xl: 3.583rem;
|
|
2350
|
+
--tsm-7xl: 4.3rem;
|
|
2351
|
+
}
|
|
2352
|
+
[data-type-scale-desktop="minor-third"] {
|
|
2353
|
+
--tsd-2xs: 0.625rem;
|
|
2354
|
+
--tsd-xs: 0.694rem;
|
|
2355
|
+
--tsd-sm: 0.833rem;
|
|
2356
|
+
--tsd-base: 1rem;
|
|
2357
|
+
--tsd-lg: 1.2rem;
|
|
2358
|
+
--tsd-xl: 1.44rem;
|
|
2359
|
+
--tsd-2xl: 1.728rem;
|
|
2360
|
+
--tsd-3xl: 2.074rem;
|
|
2361
|
+
--tsd-4xl: 2.488rem;
|
|
2362
|
+
--tsd-5xl: 2.986rem;
|
|
2363
|
+
--tsd-6xl: 3.583rem;
|
|
2364
|
+
--tsd-7xl: 4.3rem;
|
|
2365
|
+
}
|
|
2366
|
+
[data-type-scale="minor-third"] {
|
|
2367
|
+
--tsm-2xs: 0.625rem; --tsd-2xs: 0.625rem;
|
|
2368
|
+
--tsm-xs: 0.694rem; --tsd-xs: 0.694rem;
|
|
2369
|
+
--tsm-sm: 0.833rem; --tsd-sm: 0.833rem;
|
|
2370
|
+
--tsm-base: 1rem; --tsd-base: 1rem;
|
|
2371
|
+
--tsm-lg: 1.2rem; --tsd-lg: 1.2rem;
|
|
2372
|
+
--tsm-xl: 1.44rem; --tsd-xl: 1.44rem;
|
|
2373
|
+
--tsm-2xl: 1.728rem; --tsd-2xl: 1.728rem;
|
|
2374
|
+
--tsm-3xl: 2.074rem; --tsd-3xl: 2.074rem;
|
|
2375
|
+
--tsm-4xl: 2.488rem; --tsd-4xl: 2.488rem;
|
|
2376
|
+
--tsm-5xl: 2.986rem; --tsd-5xl: 2.986rem;
|
|
2377
|
+
--tsm-6xl: 3.583rem; --tsd-6xl: 3.583rem;
|
|
2378
|
+
--tsm-7xl: 4.3rem; --tsd-7xl: 4.3rem;
|
|
2379
|
+
}
|
|
2380
|
+
|
|
2381
|
+
[data-type-scale-mobile="major-third"] {
|
|
2382
|
+
--tsm-2xs: 0.625rem;
|
|
2383
|
+
--tsm-xs: 0.64rem;
|
|
2384
|
+
--tsm-sm: 0.8rem;
|
|
2385
|
+
--tsm-base: 1rem;
|
|
2386
|
+
--tsm-lg: 1.25rem;
|
|
2387
|
+
--tsm-xl: 1.563rem;
|
|
2388
|
+
--tsm-2xl: 1.953rem;
|
|
2389
|
+
--tsm-3xl: 2.441rem;
|
|
2390
|
+
--tsm-4xl: 3.052rem;
|
|
2391
|
+
--tsm-5xl: 3.815rem;
|
|
2392
|
+
--tsm-6xl: 4.768rem;
|
|
2393
|
+
--tsm-7xl: 5.96rem;
|
|
2394
|
+
}
|
|
2395
|
+
[data-type-scale-desktop="major-third"] {
|
|
2396
|
+
--tsd-2xs: 0.625rem;
|
|
2397
|
+
--tsd-xs: 0.64rem;
|
|
2398
|
+
--tsd-sm: 0.8rem;
|
|
2399
|
+
--tsd-base: 1rem;
|
|
2400
|
+
--tsd-lg: 1.25rem;
|
|
2401
|
+
--tsd-xl: 1.563rem;
|
|
2402
|
+
--tsd-2xl: 1.953rem;
|
|
2403
|
+
--tsd-3xl: 2.441rem;
|
|
2404
|
+
--tsd-4xl: 3.052rem;
|
|
2405
|
+
--tsd-5xl: 3.815rem;
|
|
2406
|
+
--tsd-6xl: 4.768rem;
|
|
2407
|
+
--tsd-7xl: 5.96rem;
|
|
2408
|
+
}
|
|
2409
|
+
[data-type-scale="major-third"] {
|
|
2410
|
+
--tsm-2xs: 0.625rem; --tsd-2xs: 0.625rem;
|
|
2411
|
+
--tsm-xs: 0.64rem; --tsd-xs: 0.64rem;
|
|
2412
|
+
--tsm-sm: 0.8rem; --tsd-sm: 0.8rem;
|
|
2413
|
+
--tsm-base: 1rem; --tsd-base: 1rem;
|
|
2414
|
+
--tsm-lg: 1.25rem; --tsd-lg: 1.25rem;
|
|
2415
|
+
--tsm-xl: 1.563rem; --tsd-xl: 1.563rem;
|
|
2416
|
+
--tsm-2xl: 1.953rem; --tsd-2xl: 1.953rem;
|
|
2417
|
+
--tsm-3xl: 2.441rem; --tsd-3xl: 2.441rem;
|
|
2418
|
+
--tsm-4xl: 3.052rem; --tsd-4xl: 3.052rem;
|
|
2419
|
+
--tsm-5xl: 3.815rem; --tsd-5xl: 3.815rem;
|
|
2420
|
+
--tsm-6xl: 4.768rem; --tsd-6xl: 4.768rem;
|
|
2421
|
+
--tsm-7xl: 5.96rem; --tsd-7xl: 5.96rem;
|
|
2422
|
+
}
|
|
2423
|
+
|
|
2424
|
+
[data-type-scale-mobile="perfect-fourth"] {
|
|
2425
|
+
--tsm-2xs: 0.625rem;
|
|
2426
|
+
--tsm-xs: 0.64rem;
|
|
2427
|
+
--tsm-sm: 0.8rem;
|
|
2428
|
+
--tsm-base: 1rem;
|
|
2429
|
+
--tsm-lg: 1.333rem;
|
|
2430
|
+
--tsm-xl: 1.777rem;
|
|
2431
|
+
--tsm-2xl: 2.369rem;
|
|
2432
|
+
--tsm-3xl: 3.157rem;
|
|
2433
|
+
--tsm-4xl: 4.209rem;
|
|
2434
|
+
--tsm-5xl: 5.61rem;
|
|
2435
|
+
--tsm-6xl: 7.478rem;
|
|
2436
|
+
--tsm-7xl: 9.969rem;
|
|
2437
|
+
}
|
|
2438
|
+
[data-type-scale-desktop="perfect-fourth"] {
|
|
2439
|
+
--tsd-2xs: 0.625rem;
|
|
2440
|
+
--tsd-xs: 0.64rem;
|
|
2441
|
+
--tsd-sm: 0.8rem;
|
|
2442
|
+
--tsd-base: 1rem;
|
|
2443
|
+
--tsd-lg: 1.333rem;
|
|
2444
|
+
--tsd-xl: 1.777rem;
|
|
2445
|
+
--tsd-2xl: 2.369rem;
|
|
2446
|
+
--tsd-3xl: 3.157rem;
|
|
2447
|
+
--tsd-4xl: 4.209rem;
|
|
2448
|
+
--tsd-5xl: 5.61rem;
|
|
2449
|
+
--tsd-6xl: 7.478rem;
|
|
2450
|
+
--tsd-7xl: 9.969rem;
|
|
2451
|
+
}
|
|
2452
|
+
[data-type-scale="perfect-fourth"] {
|
|
2453
|
+
--tsm-2xs: 0.625rem; --tsd-2xs: 0.625rem;
|
|
2454
|
+
--tsm-xs: 0.64rem; --tsd-xs: 0.64rem;
|
|
2455
|
+
--tsm-sm: 0.8rem; --tsd-sm: 0.8rem;
|
|
2456
|
+
--tsm-base: 1rem; --tsd-base: 1rem;
|
|
2457
|
+
--tsm-lg: 1.333rem; --tsd-lg: 1.333rem;
|
|
2458
|
+
--tsm-xl: 1.777rem; --tsd-xl: 1.777rem;
|
|
2459
|
+
--tsm-2xl: 2.369rem; --tsd-2xl: 2.369rem;
|
|
2460
|
+
--tsm-3xl: 3.157rem; --tsd-3xl: 3.157rem;
|
|
2461
|
+
--tsm-4xl: 4.209rem; --tsd-4xl: 4.209rem;
|
|
2462
|
+
--tsm-5xl: 5.61rem; --tsd-5xl: 5.61rem;
|
|
2463
|
+
--tsm-6xl: 7.478rem; --tsd-6xl: 7.478rem;
|
|
2464
|
+
--tsm-7xl: 9.969rem; --tsd-7xl: 9.969rem;
|
|
2465
|
+
}
|
|
2466
|
+
|
|
2467
|
+
[data-type-scale-mobile="augmented-fourth"] {
|
|
2468
|
+
--tsm-2xs: 0.625rem;
|
|
2469
|
+
--tsm-xs: 0.64rem;
|
|
2470
|
+
--tsm-sm: 0.8rem;
|
|
2471
|
+
--tsm-base: 1rem;
|
|
2472
|
+
--tsm-lg: 1.414rem;
|
|
2473
|
+
--tsm-xl: 1.999rem;
|
|
2474
|
+
--tsm-2xl: 2.827rem;
|
|
2475
|
+
--tsm-3xl: 3.998rem;
|
|
2476
|
+
--tsm-4xl: 5.653rem;
|
|
2477
|
+
--tsm-5xl: 7.993rem;
|
|
2478
|
+
--tsm-6xl: 11.302rem;
|
|
2479
|
+
--tsm-7xl: 15.981rem;
|
|
2480
|
+
}
|
|
2481
|
+
[data-type-scale-desktop="augmented-fourth"] {
|
|
2482
|
+
--tsd-2xs: 0.625rem;
|
|
2483
|
+
--tsd-xs: 0.64rem;
|
|
2484
|
+
--tsd-sm: 0.8rem;
|
|
2485
|
+
--tsd-base: 1rem;
|
|
2486
|
+
--tsd-lg: 1.414rem;
|
|
2487
|
+
--tsd-xl: 1.999rem;
|
|
2488
|
+
--tsd-2xl: 2.827rem;
|
|
2489
|
+
--tsd-3xl: 3.998rem;
|
|
2490
|
+
--tsd-4xl: 5.653rem;
|
|
2491
|
+
--tsd-5xl: 7.993rem;
|
|
2492
|
+
--tsd-6xl: 11.302rem;
|
|
2493
|
+
--tsd-7xl: 15.981rem;
|
|
2494
|
+
}
|
|
2495
|
+
[data-type-scale="augmented-fourth"] {
|
|
2496
|
+
--tsm-2xs: 0.625rem; --tsd-2xs: 0.625rem;
|
|
2497
|
+
--tsm-xs: 0.64rem; --tsd-xs: 0.64rem;
|
|
2498
|
+
--tsm-sm: 0.8rem; --tsd-sm: 0.8rem;
|
|
2499
|
+
--tsm-base: 1rem; --tsd-base: 1rem;
|
|
2500
|
+
--tsm-lg: 1.414rem; --tsd-lg: 1.414rem;
|
|
2501
|
+
--tsm-xl: 1.999rem; --tsd-xl: 1.999rem;
|
|
2502
|
+
--tsm-2xl: 2.827rem; --tsd-2xl: 2.827rem;
|
|
2503
|
+
--tsm-3xl: 3.998rem; --tsd-3xl: 3.998rem;
|
|
2504
|
+
--tsm-4xl: 5.653rem; --tsd-4xl: 5.653rem;
|
|
2505
|
+
--tsm-5xl: 7.993rem; --tsd-5xl: 7.993rem;
|
|
2506
|
+
--tsm-6xl: 11.302rem; --tsd-6xl: 11.302rem;
|
|
2507
|
+
--tsm-7xl: 15.981rem; --tsd-7xl: 15.981rem;
|
|
2508
|
+
}
|
|
2509
|
+
|
|
2510
|
+
[data-type-scale-mobile="perfect-fifth"] {
|
|
2511
|
+
--tsm-2xs: 0.625rem;
|
|
2512
|
+
--tsm-xs: 0.64rem;
|
|
2513
|
+
--tsm-sm: 0.8rem;
|
|
2514
|
+
--tsm-base: 1rem;
|
|
2515
|
+
--tsm-lg: 1.5rem;
|
|
2516
|
+
--tsm-xl: 2.25rem;
|
|
2517
|
+
--tsm-2xl: 3.375rem;
|
|
2518
|
+
--tsm-3xl: 5.063rem;
|
|
2519
|
+
--tsm-4xl: 7.594rem;
|
|
2520
|
+
--tsm-5xl: 11.391rem;
|
|
2521
|
+
--tsm-6xl: 17.086rem;
|
|
2522
|
+
--tsm-7xl: 25.629rem;
|
|
2523
|
+
}
|
|
2524
|
+
[data-type-scale-desktop="perfect-fifth"] {
|
|
2525
|
+
--tsd-2xs: 0.625rem;
|
|
2526
|
+
--tsd-xs: 0.64rem;
|
|
2527
|
+
--tsd-sm: 0.8rem;
|
|
2528
|
+
--tsd-base: 1rem;
|
|
2529
|
+
--tsd-lg: 1.5rem;
|
|
2530
|
+
--tsd-xl: 2.25rem;
|
|
2531
|
+
--tsd-2xl: 3.375rem;
|
|
2532
|
+
--tsd-3xl: 5.063rem;
|
|
2533
|
+
--tsd-4xl: 7.594rem;
|
|
2534
|
+
--tsd-5xl: 11.391rem;
|
|
2535
|
+
--tsd-6xl: 17.086rem;
|
|
2536
|
+
--tsd-7xl: 25.629rem;
|
|
2537
|
+
}
|
|
2538
|
+
[data-type-scale="perfect-fifth"] {
|
|
2539
|
+
--tsm-2xs: 0.625rem; --tsd-2xs: 0.625rem;
|
|
2540
|
+
--tsm-xs: 0.64rem; --tsd-xs: 0.64rem;
|
|
2541
|
+
--tsm-sm: 0.8rem; --tsd-sm: 0.8rem;
|
|
2542
|
+
--tsm-base: 1rem; --tsd-base: 1rem;
|
|
2543
|
+
--tsm-lg: 1.5rem; --tsd-lg: 1.5rem;
|
|
2544
|
+
--tsm-xl: 2.25rem; --tsd-xl: 2.25rem;
|
|
2545
|
+
--tsm-2xl: 3.375rem; --tsd-2xl: 3.375rem;
|
|
2546
|
+
--tsm-3xl: 5.063rem; --tsd-3xl: 5.063rem;
|
|
2547
|
+
--tsm-4xl: 7.594rem; --tsd-4xl: 7.594rem;
|
|
2548
|
+
--tsm-5xl: 11.391rem; --tsd-5xl: 11.391rem;
|
|
2549
|
+
--tsm-6xl: 17.086rem; --tsd-6xl: 17.086rem;
|
|
2550
|
+
--tsm-7xl: 25.629rem; --tsd-7xl: 25.629rem;
|
|
2551
|
+
}
|
|
2552
|
+
|
|
2553
|
+
[data-type-scale-mobile="golden-ratio"] {
|
|
2554
|
+
--tsm-2xs: 0.625rem;
|
|
2555
|
+
--tsm-xs: 0.64rem;
|
|
2556
|
+
--tsm-sm: 0.8rem;
|
|
2557
|
+
--tsm-base: 1rem;
|
|
2558
|
+
--tsm-lg: 1.618rem;
|
|
2559
|
+
--tsm-xl: 2.618rem;
|
|
2560
|
+
--tsm-2xl: 4.236rem;
|
|
2561
|
+
--tsm-3xl: 6.854rem;
|
|
2562
|
+
--tsm-4xl: 11.089rem;
|
|
2563
|
+
--tsm-5xl: 17.942rem;
|
|
2564
|
+
--tsm-6xl: 29.03rem;
|
|
2565
|
+
--tsm-7xl: 46.971rem;
|
|
2566
|
+
}
|
|
2567
|
+
[data-type-scale-desktop="golden-ratio"] {
|
|
2568
|
+
--tsd-2xs: 0.625rem;
|
|
2569
|
+
--tsd-xs: 0.64rem;
|
|
2570
|
+
--tsd-sm: 0.8rem;
|
|
2571
|
+
--tsd-base: 1rem;
|
|
2572
|
+
--tsd-lg: 1.618rem;
|
|
2573
|
+
--tsd-xl: 2.618rem;
|
|
2574
|
+
--tsd-2xl: 4.236rem;
|
|
2575
|
+
--tsd-3xl: 6.854rem;
|
|
2576
|
+
--tsd-4xl: 11.089rem;
|
|
2577
|
+
--tsd-5xl: 17.942rem;
|
|
2578
|
+
--tsd-6xl: 29.03rem;
|
|
2579
|
+
--tsd-7xl: 46.971rem;
|
|
2580
|
+
}
|
|
2581
|
+
[data-type-scale="golden-ratio"] {
|
|
2582
|
+
--tsm-2xs: 0.625rem; --tsd-2xs: 0.625rem;
|
|
2583
|
+
--tsm-xs: 0.64rem; --tsd-xs: 0.64rem;
|
|
2584
|
+
--tsm-sm: 0.8rem; --tsd-sm: 0.8rem;
|
|
2585
|
+
--tsm-base: 1rem; --tsd-base: 1rem;
|
|
2586
|
+
--tsm-lg: 1.618rem; --tsd-lg: 1.618rem;
|
|
2587
|
+
--tsm-xl: 2.618rem; --tsd-xl: 2.618rem;
|
|
2588
|
+
--tsm-2xl: 4.236rem; --tsd-2xl: 4.236rem;
|
|
2589
|
+
--tsm-3xl: 6.854rem; --tsd-3xl: 6.854rem;
|
|
2590
|
+
--tsm-4xl: 11.089rem; --tsd-4xl: 11.089rem;
|
|
2591
|
+
--tsm-5xl: 17.942rem; --tsd-5xl: 17.942rem;
|
|
2592
|
+
--tsm-6xl: 29.03rem; --tsd-6xl: 29.03rem;
|
|
2593
|
+
--tsm-7xl: 46.971rem; --tsd-7xl: 46.971rem;
|
|
2594
|
+
}
|
|
2595
|
+
|
|
2596
|
+
[data-type-scale], [data-type-scale-mobile], [data-type-scale-desktop] {
|
|
2597
|
+
--ts-fluid: clamp(0, calc((100vw - 20rem) / 60rem), 1);
|
|
2598
|
+
--text-2xs: calc(var(--tsm-2xs, var(--tsd-2xs)) + (var(--tsd-2xs, var(--tsm-2xs)) - var(--tsm-2xs, var(--tsd-2xs))) * var(--ts-fluid));
|
|
2599
|
+
--text-xs: calc(var(--tsm-xs, var(--tsd-xs)) + (var(--tsd-xs, var(--tsm-xs)) - var(--tsm-xs, var(--tsd-xs))) * var(--ts-fluid));
|
|
2600
|
+
--text-sm: calc(var(--tsm-sm, var(--tsd-sm)) + (var(--tsd-sm, var(--tsm-sm)) - var(--tsm-sm, var(--tsd-sm))) * var(--ts-fluid));
|
|
2601
|
+
--text-base: calc(var(--tsm-base, var(--tsd-base)) + (var(--tsd-base, var(--tsm-base)) - var(--tsm-base, var(--tsd-base))) * var(--ts-fluid));
|
|
2602
|
+
--text-lg: calc(var(--tsm-lg, var(--tsd-lg)) + (var(--tsd-lg, var(--tsm-lg)) - var(--tsm-lg, var(--tsd-lg))) * var(--ts-fluid));
|
|
2603
|
+
--text-xl: calc(var(--tsm-xl, var(--tsd-xl)) + (var(--tsd-xl, var(--tsm-xl)) - var(--tsm-xl, var(--tsd-xl))) * var(--ts-fluid));
|
|
2604
|
+
--text-2xl: calc(var(--tsm-2xl, var(--tsd-2xl)) + (var(--tsd-2xl, var(--tsm-2xl)) - var(--tsm-2xl, var(--tsd-2xl))) * var(--ts-fluid));
|
|
2605
|
+
--text-3xl: calc(var(--tsm-3xl, var(--tsd-3xl)) + (var(--tsd-3xl, var(--tsm-3xl)) - var(--tsm-3xl, var(--tsd-3xl))) * var(--ts-fluid));
|
|
2606
|
+
--text-4xl: calc(var(--tsm-4xl, var(--tsd-4xl)) + (var(--tsd-4xl, var(--tsm-4xl)) - var(--tsm-4xl, var(--tsd-4xl))) * var(--ts-fluid));
|
|
2607
|
+
--text-5xl: calc(var(--tsm-5xl, var(--tsd-5xl)) + (var(--tsd-5xl, var(--tsm-5xl)) - var(--tsm-5xl, var(--tsd-5xl))) * var(--ts-fluid));
|
|
2608
|
+
--text-6xl: calc(var(--tsm-6xl, var(--tsd-6xl)) + (var(--tsd-6xl, var(--tsm-6xl)) - var(--tsm-6xl, var(--tsd-6xl))) * var(--ts-fluid));
|
|
2609
|
+
--text-7xl: calc(var(--tsm-7xl, var(--tsd-7xl)) + (var(--tsd-7xl, var(--tsm-7xl)) - var(--tsm-7xl, var(--tsd-7xl))) * var(--ts-fluid));
|
|
2610
|
+
--text-display: var(--text-6xl);
|
|
2611
|
+
--text-h1: var(--text-4xl);
|
|
2612
|
+
--text-h2: var(--text-3xl);
|
|
2613
|
+
--text-h3: var(--text-2xl);
|
|
2614
|
+
--text-h4: var(--text-xl);
|
|
2615
|
+
--text-h5: var(--text-lg);
|
|
2616
|
+
--text-body-lg: var(--text-lg);
|
|
2617
|
+
--text-h6: var(--text-base);
|
|
2618
|
+
--text-body: var(--text-base);
|
|
2619
|
+
--text-body-sm: var(--text-sm);
|
|
2620
|
+
}
|
|
2621
|
+
|
|
2622
|
+
/* ============================================
|
|
2623
|
+
SIZE SCALE — scoped, switchable, fluid (mobile → desktop)
|
|
2624
|
+
============================================
|
|
2625
|
+
Same engine as the type scale, for SPACING. Re-points Tailwind's --spacing
|
|
2626
|
+
base, so EVERY spacing utility (gap-*, p-*, m-*, size-*) re-pitches at once —
|
|
2627
|
+
one knob for a page or section's whole density. Pick a mobile density + a
|
|
2628
|
+
desktop density; --spacing interpolates between them by viewport, clamped.
|
|
2629
|
+
Shorthand data-size-scale="comfortable" sets both (flat). Levels are density
|
|
2630
|
+
presets (the --spacing base unit), not modular ratios — spacing is a linear
|
|
2631
|
+
grid. Composes via the cascade like the type scale; drop data-size-scale=
|
|
2632
|
+
"compact" on an embedded table/UI mockup to tighten just that region. */
|
|
2633
|
+
[data-size-scale-mobile="compact"] { --ssm: 0.2rem; }
|
|
2634
|
+
[data-size-scale-mobile="cozy"] { --ssm: 0.225rem; }
|
|
2635
|
+
[data-size-scale-mobile="comfortable"] { --ssm: 0.25rem; }
|
|
2636
|
+
[data-size-scale-mobile="spacious"] { --ssm: 0.3rem; }
|
|
2637
|
+
[data-size-scale-mobile="expansive"] { --ssm: 0.35rem; }
|
|
2638
|
+
[data-size-scale-desktop="compact"] { --ssd: 0.2rem; }
|
|
2639
|
+
[data-size-scale-desktop="cozy"] { --ssd: 0.225rem; }
|
|
2640
|
+
[data-size-scale-desktop="comfortable"] { --ssd: 0.25rem; }
|
|
2641
|
+
[data-size-scale-desktop="spacious"] { --ssd: 0.3rem; }
|
|
2642
|
+
[data-size-scale-desktop="expansive"] { --ssd: 0.35rem; }
|
|
2643
|
+
[data-size-scale="compact"] { --ssm: 0.2rem; --ssd: 0.2rem; }
|
|
2644
|
+
[data-size-scale="cozy"] { --ssm: 0.225rem; --ssd: 0.225rem; }
|
|
2645
|
+
[data-size-scale="comfortable"] { --ssm: 0.25rem; --ssd: 0.25rem; }
|
|
2646
|
+
[data-size-scale="spacious"] { --ssm: 0.3rem; --ssd: 0.3rem; }
|
|
2647
|
+
[data-size-scale="expansive"] { --ssm: 0.35rem; --ssd: 0.35rem; }
|
|
2648
|
+
[data-size-scale], [data-size-scale-mobile], [data-size-scale-desktop] {
|
|
2649
|
+
--ss-fluid: clamp(0, calc((100vw - 20rem) / 60rem), 1);
|
|
2650
|
+
--spacing: calc(var(--ssm, var(--ssd)) + (var(--ssd, var(--ssm)) - var(--ssm, var(--ssd))) * var(--ss-fluid));
|
|
2651
|
+
}
|
|
2652
|
+
|
|
2223
2653
|
/* Keyframes */
|
|
2224
2654
|
@keyframes fadeIn {
|
|
2225
2655
|
from { opacity: 0; }
|