@jaimevalasek/aioson 1.30.1 → 1.30.2

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.
Files changed (90) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/docs/design-previews/cognitive-core-ui-auth.html +95 -0
  3. package/docs/design-previews/cognitive-core-ui-kanban.html +231 -0
  4. package/docs/design-previews/cognitive-core-ui-list-detail.html +174 -0
  5. package/docs/design-previews/cognitive-core-ui-preview.css +1315 -0
  6. package/docs/design-previews/cognitive-core-ui-settings.html +142 -0
  7. package/docs/design-previews/cognitive-core-ui-website.html +190 -1009
  8. package/docs/design-previews/cognitive-core-ui.html +281 -463
  9. package/docs/design-previews/index.html +83 -31
  10. package/package.json +1 -1
  11. package/src/constants.js +567 -511
  12. package/template/.aioson/docs/play/README.md +2 -0
  13. package/template/.aioson/docs/play/agent-usage-guide.md +7 -1
  14. package/template/.aioson/docs/play/app-compatibility-guide.md +6 -1
  15. package/template/.aioson/docs/play/auth-services-and-testing.md +16 -1
  16. package/template/.aioson/docs/play/manifest-and-runtime.md +23 -0
  17. package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +266 -243
  18. package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -293
  19. package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -827
  20. package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -250
  21. package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -585
  22. package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -365
  23. package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +485 -482
  24. package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +386 -387
  25. package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +228 -205
  26. package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -338
  27. package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -977
  28. package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -218
  29. package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -326
  30. package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -461
  31. package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -293
  32. package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -352
  33. package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +233 -210
  34. package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -319
  35. package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -365
  36. package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -196
  37. package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -244
  38. package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -235
  39. package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -215
  40. package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -295
  41. package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +239 -203
  42. package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -339
  43. package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +417 -407
  44. package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +289 -272
  45. package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +525 -524
  46. package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +279 -279
  47. package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +355 -289
  48. package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +443 -437
  49. package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +245 -222
  50. package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -159
  51. package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -498
  52. package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -236
  53. package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -274
  54. package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -355
  55. package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -198
  56. package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -307
  57. package/template/.aioson/skills/design/interface-design/SKILL.md +68 -47
  58. package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -105
  59. package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -101
  60. package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +92 -71
  61. package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -74
  62. package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -173
  63. package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +236 -213
  64. package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -228
  65. package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -855
  66. package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -334
  67. package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -342
  68. package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -286
  69. package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -458
  70. package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -723
  71. package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +83 -62
  72. package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -74
  73. package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -116
  74. package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -47
  75. package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -215
  76. package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -31
  77. package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +94 -66
  78. package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +366 -366
  79. package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -150
  80. package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -270
  81. package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -189
  82. package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +161 -161
  83. package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +232 -209
  84. package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -324
  85. package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -508
  86. package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -223
  87. package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -374
  88. package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -356
  89. package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -288
  90. package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -289
