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,942 @@
1
+ {
2
+ "schemaVersion": "1",
3
+ "id": "resend-design-analysis",
4
+ "displayName": "Resend-design-analysis",
5
+ "description": "Resend's marketing surfaces sit on a near-pure black canvas with off-white\ntext and a single signature color — the deep editorial-serif Domaine\nDisplay headline mark — that gives an otherwise utilitarian developer-tool\nbrand its print-magazine confidence. The system pairs Domaine Display\n(oversized 76px–96px serif, ss01/ss04/ss11 features on) with ABC Favorit\nfor body and Inter for UI. Surfaces rely on subtle 6–9% opacity gradient\nglows, hairline 1px borders made from translucent white, and a strict\nrounded-12px container vocabulary. There is no decorative chrome — just\ntype, code, and atmospheric depth.\n",
6
+ "source": "embedded",
7
+ "status": "curated-reference",
8
+ "targets": [
9
+ "terminal",
10
+ "react"
11
+ ],
12
+ "contentPath": "packages/design-systems/library/resend.design.md",
13
+ "sourceContentHash": "99536f1b2380511a539f7f3466d46d351e4bf35a5af0c0df395bdc20af05c9be",
14
+ "normalizedContentHash": "bff7520e7107adba74cc2c0dafa0b513eb7069982031966915be64d0a6b18dd3",
15
+ "provenance": {
16
+ "sourceRepository": "VoltAgent/awesome-design-md",
17
+ "sourceRevision": "working-tree-curated-snapshot",
18
+ "sourcePath": "packages/design-systems/library/resend.design.md",
19
+ "license": "MIT"
20
+ },
21
+ "fonts": [
22
+ {
23
+ "family": "ABC Favorit",
24
+ "fallback": [
25
+ "system-ui",
26
+ "sans-serif"
27
+ ],
28
+ "redistributable": false
29
+ },
30
+ {
31
+ "family": "Domaine Display",
32
+ "fallback": [
33
+ "system-ui",
34
+ "sans-serif"
35
+ ],
36
+ "redistributable": false
37
+ },
38
+ {
39
+ "family": "Geist Mono",
40
+ "fallback": [
41
+ "system-ui",
42
+ "sans-serif"
43
+ ],
44
+ "redistributable": false
45
+ },
46
+ {
47
+ "family": "Helvetica",
48
+ "fallback": [
49
+ "system-ui",
50
+ "sans-serif"
51
+ ],
52
+ "redistributable": false
53
+ },
54
+ {
55
+ "family": "Inter",
56
+ "fallback": [
57
+ "system-ui",
58
+ "sans-serif"
59
+ ],
60
+ "redistributable": false
61
+ }
62
+ ],
63
+ "tokens": {
64
+ "colors": {
65
+ "accent-blue": "#3b9eff",
66
+ "accent-blue-glow": "rgba(0,117,255,0.34)",
67
+ "accent-green": "#11ff99",
68
+ "accent-green-glow": "rgba(34,255,153,0.18)",
69
+ "accent-orange": "#ff801f",
70
+ "accent-orange-glow": "rgba(255,89,0,0.22)",
71
+ "accent-red": "#ff2047",
72
+ "accent-red-glow": "rgba(255,32,71,0.34)",
73
+ "accent-yellow": "#ffc53d",
74
+ "ash": "#888e90",
75
+ "body": "rgba(252,253,255,0.86)",
76
+ "canvas": "#000000",
77
+ "charcoal": "rgba(252,253,255,0.7)",
78
+ "divider-soft": "rgba(255,255,255,0.04)",
79
+ "hairline": "rgba(255,255,255,0.06)",
80
+ "hairline-strong": "rgba(255,255,255,0.14)",
81
+ "ink": "#fcfdff",
82
+ "link": "#3b9eff",
83
+ "mute": "#a1a4a5",
84
+ "on-light": "#000000",
85
+ "on-light-mute": "rgba(0,0,51,0.7)",
86
+ "primary": "#fcfdff",
87
+ "primary-on": "#000000",
88
+ "stone": "#464a4d",
89
+ "surface-card": "#0a0a0c",
90
+ "surface-deep": "#06060a",
91
+ "surface-elevated": "#101012",
92
+ "surface-light": "#f1f7fe"
93
+ },
94
+ "typography": {
95
+ "display-xxl": {
96
+ "fontFamily": "Domaine Display",
97
+ "fontFeature": "ss01, ss04, ss11",
98
+ "fontSize": "96px",
99
+ "fontWeight": 400,
100
+ "letterSpacing": "-0.96px",
101
+ "lineHeight": 1
102
+ },
103
+ "display-xl": {
104
+ "fontFamily": "Domaine Display",
105
+ "fontFeature": "ss01, ss04, ss11",
106
+ "fontSize": "76.8px",
107
+ "fontWeight": 400,
108
+ "letterSpacing": "-0.768px",
109
+ "lineHeight": 1
110
+ },
111
+ "display-lg": {
112
+ "fontFamily": "ABC Favorit",
113
+ "fontFeature": "ss01, ss04, ss11",
114
+ "fontSize": "56px",
115
+ "fontWeight": 400,
116
+ "letterSpacing": "-2.8px",
117
+ "lineHeight": 1.2
118
+ },
119
+ "heading-md": {
120
+ "fontFamily": "Inter",
121
+ "fontSize": "24px",
122
+ "fontWeight": 500,
123
+ "letterSpacing": "-0.4px",
124
+ "lineHeight": 1.5
125
+ },
126
+ "heading-sm": {
127
+ "fontFamily": "Inter",
128
+ "fontSize": "20px",
129
+ "fontWeight": 500,
130
+ "letterSpacing": "-0.3px",
131
+ "lineHeight": 1.3
132
+ },
133
+ "subtitle": {
134
+ "fontFamily": "ABC Favorit",
135
+ "fontFeature": "ss01, ss04, ss11",
136
+ "fontSize": "20px",
137
+ "fontWeight": 400,
138
+ "lineHeight": 1.3
139
+ },
140
+ "body-lg": {
141
+ "fontFamily": "Inter",
142
+ "fontSize": "18px",
143
+ "fontWeight": 400,
144
+ "lineHeight": 1.5
145
+ },
146
+ "body-md": {
147
+ "fontFamily": "ABC Favorit",
148
+ "fontFeature": "ss01, ss04, ss11",
149
+ "fontSize": "16px",
150
+ "fontWeight": 400,
151
+ "letterSpacing": "-0.8px",
152
+ "lineHeight": 1.5
153
+ },
154
+ "body-sm": {
155
+ "fontFamily": "Inter",
156
+ "fontSize": "14px",
157
+ "fontWeight": 400,
158
+ "lineHeight": 1.43
159
+ },
160
+ "button-md": {
161
+ "fontFamily": "Inter",
162
+ "fontSize": "14px",
163
+ "fontWeight": 500,
164
+ "lineHeight": 1.43
165
+ },
166
+ "button-sm": {
167
+ "fontFamily": "ABC Favorit",
168
+ "fontFeature": "ss01, ss03, ss04",
169
+ "fontSize": "14px",
170
+ "fontWeight": 500,
171
+ "letterSpacing": "0.35px",
172
+ "lineHeight": 1.43
173
+ },
174
+ "caption": {
175
+ "fontFamily": "Inter",
176
+ "fontSize": "12px",
177
+ "fontWeight": 400,
178
+ "lineHeight": 1.5
179
+ },
180
+ "caption-emph": {
181
+ "fontFamily": "Helvetica",
182
+ "fontSize": "14px",
183
+ "fontWeight": 600,
184
+ "lineHeight": 1
185
+ },
186
+ "code-md": {
187
+ "fontFamily": "Geist Mono",
188
+ "fontSize": "13px",
189
+ "fontWeight": 400,
190
+ "lineHeight": 1.6
191
+ }
192
+ },
193
+ "spacing": {
194
+ "band": "128px",
195
+ "lg": "16px",
196
+ "md": "12px",
197
+ "section": "96px",
198
+ "sm": "8px",
199
+ "xl": "24px",
200
+ "xs": "4px",
201
+ "xxl": "32px",
202
+ "xxs": "2px",
203
+ "xxxl": "48px"
204
+ },
205
+ "radius": {
206
+ "full": "9999px",
207
+ "lg": "12px",
208
+ "md": "8px",
209
+ "none": "0px",
210
+ "sm": "6px",
211
+ "xl": "16px",
212
+ "xs": "4px"
213
+ },
214
+ "components": {
215
+ "button-primary": {
216
+ "backgroundColor": "{colors.primary}",
217
+ "height": "36px",
218
+ "padding": "8px 16px",
219
+ "rounded": "{rounded.md}",
220
+ "textColor": "{colors.primary-on}",
221
+ "typography": "{typography.button-md}"
222
+ },
223
+ "button-primary-pressed": {
224
+ "backgroundColor": "{colors.surface-light}",
225
+ "rounded": "{rounded.md}",
226
+ "textColor": "{colors.primary-on}",
227
+ "typography": "{typography.button-md}"
228
+ },
229
+ "button-ghost": {
230
+ "backgroundColor": "{colors.surface-elevated}",
231
+ "height": "36px",
232
+ "padding": "8px 16px",
233
+ "rounded": "{rounded.md}",
234
+ "textColor": "{colors.ink}",
235
+ "typography": "{typography.button-md}"
236
+ },
237
+ "button-outline": {
238
+ "backgroundColor": "{colors.canvas}",
239
+ "height": "36px",
240
+ "padding": "7px 15px",
241
+ "rounded": "{rounded.md}",
242
+ "textColor": "{colors.ink}",
243
+ "typography": "{typography.button-md}"
244
+ },
245
+ "text-input": {
246
+ "backgroundColor": "{colors.surface-card}",
247
+ "height": "40px",
248
+ "padding": "10px 14px",
249
+ "rounded": "{rounded.md}",
250
+ "textColor": "{colors.ink}",
251
+ "typography": "{typography.body-sm}"
252
+ },
253
+ "hero-stripe": {
254
+ "backgroundColor": "{colors.canvas}",
255
+ "padding": "96px 32px",
256
+ "rounded": "{rounded.none}",
257
+ "textColor": "{colors.ink}",
258
+ "typography": "{typography.display-xxl}"
259
+ },
260
+ "feature-card": {
261
+ "backgroundColor": "{colors.surface-card}",
262
+ "padding": "32px",
263
+ "rounded": "{rounded.lg}",
264
+ "textColor": "{colors.ink}",
265
+ "typography": "{typography.body-md}"
266
+ },
267
+ "feature-card-bordered": {
268
+ "backgroundColor": "{colors.surface-card}",
269
+ "padding": "32px",
270
+ "rounded": "{rounded.lg}",
271
+ "textColor": "{colors.ink}",
272
+ "typography": "{typography.body-md}"
273
+ },
274
+ "pricing-tier": {
275
+ "backgroundColor": "{colors.surface-card}",
276
+ "padding": "32px",
277
+ "rounded": "{rounded.lg}",
278
+ "textColor": "{colors.ink}",
279
+ "typography": "{typography.body-md}"
280
+ },
281
+ "pricing-tier-featured": {
282
+ "backgroundColor": "{colors.surface-elevated}",
283
+ "padding": "32px",
284
+ "rounded": "{rounded.lg}",
285
+ "textColor": "{colors.ink}",
286
+ "typography": "{typography.body-md}"
287
+ },
288
+ "code-window": {
289
+ "backgroundColor": "{colors.surface-deep}",
290
+ "padding": "24px",
291
+ "rounded": "{rounded.lg}",
292
+ "textColor": "{colors.body}",
293
+ "typography": "{typography.code-md}"
294
+ },
295
+ "code-tab": {
296
+ "backgroundColor": "{colors.surface-card}",
297
+ "padding": "6px 12px",
298
+ "rounded": "{rounded.sm}",
299
+ "textColor": "{colors.charcoal}",
300
+ "typography": "{typography.code-md}"
301
+ },
302
+ "email-mockup": {
303
+ "backgroundColor": "{colors.surface-card}",
304
+ "padding": 0,
305
+ "rounded": "{rounded.lg}",
306
+ "textColor": "{colors.ink}",
307
+ "typography": "{typography.body-md}"
308
+ },
309
+ "badge-pill": {
310
+ "backgroundColor": "{colors.surface-elevated}",
311
+ "padding": "4px 10px",
312
+ "rounded": "{rounded.full}",
313
+ "textColor": "{colors.body}",
314
+ "typography": "{typography.caption}"
315
+ },
316
+ "status-dot": {
317
+ "backgroundColor": "{colors.accent-green}",
318
+ "rounded": "{rounded.full}",
319
+ "size": "8px"
320
+ },
321
+ "nav-bar": {
322
+ "backgroundColor": "{colors.canvas}",
323
+ "height": "64px",
324
+ "rounded": "{rounded.none}",
325
+ "textColor": "{colors.body}",
326
+ "typography": "{typography.button-sm}"
327
+ },
328
+ "sub-nav-pill": {
329
+ "backgroundColor": "{colors.surface-elevated}",
330
+ "padding": "6px 14px",
331
+ "rounded": "{rounded.full}",
332
+ "textColor": "{colors.body}",
333
+ "typography": "{typography.button-sm}"
334
+ },
335
+ "contributor-avatar": {
336
+ "backgroundColor": "{colors.surface-card}",
337
+ "rounded": "{rounded.full}",
338
+ "size": "32px"
339
+ },
340
+ "footer": {
341
+ "backgroundColor": "{colors.canvas}",
342
+ "padding": "64px 32px",
343
+ "rounded": "{rounded.none}",
344
+ "textColor": "{colors.charcoal}",
345
+ "typography": "{typography.body-sm}"
346
+ }
347
+ },
348
+ "extensions": {
349
+ "description": "Resend's marketing surfaces sit on a near-pure black canvas with off-white\ntext and a single signature color — the deep editorial-serif Domaine\nDisplay headline mark — that gives an otherwise utilitarian developer-tool\nbrand its print-magazine confidence. The system pairs Domaine Display\n(oversized 76px–96px serif, ss01/ss04/ss11 features on) with ABC Favorit\nfor body and Inter for UI. Surfaces rely on subtle 6–9% opacity gradient\nglows, hairline 1px borders made from translucent white, and a strict\nrounded-12px container vocabulary. There is no decorative chrome — just\ntype, code, and atmospheric depth.\n",
350
+ "name": "Resend-design-analysis",
351
+ "version": "alpha"
352
+ }
353
+ }
354
+ }
355
+
356
+ ---
357
+
358
+ ---
359
+ version: alpha
360
+ name: Resend-design-analysis
361
+ description: |
362
+ Resend's marketing surfaces sit on a near-pure black canvas with off-white
363
+ text and a single signature color — the deep editorial-serif Domaine
364
+ Display headline mark — that gives an otherwise utilitarian developer-tool
365
+ brand its print-magazine confidence. The system pairs Domaine Display
366
+ (oversized 76px–96px serif, ss01/ss04/ss11 features on) with ABC Favorit
367
+ for body and Inter for UI. Surfaces rely on subtle 6–9% opacity gradient
368
+ glows, hairline 1px borders made from translucent white, and a strict
369
+ rounded-12px container vocabulary. There is no decorative chrome — just
370
+ type, code, and atmospheric depth.
371
+
372
+ colors:
373
+ primary: "#fcfdff"
374
+ primary-on: "#000000"
375
+ ink: "#fcfdff"
376
+ body: "rgba(252,253,255,0.86)"
377
+ charcoal: "rgba(252,253,255,0.7)"
378
+ mute: "#a1a4a5"
379
+ ash: "#888e90"
380
+ stone: "#464a4d"
381
+ on-light: "#000000"
382
+ on-light-mute: "rgba(0,0,51,0.7)"
383
+ canvas: "#000000"
384
+ surface-card: "#0a0a0c"
385
+ surface-elevated: "#101012"
386
+ surface-deep: "#06060a"
387
+ hairline: "rgba(255,255,255,0.06)"
388
+ hairline-strong: "rgba(255,255,255,0.14)"
389
+ divider-soft: "rgba(255,255,255,0.04)"
390
+ accent-orange: "#ff801f"
391
+ accent-orange-glow: "rgba(255,89,0,0.22)"
392
+ accent-yellow: "#ffc53d"
393
+ accent-blue: "#3b9eff"
394
+ accent-blue-glow: "rgba(0,117,255,0.34)"
395
+ accent-green: "#11ff99"
396
+ accent-green-glow: "rgba(34,255,153,0.18)"
397
+ accent-red: "#ff2047"
398
+ accent-red-glow: "rgba(255,32,71,0.34)"
399
+ link: "#3b9eff"
400
+ surface-light: "#f1f7fe"
401
+
402
+ typography:
403
+ display-xxl:
404
+ fontFamily: Domaine Display
405
+ fontSize: 96px
406
+ fontWeight: 400
407
+ lineHeight: 1.0
408
+ letterSpacing: -0.96px
409
+ fontFeature: "ss01, ss04, ss11"
410
+ display-xl:
411
+ fontFamily: Domaine Display
412
+ fontSize: 76.8px
413
+ fontWeight: 400
414
+ lineHeight: 1.0
415
+ letterSpacing: -0.768px
416
+ fontFeature: "ss01, ss04, ss11"
417
+ display-lg:
418
+ fontFamily: ABC Favorit
419
+ fontSize: 56px
420
+ fontWeight: 400
421
+ lineHeight: 1.2
422
+ letterSpacing: -2.8px
423
+ fontFeature: "ss01, ss04, ss11"
424
+ heading-md:
425
+ fontFamily: Inter
426
+ fontSize: 24px
427
+ fontWeight: 500
428
+ lineHeight: 1.5
429
+ letterSpacing: -0.4px
430
+ heading-sm:
431
+ fontFamily: Inter
432
+ fontSize: 20px
433
+ fontWeight: 500
434
+ lineHeight: 1.3
435
+ letterSpacing: -0.3px
436
+ subtitle:
437
+ fontFamily: ABC Favorit
438
+ fontSize: 20px
439
+ fontWeight: 400
440
+ lineHeight: 1.3
441
+ fontFeature: "ss01, ss04, ss11"
442
+ body-lg:
443
+ fontFamily: Inter
444
+ fontSize: 18px
445
+ fontWeight: 400
446
+ lineHeight: 1.5
447
+ body-md:
448
+ fontFamily: ABC Favorit
449
+ fontSize: 16px
450
+ fontWeight: 400
451
+ lineHeight: 1.5
452
+ letterSpacing: -0.8px
453
+ fontFeature: "ss01, ss04, ss11"
454
+ body-sm:
455
+ fontFamily: Inter
456
+ fontSize: 14px
457
+ fontWeight: 400
458
+ lineHeight: 1.43
459
+ button-md:
460
+ fontFamily: Inter
461
+ fontSize: 14px
462
+ fontWeight: 500
463
+ lineHeight: 1.43
464
+ button-sm:
465
+ fontFamily: ABC Favorit
466
+ fontSize: 14px
467
+ fontWeight: 500
468
+ lineHeight: 1.43
469
+ letterSpacing: 0.35px
470
+ fontFeature: "ss01, ss03, ss04"
471
+ caption:
472
+ fontFamily: Inter
473
+ fontSize: 12px
474
+ fontWeight: 400
475
+ lineHeight: 1.5
476
+ caption-emph:
477
+ fontFamily: Helvetica
478
+ fontSize: 14px
479
+ fontWeight: 600
480
+ lineHeight: 1.0
481
+ code-md:
482
+ fontFamily: Geist Mono
483
+ fontSize: 13px
484
+ fontWeight: 400
485
+ lineHeight: 1.6
486
+
487
+ rounded:
488
+ none: 0px
489
+ xs: 4px
490
+ sm: 6px
491
+ md: 8px
492
+ lg: 12px
493
+ xl: 16px
494
+ full: 9999px
495
+
496
+ spacing:
497
+ xxs: 2px
498
+ xs: 4px
499
+ sm: 8px
500
+ md: 12px
501
+ lg: 16px
502
+ xl: 24px
503
+ xxl: 32px
504
+ xxxl: 48px
505
+ section: 96px
506
+ band: 128px
507
+
508
+ components:
509
+ button-primary:
510
+ backgroundColor: "{colors.primary}"
511
+ textColor: "{colors.primary-on}"
512
+ typography: "{typography.button-md}"
513
+ rounded: "{rounded.md}"
514
+ padding: 8px 16px
515
+ height: 36px
516
+ button-primary-pressed:
517
+ backgroundColor: "{colors.surface-light}"
518
+ textColor: "{colors.primary-on}"
519
+ typography: "{typography.button-md}"
520
+ rounded: "{rounded.md}"
521
+ button-ghost:
522
+ backgroundColor: "{colors.surface-elevated}"
523
+ textColor: "{colors.ink}"
524
+ typography: "{typography.button-md}"
525
+ rounded: "{rounded.md}"
526
+ padding: 8px 16px
527
+ height: 36px
528
+ button-outline:
529
+ backgroundColor: "{colors.canvas}"
530
+ textColor: "{colors.ink}"
531
+ typography: "{typography.button-md}"
532
+ rounded: "{rounded.md}"
533
+ padding: 7px 15px
534
+ height: 36px
535
+ text-input:
536
+ backgroundColor: "{colors.surface-card}"
537
+ textColor: "{colors.ink}"
538
+ typography: "{typography.body-sm}"
539
+ rounded: "{rounded.md}"
540
+ padding: 10px 14px
541
+ height: 40px
542
+ hero-stripe:
543
+ backgroundColor: "{colors.canvas}"
544
+ textColor: "{colors.ink}"
545
+ typography: "{typography.display-xxl}"
546
+ rounded: "{rounded.none}"
547
+ padding: 96px 32px
548
+ feature-card:
549
+ backgroundColor: "{colors.surface-card}"
550
+ textColor: "{colors.ink}"
551
+ typography: "{typography.body-md}"
552
+ rounded: "{rounded.lg}"
553
+ padding: 32px
554
+ feature-card-bordered:
555
+ backgroundColor: "{colors.surface-card}"
556
+ textColor: "{colors.ink}"
557
+ typography: "{typography.body-md}"
558
+ rounded: "{rounded.lg}"
559
+ padding: 32px
560
+ pricing-tier:
561
+ backgroundColor: "{colors.surface-card}"
562
+ textColor: "{colors.ink}"
563
+ typography: "{typography.body-md}"
564
+ rounded: "{rounded.lg}"
565
+ padding: 32px
566
+ pricing-tier-featured:
567
+ backgroundColor: "{colors.surface-elevated}"
568
+ textColor: "{colors.ink}"
569
+ typography: "{typography.body-md}"
570
+ rounded: "{rounded.lg}"
571
+ padding: 32px
572
+ code-window:
573
+ backgroundColor: "{colors.surface-deep}"
574
+ textColor: "{colors.body}"
575
+ typography: "{typography.code-md}"
576
+ rounded: "{rounded.lg}"
577
+ padding: 24px
578
+ code-tab:
579
+ backgroundColor: "{colors.surface-card}"
580
+ textColor: "{colors.charcoal}"
581
+ typography: "{typography.code-md}"
582
+ rounded: "{rounded.sm}"
583
+ padding: 6px 12px
584
+ email-mockup:
585
+ backgroundColor: "{colors.surface-card}"
586
+ textColor: "{colors.ink}"
587
+ typography: "{typography.body-md}"
588
+ rounded: "{rounded.lg}"
589
+ padding: 0
590
+ badge-pill:
591
+ backgroundColor: "{colors.surface-elevated}"
592
+ textColor: "{colors.body}"
593
+ typography: "{typography.caption}"
594
+ rounded: "{rounded.full}"
595
+ padding: 4px 10px
596
+ status-dot:
597
+ backgroundColor: "{colors.accent-green}"
598
+ rounded: "{rounded.full}"
599
+ size: 8px
600
+ nav-bar:
601
+ backgroundColor: "{colors.canvas}"
602
+ textColor: "{colors.body}"
603
+ typography: "{typography.button-sm}"
604
+ rounded: "{rounded.none}"
605
+ height: 64px
606
+ sub-nav-pill:
607
+ backgroundColor: "{colors.surface-elevated}"
608
+ textColor: "{colors.body}"
609
+ typography: "{typography.button-sm}"
610
+ rounded: "{rounded.full}"
611
+ padding: 6px 14px
612
+ contributor-avatar:
613
+ backgroundColor: "{colors.surface-card}"
614
+ rounded: "{rounded.full}"
615
+ size: 32px
616
+ footer:
617
+ backgroundColor: "{colors.canvas}"
618
+ textColor: "{colors.charcoal}"
619
+ typography: "{typography.body-sm}"
620
+ rounded: "{rounded.none}"
621
+ padding: 64px 32px
622
+ ---
623
+
624
+ ## Overview
625
+
626
+ Resend looks like a developer tool with the typography of an editorial.
627
+ Every page opens on `{colors.canvas}` (`#000000`), and the loudest element on
628
+ the canvas is not a button or a brand stamp — it's a 96px Domaine Display
629
+ serif headline ("Email for developers", "Email reimagined") with the
630
+ `ss01 / ss04 / ss11` stylistic alternates engaged. That single typographic
631
+ decision sets the brand tone: confident, considered, slightly literary, and
632
+ priced on quality rather than novelty.
633
+
634
+ The supporting cast is technical. Body copy switches to **ABC Favorit** for
635
+ marketing prose and **Inter** for UI labels, while code blocks render in
636
+ **Geist Mono** inside `{component.code-window}` shells with hairline traffic-
637
+ light dots. Surface depth is built almost entirely from translucent white —
638
+ 6% borders, 14% strong borders, 4% dividers — over a deep `{colors.surface-deep}`
639
+ layer that sits just below the canvas black. There are no gradients painted
640
+ across full bands, just **soft atmospheric glows** (orange, blue, green, red,
641
+ yellow) anchored at the top of select sections, all at low opacity.
642
+
643
+ Page rhythm cycles in a single dark register: hero stripe → atmospheric
644
+ section → code window section → email mockup section → pricing or feature
645
+ grid → black footer. The brand never warms to a light surface; even
646
+ secondary email mockups are rendered as compact white cards inside the dark
647
+ canvas, framed like print insets in a black-bordered magazine page.
648
+
649
+ **Key Characteristics:**
650
+ - Pure black canvas (`{colors.canvas}` — `#000000`) on every public page; off-white text (`{colors.ink}` — `#fcfdff`) carries the full read.
651
+ - A serif-led type system: **Domaine Display** at 76–96px for hero headlines, **ABC Favorit** for marketing body, **Inter** for UI, **Geist Mono** for code.
652
+ - Six accent glow colours used only as low-opacity atmospheric washes (`{colors.accent-orange}`, `{colors.accent-blue}`, `{colors.accent-green}`, `{colors.accent-red}`, `{colors.accent-yellow}`) — never as buttons or solid surfaces.
653
+ - Strict container vocabulary: `{rounded.lg}` (12px) for feature cards, code wells, and email mockups; `{rounded.md}` (8px) for buttons; `{rounded.full}` for pills and avatars.
654
+ - Translucent white borders (`{colors.hairline}` 6% / `{colors.hairline-strong}` 14%) replace shadows entirely — the system has no traditional drop-shadow elevation language.
655
+ - `{component.button-primary}` is a small white rectangle with black text — counterintuitive contrast that becomes the page's brightest pixel and works as a single visual anchor.
656
+
657
+ ## Colors
658
+
659
+ ### Brand & Accent
660
+ - **Primary White** (`{colors.primary}` — `#fcfdff`): the brand's de facto accent. Reserved for `{component.button-primary}` (white pill on black canvas), Domaine display headlines, and the active text colour. White is the loudest possible colour on this canvas — that's the signature.
661
+ - **Primary On** (`{colors.primary-on}` — `#000000`): label colour on top of `{colors.primary}` surfaces. Black text on white pill is the brand's CTA pattern.
662
+ - **Surface Light** (`{colors.surface-light}` — `#f1f7fe`): a subtle blue-tinted off-white used as the active/pressed state of `{component.button-primary}`.
663
+
664
+ ### Surface
665
+ - **Canvas** (`{colors.canvas}` — `#000000`): the default page background. True black, never near-black.
666
+ - **Surface Card** (`{colors.surface-card}` — `#0a0a0c`): the standard inset card surface, just lighter than canvas to register a step up in elevation.
667
+ - **Surface Elevated** (`{colors.surface-elevated}` — `#101012`): a second elevation step used on featured pricing tiers and ghost button surfaces.
668
+ - **Surface Deep** (`{colors.surface-deep}` — `#06060a`): code window background — slightly cooler and darker than the canvas itself, suggesting depth via temperature.
669
+ - **Hairline** (`{colors.hairline}` — `rgba(255,255,255,0.06)`): the soft 1px translucent-white divider used between rows and around feature cards.
670
+ - **Hairline Strong** (`{colors.hairline-strong}` — `rgba(255,255,255,0.14)`): the structural 1px border on cards, code wells, and form inputs.
671
+ - **Divider Soft** (`{colors.divider-soft}` — `rgba(255,255,255,0.04)`): low-contrast dividers between footer columns.
672
+
673
+ ### Text
674
+ - **Ink** (`{colors.ink}` — `#fcfdff`): primary text colour on the dark canvas. Faintly blue-cool to feel like printed paper rather than pure white pop.
675
+ - **Body** (`{colors.body}` — `rgba(252,253,255,0.86)`): long-form body text where pure ink would feel too sharp.
676
+ - **Charcoal** (`{colors.charcoal}` — `rgba(252,253,255,0.7)`): captions, secondary nav labels.
677
+ - **Mute** (`{colors.mute}` — `#a1a4a5`): supporting text and inactive labels.
678
+ - **Ash** (`{colors.ash}` — `#888e90`): tertiary text, footer copy.
679
+ - **Stone** (`{colors.stone}` — `#464a4d`): disabled foreground.
680
+ - **On-Light** (`{colors.on-light}` — `#000000`): label colour inside the rare email-mockup white cards.
681
+ - **On-Light Mute** (`{colors.on-light-mute}` — `rgba(0,0,51,0.7)`): secondary text inside email mockups.
682
+
683
+ ### Semantic
684
+ - **Accent Orange** (`{colors.accent-orange}` — `#ff801f`) + glow (`{colors.accent-orange-glow}` — `rgba(255,89,0,0.22)`): atmospheric warm wash anchored to "Email reimagined" / customer story sections. Solid orange never appears as a button or surface — only the glow.
685
+ - **Accent Yellow** (`{colors.accent-yellow}` — `#ffc53d`): used in inline highlight strokes and "first-class developer experience" key callouts.
686
+ - **Accent Blue** (`{colors.accent-blue}` — `#3b9eff`) + glow (`{colors.accent-blue-glow}` — `rgba(0,117,255,0.34)`): inline link colour and the cool atmospheric wash on the "Integrate this weekend" section.
687
+ - **Accent Green** (`{colors.accent-green}` — `#11ff99`) + glow (`{colors.accent-green-glow}` — `rgba(34,255,153,0.18)`): success status dots and the "delivery confirmed" feature glow.
688
+ - **Accent Red** (`{colors.accent-red}` — `#ff2047`) + glow (`{colors.accent-red-glow}` — `rgba(255,32,71,0.34)`): inline error red and the "reach humans, not spam folders" attention wash.
689
+ - **Link** (`{colors.link}` — `#3b9eff`): inline link colour — same as accent blue.
690
+
691
+ ## Typography
692
+
693
+ ### Font Family
694
+
695
+ Resend ships a four-family stack:
696
+
697
+ - **Domaine Display** — proprietary editorial serif used exclusively for hero headlines at 76px+, with `ss01 / ss04 / ss11` stylistic sets engaged for a slightly tighter, more print-magazine look.
698
+ - **ABC Favorit** — proprietary humanist sans-serif used for marketing body copy, hero subtitles, and pill labels. Carries `ss01 / ss03 / ss04` features for tabular figures and alternate glyphs.
699
+ - **Inter** — open-source sans-serif used for UI: button labels, captions, card body text, nav links.
700
+ - **Geist Mono** — open-source monospace used in code wells.
701
+
702
+ When proprietary families cannot be licensed, **Söhne** or **Tiempos Headline** stand in for Domaine Display, and **Geist** or **Inter Tight** can replace ABC Favorit. Inter and Geist Mono are open-source and should be used directly.
703
+
704
+ ### Hierarchy
705
+
706
+ | Token | Size | Weight | Line Height | Letter Spacing | Use |
707
+ |---|---|---|---|---|---|
708
+ | `{typography.display-xxl}` | 96px | 400 | 1.0 | -0.96px | Home hero ("Email for developers"). One per page. |
709
+ | `{typography.display-xl}` | 76.8px | 400 | 1.0 | -0.768px | Section openers ("Email reimagined", "Available today"). |
710
+ | `{typography.display-lg}` | 56px | 400 | 1.2 | -2.8px | ABC Favorit display sub-titles. |
711
+ | `{typography.heading-md}` | 24px | 500 | 1.5 | -0.4px | Card titles, section sub-titles. |
712
+ | `{typography.heading-sm}` | 20px | 500 | 1.3 | -0.3px | List headers. |
713
+ | `{typography.subtitle}` | 20px | 400 | 1.3 | 0 | Hero subtitles. |
714
+ | `{typography.body-lg}` | 18px | 400 | 1.5 | 0 | Marketing prose. |
715
+ | `{typography.body-md}` | 16px | 400 | 1.5 | -0.8px | ABC Favorit body. |
716
+ | `{typography.body-sm}` | 14px | 400 | 1.43 | 0 | Captions, metadata. |
717
+ | `{typography.button-md}` | 14px | 500 | 1.43 | 0 | Default button label. |
718
+ | `{typography.button-sm}` | 14px | 500 | 1.43 | 0.35px | Pill labels, inline links. |
719
+ | `{typography.caption}` | 12px | 400 | 1.5 | 0 | Footer disclosure, copyright. |
720
+ | `{typography.caption-emph}` | 14px | 600 | 1.0 | 0 | Emphatic small caption — Helvetica fallback. |
721
+ | `{typography.code-md}` | 13px | 400 | 1.6 | 0 | Code blocks, inline code. |
722
+
723
+ ### Principles
724
+ - Display sizes always run at `lineHeight: 1.0` with negative letter-spacing — the Domaine Display headlines pack into solid typographic blocks rather than open prose lines.
725
+ - Body weight stays at 400 across `{typography.body-lg}` and `{typography.body-md}`. The serif/sans family change carries hierarchy, not weight bumps.
726
+ - ABC Favorit always runs with `ss01 / ss04 / ss11` engaged; Inter never carries OpenType features. Code in Geist Mono never carries ligatures.
727
+ - Inline links use `{typography.button-sm}` with positive letter-spacing (`0.35px`) and ABC Favorit — the small spacing nudge gives interactive prose its precision.
728
+
729
+ ### Note on Font Substitutes
730
+
731
+ When Domaine Display is unavailable, clamp `lineHeight` to 1.0 explicitly and apply `font-feature-settings: "ss01", "liga"` on the substitute serif to mimic the alternate glyphs. Söhne or Tiempos Headline will read closest. ABC Favorit substitutes (Geist, Inter Tight) typically default to looser tracking — apply -0.5% letter-spacing on body sizes to compensate.
732
+
733
+ ## Layout
734
+
735
+ ### Spacing System
736
+ - **Base unit**: 4px, with the working scale on multiples of 4 / 8 / 16.
737
+ - **Tokens**: `{spacing.xxs}` 2px · `{spacing.xs}` 4px · `{spacing.sm}` 8px · `{spacing.md}` 12px · `{spacing.lg}` 16px · `{spacing.xl}` 24px · `{spacing.xxl}` 32px · `{spacing.xxxl}` 48px · `{spacing.section}` 96px · `{spacing.band}` 128px.
738
+ - Section padding: `{spacing.section}` (96px) vertical between bands; `{spacing.band}` (128px) on the hero stripe and closing footer transition.
739
+ - Card internal padding: `{spacing.xxl}` (32px) on `{component.feature-card}`, `{component.pricing-tier}`, and `{component.code-window}`.
740
+
741
+ ### Grid & Container
742
+ - **Max content width** ≈ 1200px on body sections.
743
+ - **Feature grid**: 3 columns at desktop, 2 at tablet, 1 at mobile.
744
+ - **Pricing**: 3-tier grid centred at desktop; centre tier promotes to `{component.pricing-tier-featured}` (one-step-elevated surface).
745
+ - **Code-story splits**: a 2-up split — narrative copy left, `{component.code-window}` right — collapsing to stacked at < 1024px.
746
+ - **Email mockup band**: a single white card (640px max width) centred in the dark canvas with generous vertical padding to read like a print magazine inset.
747
+
748
+ ### Whitespace Philosophy
749
+ - Whitespace is editorial and generous — full-bleed sections breathe at 96–128px so Domaine Display headlines have room to register at scale.
750
+ - Inside cards, padding stays at 32px so feature copy and code wells have a consistent rhythm with the outer grid.
751
+ - Hairline `{colors.hairline}` and `{colors.hairline-strong}` carry the role drop shadows would in a brighter system; the dark canvas suppresses traditional shadow depth entirely.
752
+
753
+ ## Elevation & Depth
754
+
755
+ | Level | Treatment | Use |
756
+ |---|---|---|
757
+ | 0 — flat | No shadow, no border | Default canvas, full-bleed bands. |
758
+ | 1 — surface card | `{colors.surface-card}` (`#0a0a0c`) + 1px `{colors.hairline-strong}` | Feature cards, pricing tiers, form inputs. |
759
+ | 2 — elevated | `{colors.surface-elevated}` (`#101012`) + 1px `{colors.hairline-strong}` | Featured pricing tier, ghost button. |
760
+ | 3 — code well | `{colors.surface-deep}` (`#06060a`) + 1px `{colors.hairline-strong}` | Code window, terminal shells. |
761
+ | 4 — atmospheric glow | Low-opacity radial gradient (`{colors.accent-*-glow}`) anchored at section top | Section openers ("Integrate this weekend", "Email reimagined"). |
762
+
763
+ The system has **no traditional drop shadow language**. Every surface either gets a translucent-white hairline border or sits inside an atmospheric glow. The dark canvas absorbs shadow naturally; surfaces register depth via temperature and luminance shifts rather than blur.
764
+
765
+ ### Decorative Depth
766
+ - **Atmospheric section glows** — six accent colours each with a paired glow token (orange, yellow, blue, green, red, plus a deep slate for "everything in your context"). Each section opens with a single radial wash anchored at the top edge of the section, falling off to canvas black within ~600px vertical distance. Never two glows in the same section.
767
+ - **Email card insets** — the "Beyond experience" mockup band lifts a single white email card off the black canvas, giving it the only true light-on-dark contrast in the system. The card uses no shadow; the contrast itself is the elevation.
768
+ - **Code window traffic lights** — `{component.code-window}` shells include a row of three coloured dots (red `{colors.accent-red}`, yellow `{colors.accent-yellow}`, green `{colors.accent-green}`) at the top — the only place all three semantic colours appear together as solid surfaces.
769
+
770
+ ## Shapes
771
+
772
+ ### Border Radius Scale
773
+
774
+ | Token | Value | Use |
775
+ |---|---|---|
776
+ | `{rounded.none}` | 0px | Hero stripe, full-bleed bands, footer. |
777
+ | `{rounded.xs}` | 4px | Inline tags inside code wells. |
778
+ | `{rounded.sm}` | 6px | Code tabs, mid-size chips. |
779
+ | `{rounded.md}` | 8px | Buttons, form inputs. |
780
+ | `{rounded.lg}` | 12px | Feature cards, pricing tiers, code wells, email mockups. |
781
+ | `{rounded.xl}` | 16px | Larger feature panels. |
782
+ | `{rounded.full}` | 9999px | Pills, status dots, contributor avatars. |
783
+
784
+ ### Photography Geometry
785
+ - The system uses almost no photography. Visual interest comes from typography + atmospheric glows + code wells + the white email-card insets.
786
+ - When portraits appear (testimonial avatars), they are circular (`{rounded.full}`) at 32px, sitting inline with body copy.
787
+ - Email mockup cards run at 4:5 portrait aspect with `{rounded.lg}` corners.
788
+
789
+ ## Components
790
+
791
+ ### Buttons
792
+
793
+ **`button-primary`** — white CTA
794
+ - Background `{colors.primary}`, label `{colors.primary-on}`, type `{typography.button-md}`, padding `8px 16px`, `rounded: {rounded.md}`, height 36px.
795
+ - The brightest pixel on the canvas. Used for "Get started", "Sign up", "Try Resend".
796
+ - Pressed state lives in `button-primary-pressed` (background `{colors.surface-light}`).
797
+
798
+ **`button-ghost`** — translucent CTA
799
+ - Background `{colors.surface-elevated}`, label `{colors.ink}`, 1px `{colors.hairline-strong}`, type `{typography.button-md}`, `rounded: {rounded.md}`, height 36px.
800
+ - Equal-weight secondary action paired with `{component.button-primary}`.
801
+
802
+ **`button-outline`** — outlined CTA
803
+ - Background `{colors.canvas}`, label `{colors.ink}`, 1px `{colors.hairline-strong}`, type `{typography.button-md}`, `rounded: {rounded.md}`, height 36px.
804
+ - Tertiary action; appears on its own next to inline links.
805
+
806
+ ### Cards & Containers
807
+
808
+ **`hero-stripe`** — full-bleed hero
809
+ - Background `{colors.canvas}`, text `{colors.ink}`, type `{typography.display-xxl}` for the headline, padding `96px 32px`, `rounded: {rounded.none}`.
810
+ - Used only on the home page hero band; carries the 96px Domaine Display headline and a single `{component.button-primary}` CTA. No photography, no atmospheric glow inside the hero itself — the glow appears on the section that follows.
811
+
812
+ **`feature-card`** — feature highlight card
813
+ - Background `{colors.surface-card}`, text `{colors.ink}`, type `{typography.body-md}`, `rounded: {rounded.lg}`, padding `{spacing.xxl}` (32px).
814
+ - Used in the home grid: "Despite emails using React", "So beyond editing", etc. No outline by default — relies on canvas black contrast.
815
+
816
+ **`feature-card-bordered`** — outlined feature card
817
+ - Background `{colors.surface-card}`, text `{colors.ink}`, 1px `{colors.hairline-strong}`, type `{typography.body-md}`, `rounded: {rounded.lg}`, padding `{spacing.xxl}`.
818
+ - Used when feature cards sit close together and need explicit separation.
819
+
820
+ **`pricing-tier`** — pricing tier card
821
+ - Background `{colors.surface-card}`, text `{colors.ink}`, 1px `{colors.hairline-strong}`, type `{typography.body-md}`, `rounded: {rounded.lg}`, padding `{spacing.xxl}` (32px).
822
+ - Tier name in `{typography.heading-md}` + price in `{typography.display-lg}` (ABC Favorit, 56px).
823
+
824
+ **`pricing-tier-featured`** — recommended tier
825
+ - Background `{colors.surface-elevated}`, text `{colors.ink}`, 1px `{colors.hairline-strong}`, type `{typography.body-md}`, `rounded: {rounded.lg}`, padding `{spacing.xxl}`.
826
+ - Centre tier elevated by surface luminance, not by colour.
827
+
828
+ **`code-window`** — code well
829
+ - Background `{colors.surface-deep}`, text `{colors.body}`, type `{typography.code-md}`, 1px `{colors.hairline-strong}`, `rounded: {rounded.lg}`, padding `{spacing.xl}` (24px).
830
+ - Includes a 3-dot traffic-light row at top using `{colors.accent-red}` / `{colors.accent-yellow}` / `{colors.accent-green}` for chrome, plus a tab strip below it.
831
+
832
+ **`code-tab`** — code language tab
833
+ - Background `{colors.surface-card}`, text `{colors.charcoal}`, type `{typography.code-md}`, `rounded: {rounded.sm}`, padding `6px 12px`.
834
+ - Active tab bumps text to `{colors.ink}` and adds a subtle `{colors.hairline-strong}` underline.
835
+
836
+ **`email-mockup`** — email-card inset
837
+ - Background `{colors.surface-card}` (or the rare `#ffffff` when rendered as a light-island inset), text `{colors.ink}` (or `{colors.on-light}` for white insets), type `{typography.body-md}`, `rounded: {rounded.lg}`, padding 0.
838
+ - Used in the "Beyond experience" band to demonstrate rendered email output.
839
+
840
+ ### Inputs & Forms
841
+
842
+ **`text-input`** — default input
843
+ - Background `{colors.surface-card}`, text `{colors.ink}`, type `{typography.body-sm}`, 1px `{colors.hairline-strong}`, `rounded: {rounded.md}`, padding `10px 14px`, height 40px.
844
+ - Sign-up and waitlist email fields. Focus state thickens the border to `{colors.ink}` (no separate ring colour).
845
+
846
+ ### Navigation
847
+
848
+ **`nav-bar`** — top nav (desktop)
849
+ - Background `{colors.canvas}`, text `{colors.body}`, type `{typography.button-sm}`, height 64px, single hairline `{colors.hairline}` bottom border.
850
+ - Left: wordmark logo. Centre: top-level nav ("Features", "Pricing", "Docs", "Customers"). Right: "Sign in" link + `{component.button-primary}`.
851
+
852
+ **`nav-bar`** (mobile)
853
+ - Same height 64px, collapses centre nav into a hamburger icon. Logo stays left, sign-in CTA stays right.
854
+
855
+ **`sub-nav-pill`** — pill-style sub-nav
856
+ - Pill chips set in a horizontal row above content (e.g. on the customers index), `{component.sub-nav-pill}` styling.
857
+
858
+ ### Signature Components
859
+
860
+ **`badge-pill`** — neutral pill
861
+ - Background `{colors.surface-elevated}`, text `{colors.body}`, type `{typography.caption}`, `rounded: {rounded.full}`, padding `4px 10px`.
862
+ - Inline tags ("New", "Beta", "v3.0") inside hero copy and customer story headers.
863
+
864
+ **`status-dot`** — status indicator
865
+ - Background `{colors.accent-green}`, `rounded: {rounded.full}`, 8px square.
866
+ - Inline indicator next to "Status: Operational" in the footer or system status references.
867
+
868
+ **`contributor-avatar`** — testimonial avatar
869
+ - Background `{colors.surface-card}` placeholder, `rounded: {rounded.full}`, 32×32px.
870
+ - Used inline with customer testimonials.
871
+
872
+ **`footer`** — global footer
873
+ - Background `{colors.canvas}`, text `{colors.charcoal}`, type `{typography.body-sm}`, `rounded: {rounded.none}`, padding `64px 32px`.
874
+ - Multi-column quick-links grid above a single-line copyright row separated by `{colors.divider-soft}`.
875
+
876
+ ## Do's and Don'ts
877
+
878
+ ### Do
879
+ - Use `{colors.canvas}` (true black) as the default page background. Every public page lives here.
880
+ - Reserve `{component.button-primary}` (white pill) as the only solid bright surface. One per viewport at most.
881
+ - Set hero headlines in **Domaine Display** at 76–96px with `lineHeight: 1.0` and `ss01 / ss04 / ss11` features engaged.
882
+ - Use **ABC Favorit** for marketing body, **Inter** for UI labels, **Geist Mono** for code. Keep the lanes strict.
883
+ - Build elevation from translucent-white hairlines, not drop shadows.
884
+ - Use `{colors.accent-*-glow}` tokens as low-opacity radial atmospheric washes — never as solid surfaces.
885
+ - Set buttons and inputs to `{rounded.md}` (8px); cards and code wells to `{rounded.lg}` (12px); pills and avatars to `{rounded.full}`.
886
+ - Use the white email-mockup inset sparingly — it's the only deliberately-light surface and should feel like a print pull-quote.
887
+
888
+ ### Don't
889
+ - Don't use a near-black canvas. The brand sits on `#000000`, not `#0a0a0a`.
890
+ - Don't apply solid colour to atmospheric accent tokens. `{colors.accent-orange}` is for inline highlights only — its glow form is for backdrops.
891
+ - Don't add drop shadows to feature cards or code wells. Translucent white borders carry depth on this canvas.
892
+ - Don't bump body weight to 600 for emphasis. Use family change (Inter → ABC Favorit → Domaine Display) instead.
893
+ - Don't render code outside `{component.code-window}` — even small inline code uses Geist Mono and a `{colors.surface-card}` background.
894
+ - Don't loosen Domaine Display `lineHeight` past 1.0. Tight stacking is structural to the brand.
895
+ - Don't introduce a secondary brand accent. White is the brand on black — accents are atmospheric only.
896
+ - Don't bring photography front-and-centre. The brand reads as type-and-code, not photography-led.
897
+
898
+ ## Responsive Behavior
899
+
900
+ ### Breakpoints
901
+
902
+ | Name | Width | Key Changes |
903
+ |---|---|---|
904
+ | Desktop XL | ≥ 1440px | Full max-width 1200 body, 3-up feature grid, side-by-side code-story splits. |
905
+ | Desktop | 1280–1439px | Container shrinks; xl side padding. |
906
+ | Tablet Large | 1024–1279px | Feature grid stays 3-up, code-story remains 2-up. |
907
+ | Tablet | 768–1023px | Feature grid 2-up, code-story stacks (narrative on top), pricing stacks vertically. |
908
+ | Mobile Large | 426–767px | Feature grid 1-up; nav collapses to hamburger; hero `{typography.display-xxl}` clamps to 56px. |
909
+ | Mobile | ≤ 425px | All grids 1-up, hero clamps to 44px, section padding `{spacing.section}` collapses to 64px. |
910
+
911
+ ### Touch Targets
912
+ - All buttons ship at minimum 36px tall on desktop, scaling to 44px on mobile via padding adjustment. WCAG AAA met on mobile.
913
+ - `{component.text-input}` is 40px tall — comfortable but not large. Mobile scales to 48px via padding.
914
+ - `{component.sub-nav-pill}` stays at 36px on desktop, 40px on mobile.
915
+
916
+ ### Collapsing Strategy
917
+ - Top-level nav collapses to hamburger at < 1024px; the wordmark and `{component.button-primary}` stay anchored.
918
+ - Hero `{typography.display-xxl}` clamps: 96px → 76px → 56px → 44px across the breakpoint ladder.
919
+ - Pricing 3-up stacks vertically at < 1024px with the featured tier remaining centre-stacked.
920
+ - Code-story splits switch from side-by-side to stacked at < 1024px, code well always second.
921
+ - Atmospheric glows scale with section width but maintain the same opacity — they fade naturally at small viewports.
922
+
923
+ ### Image Behavior
924
+ - Email mockup cards reflow at 1:1 aspect on mobile to remain readable.
925
+ - Atmospheric glows are CSS gradients — no asset cost, no breakpoint variation.
926
+ - Customer testimonial avatars stay 32px circular regardless of breakpoint.
927
+
928
+ ## Iteration Guide
929
+
930
+ 1. Focus on ONE component at a time. Most surfaces share `{colors.surface-card}` or `{colors.surface-elevated}` with `{rounded.lg}` — only the role-specific tokens (`{colors.primary}`, `{component.code-window}`) shift between variants.
931
+ 2. Reference component names and tokens directly (`{colors.primary}`, `{component.button-primary-pressed}`, `{rounded.lg}`) — do not paraphrase.
932
+ 3. Run `npx @google/design.md lint DESIGN.md` after edits; orphaned-tokens warnings will catch unused entries.
933
+ 4. Add new variants as separate entries (`-pressed`, `-featured`, `-disabled`) — do not bury them in prose.
934
+ 5. Default body type to `{typography.body-md}`; reach for `{typography.subtitle}` only on hero subtitles.
935
+ 6. Keep `{colors.primary}` (white) scarce — if more than one solid white surface appears per viewport, ask whether one should drop to `{component.button-ghost}` instead.
936
+
937
+ ## Known Gaps
938
+
939
+ - Pressed/active visual states are documented only for `button-primary-pressed`; other components rely on the default focus-ring (browser default) for interactive feedback.
940
+ - Logged-in dashboard surfaces (API keys, sending logs, audience management) are out of scope; only the public marketing canvas is documented.
941
+ - Email-template editor surfaces (a key product feature) are not extracted — those live behind authentication.
942
+ - The atmospheric glow rendering uses CSS radial gradients; exact stops and angles vary per section and are not standardised as tokens — render per section-specific design judgment.