@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,342 +1,342 @@
1
- # Design Tokens — Neo-Brutalist UI
2
-
3
- Single source of truth for all CSS variables. Apply via `data-theme="light"` / `data-theme="dark"` on the root container.
4
-
5
- ---
6
-
7
- ## Font imports
8
-
9
- ```css
10
- /* Google Fonts */
11
- @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap');
12
- ```
13
-
14
- System fallbacks (no external fonts):
15
- ```css
16
- --font-display: "Arial Black", Impact, system-ui, sans-serif;
17
- --font-body: -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
18
- --font-mono: "Courier New", Courier, monospace;
19
- ```
20
-
21
- ---
22
-
23
- ## Typography
24
-
25
- ```css
26
- --font-display: 'Space Grotesk', system-ui, sans-serif;
27
- /* Geometric with personality. Not as neutral as Inter, not as dramatic as Clash Display. */
28
- /* Alternatives: 'DM Sans', 'Outfit', 'Plus Jakarta Sans' */
29
-
30
- --font-body: 'Inter', system-ui, sans-serif;
31
-
32
- --font-mono: 'JetBrains Mono', 'Space Mono', ui-monospace, monospace;
33
- /* FIRST-CLASS CITIZEN: labels, metadata, badges, status, code, numbers, dates, IDs */
34
- ```
35
-
36
- ### Font sizes
37
-
38
- ```css
39
- --text-xs: 0.75rem; /* 12px — mono metadata, badges */
40
- --text-sm: 0.875rem; /* 14px */
41
- --text-base: 1rem; /* 16px */
42
- --text-lg: 1.25rem; /* 20px */
43
- --text-xl: 1.5rem; /* 24px */
44
- --text-2xl: 2rem; /* 32px */
45
- --text-3xl: 2.5rem; /* 40px */
46
- --text-4xl: 3.5rem; /* 56px — hero headlines */
47
- --text-5xl: 5rem; /* 80px — manifesto/zine statements */
48
- ```
49
-
50
- ### Font weights
51
-
52
- ```css
53
- --weight-regular: 400;
54
- --weight-medium: 500;
55
- --weight-semibold: 600;
56
- --weight-bold: 700;
57
- --weight-extrabold: 800; /* headings in indie/zine modes */
58
- ```
59
-
60
- ### Letter spacing
61
-
62
- ```css
63
- --tracking-tight: -0.03em; /* large headings */
64
- --tracking-normal: 0em;
65
- --tracking-wide: 0.05em; /* mono labels, uppercase badges */
66
- --tracking-wider: 0.1em; /* uppercase section titles */
67
- ```
68
-
69
- ---
70
-
71
- ## Colors — Light Theme (default)
72
-
73
- ```css
74
- [data-theme="light"] {
75
- /* Backgrounds */
76
- --bg-void: #F5F0E8; /* warm off-white — newspaper feel, page background */
77
- --bg-base: #FFFDF5; /* cream white — main content area */
78
- --bg-surface: #FFFFFF; /* pure white — cards, panels */
79
- --bg-elevated: #F5F0E8; /* off-white — hover state, nested sections */
80
- --bg-overlay: #E8E0D0; /* deeper off-white — modals overlay, popovers */
81
-
82
- /* Text */
83
- --text-heading: #1A1A1A;
84
- --text-primary: #2A2A2A;
85
- --text-secondary: #666666;
86
- --text-muted: #999999;
87
- --text-disabled: #BBBBBB;
88
-
89
- /* Primary accent — yellow is THE brutalist accent */
90
- --accent: #FACC15; /* yellow-400 */
91
- --accent-strong: #EAB308; /* yellow-500 — pressed state */
92
- --accent-dim: rgba(250,204,21,.20);
93
- --accent-hover: #EAB308;
94
- --accent-contrast: #1A1A1A; /* black text on yellow bg */
95
-
96
- /* Secondary accents — for Creative Playground mode */
97
- --accent-red: #EF4444;
98
- --accent-blue: #3B82F6;
99
- --accent-green: #22C55E;
100
- --accent-pink: #EC4899;
101
- --accent-orange: #F97316;
102
-
103
- /* Borders — THE most important token in this skill */
104
- --border-subtle: 1px solid #1A1A1A; /* dividers, table cell borders */
105
- --border-thick: 2px solid #1A1A1A; /* default interactive border */
106
- --border-thicker: 3px solid #1A1A1A; /* cards, buttons, feature elements */
107
- --border-thickest: 4px solid #1A1A1A; /* hero cards, main CTAs */
108
-
109
- /* Border color only (for custom uses) */
110
- --border-color: #1A1A1A;
111
- --border-color-subtle: #CCCCCC;
112
-
113
- /* Semantic */
114
- --semantic-green: #22C55E;
115
- --semantic-green-dim: rgba(34,197,94,.15);
116
- --semantic-amber: #F59E0B;
117
- --semantic-amber-dim: rgba(245,158,11,.15);
118
- --semantic-red: #EF4444;
119
- --semantic-red-dim: rgba(239,68,68,.15);
120
- --semantic-blue: #3B82F6;
121
- --semantic-blue-dim: rgba(59,130,246,.15);
122
- }
123
- ```
124
-
125
- ---
126
-
127
- ## Colors — Dark Theme
128
-
129
- ```css
130
- [data-theme="dark"] {
131
- /* Backgrounds */
132
- --bg-void: #111111;
133
- --bg-base: #1A1A1A;
134
- --bg-surface: #242424;
135
- --bg-elevated: #2E2E2E;
136
- --bg-overlay: #383838;
137
-
138
- /* Text */
139
- --text-heading: #FFFFFF;
140
- --text-primary: #E0E0E0;
141
- --text-secondary: #999999;
142
- --text-muted: #666666;
143
- --text-disabled: #444444;
144
-
145
- /* Primary accent — yellow stays strong in dark */
146
- --accent: #FACC15;
147
- --accent-strong: #EAB308;
148
- --accent-dim: rgba(250,204,21,.20);
149
- --accent-hover: #EAB308;
150
- --accent-contrast: #1A1A1A;
151
-
152
- /* Secondary accents — brighter in dark (but NOT neon — saturated and grounded) */
153
- --accent-red: #F87171;
154
- --accent-blue: #60A5FA;
155
- --accent-green: #4ADE80;
156
- --accent-pink: #F472B6;
157
- --accent-orange: #FB923C;
158
-
159
- /* Borders — inverted: light on dark */
160
- --border-subtle: 1px solid #444444;
161
- --border-thick: 2px solid #E0E0E0;
162
- --border-thicker: 3px solid #E0E0E0;
163
- --border-thickest: 4px solid #E0E0E0;
164
-
165
- --border-color: #E0E0E0;
166
- --border-color-subtle: #444444;
167
-
168
- /* Semantic */
169
- --semantic-green: #4ADE80;
170
- --semantic-green-dim: rgba(74,222,128,.15);
171
- --semantic-amber: #FCD34D;
172
- --semantic-amber-dim: rgba(252,211,77,.15);
173
- --semantic-red: #F87171;
174
- --semantic-red-dim: rgba(248,113,113,.15);
175
- --semantic-blue: #60A5FA;
176
- --semantic-blue-dim: rgba(96,165,250,.15);
177
- }
178
- ```
179
-
180
- ---
181
-
182
- ## Shadows — Hard Offset (the most distinctive token)
183
-
184
- ```css
185
- /* ZERO BLUR. Solid offset. Non-negotiable. */
186
-
187
- /* Light theme shadows — black offset */
188
- --shadow-sm: 2px 2px 0 var(--border-color); /* small elements */
189
- --shadow-md: 4px 4px 0 var(--border-color); /* cards, buttons */
190
- --shadow-lg: 6px 6px 0 var(--border-color); /* featured cards, hover state */
191
- --shadow-xl: 8px 8px 0 var(--border-color); /* hero CTA, main action */
192
-
193
- /* Colored shadows — for Creative Playground mode */
194
- --shadow-accent: 4px 4px 0 var(--accent);
195
- --shadow-red: 4px 4px 0 var(--accent-red);
196
- --shadow-blue: 4px 4px 0 var(--accent-blue);
197
- --shadow-green: 4px 4px 0 var(--accent-green);
198
- ```
199
-
200
- Direction rule: **all hard shadows go bottom-right** (positive x, positive y). Never mix directions on the same page.
201
-
202
- In dark theme, `--border-color` resolves to `#E0E0E0`, so shadows automatically invert to light-on-dark.
203
-
204
- ---
205
-
206
- ## Border Radius — Extremes Only
207
-
208
- ```css
209
- --radius-none: 0; /* DEFAULT — cards, inputs, buttons, most elements */
210
- --radius-sm: 0.25rem; /* 4px — used rarely, only for very small inner elements */
211
- --radius-md: 0.375rem; /* 6px — inputs optionally, max allowed before "too normal" */
212
- --radius-full: 9999px; /* pills — badges, tags, status dots, pill buttons */
213
- ```
214
-
215
- **Rule:** use `--radius-none` (0) or `--radius-full` (9999px). Nothing between 6px and 9998px. The extreme contrast between square and pill is part of the aesthetic. `8–12px` radius is "clean-saas territory" — forbidden here.
216
-
217
- ---
218
-
219
- ## Spacing
220
-
221
- 4px base rhythm. 8px standard unit.
222
-
223
- ```css
224
- --space-0: 0;
225
- --space-1: 0.25rem; /* 4px */
226
- --space-2: 0.5rem; /* 8px */
227
- --space-3: 0.75rem; /* 12px */
228
- --space-4: 1rem; /* 16px */
229
- --space-5: 1.25rem; /* 20px */
230
- --space-6: 1.5rem; /* 24px */
231
- --space-8: 2rem; /* 32px */
232
- --space-10: 2.5rem; /* 40px */
233
- --space-12: 3rem; /* 48px */
234
- --space-16: 4rem; /* 64px */
235
- --space-20: 5rem; /* 80px — section gap minimum */
236
- --space-24: 6rem; /* 96px */
237
- --space-28: 7rem; /* 112px */
238
- --space-32: 8rem; /* 128px */
239
- ```
240
-
241
- Section gaps: `--space-20` to `--space-28` between major page sections. Generous whitespace makes the thick borders breathe.
242
-
243
- ---
244
-
245
- ## Control Heights — Chunky (larger than other skills)
246
-
247
- ```css
248
- --control-xs: 2rem; /* 32px */
249
- --control-sm: 2.25rem; /* 36px */
250
- --control-md: 2.75rem; /* 44px — DEFAULT input/button */
251
- --control-lg: 3.25rem; /* 52px — primary CTA button */
252
- ```
253
-
254
- Brutalist buttons are **chunky, not elegant**. The extra height reinforces the physical, constructed feel.
255
-
256
- ---
257
-
258
- ## Decorative Patterns
259
-
260
- One pattern maximum per page. Applied to the background of ONE section only — never the whole page.
261
-
262
- ```css
263
- /* Dots */
264
- .pattern-dots {
265
- background-image: radial-gradient(var(--border-color) 1px, transparent 1px);
266
- background-size: 20px 20px;
267
- opacity: 0.15;
268
- }
269
-
270
- /* Horizontal lines */
271
- .pattern-lines {
272
- background-image: repeating-linear-gradient(
273
- 0deg,
274
- transparent,
275
- transparent 19px,
276
- var(--border-color) 19px,
277
- var(--border-color) 20px
278
- );
279
- opacity: 0.12;
280
- }
281
-
282
- /* Full grid */
283
- .pattern-grid {
284
- background-image:
285
- linear-gradient(var(--border-color) 1px, transparent 1px),
286
- linear-gradient(90deg, var(--border-color) 1px, transparent 1px);
287
- background-size: 20px 20px;
288
- opacity: 0.10;
289
- }
290
-
291
- /* Checkerboard */
292
- .pattern-checks {
293
- background-image: repeating-conic-gradient(var(--bg-elevated) 0% 25%, transparent 0% 50%);
294
- background-size: 20px 20px;
295
- }
296
- ```
297
-
298
- ---
299
-
300
- ## Z-index layers
301
-
302
- ```css
303
- --z-base: 0;
304
- --z-raised: 1;
305
- --z-dropdown: 100;
306
- --z-sticky: 200;
307
- --z-overlay: 300;
308
- --z-modal: 400;
309
- --z-toast: 500;
310
- ```
311
-
312
- ---
313
-
314
- ## Breakpoints
315
-
316
- ```css
317
- --breakpoint-sm: 640px;
318
- --breakpoint-md: 768px;
319
- --breakpoint-lg: 1024px; /* sidebar collapses to hamburger below this */
320
- --breakpoint-xl: 1280px;
321
- --breakpoint-2xl: 1536px;
322
- ```
323
-
324
- ---
325
-
326
- ## Chart Color Palette
327
-
328
- ```css
329
- --chart-1: var(--accent); /* #FACC15 — yellow — primary series */
330
- --chart-2: var(--accent-red); /* red — negative / error */
331
- --chart-3: var(--accent-blue); /* blue — secondary series */
332
- --chart-4: var(--accent-green); /* green — positive / success */
333
- --chart-5: var(--accent-orange); /* orange — warning / tertiary */
334
- --chart-6: var(--border-color); /* black/white — neutral baseline */
335
- ```
336
-
337
- Chart rules:
338
- - Bar charts: `border: var(--border-subtle)` on each bar, flat fill (no gradient), `--radius-none`
339
- - Line charts: `stroke-width: 2.5px` minimum (thicker than other skills), solid dot markers (not hollow)
340
- - Area charts: flat fill at `opacity: 0.3` (no gradient)
341
- - Grid lines: `--border-subtle`, full grid visible
342
- - Axis labels: `font-family: var(--font-mono)`, `font-size: var(--text-xs)`
1
+ # Design Tokens — Neo-Brutalist UI
2
+
3
+ Single source of truth for all CSS variables. Apply via `data-theme="light"` / `data-theme="dark"` on the root container.
4
+
5
+ ---
6
+
7
+ ## Font imports
8
+
9
+ ```css
10
+ /* Google Fonts */
11
+ @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap');
12
+ ```
13
+
14
+ System fallbacks (no external fonts):
15
+ ```css
16
+ --font-display: "Arial Black", Impact, system-ui, sans-serif;
17
+ --font-body: -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
18
+ --font-mono: "Courier New", Courier, monospace;
19
+ ```
20
+
21
+ ---
22
+
23
+ ## Typography
24
+
25
+ ```css
26
+ --font-display: 'Space Grotesk', system-ui, sans-serif;
27
+ /* Geometric with personality. Not as neutral as Inter, not as dramatic as Clash Display. */
28
+ /* Alternatives: 'DM Sans', 'Outfit', 'Plus Jakarta Sans' */
29
+
30
+ --font-body: 'Inter', system-ui, sans-serif;
31
+
32
+ --font-mono: 'JetBrains Mono', 'Space Mono', ui-monospace, monospace;
33
+ /* FIRST-CLASS CITIZEN: labels, metadata, badges, status, code, numbers, dates, IDs */
34
+ ```
35
+
36
+ ### Font sizes
37
+
38
+ ```css
39
+ --text-xs: 0.75rem; /* 12px — mono metadata, badges */
40
+ --text-sm: 0.875rem; /* 14px */
41
+ --text-base: 1rem; /* 16px */
42
+ --text-lg: 1.25rem; /* 20px */
43
+ --text-xl: 1.5rem; /* 24px */
44
+ --text-2xl: 2rem; /* 32px */
45
+ --text-3xl: 2.5rem; /* 40px */
46
+ --text-4xl: 3.5rem; /* 56px — hero headlines */
47
+ --text-5xl: 5rem; /* 80px — manifesto/zine statements */
48
+ ```
49
+
50
+ ### Font weights
51
+
52
+ ```css
53
+ --weight-regular: 400;
54
+ --weight-medium: 500;
55
+ --weight-semibold: 600;
56
+ --weight-bold: 700;
57
+ --weight-extrabold: 800; /* headings in indie/zine modes */
58
+ ```
59
+
60
+ ### Letter spacing
61
+
62
+ ```css
63
+ --tracking-tight: 0; /* large headings */
64
+ --tracking-normal: 0em;
65
+ --tracking-wide: 0.05em; /* mono labels, uppercase badges */
66
+ --tracking-wider: 0.1em; /* uppercase section titles */
67
+ ```
68
+
69
+ ---
70
+
71
+ ## Colors — Light Theme (default)
72
+
73
+ ```css
74
+ [data-theme="light"] {
75
+ /* Backgrounds */
76
+ --bg-void: #F5F0E8; /* warm off-white — newspaper feel, page background */
77
+ --bg-base: #FFFDF5; /* cream white — main content area */
78
+ --bg-surface: #FFFFFF; /* pure white — cards, panels */
79
+ --bg-elevated: #F5F0E8; /* off-white — hover state, nested sections */
80
+ --bg-overlay: #E8E0D0; /* deeper off-white — modals overlay, popovers */
81
+
82
+ /* Text */
83
+ --text-heading: #1A1A1A;
84
+ --text-primary: #2A2A2A;
85
+ --text-secondary: #666666;
86
+ --text-muted: #999999;
87
+ --text-disabled: #BBBBBB;
88
+
89
+ /* Primary accent — yellow is THE brutalist accent */
90
+ --accent: #FACC15; /* yellow-400 */
91
+ --accent-strong: #EAB308; /* yellow-500 — pressed state */
92
+ --accent-dim: rgba(250,204,21,.20);
93
+ --accent-hover: #EAB308;
94
+ --accent-contrast: #1A1A1A; /* black text on yellow bg */
95
+
96
+ /* Secondary accents — for Creative Playground mode */
97
+ --accent-red: #EF4444;
98
+ --accent-blue: #3B82F6;
99
+ --accent-green: #22C55E;
100
+ --accent-pink: #EC4899;
101
+ --accent-orange: #F97316;
102
+
103
+ /* Borders — THE most important token in this skill */
104
+ --border-subtle: 1px solid #1A1A1A; /* dividers, table cell borders */
105
+ --border-thick: 2px solid #1A1A1A; /* default interactive border */
106
+ --border-thicker: 3px solid #1A1A1A; /* cards, buttons, feature elements */
107
+ --border-thickest: 4px solid #1A1A1A; /* hero cards, main CTAs */
108
+
109
+ /* Border color only (for custom uses) */
110
+ --border-color: #1A1A1A;
111
+ --border-color-subtle: #CCCCCC;
112
+
113
+ /* Semantic */
114
+ --semantic-green: #22C55E;
115
+ --semantic-green-dim: rgba(34,197,94,.15);
116
+ --semantic-amber: #F59E0B;
117
+ --semantic-amber-dim: rgba(245,158,11,.15);
118
+ --semantic-red: #EF4444;
119
+ --semantic-red-dim: rgba(239,68,68,.15);
120
+ --semantic-blue: #3B82F6;
121
+ --semantic-blue-dim: rgba(59,130,246,.15);
122
+ }
123
+ ```
124
+
125
+ ---
126
+
127
+ ## Colors — Dark Theme
128
+
129
+ ```css
130
+ [data-theme="dark"] {
131
+ /* Backgrounds */
132
+ --bg-void: #111111;
133
+ --bg-base: #1A1A1A;
134
+ --bg-surface: #242424;
135
+ --bg-elevated: #2E2E2E;
136
+ --bg-overlay: #383838;
137
+
138
+ /* Text */
139
+ --text-heading: #FFFFFF;
140
+ --text-primary: #E0E0E0;
141
+ --text-secondary: #999999;
142
+ --text-muted: #666666;
143
+ --text-disabled: #444444;
144
+
145
+ /* Primary accent — yellow stays strong in dark */
146
+ --accent: #FACC15;
147
+ --accent-strong: #EAB308;
148
+ --accent-dim: rgba(250,204,21,.20);
149
+ --accent-hover: #EAB308;
150
+ --accent-contrast: #1A1A1A;
151
+
152
+ /* Secondary accents — brighter in dark (but NOT neon — saturated and grounded) */
153
+ --accent-red: #F87171;
154
+ --accent-blue: #60A5FA;
155
+ --accent-green: #4ADE80;
156
+ --accent-pink: #F472B6;
157
+ --accent-orange: #FB923C;
158
+
159
+ /* Borders — inverted: light on dark */
160
+ --border-subtle: 1px solid #444444;
161
+ --border-thick: 2px solid #E0E0E0;
162
+ --border-thicker: 3px solid #E0E0E0;
163
+ --border-thickest: 4px solid #E0E0E0;
164
+
165
+ --border-color: #E0E0E0;
166
+ --border-color-subtle: #444444;
167
+
168
+ /* Semantic */
169
+ --semantic-green: #4ADE80;
170
+ --semantic-green-dim: rgba(74,222,128,.15);
171
+ --semantic-amber: #FCD34D;
172
+ --semantic-amber-dim: rgba(252,211,77,.15);
173
+ --semantic-red: #F87171;
174
+ --semantic-red-dim: rgba(248,113,113,.15);
175
+ --semantic-blue: #60A5FA;
176
+ --semantic-blue-dim: rgba(96,165,250,.15);
177
+ }
178
+ ```
179
+
180
+ ---
181
+
182
+ ## Shadows — Hard Offset (the most distinctive token)
183
+
184
+ ```css
185
+ /* ZERO BLUR. Solid offset. Non-negotiable. */
186
+
187
+ /* Light theme shadows — black offset */
188
+ --shadow-sm: 2px 2px 0 var(--border-color); /* small elements */
189
+ --shadow-md: 4px 4px 0 var(--border-color); /* cards, buttons */
190
+ --shadow-lg: 6px 6px 0 var(--border-color); /* featured cards, hover state */
191
+ --shadow-xl: 8px 8px 0 var(--border-color); /* hero CTA, main action */
192
+
193
+ /* Colored shadows — for Creative Playground mode */
194
+ --shadow-accent: 4px 4px 0 var(--accent);
195
+ --shadow-red: 4px 4px 0 var(--accent-red);
196
+ --shadow-blue: 4px 4px 0 var(--accent-blue);
197
+ --shadow-green: 4px 4px 0 var(--accent-green);
198
+ ```
199
+
200
+ Direction rule: **all hard shadows go bottom-right** (positive x, positive y). Never mix directions on the same page.
201
+
202
+ In dark theme, `--border-color` resolves to `#E0E0E0`, so shadows automatically invert to light-on-dark.
203
+
204
+ ---
205
+
206
+ ## Border Radius — Extremes Only
207
+
208
+ ```css
209
+ --radius-none: 0; /* DEFAULT — cards, inputs, buttons, most elements */
210
+ --radius-sm: 0.25rem; /* 4px — used rarely, only for very small inner elements */
211
+ --radius-md: 0.375rem; /* 6px — inputs optionally, max allowed before "too normal" */
212
+ --radius-full: 9999px; /* pills — badges, tags, status dots, pill buttons */
213
+ ```
214
+
215
+ **Rule:** use `--radius-none` (0) or `--radius-full` (9999px). Nothing between 6px and 9998px. The extreme contrast between square and pill is part of the aesthetic. `8–12px` radius is "clean-saas territory" — forbidden here.
216
+
217
+ ---
218
+
219
+ ## Spacing
220
+
221
+ 4px base rhythm. 8px standard unit.
222
+
223
+ ```css
224
+ --space-0: 0;
225
+ --space-1: 0.25rem; /* 4px */
226
+ --space-2: 0.5rem; /* 8px */
227
+ --space-3: 0.75rem; /* 12px */
228
+ --space-4: 1rem; /* 16px */
229
+ --space-5: 1.25rem; /* 20px */
230
+ --space-6: 1.5rem; /* 24px */
231
+ --space-8: 2rem; /* 32px */
232
+ --space-10: 2.5rem; /* 40px */
233
+ --space-12: 3rem; /* 48px */
234
+ --space-16: 4rem; /* 64px */
235
+ --space-20: 5rem; /* 80px — section gap minimum */
236
+ --space-24: 6rem; /* 96px */
237
+ --space-28: 7rem; /* 112px */
238
+ --space-32: 8rem; /* 128px */
239
+ ```
240
+
241
+ Section gaps: `--space-20` to `--space-28` between major page sections. Generous whitespace makes the thick borders breathe.
242
+
243
+ ---
244
+
245
+ ## Control Heights — Chunky (larger than other skills)
246
+
247
+ ```css
248
+ --control-xs: 2rem; /* 32px */
249
+ --control-sm: 2.25rem; /* 36px */
250
+ --control-md: 2.75rem; /* 44px — DEFAULT input/button */
251
+ --control-lg: 3.25rem; /* 52px — primary CTA button */
252
+ ```
253
+
254
+ Brutalist buttons are **chunky, not elegant**. The extra height reinforces the physical, constructed feel.
255
+
256
+ ---
257
+
258
+ ## Decorative Patterns
259
+
260
+ One pattern maximum per page. Applied to the background of ONE section only — never the whole page.
261
+
262
+ ```css
263
+ /* Dots */
264
+ .pattern-dots {
265
+ background-image: radial-gradient(var(--border-color) 1px, transparent 1px);
266
+ background-size: 20px 20px;
267
+ opacity: 0.15;
268
+ }
269
+
270
+ /* Horizontal lines */
271
+ .pattern-lines {
272
+ background-image: repeating-linear-gradient(
273
+ 0deg,
274
+ transparent,
275
+ transparent 19px,
276
+ var(--border-color) 19px,
277
+ var(--border-color) 20px
278
+ );
279
+ opacity: 0.12;
280
+ }
281
+
282
+ /* Full grid */
283
+ .pattern-grid {
284
+ background-image:
285
+ linear-gradient(var(--border-color) 1px, transparent 1px),
286
+ linear-gradient(90deg, var(--border-color) 1px, transparent 1px);
287
+ background-size: 20px 20px;
288
+ opacity: 0.10;
289
+ }
290
+
291
+ /* Checkerboard */
292
+ .pattern-checks {
293
+ background-image: repeating-conic-gradient(var(--bg-elevated) 0% 25%, transparent 0% 50%);
294
+ background-size: 20px 20px;
295
+ }
296
+ ```
297
+
298
+ ---
299
+
300
+ ## Z-index layers
301
+
302
+ ```css
303
+ --z-base: 0;
304
+ --z-raised: 1;
305
+ --z-dropdown: 100;
306
+ --z-sticky: 200;
307
+ --z-overlay: 300;
308
+ --z-modal: 400;
309
+ --z-toast: 500;
310
+ ```
311
+
312
+ ---
313
+
314
+ ## Breakpoints
315
+
316
+ ```css
317
+ --breakpoint-sm: 640px;
318
+ --breakpoint-md: 768px;
319
+ --breakpoint-lg: 1024px; /* sidebar collapses to hamburger below this */
320
+ --breakpoint-xl: 1280px;
321
+ --breakpoint-2xl: 1536px;
322
+ ```
323
+
324
+ ---
325
+
326
+ ## Chart Color Palette
327
+
328
+ ```css
329
+ --chart-1: var(--accent); /* #FACC15 — yellow — primary series */
330
+ --chart-2: var(--accent-red); /* red — negative / error */
331
+ --chart-3: var(--accent-blue); /* blue — secondary series */
332
+ --chart-4: var(--accent-green); /* green — positive / success */
333
+ --chart-5: var(--accent-orange); /* orange — warning / tertiary */
334
+ --chart-6: var(--border-color); /* black/white — neutral baseline */
335
+ ```
336
+
337
+ Chart rules:
338
+ - Bar charts: `border: var(--border-subtle)` on each bar, flat fill (no gradient), `--radius-none`
339
+ - Line charts: `stroke-width: 2.5px` minimum (thicker than other skills), solid dot markers (not hollow)
340
+ - Area charts: flat fill at `opacity: 0.3` (no gradient)
341
+ - Grid lines: `--border-subtle`, full grid visible
342
+ - Axis labels: `font-family: var(--font-mono)`, `font-size: var(--text-xs)`