@jaimevalasek/aioson 1.30.0 → 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.
- package/CHANGELOG.md +18 -0
- package/docs/design-previews/cognitive-core-ui-auth.html +95 -0
- package/docs/design-previews/cognitive-core-ui-kanban.html +231 -0
- package/docs/design-previews/cognitive-core-ui-list-detail.html +174 -0
- package/docs/design-previews/cognitive-core-ui-preview.css +1315 -0
- package/docs/design-previews/cognitive-core-ui-settings.html +142 -0
- package/docs/design-previews/cognitive-core-ui-website.html +190 -1009
- package/docs/design-previews/cognitive-core-ui.html +281 -463
- package/docs/design-previews/index.html +83 -31
- package/package.json +1 -1
- package/src/constants.js +578 -514
- package/template/.aioson/docs/integrations/dashboard-app-form-publish-mapping.md +183 -0
- package/template/.aioson/docs/play/README.md +74 -0
- package/template/.aioson/docs/play/agent-usage-guide.md +112 -0
- package/template/.aioson/docs/play/app-compatibility-guide.md +117 -0
- package/template/.aioson/docs/play/auth-services-and-testing.md +235 -0
- package/template/.aioson/docs/play/llm-data-and-bindings.md +238 -0
- package/template/.aioson/docs/play/manifest-and-runtime.md +267 -0
- package/template/.aioson/docs/play/source-map.md +104 -0
- package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +266 -243
- package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -293
- package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -827
- package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -250
- package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -585
- package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -365
- package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +485 -482
- package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +386 -387
- package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +228 -205
- package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -338
- package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -977
- package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -218
- package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -326
- package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -461
- package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -293
- package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -352
- package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +233 -210
- package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -319
- package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -365
- package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -196
- package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -244
- package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -235
- package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -215
- package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -295
- package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +239 -203
- package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -339
- package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +417 -407
- package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +289 -272
- package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +525 -524
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +279 -279
- package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +355 -289
- package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +443 -437
- package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +245 -222
- package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -159
- package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -498
- package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -236
- package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -274
- package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -355
- package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -198
- package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -307
- package/template/.aioson/skills/design/interface-design/SKILL.md +68 -47
- package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -105
- package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -101
- package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +92 -71
- package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -74
- package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -173
- package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +236 -213
- package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -228
- package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -855
- package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -334
- package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -342
- package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -286
- package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -458
- package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -723
- package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +83 -62
- package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -74
- package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -116
- package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -47
- package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -215
- package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -31
- package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +94 -66
- package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +366 -366
- package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -150
- package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -270
- package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -189
- package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +161 -161
- package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +232 -209
- package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -324
- package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -508
- package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -223
- package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -374
- package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -356
- package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -288
- 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:
|
|
61
|
-
--tracking-tight:
|
|
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. |
|