savant-code 0.0.22 → 0.0.23

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 (79) hide show
  1. package/README.md +5 -0
  2. package/launcher.js +192 -5
  3. package/package.json +3 -2
  4. package/savant-design-systems/SKILL.md +12 -0
  5. package/savant-design-systems/manifest.json +2541 -0
  6. package/savant-design-systems/resources/airbnb-design-analysis.json +983 -0
  7. package/savant-design-systems/resources/airtable-design-analysis.json +931 -0
  8. package/savant-design-systems/resources/apple-design-analysis.json +920 -0
  9. package/savant-design-systems/resources/binance-design-analysis.json +1068 -0
  10. package/savant-design-systems/resources/bmw-design-analysis.json +912 -0
  11. package/savant-design-systems/resources/bmw-m-design-analysis.json +824 -0
  12. package/savant-design-systems/resources/bugatti-design-analysis.json +746 -0
  13. package/savant-design-systems/resources/cal-com-design-analysis.json +913 -0
  14. package/savant-design-systems/resources/claude-design-analysis.json +1007 -0
  15. package/savant-design-systems/resources/clay-design-analysis.json +919 -0
  16. package/savant-design-systems/resources/clickhouse-design-analysis.json +926 -0
  17. package/savant-design-systems/resources/cohere-design-analysis.json +725 -0
  18. package/savant-design-systems/resources/coinbase-design-analysis.json +998 -0
  19. package/savant-design-systems/resources/composio-design-analysis.json +851 -0
  20. package/savant-design-systems/resources/cursor-design-analysis.json +934 -0
  21. package/savant-design-systems/resources/dell-1996-inspired.json +1042 -0
  22. package/savant-design-systems/resources/elevenlabs.json +551 -0
  23. package/savant-design-systems/resources/expo-design-analysis.json +879 -0
  24. package/savant-design-systems/resources/ferrari-design-analysis.json +874 -0
  25. package/savant-design-systems/resources/figma-design-analysis.json +928 -0
  26. package/savant-design-systems/resources/framer-design-analysis.json +891 -0
  27. package/savant-design-systems/resources/hashicorp-design-analysis.json +909 -0
  28. package/savant-design-systems/resources/hp-design-analysis.json +1077 -0
  29. package/savant-design-systems/resources/ibm-design-analysis.json +881 -0
  30. package/savant-design-systems/resources/intercom-design-analysis.json +876 -0
  31. package/savant-design-systems/resources/kraken.json +172 -0
  32. package/savant-design-systems/resources/lamborghini.json +335 -0
  33. package/savant-design-systems/resources/linear-design-analysis.json +890 -0
  34. package/savant-design-systems/resources/lovable.json +345 -0
  35. package/savant-design-systems/resources/mastercard.json +412 -0
  36. package/savant-design-systems/resources/meta-design-analysis.json +1121 -0
  37. package/savant-design-systems/resources/minimax-design-analysis.json +1220 -0
  38. package/savant-design-systems/resources/mintlify-design-analysis.json +1418 -0
  39. package/savant-design-systems/resources/miro-design-analysis.json +1364 -0
  40. package/savant-design-systems/resources/mistral-ai-design-analysis.json +1286 -0
  41. package/savant-design-systems/resources/mongodb-design-analysis.json +1276 -0
  42. package/savant-design-systems/resources/nike-design-analysis.json +938 -0
  43. package/savant-design-systems/resources/nintendo-com-2001-analysis.json +1082 -0
  44. package/savant-design-systems/resources/notion-design-analysis.json +1368 -0
  45. package/savant-design-systems/resources/nvidia-design-analysis.json +1023 -0
  46. package/savant-design-systems/resources/ollama-design-analysis.json +863 -0
  47. package/savant-design-systems/resources/opencode-design-analysis.json +806 -0
  48. package/savant-design-systems/resources/pinterest-design-analysis.json +953 -0
  49. package/savant-design-systems/resources/playstation-design-analysis.json +1053 -0
  50. package/savant-design-systems/resources/posthog-design-analysis.json +1146 -0
  51. package/savant-design-systems/resources/raycast.json +716 -0
  52. package/savant-design-systems/resources/renault-design-analysis.json +916 -0
  53. package/savant-design-systems/resources/replicate-design-analysis.json +986 -0
  54. package/savant-design-systems/resources/resend-design-analysis.json +942 -0
  55. package/savant-design-systems/resources/revolut-design-analysis.json +1008 -0
  56. package/savant-design-systems/resources/runwayml.json +291 -0
  57. package/savant-design-systems/resources/sanity.json +404 -0
  58. package/savant-design-systems/resources/sentri-inspired-design-analysis.json +953 -0
  59. package/savant-design-systems/resources/shopifi-inspired-design-analysis.json +921 -0
  60. package/savant-design-systems/resources/slacc-inspired-design-analysis.json +799 -0
  61. package/savant-design-systems/resources/spacex-inspired-design-analysis.json +598 -0
  62. package/savant-design-systems/resources/spotify.json +293 -0
  63. package/savant-design-systems/resources/starbucks.json +627 -0
  64. package/savant-design-systems/resources/stripi-inspired-design-analysis.json +805 -0
  65. package/savant-design-systems/resources/supabase.json +509 -0
  66. package/savant-design-systems/resources/superhumon-inspired-design-analysis.json +740 -0
  67. package/savant-design-systems/resources/tesla.json +333 -0
  68. package/savant-design-systems/resources/theverge.json +386 -0
  69. package/savant-design-systems/resources/together-ai-inspired-design-analysis.json +1099 -0
  70. package/savant-design-systems/resources/uber-inspired-design-analysis.json +1067 -0
  71. package/savant-design-systems/resources/vercel-inspired-design-analysis.json +1261 -0
  72. package/savant-design-systems/resources/vodafone-inspired-design-analysis.json +912 -0
  73. package/savant-design-systems/resources/voltagent-inspired-design-analysis.json +929 -0
  74. package/savant-design-systems/resources/warp-inspired-design-analysis.json +946 -0
  75. package/savant-design-systems/resources/webflow-inspired-design-analysis.json +1033 -0
  76. package/savant-design-systems/resources/wired-inspired-design-analysis.json +877 -0
  77. package/savant-design-systems/resources/wise-inspired-design-analysis.json +916 -0
  78. package/savant-design-systems/resources/xai-inspired-design-analysis.json +820 -0
  79. package/savant-design-systems/resources/zapier-inspired-design-analysis.json +915 -0
