omnidesign 1.0.0

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 (77) hide show
  1. package/LICENSE +21 -0
  2. package/QUICKREF.md +150 -0
  3. package/README.md +576 -0
  4. package/bin/cli.js +390 -0
  5. package/bin/detect-ide.js +50 -0
  6. package/bin/install.js +8 -0
  7. package/logo.jpg +0 -0
  8. package/package.json +84 -0
  9. package/recipes/components/README.md +29 -0
  10. package/recipes/components/agent-card.md +314 -0
  11. package/recipes/components/ai-chat.md +252 -0
  12. package/recipes/components/bento-grid.md +186 -0
  13. package/recipes/components/code-block.md +503 -0
  14. package/recipes/components/file-upload.md +483 -0
  15. package/recipes/components/forms.md +238 -0
  16. package/recipes/components/hero-section.md +161 -0
  17. package/recipes/components/navbar.md +214 -0
  18. package/recipes/components/prompt-input.md +293 -0
  19. package/recipes/components/thinking-indicator.md +372 -0
  20. package/recipes/motion/README.md +3 -0
  21. package/recipes/motion/motion-system.md +437 -0
  22. package/recipes/patterns/README.md +3 -0
  23. package/skills/aider/omnidesign.md +67 -0
  24. package/skills/amp/SKILL.md +114 -0
  25. package/skills/antigravity/SKILL.md +114 -0
  26. package/skills/claude/omnidesign.md +111 -0
  27. package/skills/continue/omnidesign.yaml +29 -0
  28. package/skills/cursor/omnidesign.md +110 -0
  29. package/skills/kilo/SKILL.md +114 -0
  30. package/skills/opencode/omnidesign.md +110 -0
  31. package/skills/vscode/package.json +66 -0
  32. package/skills/zed/omnidesign.json +7 -0
  33. package/tokens/motion/README.md +3 -0
  34. package/tokens/primitives/README.md +3 -0
  35. package/tokens/primitives/color.json +219 -0
  36. package/tokens/primitives/motion.json +56 -0
  37. package/tokens/primitives/radii.json +37 -0
  38. package/tokens/primitives/shadows.json +34 -0
  39. package/tokens/primitives/spacing.json +67 -0
  40. package/tokens/primitives/typography.json +127 -0
  41. package/tokens/semantic/README.md +3 -0
  42. package/tokens/semantic/color.json +114 -0
  43. package/tokens/semantic/motion.json +44 -0
  44. package/tokens/semantic/radii.json +29 -0
  45. package/tokens/semantic/shadows.json +24 -0
  46. package/tokens/semantic/spacing.json +69 -0
  47. package/tokens/semantic/typography.json +118 -0
  48. package/tokens/shadows/README.md +3 -0
  49. package/tokens/themes/README.md +3 -0
  50. package/tokens/themes/berry.json +143 -0
  51. package/tokens/themes/brutalist.json +143 -0
  52. package/tokens/themes/coral.json +143 -0
  53. package/tokens/themes/corporate.json +143 -0
  54. package/tokens/themes/cream.json +143 -0
  55. package/tokens/themes/cyberpunk.json +143 -0
  56. package/tokens/themes/daylight.json +143 -0
  57. package/tokens/themes/deep-space.json +143 -0
  58. package/tokens/themes/forest.json +143 -0
  59. package/tokens/themes/graphite.json +143 -0
  60. package/tokens/themes/lavender.json +143 -0
  61. package/tokens/themes/midnight.json +143 -0
  62. package/tokens/themes/mint.json +143 -0
  63. package/tokens/themes/navy.json +143 -0
  64. package/tokens/themes/noir.json +143 -0
  65. package/tokens/themes/obsidian.json +143 -0
  66. package/tokens/themes/ocean.json +143 -0
  67. package/tokens/themes/paper.json +143 -0
  68. package/tokens/themes/ruby.json +143 -0
  69. package/tokens/themes/slate.json +143 -0
  70. package/tokens/themes/snow.json +143 -0
  71. package/tokens/themes/solar.json +143 -0
  72. package/tokens/themes/spring.json +143 -0
  73. package/tokens/themes/starry-night.json +143 -0
  74. package/tokens/themes/sunset.json +143 -0
  75. package/tokens/typography/FONT_GUIDE.md +381 -0
  76. package/tokens/typography/README.md +37 -0
  77. package/tokens/typography/font-collection.json +221 -0
