anentrypoint-design 0.0.219 → 0.0.221
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/app-shell.css +162 -59
- package/colors_and_type.css +78 -33
- package/dist/247420.css +240 -92
- package/dist/247420.js +16 -14
- package/package.json +1 -1
- package/src/components/content.js +20 -3
- package/src/components.js +1 -1
- package/src/kits/os/theme.css +6 -1
- package/src/motion.js +4 -2
package/colors_and_type.css
CHANGED
|
@@ -1,38 +1,57 @@
|
|
|
1
1
|
/* ============================================================
|
|
2
2
|
247420 design system — colors + type
|
|
3
|
-
|
|
3
|
+
"Acid Editorial": confident display type, ink-on-paper with one
|
|
4
|
+
electric lead, print texture over glow. Scope-prefixed at build time.
|
|
4
5
|
Source-of-truth tokens. Component sheet lives in app-shell.css.
|
|
5
6
|
============================================================ */
|
|
6
7
|
|
|
7
|
-
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400;1,700&display=swap');
|
|
8
|
+
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400;1,700&display=swap');
|
|
9
|
+
|
|
10
|
+
/* Metric-matched fallback for the display face. While Space Grotesk loads,
|
|
11
|
+
text falls back to Arial with size-adjust tuned to its cap-height so the
|
|
12
|
+
oversized hero does not reflow on swap. Referenced first in --ff-display via
|
|
13
|
+
the 'Space Grotesk' family; this only kicks in for the fallback glyphs. */
|
|
14
|
+
@font-face {
|
|
15
|
+
font-family: 'Space Grotesk Fallback';
|
|
16
|
+
src: local('Arial');
|
|
17
|
+
size-adjust: 96%;
|
|
18
|
+
ascent-override: 95%;
|
|
19
|
+
descent-override: 24%;
|
|
20
|
+
}
|
|
8
21
|
|
|
9
22
|
:root {
|
|
10
23
|
/* Tree view indentation tokens */
|
|
11
24
|
--tree-indent: 12px;
|
|
12
25
|
--tree-base-indent: 6px;
|
|
13
26
|
|
|
14
|
-
/* Paper / Ink —
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
--paper
|
|
18
|
-
--
|
|
19
|
-
--
|
|
20
|
-
--ink
|
|
27
|
+
/* Paper / Ink — warm newsprint paper against near-black ink. The warmer
|
|
28
|
+
paper + deeper ink widen the tonal range so the electric lead reads as
|
|
29
|
+
printed, not glowing. */
|
|
30
|
+
--paper: #F4F1E9;
|
|
31
|
+
--paper-2: #EAE6DA;
|
|
32
|
+
--paper-3: #DCD7C7;
|
|
33
|
+
--ink: #0E0E12;
|
|
34
|
+
--ink-2: #1F1F26;
|
|
35
|
+
--ink-3: #52525A; /* WCAG AAA on --paper (~7.1:1) */
|
|
21
36
|
--ink-3-dark: #464650; /* dark theme bg-3 (tier-3 surface) */
|
|
22
37
|
--paper-3-dark: #B4B4BC; /* dark theme fg-3 (tier-3 text) */
|
|
23
38
|
|
|
24
|
-
/* Lore palette
|
|
39
|
+
/* Lore palette. --acid is the electric lead — a printed-ink lime that sits
|
|
40
|
+
forward of the heritage green; green/purple/mascot demote to print-ink
|
|
41
|
+
category roles. */
|
|
42
|
+
--acid: #B6FF1B;
|
|
43
|
+
--acid-deep: #4E7A00; /* AA text tone of the lead on paper */
|
|
25
44
|
--green: #247420;
|
|
26
45
|
--green-2: #3A9A34;
|
|
27
46
|
--green-deep: #133F10;
|
|
28
|
-
--green-tint: #
|
|
29
|
-
--purple: #
|
|
47
|
+
--green-tint: #D7E4C2;
|
|
48
|
+
--purple: #3A0140;
|
|
30
49
|
--purple-2: #7F18A4;
|
|
31
|
-
--purple-deep: #
|
|
32
|
-
--purple-tint: #
|
|
33
|
-
--mascot: #
|
|
50
|
+
--purple-deep: #220026;
|
|
51
|
+
--purple-tint: #E2CFE4;
|
|
52
|
+
--mascot: #FF2E84;
|
|
34
53
|
--mascot-2: #FF3CA7;
|
|
35
|
-
--mascot-tint: #
|
|
54
|
+
--mascot-tint: #F7CEDD;
|
|
36
55
|
--mascot-deep: #B81F63;
|
|
37
56
|
|
|
38
57
|
/* Signals */
|
|
@@ -64,10 +83,14 @@
|
|
|
64
83
|
--fg-2: var(--ink-2);
|
|
65
84
|
--fg-3: var(--ink-3);
|
|
66
85
|
|
|
67
|
-
--accent
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
--accent
|
|
86
|
+
/* The electric lead. --accent is the FILL (sits behind ink text); --accent-ink
|
|
87
|
+
is the readable TEXT tone for links/eyebrows/accents on paper (the lime
|
|
88
|
+
itself is too light for text). --accent-fg is what sits ON an --accent fill. */
|
|
89
|
+
--accent: var(--acid);
|
|
90
|
+
--accent-fg: var(--ink);
|
|
91
|
+
--accent-ink: var(--acid-deep);
|
|
92
|
+
--accent-bright: var(--acid); /* base value so var(--accent-bright) never falls back empty; ink + [data-accent] retune it */
|
|
93
|
+
--accent-tint: color-mix(in oklab, var(--accent) 30%, var(--bg));
|
|
71
94
|
|
|
72
95
|
/* On-color foregrounds — text/icons that sit ON a saturated fill (accent,
|
|
73
96
|
danger, category chips). Theme-driven so white-on-color never hard-codes
|
|
@@ -105,10 +128,12 @@
|
|
|
105
128
|
--panel-accent-2: var(--accent-bright, var(--accent));
|
|
106
129
|
--panel-shadow: 0 1px 0 color-mix(in oklab, var(--fg) 6%, transparent), 0 4px 14px color-mix(in oklab, var(--fg) 8%, transparent);
|
|
107
130
|
|
|
108
|
-
/* Type —
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
131
|
+
/* Type — Space Grotesk carries display/headings (editorial grotesk with real
|
|
132
|
+
character), Inter carries body and UI, JetBrains carries code. The narrow
|
|
133
|
+
alias tracks the display face. size-adjust on the fallback keeps the
|
|
134
|
+
oversized hero from shifting while Space Grotesk loads. */
|
|
135
|
+
--ff-display: 'Space Grotesk', 'Space Grotesk Fallback', 'Inter', system-ui, sans-serif;
|
|
136
|
+
--ff-narrow: 'Space Grotesk', 'Space Grotesk Fallback', 'Inter', system-ui, sans-serif;
|
|
112
137
|
--ff-body: 'Inter', system-ui, sans-serif;
|
|
113
138
|
--ff-mono: 'JetBrains Mono', ui-monospace, Menlo, Consolas, monospace;
|
|
114
139
|
|
|
@@ -181,7 +206,23 @@
|
|
|
181
206
|
--dur-snap: 80ms;
|
|
182
207
|
--dur-base: 160ms;
|
|
183
208
|
--dur-slow: 280ms;
|
|
209
|
+
--dur-reveal: 560ms;
|
|
184
210
|
--ease: cubic-bezier(0.2, 0, 0, 1);
|
|
211
|
+
/* Physical tier — a slight overshoot that reads as a printed stamp landing,
|
|
212
|
+
used by presses and signature reveals (not by routine UI fades). */
|
|
213
|
+
--ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
214
|
+
--ease-exit: cubic-bezier(0.4, 0, 1, 1);
|
|
215
|
+
|
|
216
|
+
/* Print texture — the signature surface treatment. --grain is a tiled
|
|
217
|
+
fractal-noise data-URI; --halftone is a dot screen. Both are opt-in via
|
|
218
|
+
.ds-grain / .ds-halftone utilities and tuned faint so type stays crisp. */
|
|
219
|
+
--grain-opacity: 0.05;
|
|
220
|
+
--grain-blend: multiply;
|
|
221
|
+
--grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
|
|
222
|
+
--halftone-size: 6px;
|
|
223
|
+
/* Offset-ink registration — the small print-mark offset used on editorial
|
|
224
|
+
edges (panel spine, expo numbering). A literal length, not a color. */
|
|
225
|
+
--ink-offset: 3px;
|
|
185
226
|
|
|
186
227
|
--z-header: 100;
|
|
187
228
|
--z-overlay: 1000;
|
|
@@ -265,9 +306,10 @@ select:focus-visible {
|
|
|
265
306
|
--panel-text: var(--fg);
|
|
266
307
|
--panel-text-2: var(--fg-2);
|
|
267
308
|
--panel-text-3: var(--fg-3);
|
|
268
|
-
--accent: var(--
|
|
309
|
+
--accent: var(--acid);
|
|
269
310
|
--accent-fg: var(--ink);
|
|
270
|
-
--accent-
|
|
311
|
+
--accent-ink: var(--acid); /* on ink, the lime itself reads as bright text */
|
|
312
|
+
--accent-bright: var(--acid);
|
|
271
313
|
--danger: oklch(0.68 0.19 25);
|
|
272
314
|
--flame: #FF5A1F;
|
|
273
315
|
--amber: #D9A93A;
|
|
@@ -305,9 +347,10 @@ select:focus-visible {
|
|
|
305
347
|
--panel-text: var(--fg);
|
|
306
348
|
--panel-text-2: var(--fg-2);
|
|
307
349
|
--panel-text-3: var(--fg-3);
|
|
308
|
-
--accent: var(--
|
|
350
|
+
--accent: var(--acid);
|
|
309
351
|
--accent-fg: var(--ink);
|
|
310
|
-
--accent-
|
|
352
|
+
--accent-ink: var(--acid);
|
|
353
|
+
--accent-bright: var(--acid);
|
|
311
354
|
--danger: oklch(0.68 0.19 25);
|
|
312
355
|
--flame: #FF5A1F;
|
|
313
356
|
--amber: #D9A93A;
|
|
@@ -337,6 +380,7 @@ select:focus-visible {
|
|
|
337
380
|
--panel-bg-2: inherit;
|
|
338
381
|
--accent: inherit;
|
|
339
382
|
--accent-fg: inherit;
|
|
383
|
+
--accent-ink: inherit;
|
|
340
384
|
--panel-1: inherit;
|
|
341
385
|
--panel-2: inherit;
|
|
342
386
|
--panel-3: inherit;
|
|
@@ -376,7 +420,7 @@ select:focus-visible {
|
|
|
376
420
|
color-scheme: light;
|
|
377
421
|
--bg: var(--paper); --bg-2: var(--paper-2); --bg-3: var(--paper-3);
|
|
378
422
|
--fg: var(--ink); --fg-2: var(--ink-2); --fg-3: var(--ink-3);
|
|
379
|
-
--accent: var(--
|
|
423
|
+
--accent: var(--acid); --accent-fg: var(--ink); --accent-ink: var(--acid-deep);
|
|
380
424
|
/* A paper island under a dark ancestor must not inherit the dark signal pair. */
|
|
381
425
|
--flame: #C53E00; --amber: #8A6512; --warn: #E0241A; --sky: #3A6EFF;
|
|
382
426
|
}
|
|
@@ -392,16 +436,17 @@ select:focus-visible {
|
|
|
392
436
|
--paper-3: #E3DAC7;
|
|
393
437
|
--bg: var(--paper); --bg-2: var(--paper-2); --bg-3: var(--paper-3);
|
|
394
438
|
--fg: var(--ink); --fg-2: var(--ink-2); --fg-3: var(--ink-3);
|
|
395
|
-
--accent: var(--green); --accent-fg: var(--paper);
|
|
439
|
+
--accent: var(--green); --accent-fg: var(--paper); --accent-ink: var(--green);
|
|
396
440
|
}
|
|
397
441
|
|
|
398
442
|
[data-density="compact"] { --density: 0.75; }
|
|
399
443
|
[data-density="comfortable"] { --density: 1; }
|
|
400
444
|
[data-density="spacious"] { --density: 1.35; }
|
|
401
445
|
|
|
402
|
-
[data-accent="
|
|
403
|
-
[data-accent="
|
|
404
|
-
[data-accent="
|
|
446
|
+
[data-accent="acid"] { --accent: var(--acid); --accent-bright: var(--acid); --accent-fg: var(--ink); --accent-ink: var(--acid-deep); --panel-accent: var(--acid); }
|
|
447
|
+
[data-accent="green"] { --accent: var(--green); --accent-bright: var(--green-2); --accent-fg: var(--paper); --accent-ink: var(--green); --panel-accent: var(--green); }
|
|
448
|
+
[data-accent="purple"] { --accent: var(--purple); --accent-bright: #C277FF; --accent-fg: var(--paper); --accent-ink: var(--purple-2); --panel-accent: var(--purple); }
|
|
449
|
+
[data-accent="mascot"] { --accent: var(--mascot); --accent-bright: var(--mascot-2); --accent-fg: var(--ink); --accent-ink: var(--mascot-deep);--panel-accent: var(--mascot); }
|
|
405
450
|
|
|
406
451
|
/* Type-scale modifier — opt-in body/lg/xl bump for surfaces that want denser
|
|
407
452
|
or larger reading sizes without a custom override. */
|