@@ -0,0 +1,551 @@
1
+ {
2
+ "schemaVersion": "1",
3
+ "id": "elevenlabs",
4
+ "displayName": "Elevenlabs",
5
+ "description": "Design system Elevenlabs",
6
+ "source": "embedded",
7
+ "status": "curated-reference",
8
+ "targets": [
9
+ "terminal",
10
+ "react"
11
+ ],
12
+ "contentPath": "packages/design-systems/library/elevenlabs.design.md",
13
+ "sourceContentHash": "3b359acfaafadbb499c7ed3eebe813a76e0be497a7157b77de207fe275068a66",
14
+ "normalizedContentHash": "25254948cdb17370d23bd7169cd32e4ab0b588eb9ee10e17cbb4bc96f04879e5",
15
+ "provenance": {
16
+ "sourceRepository": "VoltAgent/awesome-design-md",
17
+ "sourceRevision": "working-tree-curated-snapshot",
18
+ "sourcePath": "packages/design-systems/library/elevenlabs.design.md",
19
+ "license": "MIT"
20
+ },
21
+ "fonts": [],
22
+ "tokens": {
23
+ "colors": {
24
+ "primary": "#f5f5f5",
25
+ "foreground": "#292524",
26
+ "background": "#292524"
27
+ },
28
+ "typography": {
29
+ "body": {
30
+ "fontFamily": "system-ui, sans-serif",
31
+ "fontSize": "16px",
32
+ "lineHeight": "1.5"
33
+ }
34
+ },
35
+ "spacing": {
36
+ "md": "16px"
37
+ },
38
+ "radius": {
39
+ "md": "8px"
40
+ },
41
+ "components": {},
42
+ "extensions": {}
43
+ }
44
+ }
45
+
46
+ ---
47
+
48
+ ---
49
+ version: alpha
50
+ name: ElevenLabs-design-analysis
51
+ description: A voice-AI brand whose marketing surfaces read like a quietly editorial print magazine. The base canvas is off-white (`#f5f5f5`) holding warm near-black ink (`#292524`); the brand voltage is photographic, not chromatic — soft pastel atmospheric gradient orbs (mint → peach → lavender → sky) drift through the page as the only "color" moments. Display runs Waldenburg Light at weight 300 — the editorial signature. Inter carries body, navigation, captions. CTAs are subtle: a near-black ink pill is the primary, a transparent outline is the secondary. The brand trusts atmospheric photography and modest type weights to do all of the brand work; there is no neon accent, no saturated CTA color, no developer-tools dark canvas.
52
+
53
+ colors:
54
+ primary: "#292524"
55
+ primary-active: "#0c0a09"
56
+ ink: "#0c0a09"
57
+ body: "#4e4e4e"
58
+ body-strong: "#292524"
59
+ muted: "#777169"
60
+ muted-soft: "#a8a29e"
61
+ hairline: "#e7e5e4"
62
+ hairline-soft: "#f0efed"
63
+ hairline-strong: "#d6d3d1"
64
+ canvas: "#f5f5f5"
65
+ canvas-soft: "#fafafa"
66
+ canvas-deep: "#0c0a09"
67
+ surface-card: "#ffffff"
68
+ surface-strong: "#f0efed"
69
+ surface-dark: "#0c0a09"
70
+ surface-dark-elevated: "#1c1917"
71
+ on-primary: "#ffffff"
72
+ on-dark: "#ffffff"
73
+ on-dark-soft: "#a8a29e"
74
+ gradient-mint: "#a7e5d3"
75
+ gradient-peach: "#f4c5a8"
76
+ gradient-lavender: "#c8b8e0"
77
+ gradient-sky: "#a8c8e8"
78
+ gradient-rose: "#e8b8c4"
79
+ semantic-error: "#dc2626"
80
+ semantic-success: "#16a34a"
81
+
82
+ typography:
83
+ display-mega:
84
+ fontFamily: "'Waldenburg', 'Times New Roman', serif"
85
+ fontSize: 64px
86
+ fontWeight: 300
87
+ lineHeight: 1.05
88
+ letterSpacing: -1.92px
89
+ display-xl:
90
+ fontFamily: "'Waldenburg', serif"
91
+ fontSize: 48px
92
+ fontWeight: 300
93
+ lineHeight: 1.08
94
+ letterSpacing: -0.96px
95
+ display-lg:
96
+ fontFamily: "'Waldenburg', serif"
97
+ fontSize: 36px
98
+ fontWeight: 300
99
+ lineHeight: 1.17
100
+ letterSpacing: -0.36px
101
+ display-md:
102
+ fontFamily: "'Waldenburg', serif"
103
+ fontSize: 32px
104
+ fontWeight: 300
105
+ lineHeight: 1.13
106
+ letterSpacing: -0.32px
107
+ display-sm:
108
+ fontFamily: "'Waldenburg', serif"
109
+ fontSize: 24px
110
+ fontWeight: 300
111
+ lineHeight: 1.2
112
+ letterSpacing: 0
113
+ title-md:
114
+ fontFamily: "'Inter', sans-serif"
115
+ fontSize: 20px
116
+ fontWeight: 500
117
+ lineHeight: 1.35
118
+ letterSpacing: 0
119
+ title-sm:
120
+ fontFamily: "'Inter', sans-serif"
121
+ fontSize: 18px
122
+ fontWeight: 500
123
+ lineHeight: 1.44
124
+ letterSpacing: 0.18px
125
+ body-md:
126
+ fontFamily: "'Inter', sans-serif"
127
+ fontSize: 16px
128
+ fontWeight: 400
129
+ lineHeight: 1.5
130
+ letterSpacing: 0.16px
131
+ body-strong:
132
+ fontFamily: "'Inter', sans-serif"
133
+ fontSize: 16px
134
+ fontWeight: 500
135
+ lineHeight: 1.5
136
+ letterSpacing: 0.16px
137
+ body-sm:
138
+ fontFamily: "'Inter', sans-serif"
139
+ fontSize: 15px
140
+ fontWeight: 400
141
+ lineHeight: 1.47
142
+ letterSpacing: 0.15px
143
+ caption:
144
+ fontFamily: "'Inter', sans-serif"
145
+ fontSize: 14px
146
+ fontWeight: 400
147
+ lineHeight: 1.5
148
+ letterSpacing: 0
149
+ caption-uppercase:
150
+ fontFamily: "'Inter', sans-serif"
151
+ fontSize: 12px
152
+ fontWeight: 600
153
+ lineHeight: 1.4
154
+ letterSpacing: 0.96px
155
+ textTransform: uppercase
156
+ button:
157
+ fontFamily: "'Inter', sans-serif"
158
+ fontSize: 15px
159
+ fontWeight: 500
160
+ lineHeight: 1.0
161
+ letterSpacing: 0
162
+ nav-link:
163
+ fontFamily: "'Inter', sans-serif"
164
+ fontSize: 15px
165
+ fontWeight: 500
166
+ lineHeight: 1.4
167
+ letterSpacing: 0
168
+
169
+ rounded:
170
+ none: 0px
171
+ xs: 4px
172
+ sm: 6px
173
+ md: 8px
174
+ lg: 12px
175
+ xl: 16px
176
+ xxl: 24px
177
+ pill: 9999px
178
+ full: 9999px
179
+
180
+ spacing:
181
+ xxs: 4px
182
+ xs: 8px
183
+ sm: 12px
184
+ base: 16px
185
+ md: 20px
186
+ lg: 24px
187
+ xl: 32px
188
+ xxl: 48px
189
+ section: 96px
190
+
191
+ components:
192
+ top-nav:
193
+ backgroundColor: "{colors.canvas}"
194
+ textColor: "{colors.ink}"
195
+ typography: "{typography.nav-link}"
196
+ height: 64px
197
+ button-primary:
198
+ backgroundColor: "{colors.primary}"
199
+ textColor: "{colors.on-primary}"
200
+ typography: "{typography.button}"
201
+ rounded: "{rounded.pill}"
202
+ padding: 10px 20px
203
+ height: 40px
204
+ button-primary-active:
205
+ backgroundColor: "{colors.primary-active}"
206
+ textColor: "{colors.on-primary}"
207
+ rounded: "{rounded.pill}"
208
+ button-outline:
209
+ backgroundColor: transparent
210
+ textColor: "{colors.ink}"
211
+ typography: "{typography.button}"
212
+ rounded: "{rounded.pill}"
213
+ padding: 9px 19px
214
+ height: 40px
215
+ button-tertiary-text:
216
+ backgroundColor: transparent
217
+ textColor: "{colors.ink}"
218
+ typography: "{typography.button}"
219
+ hero-band:
220
+ backgroundColor: "{colors.canvas}"
221
+ textColor: "{colors.ink}"
222
+ typography: "{typography.display-mega}"
223
+ padding: 96px
224
+ gradient-orb-card:
225
+ backgroundColor: "{colors.canvas-soft}"
226
+ textColor: "{colors.ink}"
227
+ rounded: "{rounded.xxl}"
228
+ padding: 32px
229
+ feature-card:
230
+ backgroundColor: "{colors.surface-card}"
231
+ textColor: "{colors.ink}"
232
+ typography: "{typography.title-md}"
233
+ rounded: "{rounded.xl}"
234
+ padding: 24px
235
+ product-card-stack:
236
+ backgroundColor: "{colors.surface-card}"
237
+ textColor: "{colors.ink}"
238
+ typography: "{typography.body-md}"
239
+ rounded: "{rounded.xl}"
240
+ padding: 0
241
+ voice-row:
242
+ backgroundColor: transparent
243
+ textColor: "{colors.ink}"
244
+ typography: "{typography.body-md}"
245
+ padding: 12px 0
246
+ voice-icon-circular:
247
+ backgroundColor: "{colors.surface-strong}"
248
+ rounded: "{rounded.full}"
249
+ size: 32px
250
+ pricing-tier-card:
251
+ backgroundColor: "{colors.surface-card}"
252
+ textColor: "{colors.ink}"
253
+ typography: "{typography.body-md}"
254
+ rounded: "{rounded.xl}"
255
+ padding: 32px
256
+ pricing-tier-featured:
257
+ backgroundColor: "{colors.surface-dark}"
258
+ textColor: "{colors.on-dark}"
259
+ typography: "{typography.body-md}"
260
+ rounded: "{rounded.xl}"
261
+ padding: 32px
262
+ text-input:
263
+ backgroundColor: "{colors.surface-card}"
264
+ textColor: "{colors.ink}"
265
+ typography: "{typography.body-md}"
266
+ rounded: "{rounded.md}"
267
+ padding: 12px 16px
268
+ height: 44px
269
+ badge-pill:
270
+ backgroundColor: "{colors.surface-strong}"
271
+ textColor: "{colors.ink}"
272
+ typography: "{typography.caption-uppercase}"
273
+ rounded: "{rounded.pill}"
274
+ padding: 4px 10px
275
+ cta-band:
276
+ backgroundColor: "{colors.canvas}"
277
+ textColor: "{colors.ink}"
278
+ typography: "{typography.display-lg}"
279
+ padding: 96px
280
+ testimonial-card:
281
+ backgroundColor: "{colors.surface-card}"
282
+ textColor: "{colors.body}"
283
+ typography: "{typography.body-md}"
284
+ rounded: "{rounded.xl}"
285
+ padding: 32px
286
+ audio-waveform-card:
287
+ backgroundColor: "{colors.surface-card}"
288
+ textColor: "{colors.ink}"
289
+ rounded: "{rounded.xl}"
290
+ padding: 24px
291
+ footer:
292
+ backgroundColor: "{colors.canvas}"
293
+ textColor: "{colors.body}"
294
+ typography: "{typography.body-sm}"
295
+ padding: 64px 48px
296
+ footer-link:
297
+ backgroundColor: transparent
298
+ textColor: "{colors.body}"
299
+ typography: "{typography.body-sm}"
300
+ ---
301
+
302
+ ## Overview
303
+
304
+ ElevenLabs reads like a quietly editorial print magazine that happens to be a voice-AI product. The base canvas is off-white `{colors.canvas}` (#f5f5f5) holding warm near-black ink `{colors.ink}` (#0c0a09). The brand voltage is **photographic, not chromatic**: soft pastel atmospheric gradient orbs (mint, peach, lavender, sky, rose) drift through the page as the only "color" moments. There is no neon accent, no saturated CTA color, no dark-canvas dev-tools atmosphere.
305
+
306
+ Type pairs **Waldenburg Light** (custom serif at weight 300) for display with **Inter** for body, navigation, captions. The display weight at 300 is the editorial signature — never bold, never heavy.
307
+
308
+ CTAs are subtle: a near-black ink pill (`{component.button-primary}`) is the primary, a transparent outline (`{component.button-outline}`) is the secondary. The brand trusts atmospheric photography and modest type weights to carry brand work.
309
+
310
+ **Key Characteristics:**
311
+ - Off-white canvas, warm near-black ink. No saturated CTA color.
312
+ - Single primary action: ink pill at `{rounded.pill}`. Atmospheric gradients carry visual brand voltage.
313
+ - Display runs Waldenburg Light at weight 300 — editorial magazine voice.
314
+ - Body runs Inter at 400 with subtle letter-spacing (+0.15-0.18px).
315
+ - Pastel gradient orbs (5 tokens: mint, peach, lavender, sky, rose) used as atmospheric brand decoration only.
316
+ - Soft pill geometry (`{rounded.pill}` for CTAs, `{rounded.xl}` for cards).
317
+ - 96px section rhythm.
318
+
319
+ ## Colors
320
+
321
+ ### Brand & Accent
322
+ - **Ink Primary** (`{colors.primary}` — #292524): The primary action color — warm near-black pill. Used scarcely.
323
+ - **Ink Primary Active** (`{colors.primary-active}` — #0c0a09): Press state.
324
+
325
+ ### Surface
326
+ - **Canvas** (`{colors.canvas}` — #f5f5f5): Off-white page floor.
327
+ - **Canvas Soft** (`{colors.canvas-soft}` — #fafafa): Lighter band for subtle alternating sections.
328
+ - **Canvas Deep** (`{colors.canvas-deep}` — #0c0a09): Same as ink — used for the rare dark-mode hero (Agents page).
329
+ - **Surface Card** (`{colors.surface-card}` — #ffffff): Pure white card.
330
+ - **Surface Strong** (`{colors.surface-strong}` — #f0efed): Badges, voice-icon plates.
331
+ - **Surface Dark** (`{colors.surface-dark}` — #0c0a09): Dark hero/CTA band canvas.
332
+ - **Surface Dark Elevated** (`{colors.surface-dark-elevated}` — #1c1917): Cards on dark canvas.
333
+
334
+ ### Hairlines
335
+ - **Hairline** (`{colors.hairline}` — #e7e5e4): Default 1px divider.
336
+ - **Hairline Soft** (`{colors.hairline-soft}` — #f0efed): Lighter divider.
337
+ - **Hairline Strong** (`{colors.hairline-strong}` — #d6d3d1): Stronger panel outline.
338
+
339
+ ### Text
340
+ - **Ink** (`{colors.ink}` — #0c0a09): Display, primary text.
341
+ - **Body** (`{colors.body}` — #4e4e4e): Default running-text.
342
+ - **Body Strong** (`{colors.body-strong}` — #292524): Same as primary — emphasis.
343
+ - **Muted** (`{colors.muted}` — #777169): Sub-titles.
344
+ - **Muted Soft** (`{colors.muted-soft}` — #a8a29e): Disabled text.
345
+ - **On Primary** (`{colors.on-primary}` — #ffffff): White text on ink pill.
346
+ - **On Dark** (`{colors.on-dark}` — #ffffff): White text on dark hero.
347
+ - **On Dark Soft** (`{colors.on-dark-soft}` — #a8a29e): Muted off-white on dark.
348
+
349
+ ### Atmospheric Gradient Stops (signature)
350
+ - **Gradient Mint** (`{colors.gradient-mint}` — #a7e5d3): Mint green orb.
351
+ - **Gradient Peach** (`{colors.gradient-peach}` — #f4c5a8): Peach orb.
352
+ - **Gradient Lavender** (`{colors.gradient-lavender}` — #c8b8e0): Lavender orb.
353
+ - **Gradient Sky** (`{colors.gradient-sky}` — #a8c8e8): Sky-blue orb.
354
+ - **Gradient Rose** (`{colors.gradient-rose}` — #e8b8c4): Rose orb.
355
+
356
+ These appear ONLY as soft radial-gradient atmospheric orbs inside `{component.gradient-orb-card}` and as background atmospheric blooms behind hero copy. Never as button fills, never as text colors.
357
+
358
+ ### Semantic
359
+ - **Success** (`{colors.semantic-success}` — #16a34a): Confirmation.
360
+ - **Error** (`{colors.semantic-error}` — #dc2626): Validation errors.
361
+
362
+ ## Typography
363
+
364
+ ### Font Family
365
+ **Waldenburg Light** is the licensed display serif at weight 300. **Inter** carries body, navigation, captions, and buttons. Fallback: `'Times New Roman', serif` for Waldenburg, `sans-serif` for Inter.
366
+
367
+ ### Hierarchy
368
+
369
+ | Token | Size | Weight | Line Height | Letter Spacing | Use |
370
+ |---|---|---|---|---|---|
371
+ | `{typography.display-mega}` | 64px | 300 | 1.05 | -1.92px | Homepage hero h1 |
372
+ | `{typography.display-xl}` | 48px | 300 | 1.08 | -0.96px | Subsidiary heroes |
373
+ | `{typography.display-lg}` | 36px | 300 | 1.17 | -0.36px | Section heads |
374
+ | `{typography.display-md}` | 32px | 300 | 1.13 | -0.32px | Sub-section heads |
375
+ | `{typography.display-sm}` | 24px | 300 | 1.2 | 0 | Card group titles |
376
+ | `{typography.title-md}` | 20px | 500 | 1.35 | 0 | Component titles — Inter |
377
+ | `{typography.title-sm}` | 18px | 500 | 1.44 | 0.18px | List labels |
378
+ | `{typography.body-md}` | 16px | 400 | 1.5 | 0.16px | Default body — Inter |
379
+ | `{typography.body-strong}` | 16px | 500 | 1.5 | 0.16px | Emphasized body |
380
+ | `{typography.body-sm}` | 15px | 400 | 1.47 | 0.15px | Footer body |
381
+ | `{typography.caption}` | 14px | 400 | 1.5 | 0 | Photo captions |
382
+ | `{typography.caption-uppercase}` | 12px | 600 | 1.4 | 0.96px | Section labels, badges |
383
+ | `{typography.button}` | 15px | 500 | 1.0 | 0 | CTA pill |
384
+ | `{typography.nav-link}` | 15px | 500 | 1.4 | 0 | Top-nav menu |
385
+
386
+ ### Principles
387
+ - **Display weight stays at 300.** Waldenburg Light is the editorial signature. Never bold display copy.
388
+ - **Subtle letter-spacing on body.** Inter at +0.15-0.18px tracking — slightly looser than default Inter for a more editorial feel.
389
+ - **Negative letter-spacing on display.** Waldenburg pulls -0.32px to -1.92px tighter on display sizes.
390
+
391
+ ### Note on Font Substitutes
392
+ Waldenburg is licensed. Open-source substitute: **EB Garamond** at weight 300 (slightly more humanist) or **GT Sectra** (closer to Waldenburg's modernity). Use Inter directly for body — it's the same family ElevenLabs uses.
393
+
394
+ ## Layout
395
+
396
+ ### Spacing System
397
+ - **Base unit:** 4px.
398
+ - **Tokens:** `{spacing.xxs}` 4px · `{spacing.xs}` 8px · `{spacing.sm}` 12px · `{spacing.base}` 16px · `{spacing.md}` 20px · `{spacing.lg}` 24px · `{spacing.xl}` 32px · `{spacing.xxl}` 48px · `{spacing.section}` 96px.
399
+ - **Section padding:** 96px.
400
+
401
+ ### Grid & Container
402
+ - Max content width: ~1200px.
403
+ - Editorial body: 12-column grid.
404
+ - Feature card grids: 2-up at desktop for hero splits, 3-up for benefit grids.
405
+ - Footer: 5-column at desktop.
406
+
407
+ ### Whitespace Philosophy
408
+ Generous editorial pacing — print-magazine feel. 96px between bands; cards inside bands sit close (16-24px gap). The atmospheric gradient orbs occupy generous breathing space without competing with copy.
409
+
410
+ ## Elevation & Depth
411
+
412
+ The system uses **hairline + soft drop**. Cards float above the off-white canvas via 1px hairlines and a single subtle shadow tier. Atmospheric depth comes from gradient orbs.
413
+
414
+ | Level | Treatment | Use |
415
+ |---|---|---|
416
+ | Flat (canvas) | `{colors.canvas}` (#f5f5f5) | Body bands, footer |
417
+ | Card | `{colors.surface-card}` (#ffffff) | Content cards |
418
+ | Hairline border | 1px `{colors.hairline}` | Card outlines |
419
+ | Soft drop | `0 4px 16px rgba(0, 0, 0, 0.04)` | Hovered cards (single shadow tier) |
420
+ | Gradient orb | Radial gradient with one of `{colors.gradient-*}` | Atmospheric depth — never a card surface |
421
+
422
+ ### Decorative Depth
423
+ - **Pastel gradient orbs** are the brand's strongest atmospheric pattern. Soft radial blooms in mint, peach, lavender, sky, or rose drift through hero bands and feature sections without containing any content — they are pure atmosphere.
424
+
425
+ ## Shapes
426
+
427
+ ### Border Radius Scale
428
+
429
+ | Token | Value | Use |
430
+ |---|---|---|
431
+ | `{rounded.none}` | 0px | Reserved |
432
+ | `{rounded.xs}` | 4px | Inline tags |
433
+ | `{rounded.sm}` | 6px | Compact rows |
434
+ | `{rounded.md}` | 8px | Form inputs |
435
+ | `{rounded.lg}` | 12px | Compact cards |
436
+ | `{rounded.xl}` | 16px | Feature cards, pricing tiers |
437
+ | `{rounded.xxl}` | 24px | Gradient orb cards (extra-soft) |
438
+ | `{rounded.pill}` | 9999px | All CTA buttons, badges |
439
+ | `{rounded.full}` | 9999px | Voice icon circles, avatars |
440
+
441
+ ## Components
442
+
443
+ ### Top Navigation
444
+
445
+ **`top-nav`** — Background `{colors.canvas}`, text `{colors.ink}`, height 64px. Layout: ElevenLabs wordmark left, primary horizontal menu (Creative / Agents / Video / Pricing / Enterprise / Docs), Sign In + "Try free" primary CTA right.
446
+
447
+ ### Buttons
448
+
449
+ **`button-primary`** — Near-black ink pill. Background `{colors.primary}`, text `{colors.on-primary}`, type `{typography.button}` (15px / 500), padding 10px × 20px, height 40px, rounded `{rounded.pill}`.
450
+
451
+ **`button-primary-active`** — Press state. Background `{colors.primary-active}`.
452
+
453
+ **`button-outline`** — Transparent pill with 1px ink border. Background transparent, text `{colors.ink}`, 1px `{colors.hairline-strong}` border.
454
+
455
+ **`button-tertiary-text`** — Inline ink text link.
456
+
457
+ ### Hero & Atmospheric
458
+
459
+ **`hero-band`** — Background `{colors.canvas}`, full-width display headline in `{typography.display-mega}` (64px / 300 / -1.92px), subhead in `{typography.body-md}`, two CTAs, and an atmospheric gradient orb behind the centered headline.
460
+
461
+ **`gradient-orb-card`** — A large card with a soft radial-gradient orb behind centered display copy. Background `{colors.canvas-soft}`, rounded `{rounded.xxl}` (24px), padding 32px. Each variant uses one of the five gradient tokens (`gradient-mint`, `gradient-peach`, `gradient-lavender`, `gradient-sky`, `gradient-rose`).
462
+
463
+ **`audio-waveform-card`** — A waveform visualization card. Background `{colors.surface-card}`, rounded `{rounded.xl}`, padding 24px. Holds a play button + waveform glyph + voice metadata.
464
+
465
+ ### Cards
466
+
467
+ **`feature-card`** — 2-up or 3-up grids. Background `{colors.surface-card}`, text `{colors.ink}`, rounded `{rounded.xl}`, padding 24px, 1px hairline border.
468
+
469
+ **`product-card-stack`** — Stacked product preview cards. Background `{colors.surface-card}`, rounded `{rounded.xl}`, no padding (children fill the card edge-to-edge).
470
+
471
+ **`testimonial-card`** — Quote card. Background `{colors.surface-card}`, text `{colors.body}`, rounded `{rounded.xl}`, padding 32px.
472
+
473
+ ### Voice Library
474
+
475
+ **`voice-row`** — Horizontal row in voice list. Background transparent, 1px hairline divider. Layout: 32px circular voice icon (`{component.voice-icon-circular}`) left, voice name + accent stack, optional preview button right.
476
+
477
+ **`voice-icon-circular`** — Background `{colors.surface-strong}`, rounded `{rounded.full}`, 32px diameter. Holds initials or voice glyph.
478
+
479
+ ### Pricing
480
+
481
+ **`pricing-tier-card`** — Background `{colors.surface-card}`, rounded `{rounded.xl}`, padding 32px, 1px hairline border.
482
+
483
+ **`pricing-tier-featured`** — Featured tier inverts. Background `{colors.surface-dark}`, text `{colors.on-dark}`. Same shape, dark inversion.
484
+
485
+ ### Forms & Tags
486
+
487
+ **`text-input`** — Background `{colors.surface-card}`, text `{colors.ink}`, rounded `{rounded.md}` (8px), padding 12px × 16px, height 44px, 1px `{colors.hairline-strong}` border. On focus, border thickens to 2px ink.
488
+
489
+ **`badge-pill`** — Background `{colors.surface-strong}`, text `{colors.ink}`, type `{typography.caption-uppercase}`, rounded `{rounded.pill}`, padding 4px × 10px.
490
+
491
+ ### CTA / Footer
492
+
493
+ **`cta-band`** — Pre-footer. Background `{colors.canvas}`, centered display headline in `{typography.display-lg}`, single ink pill CTA. 96px padding.
494
+
495
+ **`footer`** — Closing footer. Background `{colors.canvas}`, text `{colors.body}`. 5-column link list. 64×48px padding.
496
+
497
+ **`footer-link`** — Background transparent, text `{colors.body}`, type `{typography.body-sm}`.
498
+
499
+ ## Do's and Don'ts
500
+
501
+ ### Do
502
+ - Reserve `{colors.primary}` (ink pill) for primary CTAs.
503
+ - Use Waldenburg Light at weight 300 for every display headline. Never bold.
504
+ - Use Inter at +0.15-0.18px tracking for body — the editorial dialect.
505
+ - Use atmospheric gradient orbs (mint/peach/lavender/sky/rose) as decoration only.
506
+ - Use the pill shape for every CTA and badge.
507
+
508
+ ### Don't
509
+ - Don't introduce a saturated brand action color. Ink pill is the only CTA color.
510
+ - Don't bold display copy. Display sits at weight 300 — bolding shifts the brand voice from editorial to consumer-marketing.
511
+ - Don't use gradient orbs as button fills, text colors, or component backgrounds. They are pure atmosphere.
512
+ - Don't use sharp `{rounded.none}` (0px) on CTAs. Pill geometry is the brand button.
513
+ - Don't drop body Inter to weight 300 to match Waldenburg — body stays at 400/500 for legibility.
514
+ - Don't extract a CTA color from a third-party widget (cookie consent, OneTrust). The brand's CTA color is what appears on actual product CTAs.
515
+
516
+ ## Responsive Behavior
517
+
518
+ ### Breakpoints
519
+
520
+ | Name | Width | Key Changes |
521
+ |---|---|---|
522
+ | Mobile | < 640px | Hero h1 64→32px; feature cards 1-up; nav hamburger; gradient orbs shrink. |
523
+ | Tablet | 640–1024px | Hero h1 48px; feature cards 2-up. |
524
+ | Desktop | 1024–1280px | Full hero h1 64px; feature cards 3-up. |
525
+ | Wide | > 1280px | Content caps at 1200px. |
526
+
527
+ ### Touch Targets
528
+ - Primary pill at 40px height — at WCAG AA, padded for AAA.
529
+ - Voice icon circles 32px — padded row creates effective 48px tap zone.
530
+
531
+ ### Collapsing Strategy
532
+ - Top nav switches to hamburger below 768px.
533
+ - Feature grid: 3-up → 2-up → 1-up.
534
+ - Gradient orbs reduce diameter at every breakpoint but never disappear.
535
+
536
+ ## Iteration Guide
537
+
538
+ 1. Focus on a single component at a time.
539
+ 2. CTAs default to `{rounded.pill}`. Cards use `{rounded.xl}` (16px).
540
+ 3. Variants live as separate entries.
541
+ 4. Use `{token.refs}` everywhere — never inline hex.
542
+ 5. Hover state never documented.
543
+ 6. Waldenburg 300 for display, Inter 400/500 for body.
544
+ 7. Gradient orbs scoped to atmospheric decoration.
545
+
546
+ ## Known Gaps
547
+
548
+ - Waldenburg is a licensed typeface; EB Garamond / GT Sectra are documented substitutes.
549
+ - Animation timings (orb drift, waveform pulse, hero entrance) out of scope.
550
+ - In-product surfaces (voice library editor, agent playground) only partially captured via marketing mockups.
551
+ - Form validation states beyond focus not visible on captured surfaces.