@@ -0,0 +1,381 @@
1
+ # Font Usage Guide
2
+
3
+ Complete guide for using the frontend-arsenal font collection.
4
+
5
+ ## Installation Methods
6
+
7
+ ### Method 1: Google Fonts CDN (Easiest)
8
+
9
+ ```html
10
+ <!-- In your HTML head -->
11
+ <link rel="preconnect" href="https://fonts.googleapis.com">
12
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
13
+
14
+ <!-- Inter + JetBrains Mono -->
15
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@100..900&family=JetBrains+Mono:wght@100..800&display=swap" rel="stylesheet">
16
+
17
+ <!-- Geist (Vercel's font) -->
18
+ <link href="https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&display=swap" rel="stylesheet">
19
+ ```
20
+
21
+ ### Method 2: Fontsource NPM (Best for bundlers)
22
+
23
+ ```bash
24
+ # Install fonts
25
+ npm install @fontsource/inter @fontsource/jetbrains-mono @fontsource/space-grotesk
26
+
27
+ # Or all at once
28
+ npm install @fontsource/inter @fontsource/plus-jakarta-sans @fontsource/geist-sans @fontsource/geist-mono @fontsource/merriweather @fontsource/jetbrains-mono @fontsource/space-grotesk
29
+ ```
30
+
31
+ ```typescript
32
+ // In your entry file (main.tsx, layout.tsx, etc.)
33
+ import '@fontsource/inter/400.css';
34
+ import '@fontsource/inter/500.css';
35
+ import '@fontsource/inter/600.css';
36
+ import '@fontsource/inter/700.css';
37
+
38
+ import '@fontsource/jetbrains-mono/400.css';
39
+ import '@fontsource/jetbrains-mono/500.css';
40
+
41
+ import '@fontsource/space-grotesk/500.css';
42
+ import '@fontsource/space-grotesk/700.css';
43
+ ```
44
+
45
+ ### Method 3: Nerd Fonts (For terminal/coding)
46
+
47
+ ```bash
48
+ # macOS with Homebrew
49
+ brew tap homebrew/cask-fonts
50
+ brew install --cask font-jetbrains-mono-nerd-font
51
+ brew install --cask font-fira-code-nerd-font
52
+ brew install --cask font-hack-nerd-font
53
+
54
+ # Windows (Chocolatey)
55
+ choco install nerd-fonts-hack
56
+ choco install nerd-fonts-firacode
57
+
58
+ # Arch Linux
59
+ yay -S nerd-fonts-jetbrains-mono nerd-fonts-fira-code
60
+ ```
61
+
62
+ ## Font Pairings by Use Case
63
+
64
+ ### 1. Enterprise Dashboard
65
+ ```css
66
+ :root {
67
+ --font-sans: 'Inter', system-ui, -apple-system, sans-serif;
68
+ --font-mono: 'JetBrains Mono', 'SF Mono', monospace;
69
+ --font-display: 'Space Grotesk', sans-serif;
70
+ }
71
+
72
+ body { font-family: var(--font-sans); }
73
+ h1, h2 { font-family: var(--font-display); }
74
+ code { font-family: var(--font-mono); }
75
+ ```
76
+
77
+ ### 2. Developer Tools / IDE
78
+ ```css
79
+ :root {
80
+ --font-ui: 'Plus Jakarta Sans', system-ui, sans-serif;
81
+ --font-code: 'JetBrainsMono Nerd Font', 'JetBrains Mono', monospace;
82
+ --font-terminal: 'FiraCode Nerd Font', 'Fira Code', monospace;
83
+ }
84
+
85
+ /* UI Elements */
86
+ .sidebar, .toolbar { font-family: var(--font-ui); }
87
+
88
+ /* Code Editor */
89
+ .editor {
90
+ font-family: var(--font-code);
91
+ font-feature-settings: 'liga' 1, 'calt' 1; /* Enable ligatures */
92
+ }
93
+
94
+ /* Terminal */
95
+ .terminal { font-family: var(--font-terminal); }
96
+ ```
97
+
98
+ ### 3. Creative Portfolio
99
+ ```css
100
+ :root {
101
+ --font-body: 'Geist Sans', system-ui, sans-serif;
102
+ --font-headings: 'Clash Display', sans-serif;
103
+ --font-accent: 'Syne', sans-serif;
104
+ --font-mono: 'Geist Mono', monospace;
105
+ }
106
+
107
+ .hero-title {
108
+ font-family: var(--font-headings);
109
+ font-weight: 700;
110
+ letter-spacing: -0.02em;
111
+ }
112
+
113
+ .nav-links { font-family: var(--font-accent); }
114
+ ```
115
+
116
+ ### 4. Editorial / Blog
117
+ ```css
118
+ :root {
119
+ --font-serif: 'Merriweather', Georgia, serif;
120
+ --font-sans: 'Inter', system-ui, sans-serif;
121
+ --font-mono: 'IBM Plex Mono', monospace;
122
+ --font-display: 'DM Serif Display', Georgia, serif;
123
+ }
124
+
125
+ article p { font-family: var(--font-serif); }
126
+ article h1 { font-family: var(--font-display); }
127
+ figcaption { font-family: var(--font-sans); }
128
+ ```
129
+
130
+ ### 5. SaaS Marketing Site
131
+ ```css
132
+ :root {
133
+ --font-primary: 'Poppins', system-ui, sans-serif;
134
+ --font-secondary: 'Manrope', sans-serif;
135
+ --font-mono: 'Geist Mono', monospace;
136
+ }
137
+
138
+ /* Headlines use Poppins for personality */
139
+ h1, h2, .cta-button { font-family: var(--font-primary); }
140
+
141
+ /* Body uses Manrope for readability */
142
+ body { font-family: var(--font-secondary); }
143
+ ```
144
+
145
+ ## Nerd Fonts: Icons in Code
146
+
147
+ Nerd Fonts combine regular fonts with thousands of icons from:
148
+ - Devicons (development tools)
149
+ - Font Awesome (general icons)
150
+ - Material Design (Google icons)
151
+ - Weather Icons
152
+ - Octicons (GitHub)
153
+ - Powerline symbols
154
+
155
+ ### Common Glyphs
156
+
157
+ ```html
158
+ <!-- File type icons -->
159
+ <span>󰉋</span> <!-- folder -->
160
+ <span>󰈙</span> <!-- file text -->
161
+ <span>󰌠</span> <!-- git -->
162
+ <span>󰘧</span> <!-- code -->
163
+
164
+ <!-- Status icons -->
165
+ <span>󰄬</span> <!-- check -->
166
+ <span>󰅙</span> <!-- error -->
167
+ <span>󰌵</span> <!-- warning -->
168
+ <span>󰋽</span> <!-- info -->
169
+
170
+ <!-- Tool icons -->
171
+ <span>󰨞</span> <!-- docker -->
172
+ <span>󱃾</span> <!-- kubernetes -->
173
+ <span>󰛓</span> <!-- react -->
174
+ <span>󰛦</span> <!-- typescript -->
175
+ ```
176
+
177
+ ### Using with CSS
178
+
179
+ ```css
180
+ .nerd-icon {
181
+ font-family: 'JetBrainsMono Nerd Font', monospace;
182
+ font-size: 1.2em;
183
+ }
184
+
185
+ /* File tree styling */
186
+ .file-tree .folder::before {
187
+ content: '󰉋';
188
+ font-family: 'JetBrainsMono Nerd Font';
189
+ margin-right: 0.5em;
190
+ }
191
+
192
+ .file-tree .file-js::before {
193
+ content: '󰌠';
194
+ font-family: 'JetBrainsMono Nerd Font';
195
+ color: #f7df1e; /* JS yellow */
196
+ }
197
+ ```
198
+
199
+ ## Performance Optimization
200
+
201
+ ### 1. Preconnect to Font CDNs
202
+ ```html
203
+ <head>
204
+ <link rel="preconnect" href="https://fonts.googleapis.com">
205
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
206
+ <!-- Font links -->
207
+ </head>
208
+ ```
209
+
210
+ ### 2. Use Variable Fonts (when available)
211
+ ```html
212
+ <!-- Inter as variable font (one file, all weights) -->
213
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap" rel="stylesheet">
214
+ ```
215
+
216
+ ### 3. Font Display Strategy
217
+ ```css
218
+ @font-face {
219
+ font-family: 'CustomFont';
220
+ src: url('font.woff2') format('woff2');
221
+ font-display: swap; /* Show fallback until loaded */
222
+ }
223
+ ```
224
+
225
+ ### 4. Preload Critical Fonts
226
+ ```html
227
+ <link rel="preload" href="/fonts/GeistSans.woff2" as="font" type="font/woff2" crossorigin>
228
+ ```
229
+
230
+ ### 5. Subset Fonts (Advanced)
231
+ ```bash
232
+ # Using glyphhanger to subset fonts
233
+ npx glyphhanger --subset=*.woff2 --formats=woff2 --css
234
+ ```
235
+
236
+ ## Framework Integration
237
+
238
+ ### React / Next.js
239
+
240
+ ```tsx
241
+ // layout.tsx
242
+ import { Inter, JetBrains_Mono } from 'next/font/google';
243
+
244
+ const inter = Inter({
245
+ subsets: ['latin'],
246
+ variable: '--font-sans',
247
+ });
248
+
249
+ const jetbrainsMono = JetBrains_Mono({
250
+ subsets: ['latin'],
251
+ variable: '--font-mono',
252
+ });
253
+
254
+ export default function RootLayout({ children }) {
255
+ return (
256
+ <html className={`${inter.variable} ${jetbrainsMono.variable}`}>
257
+ <body className="font-sans">{children}</body>
258
+ </html>
259
+ );
260
+ }
261
+ ```
262
+
263
+ ```css
264
+ /* globals.css */
265
+ @layer base {
266
+ body {
267
+ font-family: var(--font-sans), system-ui, sans-serif;
268
+ }
269
+
270
+ code, pre {
271
+ font-family: var(--font-mono), monospace;
272
+ }
273
+ }
274
+ ```
275
+
276
+ ### Tailwind CSS
277
+
278
+ ```javascript
279
+ // tailwind.config.js
280
+ module.exports = {
281
+ theme: {
282
+ extend: {
283
+ fontFamily: {
284
+ sans: ['var(--font-sans)', 'system-ui', 'sans-serif'],
285
+ mono: ['var(--font-mono)', 'monospace'],
286
+ display: ['var(--font-display)', 'sans-serif'],
287
+ },
288
+ },
289
+ },
290
+ };
291
+ ```
292
+
293
+ ```html
294
+ <!-- Usage -->
295
+ <p class="font-sans text-base">Body text</p>
296
+ <code class="font-mono text-sm">Code snippet</code>
297
+ <h1 class="font-display text-4xl">Headline</h1>
298
+ ```
299
+
300
+ ## Accessibility
301
+
302
+ ### Minimum Requirements
303
+ - Body text: minimum 16px (1rem)
304
+ - Line height: 1.5 minimum for body
305
+ - Contrast: 4.5:1 for normal text, 3:1 for large text
306
+
307
+ ### Dyslexia Considerations
308
+ ```css
309
+ @media (prefers-reduced-data: no-preference) {
310
+ /* Offer OpenDyslexic as an option */
311
+ body.dyslexia-mode {
312
+ font-family: 'OpenDyslexic', sans-serif;
313
+ line-height: 1.8;
314
+ word-spacing: 0.16em;
315
+ }
316
+ }
317
+ ```
318
+
319
+ ### Motion Preferences
320
+ ```css
321
+ @media (prefers-reduced-motion: reduce) {
322
+ /* Disable font transitions */
323
+ * {
324
+ transition: none !important;
325
+ }
326
+ }
327
+ ```
328
+
329
+ ## Troubleshooting
330
+
331
+ ### FOUT/FOIT Prevention
332
+ ```css
333
+ /* Flash of Unstyled Text strategy */
334
+ @font-face {
335
+ font-family: 'Inter';
336
+ src: url('inter.woff2') format('woff2');
337
+ font-display: swap; /* Recommended */
338
+ /* or font-display: optional; for faster but may not load */
339
+ }
340
+ ```
341
+
342
+ ### Font Weight Mismatch
343
+ ```css
344
+ /* If 500 looks too bold, use numeric values */
345
+ .medium-text {
346
+ font-weight: 450; /* Some variable fonts support this */
347
+ }
348
+ ```
349
+
350
+ ### Nerd Font Glyphs Not Showing
351
+ ```css
352
+ /* Ensure fallback fonts have the glyphs */
353
+ .nerd-font {
354
+ font-family: 'JetBrainsMono Nerd Font', 'JetBrains Mono', monospace;
355
+ /* The second fallback won't have icons but maintains monospace */
356
+ }
357
+ ```
358
+
359
+ ## Complete Token Reference
360
+
361
+ All fonts are available as design tokens in `font-collection.json`:
362
+
363
+ ```typescript
364
+ import { tokens } from '@frontend-arsenal/tokens';
365
+
366
+ // Font families
367
+ const sansFont = tokens.typography.families.sans.inter.$value;
368
+ const monoFont = tokens.typography.families.mono['jetbrains-mono'].$value;
369
+ const nerdFont = tokens.typography.families.nerd['nerd-mono'].$value;
370
+
371
+ // Font sizes
372
+ const baseSize = tokens.typography.sizes.base.$value; // "1rem"
373
+ const heroSize = tokens.typography.sizes['7xl'].$value; // "4.5rem"
374
+
375
+ // Font weights
376
+ const normal = tokens.typography.weights.normal.$value; // 400
377
+ const bold = tokens.typography.weights.bold.$value; // 700
378
+
379
+ // Line heights
380
+ const bodyLeading = tokens.typography.lineHeights.relaxed.$value; // 1.625
381
+ ```
@@ -0,0 +1,37 @@
1
+ # Typography
2
+
3
+ Type scale definitions (font families, sizes, weights, line heights). These establish the typographic hierarchy for the system.
4
+
5
+ ## 📦 Font Collection
6
+
7
+ Complete typography system with 40+ font families including Nerd Fonts.
8
+
9
+ See [font-collection.json](./font-collection.json) for all available fonts.
10
+
11
+ ### Font Categories
12
+ - **Sans-Serif (7 families)** - Geist Sans, Inter, Satoshi, Manrope, Outfit, Poppins, Plus Jakarta Sans
13
+ - **Serif (5 families)** - Merriweather, DM Serif Display, Lora, Source Serif 4, Literata
14
+ - **Monospace (6 families)** - Geist Mono, JetBrains Mono, Fira Code, Cascadia Code, SF Mono, IBM Plex Mono
15
+ - **Nerd Fonts (5 patched)** - JetBrainsMono Nerd Font, FiraCode Nerd Font, Hack Nerd Font, CaskaydiaCove Nerd Font, Symbols Nerd Font
16
+ - **Display (5 families)** - Clash Display, Space Grotesk, Bungee, Archivo Black, Syne
17
+
18
+ ### Quick Setup
19
+
20
+ ```html
21
+ <!-- Google Fonts CDN -->
22
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@100..900&family=JetBrains+Mono:wght@100..800&family=Space+Grotesk:wght@300..700&display=swap" rel="stylesheet">
23
+ ```
24
+
25
+ ```bash
26
+ # Or via npm (Fontsource)
27
+ npm install @fontsource/inter @fontsource/jetbrains-mono @fontsource/space-grotesk
28
+ ```
29
+
30
+ ### Recommended Pairings
31
+
32
+ **Professional:** Inter + JetBrains Mono + Space Grotesk
33
+ **Modern:** Geist Sans + Geist Mono + Clash Display
34
+ **Editorial:** Merriweather + Inter + IBM Plex Mono
35
+ **Developer:** Plus Jakarta Sans + JetBrainsMono Nerd Font
36
+
37
+ Full documentation in [FONT_GUIDE.md](./FONT_GUIDE.md) (create with complete usage examples).
@@ -0,0 +1,221 @@
1
+ {
2
+ "families": {
3
+ "sans": {
4
+ "geist": {
5
+ "$type": "fontFamily",
6
+ "$value": "'Geist Sans', system-ui, sans-serif",
7
+ "$description": "Vercel's Geist Sans - modern geometric sans-serif, clean and technical"
8
+ },
9
+ "inter": {
10
+ "$type": "fontFamily",
11
+ "$value": "'Inter', system-ui, sans-serif",
12
+ "$description": "Inter - highly legible, great for UI and data"
13
+ },
14
+ "satoshi": {
15
+ "$type": "fontFamily",
16
+ "$value": "'Satoshi', 'Inter', sans-serif",
17
+ "$description": "Satoshi - contemporary geometric sans, modern alternative"
18
+ },
19
+ "manrope": {
20
+ "$type": "fontFamily",
21
+ "$value": "'Manrope', sans-serif",
22
+ "$description": "Manrope - versatile geometric with personality"
23
+ },
24
+ "outfit": {
25
+ "$type": "fontFamily",
26
+ "$value": "'Outfit', sans-serif",
27
+ "$description": "Outfit - geometric with slight quirk, great for headlines"
28
+ },
29
+ "poppins": {
30
+ "$type": "fontFamily",
31
+ "$value": "'Poppins', sans-serif",
32
+ "$description": "Poppins - geometric, excellent for modern web apps"
33
+ },
34
+ "plus-jakarta-sans": {
35
+ "$type": "fontFamily",
36
+ "$value": "'Plus Jakarta Sans', sans-serif",
37
+ "$description": "Plus Jakarta Sans - humanist geometric, warm yet modern"
38
+ }
39
+ },
40
+ "serif": {
41
+ "merriweather": {
42
+ "$type": "fontFamily",
43
+ "$value": "'Merriweather', Georgia, serif",
44
+ "$description": "Merriweather - readable serif, great for long-form text"
45
+ },
46
+ "dm-serif-display": {
47
+ "$type": "fontFamily",
48
+ "$value": "'DM Serif Display', Georgia, serif",
49
+ "$description": "DM Serif Display - elegant display serif for headings"
50
+ },
51
+ "lora": {
52
+ "$type": "fontFamily",
53
+ "$value": "'Lora', Georgia, serif",
54
+ "$description": "Lora - modern calligraphic serif for body text"
55
+ },
56
+ "source-serif": {
57
+ "$type": "fontFamily",
58
+ "$value": "'Source Serif 4', Georgia, serif",
59
+ "$description": "Source Serif 4 - optimized for screen reading"
60
+ },
61
+ "literata": {
62
+ "$type": "fontFamily",
63
+ "$value": "'Literata', Georgia, serif",
64
+ "$description": "Literata - distinctive serif, great for editorial"
65
+ }
66
+ },
67
+ "mono": {
68
+ "geist-mono": {
69
+ "$type": "fontFamily",
70
+ "$value": "'Geist Mono', 'SF Mono', Monaco, monospace",
71
+ "$description": "Vercel's Geist Mono - clean technical monospace"
72
+ },
73
+ "jetbrains-mono": {
74
+ "$type": "fontFamily",
75
+ "$value": "'JetBrains Mono', 'Fira Code', monospace",
76
+ "$description": "JetBrains Mono - developer-focused with ligatures"
77
+ },
78
+ "fira-code": {
79
+ "$type": "fontFamily",
80
+ "$value": "'Fira Code', 'Fira Mono', monospace",
81
+ "$description": "Fira Code - popular coding font with ligatures"
82
+ },
83
+ "cascadia-code": {
84
+ "$type": "fontFamily",
85
+ "$value": "'Cascadia Code', 'Consolas', monospace",
86
+ "$description": "Cascadia Code - Microsoft's modern coding font"
87
+ },
88
+ "sf-mono": {
89
+ "$type": "fontFamily",
90
+ "$value": "'SF Mono', 'Monaco', 'Menlo', monospace",
91
+ "$description": "SF Mono - Apple's system monospace font"
92
+ },
93
+ "ibm-plex-mono": {
94
+ "$type": "fontFamily",
95
+ "$value": "'IBM Plex Mono', 'Courier New', monospace",
96
+ "$description": "IBM Plex Mono - classic technical monospace"
97
+ }
98
+ },
99
+ "nerd": {
100
+ "nerd-symbols": {
101
+ "$type": "fontFamily",
102
+ "$value": "'Symbols Nerd Font', monospace",
103
+ "$description": "Nerd Font symbols - thousands of icons and glyphs"
104
+ },
105
+ "nerd-mono": {
106
+ "$type": "fontFamily",
107
+ "$value": "'JetBrainsMono Nerd Font', 'JetBrains Mono', monospace",
108
+ "$description": "JetBrains Mono with Nerd Font glyphs"
109
+ },
110
+ "nerd-fira": {
111
+ "$type": "fontFamily",
112
+ "$value": "'FiraCode Nerd Font', 'Fira Code', monospace",
113
+ "$description": "Fira Code with Nerd Font glyphs"
114
+ },
115
+ "nerd-hack": {
116
+ "$type": "fontFamily",
117
+ "$value": "'Hack Nerd Font', 'Hack', monospace",
118
+ "$description": "Hack font with Nerd Font glyphs"
119
+ },
120
+ "nerd-cascadia": {
121
+ "$type": "fontFamily",
122
+ "$value": "'CaskaydiaCove Nerd Font', 'Cascadia Code', monospace",
123
+ "$description": "Cascadia Code with Nerd Font glyphs (CaskaydiaCove)"
124
+ }
125
+ },
126
+ "display": {
127
+ "clash-display": {
128
+ "$type": "fontFamily",
129
+ "$value": "'Clash Display', sans-serif",
130
+ "$description": "Clash Display - bold geometric display font"
131
+ },
132
+ "space-grotesk": {
133
+ "$type": "fontFamily",
134
+ "$value": "'Space Grotesk', sans-serif",
135
+ "$description": "Space Grotesk - quirky geometric with personality"
136
+ },
137
+ "bungee": {
138
+ "$type": "fontFamily",
139
+ "$value": "'Bungee', sans-serif",
140
+ "$description": "Bungee - bold, attention-grabbing display font"
141
+ },
142
+ "archivo-black": {
143
+ "$type": "fontFamily",
144
+ "$value": "'Archivo Black', sans-serif",
145
+ "$description": "Archivo Black - heavy sans for headlines"
146
+ },
147
+ "syne": {
148
+ "$type": "fontFamily",
149
+ "$value": "'Syne', sans-serif",
150
+ "$description": "Syne - experimental sans, great for creative sites"
151
+ }
152
+ }
153
+ },
154
+ "sizes": {
155
+ "2xs": {
156
+ "$type": "fontSize",
157
+ "$value": "0.625rem",
158
+ "$description": "10px - smallest text, timestamps"
159
+ },
160
+ "xs": { "$type": "fontSize", "$value": "0.75rem", "$description": "12px - captions, badges" },
161
+ "sm": {
162
+ "$type": "fontSize",
163
+ "$value": "0.875rem",
164
+ "$description": "14px - small body, buttons"
165
+ },
166
+ "base": { "$type": "fontSize", "$value": "1rem", "$description": "16px - default body text" },
167
+ "lg": { "$type": "fontSize", "$value": "1.125rem", "$description": "18px - lead paragraphs" },
168
+ "xl": { "$type": "fontSize", "$value": "1.25rem", "$description": "20px - small headings" },
169
+ "2xl": { "$type": "fontSize", "$value": "1.5rem", "$description": "24px - H4" },
170
+ "3xl": { "$type": "fontSize", "$value": "1.875rem", "$description": "30px - H3" },
171
+ "4xl": { "$type": "fontSize", "$value": "2.25rem", "$description": "36px - H2" },
172
+ "5xl": { "$type": "fontSize", "$value": "3rem", "$description": "48px - H1" },
173
+ "6xl": { "$type": "fontSize", "$value": "3.75rem", "$description": "60px - display headings" },
174
+ "7xl": { "$type": "fontSize", "$value": "4.5rem", "$description": "72px - hero headings" },
175
+ "8xl": { "$type": "fontSize", "$value": "6rem", "$description": "96px - mega headings" },
176
+ "9xl": { "$type": "fontSize", "$value": "8rem", "$description": "128px - extreme display" }
177
+ },
178
+ "weights": {
179
+ "thin": { "$type": "fontWeight", "$value": 100, "$description": "Ultra light - display only" },
180
+ "extralight": { "$type": "fontWeight", "$value": 200, "$description": "Extra light" },
181
+ "light": { "$type": "fontWeight", "$value": 300, "$description": "Light weight" },
182
+ "normal": { "$type": "fontWeight", "$value": 400, "$description": "Normal/regular weight" },
183
+ "medium": {
184
+ "$type": "fontWeight",
185
+ "$value": 500,
186
+ "$description": "Medium weight - UI emphasis"
187
+ },
188
+ "semibold": { "$type": "fontWeight", "$value": 600, "$description": "Semi-bold - headings" },
189
+ "bold": { "$type": "fontWeight", "$value": 700, "$description": "Bold - strong emphasis" },
190
+ "extrabold": { "$type": "fontWeight", "$value": 800, "$description": "Extra bold - display" },
191
+ "black": { "$type": "fontWeight", "$value": 900, "$description": "Black - maximum weight" }
192
+ },
193
+ "lineHeights": {
194
+ "none": { "$type": "lineHeight", "$value": 1, "$description": "No leading - headings" },
195
+ "tight": { "$type": "lineHeight", "$value": 1.25, "$description": "Tight - display text" },
196
+ "snug": { "$type": "lineHeight", "$value": 1.375, "$description": "Snug - small text" },
197
+ "normal": { "$type": "lineHeight", "$value": 1.5, "$description": "Normal - body text" },
198
+ "relaxed": {
199
+ "$type": "lineHeight",
200
+ "$value": 1.625,
201
+ "$description": "Relaxed - comfortable reading"
202
+ },
203
+ "loose": { "$type": "lineHeight", "$value": 2, "$description": "Loose - editorial" }
204
+ },
205
+ "letterSpacing": {
206
+ "tighter": {
207
+ "$type": "letterSpacing",
208
+ "$value": "-0.05em",
209
+ "$description": "Extra tight - large headings"
210
+ },
211
+ "tight": { "$type": "letterSpacing", "$value": "-0.025em", "$description": "Tight - headings" },
212
+ "normal": { "$type": "letterSpacing", "$value": "0", "$description": "No tracking" },
213
+ "wide": { "$type": "letterSpacing", "$value": "0.025em", "$description": "Slight tracking" },
214
+ "wider": { "$type": "letterSpacing", "$value": "0.05em", "$description": "Medium tracking" },
215
+ "widest": {
216
+ "$type": "letterSpacing",
217
+ "$value": "0.1em",
218
+ "$description": "Wide tracking - labels"
219
+ }
220
+ }
221
+ }