@@ -1,326 +1,326 @@
1
- # Design Tokens — Bold Editorial UI
2
-
3
- All CSS custom properties for the Bold Editorial system. Apply these to the root `:root` or a `[data-theme]` container.
4
-
5
- **Token scope rule**: always declare tokens on the topmost shared ancestor, never inline. Never hardcode a color, font, or size that has a token equivalent.
6
-
7
- ---
8
-
9
- ## Font Imports
10
-
11
- ```css
12
- /* Clash Display — Fontshare (free for commercial use) */
13
- @import url('https://api.fontshare.com/v2/css?f[]=clash-display@200;300;400;500;600;700&display=swap');
14
-
15
- /* Fallback if Fontshare unavailable: Cabinet Grotesk or Syne */
16
- /* @import url('https://fonts.googleapis.com/css2?family=Syne:wght@400;500;600;700;800&display=swap'); */
17
-
18
- /* Body + Mono */
19
- @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');
20
- ```
21
-
22
- ---
23
-
24
- ## Typography Tokens
25
-
26
- ```css
27
- :root {
28
- /* Font families */
29
- --font-display: 'Clash Display', 'Cabinet Grotesk', 'Syne', Impact, "Arial Black", system-ui, sans-serif;
30
- --font-body: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
31
- --font-mono: 'JetBrains Mono', 'Space Mono', ui-monospace, 'Courier New', monospace;
32
-
33
- /* Font sizes — editorial scale, larger than most systems */
34
- --text-xs: 0.75rem; /* 12px — mono metadata, captions */
35
- --text-sm: 0.875rem; /* 14px — body small */
36
- --text-base: 1rem; /* 16px — body */
37
- --text-lg: 1.25rem; /* 20px — lead paragraph */
38
- --text-xl: 1.5rem; /* 24px — subheadings */
39
- --text-2xl: 2rem; /* 32px — section titles */
40
- --text-3xl: 3rem; /* 48px — page headlines */
41
- --text-4xl: 4.5rem; /* 72px — hero headlines */
42
- --text-5xl: 6rem; /* 96px — statement text */
43
- --text-6xl: 8rem; /* 128px — manifesto / display — maximum impact */
44
-
45
- /* Font weights */
46
- --weight-regular: 400;
47
- --weight-medium: 500;
48
- --weight-semibold: 600;
49
- --weight-bold: 700;
50
-
51
- /* Line heights */
52
- --leading-none: 0.9; /* text-5xl, text-6xl — tight for display */
53
- --leading-tight: 1.05; /* text-4xl — headlines */
54
- --leading-snug: 1.2; /* text-3xl, text-2xl */
55
- --leading-normal: 1.5; /* text-lg, text-xl — comfortable reading */
56
- --leading-relaxed: 1.65; /* text-base — body */
57
- --leading-loose: 2; /* text-sm, text-xs in tables */
58
-
59
- /* Letter spacing */
60
- --tracking-tighter: -0.04em; /* display headings at large sizes */
61
- --tracking-tight: -0.02em; /* section headlines */
62
- --tracking-normal: 0;
63
- --tracking-wide: 0.05em; /* subheadings, labels */
64
- --tracking-wider: 0.08em; /* mono labels, uppercase */
65
- --tracking-widest: 0.15em; /* mono overlines, badges, category text */
66
- }
67
- ```
68
-
69
- ### Typography usage rules
70
-
71
- - `--font-display` for all headlines `text-2xl` and above. Never use body font for display sizes.
72
- - `--font-body` for all body copy, descriptions, form labels, navigation.
73
- - `--font-mono` for all overlines, category labels, dates, version badges, metadata, code. This is non-negotiable.
74
- - At `text-5xl` and `text-6xl`: always `line-height: var(--leading-none)` + `letter-spacing: var(--tracking-tighter)`.
75
- - At `text-3xl` and `text-4xl`: `line-height: var(--leading-tight)` + `letter-spacing: var(--tracking-tight)`.
76
- - Mono text: always `uppercase` + `letter-spacing: var(--tracking-widest)`.
77
-
78
- ---
79
-
80
- ## Color Tokens — Dark Theme (default)
81
-
82
- ```css
83
- [data-theme="dark"],
84
- :root {
85
- /* Backgrounds — near-black, not navy or warm */
86
- --bg-void: #050505;
87
- --bg-base: #0A0A0A;
88
- --bg-surface: #141414;
89
- --bg-elevated: #1E1E1E;
90
- --bg-overlay: #282828;
91
-
92
- /* Text */
93
- --text-heading: #FFFFFF;
94
- --text-primary: #B8B8B8;
95
- --text-secondary: #787878;
96
- --text-muted: #484848;
97
- --text-inverse: #0A0A0A; /* for text on light surfaces */
98
-
99
- /* Accent — red-orange, energetic */
100
- --accent: #FF4D2A;
101
- --accent-strong: #E03A18;
102
- --accent-dim: rgba(255, 77, 42, 0.15);
103
- --accent-hover: #FF6647;
104
- --accent-contrast: #FFFFFF;
105
-
106
- /* Borders */
107
- --border-subtle: rgba(255, 255, 255, 0.06);
108
- --border-medium: rgba(255, 255, 255, 0.12);
109
- --border-strong: rgba(255, 255, 255, 0.22);
110
-
111
- /* Semantic */
112
- --semantic-green: #22C55E;
113
- --semantic-green-dim: rgba(34, 197, 94, 0.15);
114
- --semantic-amber: #F59E0B;
115
- --semantic-amber-dim: rgba(245, 158, 11, 0.15);
116
- --semantic-red: #EF4444;
117
- --semantic-red-dim: rgba(239, 68, 68, 0.15);
118
- --semantic-blue: #60A5FA;
119
- --semantic-blue-dim: rgba(96, 165, 250, 0.15);
120
- --semantic-purple: #A78BFA;
121
- --semantic-purple-dim: rgba(167, 139, 250, 0.15);
122
- }
123
- ```
124
-
125
- ---
126
-
127
- ## Color Tokens — Light Theme
128
-
129
- ```css
130
- [data-theme="light"] {
131
- /* Backgrounds — off-white, slightly cool */
132
- --bg-void: #F5F5F0;
133
- --bg-base: #FAFAF7;
134
- --bg-surface: #FFFFFF;
135
- --bg-elevated: #EFEFEA;
136
- --bg-overlay: #E5E5DF;
137
-
138
- /* Text */
139
- --text-heading: #0A0A0A;
140
- --text-primary: #3A3A3A;
141
- --text-secondary: #7A7A7A;
142
- --text-muted: #AAAAAA;
143
- --text-inverse: #FFFFFF;
144
-
145
- /* Accent — deeper red-orange for light backgrounds */
146
- --accent: #E03A18;
147
- --accent-strong: #C42E0F;
148
- --accent-dim: rgba(224, 58, 24, 0.10);
149
- --accent-hover: #FF4D2A;
150
- --accent-contrast: #FFFFFF;
151
-
152
- /* Borders */
153
- --border-subtle: rgba(0, 0, 0, 0.06);
154
- --border-medium: rgba(0, 0, 0, 0.12);
155
- --border-strong: rgba(0, 0, 0, 0.22);
156
-
157
- /* Semantic */
158
- --semantic-green: #16A34A;
159
- --semantic-green-dim: rgba(22, 163, 74, 0.10);
160
- --semantic-amber: #D97706;
161
- --semantic-amber-dim: rgba(217, 119, 6, 0.10);
162
- --semantic-red: #DC2626;
163
- --semantic-red-dim: rgba(220, 38, 38, 0.10);
164
- --semantic-blue: #2563EB;
165
- --semantic-blue-dim: rgba(37, 99, 235, 0.10);
166
- --semantic-purple: #7C3AED;
167
- --semantic-purple-dim: rgba(124, 58, 237, 0.10);
168
- }
169
- ```
170
-
171
- ---
172
-
173
- ## Shadow Tokens
174
-
175
- ```css
176
- :root {
177
- /* Dark theme — deep cinematic shadows */
178
- --shadow-xs: 0 1px 4px rgba(0, 0, 0, 0.20);
179
- --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.25);
180
- --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.35);
181
- --shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.45);
182
- --shadow-xl: 0 24px 64px rgba(0, 0, 0, 0.55);
183
-
184
- /* Accent glow — ONE element per viewport maximum */
185
- --shadow-glow: 0 0 60px rgba(255, 77, 42, 0.15);
186
-
187
- /* Light theme shadows — visible but measured */
188
- --shadow-xs-light: 0 1px 3px rgba(0, 0, 0, 0.08);
189
- --shadow-sm-light: 0 2px 8px rgba(0, 0, 0, 0.10);
190
- --shadow-md-light: 0 8px 24px rgba(0, 0, 0, 0.12);
191
- --shadow-lg-light: 0 16px 48px rgba(0, 0, 0, 0.14);
192
- }
193
- ```
194
-
195
- Shadow rules:
196
- - On dark theme: use `--shadow-*` (black-based).
197
- - On light theme: use `--shadow-*-light` (softer).
198
- - `--shadow-glow` is for ONE featured element per viewport (hero CTA, featured pricing card). Never apply to more than one element in the same scroll viewport.
199
-
200
- ---
201
-
202
- ## Spacing Tokens
203
-
204
- ```css
205
- :root {
206
- --space-1: 0.25rem; /* 4px */
207
- --space-2: 0.5rem; /* 8px */
208
- --space-3: 0.75rem; /* 12px */
209
- --space-4: 1rem; /* 16px */
210
- --space-5: 1.25rem; /* 20px */
211
- --space-6: 1.5rem; /* 24px */
212
- --space-8: 2rem; /* 32px */
213
- --space-10: 2.5rem; /* 40px */
214
- --space-12: 3rem; /* 48px */
215
- --space-16: 4rem; /* 64px */
216
- --space-20: 5rem; /* 80px */
217
- --space-24: 6rem; /* 96px */
218
- --space-32: 8rem; /* 128px — hero and editorial sections */
219
- --space-40: 10rem; /* 160px — maximum editorial breathing room */
220
- }
221
- ```
222
-
223
- ---
224
-
225
- ## Border Radius Tokens
226
-
227
- ```css
228
- :root {
229
- /* Minimal radius — editorial and adult, not bubbly */
230
- --radius-sm: 0.25rem; /* 4px — badges, chips */
231
- --radius-md: 0.375rem; /* 6px — buttons (default) */
232
- --radius-lg: 0.5rem; /* 8px — cards (default) */
233
- --radius-xl: 0.75rem; /* 12px — modals, larger containers */
234
- --radius-2xl: 1rem; /* 16px — featured cards, hero containers */
235
- --radius-full: 9999px; /* pills — used sparingly */
236
- }
237
- ```
238
-
239
- Radius rules:
240
- - Default radius for cards: `--radius-lg` (8px).
241
- - Default radius for buttons: `--radius-md` (6px).
242
- - Never exceed `--radius-2xl` (16px) in this system — no warm-craft-style extreme rounding.
243
- - `--radius-full` is allowed for badge pills and avatar circles only.
244
-
245
- ---
246
-
247
- ## Layout Tokens
248
-
249
- ```css
250
- :root {
251
- /* Content widths */
252
- --content-xs: 480px;
253
- --content-sm: 640px;
254
- --content-md: 768px;
255
- --content-lg: 1024px;
256
- --content-xl: 1280px;
257
- --content-full: 1440px;
258
-
259
- /* Breakpoints */
260
- --breakpoint-sm: 640px;
261
- --breakpoint-md: 768px;
262
- --breakpoint-lg: 1024px;
263
- --breakpoint-xl: 1280px;
264
- --breakpoint-2xl: 1536px;
265
-
266
- /* Z-index scale */
267
- --z-below: -1;
268
- --z-base: 0;
269
- --z-raised: 10;
270
- --z-overlay: 20;
271
- --z-sticky: 30;
272
- --z-fixed: 40;
273
- --z-modal: 50;
274
- --z-toast: 60;
275
- --z-tooltip: 70;
276
- }
277
- ```
278
-
279
- ---
280
-
281
- ## Transition Tokens
282
-
283
- ```css
284
- :root {
285
- --transition-fast: 100ms ease;
286
- --transition-base: 200ms ease;
287
- --transition-slow: 400ms cubic-bezier(0.16, 1, 0.3, 1);
288
- --transition-hero: 800ms cubic-bezier(0.16, 1, 0.3, 1);
289
-
290
- /* Theme switch — all affected properties together */
291
- --transition-theme: background-color 200ms ease,
292
- color 200ms ease,
293
- border-color 200ms ease,
294
- box-shadow 200ms ease;
295
- }
296
- ```
297
-
298
- ---
299
-
300
- ## Token Scope Guardrails
301
-
302
- | What | Rule |
303
- |------|------|
304
- | Background colors | Only `--bg-*` tokens. Never hardcode hex for surfaces. |
305
- | Text colors | Only `--text-*` tokens. Never `color: white` or `color: #fff` inline. |
306
- | Accent usage | `--accent` for CTAs, active states, single highlights. Never for borders, background sections, or repeated decorative elements. |
307
- | `--shadow-glow` | One element per scroll viewport. The hero CTA or featured card. |
308
- | Font sizes | Only `--text-*` scale tokens. Never arbitrary `font-size: 53px`. |
309
- | Spacing | Only `--space-*` tokens. Never arbitrary `margin: 17px`. |
310
- | Border radius | Only `--radius-*` tokens. Never `border-radius: 10px` inline. |
311
- | Borders | Only `--border-*` tokens. Never `border: 1px solid rgba(...)` inline. |
312
- | Shadows | Only `--shadow-*` tokens. Never arbitrary `box-shadow` values. |
313
-
314
- ---
315
-
316
- ## Interaction Guardrails
317
-
318
- | Rule | Why |
319
- |------|-----|
320
- | Never use blue as accent | This is red-orange. Blue breaks the visual DNA instantly. |
321
- | Never use warm beige (`#FDF8F0`) as base | That belongs to Warm Craft. Bold Editorial uses cool off-whites. |
322
- | Never use `border-radius > --radius-2xl` | Sharp edges define this system. Extreme rounding destroys the editorial feel. |
323
- | Never use blur/glass effects | That belongs to Glassmorphism UI. Bold Editorial surfaces are opaque. |
324
- | Never use `--shadow-glow` on more than one element per viewport | The glow exists to draw the eye. If everything glows, nothing does. |
325
- | Mono captions are mandatory for all metadata | Overlines, categories, timestamps, version tags — always `--font-mono` + `uppercase` + wide tracking. |
326
- | Serif fonts prohibited | Source Serif belongs to Warm Craft. Bold Editorial uses display sans and body sans only. |
1
+ # Design Tokens — Bold Editorial UI
2
+
3
+ All CSS custom properties for the Bold Editorial system. Apply these to the root `:root` or a `[data-theme]` container.
4
+
5
+ **Token scope rule**: always declare tokens on the topmost shared ancestor, never inline. Never hardcode a color, font, or size that has a token equivalent.
6
+
7
+ ---
8
+
9
+ ## Font Imports
10
+
11
+ ```css
12
+ /* Clash Display — Fontshare (free for commercial use) */
13
+ @import url('https://api.fontshare.com/v2/css?f[]=clash-display@200;300;400;500;600;700&display=swap');
14
+
15
+ /* Fallback if Fontshare unavailable: Cabinet Grotesk or Syne */
16
+ /* @import url('https://fonts.googleapis.com/css2?family=Syne:wght@400;500;600;700;800&display=swap'); */
17
+
18
+ /* Body + Mono */
19
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');
20
+ ```
21
+
22
+ ---
23
+
24
+ ## Typography Tokens
25
+
26
+ ```css
27
+ :root {
28
+ /* Font families */
29
+ --font-display: 'Clash Display', 'Cabinet Grotesk', 'Syne', Impact, "Arial Black", system-ui, sans-serif;
30
+ --font-body: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
31
+ --font-mono: 'JetBrains Mono', 'Space Mono', ui-monospace, 'Courier New', monospace;
32
+
33
+ /* Font sizes — editorial scale, larger than most systems */
34
+ --text-xs: 0.75rem; /* 12px — mono metadata, captions */
35
+ --text-sm: 0.875rem; /* 14px — body small */
36
+ --text-base: 1rem; /* 16px — body */
37
+ --text-lg: 1.25rem; /* 20px — lead paragraph */
38
+ --text-xl: 1.5rem; /* 24px — subheadings */
39
+ --text-2xl: 2rem; /* 32px — section titles */
40
+ --text-3xl: 3rem; /* 48px — page headlines */
41
+ --text-4xl: 4.5rem; /* 72px — hero headlines */
42
+ --text-5xl: 6rem; /* 96px — statement text */
43
+ --text-6xl: 8rem; /* 128px — manifesto / display — maximum impact */
44
+
45
+ /* Font weights */
46
+ --weight-regular: 400;
47
+ --weight-medium: 500;
48
+ --weight-semibold: 600;
49
+ --weight-bold: 700;
50
+
51
+ /* Line heights */
52
+ --leading-none: 0.9; /* text-5xl, text-6xl — tight for display */
53
+ --leading-tight: 1.05; /* text-4xl — headlines */
54
+ --leading-snug: 1.2; /* text-3xl, text-2xl */
55
+ --leading-normal: 1.5; /* text-lg, text-xl — comfortable reading */
56
+ --leading-relaxed: 1.65; /* text-base — body */
57
+ --leading-loose: 2; /* text-sm, text-xs in tables */
58
+
59
+ /* Letter spacing */
60
+ --tracking-tighter: 0; /* display headings at large sizes */
61
+ --tracking-tight: 0; /* section headlines */
62
+ --tracking-normal: 0;
63
+ --tracking-wide: 0.05em; /* subheadings, labels */
64
+ --tracking-wider: 0.08em; /* mono labels, uppercase */
65
+ --tracking-widest: 0.15em; /* mono overlines, badges, category text */
66
+ }
67
+ ```
68
+
69
+ ### Typography usage rules
70
+
71
+ - `--font-display` for all headlines `text-2xl` and above. Never use body font for display sizes.
72
+ - `--font-body` for all body copy, descriptions, form labels, navigation.
73
+ - `--font-mono` for all overlines, category labels, dates, version badges, metadata, code. This is non-negotiable.
74
+ - At `text-5xl` and `text-6xl`: always `line-height: var(--leading-none)` + `letter-spacing: var(--tracking-tighter)`.
75
+ - At `text-3xl` and `text-4xl`: `line-height: var(--leading-tight)` + `letter-spacing: var(--tracking-tight)`.
76
+ - Mono text: always `uppercase` + `letter-spacing: var(--tracking-widest)`.
77
+
78
+ ---
79
+
80
+ ## Color Tokens — Dark Theme (default)
81
+
82
+ ```css
83
+ [data-theme="dark"],
84
+ :root {
85
+ /* Backgrounds — near-black, not navy or warm */
86
+ --bg-void: #050505;
87
+ --bg-base: #0A0A0A;
88
+ --bg-surface: #141414;
89
+ --bg-elevated: #1E1E1E;
90
+ --bg-overlay: #282828;
91
+
92
+ /* Text */
93
+ --text-heading: #FFFFFF;
94
+ --text-primary: #B8B8B8;
95
+ --text-secondary: #787878;
96
+ --text-muted: #484848;
97
+ --text-inverse: #0A0A0A; /* for text on light surfaces */
98
+
99
+ /* Accent — red-orange, energetic */
100
+ --accent: #FF4D2A;
101
+ --accent-strong: #E03A18;
102
+ --accent-dim: rgba(255, 77, 42, 0.15);
103
+ --accent-hover: #FF6647;
104
+ --accent-contrast: #FFFFFF;
105
+
106
+ /* Borders */
107
+ --border-subtle: rgba(255, 255, 255, 0.06);
108
+ --border-medium: rgba(255, 255, 255, 0.12);
109
+ --border-strong: rgba(255, 255, 255, 0.22);
110
+
111
+ /* Semantic */
112
+ --semantic-green: #22C55E;
113
+ --semantic-green-dim: rgba(34, 197, 94, 0.15);
114
+ --semantic-amber: #F59E0B;
115
+ --semantic-amber-dim: rgba(245, 158, 11, 0.15);
116
+ --semantic-red: #EF4444;
117
+ --semantic-red-dim: rgba(239, 68, 68, 0.15);
118
+ --semantic-blue: #60A5FA;
119
+ --semantic-blue-dim: rgba(96, 165, 250, 0.15);
120
+ --semantic-purple: #A78BFA;
121
+ --semantic-purple-dim: rgba(167, 139, 250, 0.15);
122
+ }
123
+ ```
124
+
125
+ ---
126
+
127
+ ## Color Tokens — Light Theme
128
+
129
+ ```css
130
+ [data-theme="light"] {
131
+ /* Backgrounds — off-white, slightly cool */
132
+ --bg-void: #F5F5F0;
133
+ --bg-base: #FAFAF7;
134
+ --bg-surface: #FFFFFF;
135
+ --bg-elevated: #EFEFEA;
136
+ --bg-overlay: #E5E5DF;
137
+
138
+ /* Text */
139
+ --text-heading: #0A0A0A;
140
+ --text-primary: #3A3A3A;
141
+ --text-secondary: #7A7A7A;
142
+ --text-muted: #AAAAAA;
143
+ --text-inverse: #FFFFFF;
144
+
145
+ /* Accent — deeper red-orange for light backgrounds */
146
+ --accent: #E03A18;
147
+ --accent-strong: #C42E0F;
148
+ --accent-dim: rgba(224, 58, 24, 0.10);
149
+ --accent-hover: #FF4D2A;
150
+ --accent-contrast: #FFFFFF;
151
+
152
+ /* Borders */
153
+ --border-subtle: rgba(0, 0, 0, 0.06);
154
+ --border-medium: rgba(0, 0, 0, 0.12);
155
+ --border-strong: rgba(0, 0, 0, 0.22);
156
+
157
+ /* Semantic */
158
+ --semantic-green: #16A34A;
159
+ --semantic-green-dim: rgba(22, 163, 74, 0.10);
160
+ --semantic-amber: #D97706;
161
+ --semantic-amber-dim: rgba(217, 119, 6, 0.10);
162
+ --semantic-red: #DC2626;
163
+ --semantic-red-dim: rgba(220, 38, 38, 0.10);
164
+ --semantic-blue: #2563EB;
165
+ --semantic-blue-dim: rgba(37, 99, 235, 0.10);
166
+ --semantic-purple: #7C3AED;
167
+ --semantic-purple-dim: rgba(124, 58, 237, 0.10);
168
+ }
169
+ ```
170
+
171
+ ---
172
+
173
+ ## Shadow Tokens
174
+
175
+ ```css
176
+ :root {
177
+ /* Dark theme — deep cinematic shadows */
178
+ --shadow-xs: 0 1px 4px rgba(0, 0, 0, 0.20);
179
+ --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.25);
180
+ --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.35);
181
+ --shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.45);
182
+ --shadow-xl: 0 24px 64px rgba(0, 0, 0, 0.55);
183
+
184
+ /* Accent glow — ONE element per viewport maximum */
185
+ --shadow-glow: 0 0 60px rgba(255, 77, 42, 0.15);
186
+
187
+ /* Light theme shadows — visible but measured */
188
+ --shadow-xs-light: 0 1px 3px rgba(0, 0, 0, 0.08);
189
+ --shadow-sm-light: 0 2px 8px rgba(0, 0, 0, 0.10);
190
+ --shadow-md-light: 0 8px 24px rgba(0, 0, 0, 0.12);
191
+ --shadow-lg-light: 0 16px 48px rgba(0, 0, 0, 0.14);
192
+ }
193
+ ```
194
+
195
+ Shadow rules:
196
+ - On dark theme: use `--shadow-*` (black-based).
197
+ - On light theme: use `--shadow-*-light` (softer).
198
+ - `--shadow-glow` is for ONE featured element per viewport (hero CTA, featured pricing card). Never apply to more than one element in the same scroll viewport.
199
+
200
+ ---
201
+
202
+ ## Spacing Tokens
203
+
204
+ ```css
205
+ :root {
206
+ --space-1: 0.25rem; /* 4px */
207
+ --space-2: 0.5rem; /* 8px */
208
+ --space-3: 0.75rem; /* 12px */
209
+ --space-4: 1rem; /* 16px */
210
+ --space-5: 1.25rem; /* 20px */
211
+ --space-6: 1.5rem; /* 24px */
212
+ --space-8: 2rem; /* 32px */
213
+ --space-10: 2.5rem; /* 40px */
214
+ --space-12: 3rem; /* 48px */
215
+ --space-16: 4rem; /* 64px */
216
+ --space-20: 5rem; /* 80px */
217
+ --space-24: 6rem; /* 96px */
218
+ --space-32: 8rem; /* 128px — hero and editorial sections */
219
+ --space-40: 10rem; /* 160px — maximum editorial breathing room */
220
+ }
221
+ ```
222
+
223
+ ---
224
+
225
+ ## Border Radius Tokens
226
+
227
+ ```css
228
+ :root {
229
+ /* Minimal radius — editorial and adult, not bubbly */
230
+ --radius-sm: 0.25rem; /* 4px — badges, chips */
231
+ --radius-md: 0.375rem; /* 6px — buttons (default) */
232
+ --radius-lg: 0.5rem; /* 8px — cards (default) */
233
+ --radius-xl: 0.75rem; /* 12px — modals, larger containers */
234
+ --radius-2xl: 1rem; /* 16px — featured cards, hero containers */
235
+ --radius-full: 9999px; /* pills — used sparingly */
236
+ }
237
+ ```
238
+
239
+ Radius rules:
240
+ - Default radius for cards: `--radius-lg` (8px).
241
+ - Default radius for buttons: `--radius-md` (6px).
242
+ - Never exceed `--radius-2xl` (16px) in this system — no warm-craft-style extreme rounding.
243
+ - `--radius-full` is allowed for badge pills and avatar circles only.
244
+
245
+ ---
246
+
247
+ ## Layout Tokens
248
+
249
+ ```css
250
+ :root {
251
+ /* Content widths */
252
+ --content-xs: 480px;
253
+ --content-sm: 640px;
254
+ --content-md: 768px;
255
+ --content-lg: 1024px;
256
+ --content-xl: 1280px;
257
+ --content-full: 1440px;
258
+
259
+ /* Breakpoints */
260
+ --breakpoint-sm: 640px;
261
+ --breakpoint-md: 768px;
262
+ --breakpoint-lg: 1024px;
263
+ --breakpoint-xl: 1280px;
264
+ --breakpoint-2xl: 1536px;
265
+
266
+ /* Z-index scale */
267
+ --z-below: -1;
268
+ --z-base: 0;
269
+ --z-raised: 10;
270
+ --z-overlay: 20;
271
+ --z-sticky: 30;
272
+ --z-fixed: 40;
273
+ --z-modal: 50;
274
+ --z-toast: 60;
275
+ --z-tooltip: 70;
276
+ }
277
+ ```
278
+
279
+ ---
280
+
281
+ ## Transition Tokens
282
+
283
+ ```css
284
+ :root {
285
+ --transition-fast: 100ms ease;
286
+ --transition-base: 200ms ease;
287
+ --transition-slow: 400ms cubic-bezier(0.16, 1, 0.3, 1);
288
+ --transition-hero: 800ms cubic-bezier(0.16, 1, 0.3, 1);
289
+
290
+ /* Theme switch — all affected properties together */
291
+ --transition-theme: background-color 200ms ease,
292
+ color 200ms ease,
293
+ border-color 200ms ease,
294
+ box-shadow 200ms ease;
295
+ }
296
+ ```
297
+
298
+ ---
299
+
300
+ ## Token Scope Guardrails
301
+
302
+ | What | Rule |
303
+ |------|------|
304
+ | Background colors | Only `--bg-*` tokens. Never hardcode hex for surfaces. |
305
+ | Text colors | Only `--text-*` tokens. Never `color: white` or `color: #fff` inline. |
306
+ | Accent usage | `--accent` for CTAs, active states, single highlights. Never for borders, background sections, or repeated decorative elements. |
307
+ | `--shadow-glow` | One element per scroll viewport. The hero CTA or featured card. |
308
+ | Font sizes | Only `--text-*` scale tokens. Never arbitrary `font-size: 53px`. |
309
+ | Spacing | Only `--space-*` tokens. Never arbitrary `margin: 17px`. |
310
+ | Border radius | Only `--radius-*` tokens. Never `border-radius: 10px` inline. |
311
+ | Borders | Only `--border-*` tokens. Never `border: 1px solid rgba(...)` inline. |
312
+ | Shadows | Only `--shadow-*` tokens. Never arbitrary `box-shadow` values. |
313
+
314
+ ---
315
+
316
+ ## Interaction Guardrails
317
+
318
+ | Rule | Why |
319
+ |------|-----|
320
+ | Never use blue as accent | This is red-orange. Blue breaks the visual DNA instantly. |
321
+ | Never use warm beige (`#FDF8F0`) as base | That belongs to Warm Craft. Bold Editorial uses cool off-whites. |
322
+ | Never use `border-radius > --radius-2xl` | Sharp edges define this system. Extreme rounding destroys the editorial feel. |
323
+ | Never use blur/glass effects | That belongs to Glassmorphism UI. Bold Editorial surfaces are opaque. |
324
+ | Never use `--shadow-glow` on more than one element per viewport | The glow exists to draw the eye. If everything glows, nothing does. |
325
+ | Mono captions are mandatory for all metadata | Overlines, categories, timestamps, version tags — always `--font-mono` + `uppercase` + wide tracking. |
326
+ | Serif fonts prohibited | Source Serif belongs to Warm Craft. Bold Editorial uses display sans and body sans only. |