anentrypoint-design 0.0.220 → 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.
@@ -1,38 +1,57 @@
1
1
  /* ============================================================
2
2
  247420 design system — colors + type
3
- Calm, readable, scope-prefixed at build time.
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 — cool stone scale; lets lore palette pop. */
15
- --paper: #F6F5F1;
16
- --paper-2: #ECEBE6;
17
- --paper-3: #DFDED9;
18
- --ink: #131318;
19
- --ink-2: #25252C;
20
- --ink-3: #54545A; /* WCAG AAA on --paper (~7.1:1); was #6A6A70 (AA only) */
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: #D9E5C8;
29
- --purple: #420247;
47
+ --green-tint: #D7E4C2;
48
+ --purple: #3A0140;
30
49
  --purple-2: #7F18A4;
31
- --purple-deep: #28002B;
32
- --purple-tint: #E4D3E5;
33
- --mascot: #E84B8A;
50
+ --purple-deep: #220026;
51
+ --purple-tint: #E2CFE4;
52
+ --mascot: #FF2E84;
34
53
  --mascot-2: #FF3CA7;
35
- --mascot-tint: #F5D2DF;
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: var(--green);
68
- --accent-fg: var(--paper);
69
- --accent-bright: var(--green-2); /* base value so var(--accent-bright) never falls back empty; ink + [data-accent] retune it */
70
- --accent-tint: color-mix(in oklab, var(--accent) 26%, var(--bg));
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 — Inter for everything non-mono. The display/narrow aliases stay so
109
- consumers that reference them keep working; they resolve to the body font. */
110
- --ff-display: 'Inter', system-ui, sans-serif;
111
- --ff-narrow: 'Inter', system-ui, sans-serif;
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(--accent-bright, var(--green-2));
309
+ --accent: var(--acid);
269
310
  --accent-fg: var(--ink);
270
- --accent-bright: var(--green-2);
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(--accent-bright, var(--green-2));
350
+ --accent: var(--acid);
309
351
  --accent-fg: var(--ink);
310
- --accent-bright: var(--green-2);
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(--green); --accent-fg: var(--paper);
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="green"] { --accent: var(--green); --accent-bright: var(--green-2); --accent-fg: var(--paper); --panel-accent: var(--green); }
403
- [data-accent="purple"] { --accent: var(--purple); --accent-bright: #C277FF; --accent-fg: var(--paper); --panel-accent: var(--purple); }
404
- [data-accent="mascot"] { --accent: var(--mascot); --accent-bright: var(--mascot-2); --accent-fg: var(--ink); --panel-accent: var(--mascot); }
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. */