getrelay 0.1.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 (145) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +40 -0
  3. package/bin/relay.js +362 -0
  4. package/design-md/airbnb/DESIGN.md +545 -0
  5. package/design-md/airbnb/README.md +5 -0
  6. package/design-md/airtable/DESIGN.md +554 -0
  7. package/design-md/airtable/README.md +5 -0
  8. package/design-md/apple/DESIGN.md +562 -0
  9. package/design-md/apple/README.md +5 -0
  10. package/design-md/binance/DESIGN.md +634 -0
  11. package/design-md/binance/README.md +5 -0
  12. package/design-md/bmw/DESIGN.md +544 -0
  13. package/design-md/bmw/README.md +5 -0
  14. package/design-md/bmw-m/DESIGN.md +503 -0
  15. package/design-md/bmw-m/README.md +5 -0
  16. package/design-md/bugatti/DESIGN.md +454 -0
  17. package/design-md/bugatti/README.md +5 -0
  18. package/design-md/cal/DESIGN.md +542 -0
  19. package/design-md/cal/README.md +5 -0
  20. package/design-md/claude/DESIGN.md +589 -0
  21. package/design-md/claude/README.md +5 -0
  22. package/design-md/clay/DESIGN.md +541 -0
  23. package/design-md/clay/README.md +5 -0
  24. package/design-md/clickhouse/DESIGN.md +544 -0
  25. package/design-md/clickhouse/README.md +5 -0
  26. package/design-md/cohere/DESIGN.md +451 -0
  27. package/design-md/cohere/README.md +5 -0
  28. package/design-md/coinbase/DESIGN.md +570 -0
  29. package/design-md/coinbase/README.md +5 -0
  30. package/design-md/composio/DESIGN.md +506 -0
  31. package/design-md/composio/README.md +5 -0
  32. package/design-md/cursor/DESIGN.md +537 -0
  33. package/design-md/cursor/README.md +5 -0
  34. package/design-md/elevenlabs/DESIGN.md +504 -0
  35. package/design-md/elevenlabs/README.md +5 -0
  36. package/design-md/expo/DESIGN.md +526 -0
  37. package/design-md/expo/README.md +5 -0
  38. package/design-md/ferrari/DESIGN.md +531 -0
  39. package/design-md/ferrari/README.md +5 -0
  40. package/design-md/figma/DESIGN.md +578 -0
  41. package/design-md/figma/README.md +5 -0
  42. package/design-md/framer/DESIGN.md +544 -0
  43. package/design-md/framer/README.md +5 -0
  44. package/design-md/hashicorp/DESIGN.md +575 -0
  45. package/design-md/hashicorp/README.md +5 -0
  46. package/design-md/ibm/DESIGN.md +550 -0
  47. package/design-md/ibm/README.md +5 -0
  48. package/design-md/intercom/DESIGN.md +546 -0
  49. package/design-md/intercom/README.md +5 -0
  50. package/design-md/kraken/DESIGN.md +125 -0
  51. package/design-md/kraken/README.md +5 -0
  52. package/design-md/lamborghini/DESIGN.md +288 -0
  53. package/design-md/lamborghini/README.md +5 -0
  54. package/design-md/linear.app/DESIGN.md +548 -0
  55. package/design-md/linear.app/README.md +5 -0
  56. package/design-md/lovable/DESIGN.md +298 -0
  57. package/design-md/lovable/README.md +5 -0
  58. package/design-md/mastercard/DESIGN.md +365 -0
  59. package/design-md/mastercard/README.md +5 -0
  60. package/design-md/meta/DESIGN.md +683 -0
  61. package/design-md/meta/README.md +5 -0
  62. package/design-md/minimax/DESIGN.md +746 -0
  63. package/design-md/minimax/README.md +5 -0
  64. package/design-md/mintlify/DESIGN.md +852 -0
  65. package/design-md/mintlify/README.md +5 -0
  66. package/design-md/miro/DESIGN.md +825 -0
  67. package/design-md/miro/README.md +5 -0
  68. package/design-md/mistral.ai/DESIGN.md +773 -0
  69. package/design-md/mistral.ai/README.md +5 -0
  70. package/design-md/mongodb/DESIGN.md +767 -0
  71. package/design-md/mongodb/README.md +5 -0
  72. package/design-md/nike/DESIGN.md +575 -0
  73. package/design-md/nike/README.md +5 -0
  74. package/design-md/notion/DESIGN.md +821 -0
  75. package/design-md/notion/README.md +5 -0
  76. package/design-md/nvidia/DESIGN.md +640 -0
  77. package/design-md/nvidia/README.md +5 -0
  78. package/design-md/ollama/DESIGN.md +539 -0
  79. package/design-md/ollama/README.md +5 -0
  80. package/design-md/opencode.ai/DESIGN.md +521 -0
  81. package/design-md/opencode.ai/README.md +5 -0
  82. package/design-md/pinterest/DESIGN.md +597 -0
  83. package/design-md/pinterest/README.md +5 -0
  84. package/design-md/playstation/DESIGN.md +661 -0
  85. package/design-md/playstation/README.md +5 -0
  86. package/design-md/posthog/DESIGN.md +690 -0
  87. package/design-md/posthog/README.md +5 -0
  88. package/design-md/raycast/DESIGN.md +669 -0
  89. package/design-md/raycast/README.md +5 -0
  90. package/design-md/renault/DESIGN.md +589 -0
  91. package/design-md/renault/README.md +5 -0
  92. package/design-md/replicate/DESIGN.md +616 -0
  93. package/design-md/replicate/README.md +5 -0
  94. package/design-md/resend/DESIGN.md +585 -0
  95. package/design-md/resend/README.md +5 -0
  96. package/design-md/revolut/DESIGN.md +636 -0
  97. package/design-md/revolut/README.md +5 -0
  98. package/design-md/runwayml/DESIGN.md +244 -0
  99. package/design-md/runwayml/README.md +5 -0
  100. package/design-md/sanity/DESIGN.md +357 -0
  101. package/design-md/sanity/README.md +5 -0
  102. package/design-md/sentry/DESIGN.md +551 -0
  103. package/design-md/sentry/README.md +5 -0
  104. package/design-md/shopify/DESIGN.md +516 -0
  105. package/design-md/shopify/README.md +5 -0
  106. package/design-md/slack/DESIGN.md +482 -0
  107. package/design-md/spacex/DESIGN.md +363 -0
  108. package/design-md/spacex/README.md +5 -0
  109. package/design-md/spotify/DESIGN.md +246 -0
  110. package/design-md/spotify/README.md +5 -0
  111. package/design-md/starbucks/DESIGN.md +580 -0
  112. package/design-md/starbucks/README.md +5 -0
  113. package/design-md/stripe/DESIGN.md +487 -0
  114. package/design-md/stripe/README.md +5 -0
  115. package/design-md/supabase/DESIGN.md +462 -0
  116. package/design-md/supabase/README.md +5 -0
  117. package/design-md/superhuman/DESIGN.md +448 -0
  118. package/design-md/superhuman/README.md +5 -0
  119. package/design-md/tesla/DESIGN.md +286 -0
  120. package/design-md/tesla/README.md +5 -0
  121. package/design-md/theverge/DESIGN.md +339 -0
  122. package/design-md/theverge/README.md +5 -0
  123. package/design-md/together.ai/DESIGN.md +633 -0
  124. package/design-md/together.ai/README.md +5 -0
  125. package/design-md/uber/DESIGN.md +636 -0
  126. package/design-md/uber/README.md +5 -0
  127. package/design-md/vercel/DESIGN.md +736 -0
  128. package/design-md/vercel/README.md +5 -0
  129. package/design-md/vodafone/DESIGN.md +538 -0
  130. package/design-md/vodafone/README.md +5 -0
  131. package/design-md/voltagent/DESIGN.md +521 -0
  132. package/design-md/voltagent/README.md +5 -0
  133. package/design-md/warp/DESIGN.md +526 -0
  134. package/design-md/warp/README.md +5 -0
  135. package/design-md/webflow/DESIGN.md +588 -0
  136. package/design-md/webflow/README.md +5 -0
  137. package/design-md/wired/DESIGN.md +497 -0
  138. package/design-md/wired/README.md +5 -0
  139. package/design-md/wise/DESIGN.md +544 -0
  140. package/design-md/wise/README.md +5 -0
  141. package/design-md/x.ai/DESIGN.md +465 -0
  142. package/design-md/x.ai/README.md +5 -0
  143. package/design-md/zapier/DESIGN.md +537 -0
  144. package/design-md/zapier/README.md +5 -0
  145. package/package.json +31 -0
@@ -0,0 +1,773 @@
1
+ ---
2
+ version: alpha
3
+ name: Mistral AI
4
+ description: Mistral AI brands itself with a singular signature — atmospheric sunset gradients (mustard, orange, deep red) layered over photography of mountains, plus a horizontal "sunset stripe" bar that closes every page. The system pairs warm cream-yellow surfaces ({colors.cream}) with a saturated orange primary CTA ({colors.primary}) and uses an elegant near-serif voice for hero displays. Coverage spans homepage (Frontier AI hero), Le Studio product page, Coding solutions, news article surfaces, contact form, and services tier page — all anchored by the signature gradient closing band.
5
+
6
+ colors:
7
+ primary: "#fa520f"
8
+ primary-deep: "#cc3a05"
9
+ on-primary: "#ffffff"
10
+ sunshine-300: "#ffd06a"
11
+ sunshine-500: "#ffb83e"
12
+ sunshine-700: "#ffa110"
13
+ sunshine-800: "#ff8105"
14
+ sunshine-900: "#ff8a00"
15
+ yellow-saturated: "#ffd900"
16
+ cream: "#fff8e0"
17
+ cream-light: "#fffaeb"
18
+ cream-deeper: "#fff0c2"
19
+ beige-deep: "#e6d5a8"
20
+ block-5: "#ffe295"
21
+ block-6: "#ffd900"
22
+ block-7: "#ff8105"
23
+ ink: "#1f1f1f"
24
+ ink-tint: "#3d3d3d"
25
+ charcoal: "#2c2c2c"
26
+ slate: "#4a4a4a"
27
+ steel: "#6a6a6a"
28
+ stone: "#8a8a8a"
29
+ muted: "#a8a8a8"
30
+ hairline: "#e5e5e5"
31
+ hairline-soft: "#ededed"
32
+ hairline-strong: "#c7c7c7"
33
+ canvas: "#ffffff"
34
+ surface: "#fafafa"
35
+ surface-cream: "#fff8e0"
36
+ surface-cream-soft: "#fffaeb"
37
+ surface-code: "#1c1c1e"
38
+ on-dark: "#ffffff"
39
+ on-dark-muted: "#a8a8a8"
40
+ on-cream: "#1f1f1f"
41
+ footer-cream: "#fff8e0"
42
+ link: "#fa520f"
43
+
44
+ typography:
45
+ hero-display:
46
+ fontFamily: PP Editorial Old
47
+ fontSize: 84px
48
+ fontWeight: 400
49
+ lineHeight: 1.05
50
+ letterSpacing: -1.5px
51
+ display-lg:
52
+ fontFamily: PP Editorial Old
53
+ fontSize: 64px
54
+ fontWeight: 400
55
+ lineHeight: 1.10
56
+ letterSpacing: -1px
57
+ heading-1:
58
+ fontFamily: PP Editorial Old
59
+ fontSize: 52px
60
+ fontWeight: 400
61
+ lineHeight: 1.15
62
+ letterSpacing: -0.5px
63
+ heading-2:
64
+ fontFamily: Inter
65
+ fontSize: 36px
66
+ fontWeight: 500
67
+ lineHeight: 1.20
68
+ letterSpacing: -0.5px
69
+ heading-3:
70
+ fontFamily: Inter
71
+ fontSize: 28px
72
+ fontWeight: 500
73
+ lineHeight: 1.25
74
+ heading-4:
75
+ fontFamily: Inter
76
+ fontSize: 22px
77
+ fontWeight: 500
78
+ lineHeight: 1.30
79
+ heading-5:
80
+ fontFamily: Inter
81
+ fontSize: 18px
82
+ fontWeight: 500
83
+ lineHeight: 1.40
84
+ subtitle:
85
+ fontFamily: Inter
86
+ fontSize: 18px
87
+ fontWeight: 400
88
+ lineHeight: 1.50
89
+ body-md:
90
+ fontFamily: Inter
91
+ fontSize: 16px
92
+ fontWeight: 400
93
+ lineHeight: 1.55
94
+ body-md-medium:
95
+ fontFamily: Inter
96
+ fontSize: 16px
97
+ fontWeight: 500
98
+ lineHeight: 1.55
99
+ body-sm:
100
+ fontFamily: Inter
101
+ fontSize: 14px
102
+ fontWeight: 400
103
+ lineHeight: 1.50
104
+ body-sm-medium:
105
+ fontFamily: Inter
106
+ fontSize: 14px
107
+ fontWeight: 500
108
+ lineHeight: 1.50
109
+ caption:
110
+ fontFamily: Inter
111
+ fontSize: 13px
112
+ fontWeight: 400
113
+ lineHeight: 1.40
114
+ caption-bold:
115
+ fontFamily: Inter
116
+ fontSize: 13px
117
+ fontWeight: 600
118
+ lineHeight: 1.40
119
+ micro:
120
+ fontFamily: Inter
121
+ fontSize: 12px
122
+ fontWeight: 500
123
+ lineHeight: 1.40
124
+ micro-uppercase:
125
+ fontFamily: Inter
126
+ fontSize: 11px
127
+ fontWeight: 600
128
+ lineHeight: 1.40
129
+ letterSpacing: 1px
130
+ button-md:
131
+ fontFamily: Inter
132
+ fontSize: 14px
133
+ fontWeight: 500
134
+ lineHeight: 1.30
135
+ stat-display:
136
+ fontFamily: PP Editorial Old
137
+ fontSize: 56px
138
+ fontWeight: 400
139
+ lineHeight: 1.10
140
+ letterSpacing: -1px
141
+ code-md:
142
+ fontFamily: JetBrains Mono
143
+ fontSize: 14px
144
+ fontWeight: 400
145
+ lineHeight: 1.50
146
+
147
+ rounded:
148
+ xs: 4px
149
+ sm: 6px
150
+ md: 8px
151
+ lg: 12px
152
+ xl: 16px
153
+ xxl: 20px
154
+ full: 9999px
155
+
156
+ spacing:
157
+ xxs: 4px
158
+ xs: 8px
159
+ sm: 12px
160
+ md: 16px
161
+ lg: 20px
162
+ xl: 24px
163
+ xxl: 32px
164
+ xxxl: 40px
165
+ section-sm: 48px
166
+ section: 64px
167
+ section-lg: 96px
168
+ hero: 120px
169
+
170
+ components:
171
+ button-primary:
172
+ backgroundColor: "{colors.primary}"
173
+ textColor: "{colors.on-primary}"
174
+ typography: "{typography.button-md}"
175
+ rounded: "{rounded.md}"
176
+ padding: "10px 20px"
177
+ button-primary-pressed:
178
+ backgroundColor: "{colors.primary-deep}"
179
+ textColor: "{colors.on-primary}"
180
+ button-primary-disabled:
181
+ backgroundColor: "{colors.hairline}"
182
+ textColor: "{colors.muted}"
183
+ button-cream:
184
+ backgroundColor: "{colors.cream}"
185
+ textColor: "{colors.ink}"
186
+ typography: "{typography.button-md}"
187
+ rounded: "{rounded.md}"
188
+ padding: "10px 20px"
189
+ border: "1px solid {colors.beige-deep}"
190
+ button-dark:
191
+ backgroundColor: "{colors.ink}"
192
+ textColor: "{colors.on-dark}"
193
+ typography: "{typography.button-md}"
194
+ rounded: "{rounded.md}"
195
+ padding: "10px 20px"
196
+ button-secondary:
197
+ backgroundColor: "transparent"
198
+ textColor: "{colors.ink}"
199
+ typography: "{typography.button-md}"
200
+ rounded: "{rounded.md}"
201
+ padding: "10px 20px"
202
+ border: "1px solid {colors.hairline-strong}"
203
+ button-on-cream:
204
+ backgroundColor: "{colors.canvas}"
205
+ textColor: "{colors.ink}"
206
+ typography: "{typography.button-md}"
207
+ rounded: "{rounded.md}"
208
+ padding: "10px 20px"
209
+ border: "1px solid {colors.beige-deep}"
210
+ button-link:
211
+ backgroundColor: "transparent"
212
+ textColor: "{colors.primary}"
213
+ typography: "{typography.body-sm-medium}"
214
+ padding: "0"
215
+ card-base:
216
+ backgroundColor: "{colors.canvas}"
217
+ rounded: "{rounded.lg}"
218
+ padding: "{spacing.xl}"
219
+ border: "1px solid {colors.hairline-soft}"
220
+ card-feature:
221
+ backgroundColor: "{colors.canvas}"
222
+ rounded: "{rounded.lg}"
223
+ padding: "{spacing.xxl}"
224
+ border: "1px solid {colors.hairline-soft}"
225
+ card-cream:
226
+ backgroundColor: "{colors.cream}"
227
+ textColor: "{colors.ink}"
228
+ rounded: "{rounded.lg}"
229
+ padding: "{spacing.xxl}"
230
+ border: "1px solid {colors.beige-deep}"
231
+ card-cream-soft:
232
+ backgroundColor: "{colors.surface-cream-soft}"
233
+ textColor: "{colors.ink}"
234
+ rounded: "{rounded.lg}"
235
+ padding: "{spacing.xxl}"
236
+ card-feature-product:
237
+ backgroundColor: "{colors.canvas}"
238
+ rounded: "{rounded.lg}"
239
+ padding: "{spacing.xxl}"
240
+ border: "1px solid {colors.hairline-soft}"
241
+ shadow: "rgba(0, 0, 0, 0.04) 0px 4px 12px"
242
+ card-photographic:
243
+ backgroundColor: "{colors.surface-code}"
244
+ textColor: "{colors.on-dark}"
245
+ rounded: "{rounded.lg}"
246
+ padding: "0"
247
+ pricing-card:
248
+ backgroundColor: "{colors.canvas}"
249
+ rounded: "{rounded.lg}"
250
+ padding: "{spacing.xxl}"
251
+ border: "1px solid {colors.hairline-soft}"
252
+ pricing-card-featured:
253
+ backgroundColor: "{colors.cream}"
254
+ rounded: "{rounded.lg}"
255
+ padding: "{spacing.xxl}"
256
+ border: "2px solid {colors.primary}"
257
+ text-input:
258
+ backgroundColor: "{colors.canvas}"
259
+ textColor: "{colors.ink}"
260
+ typography: "{typography.body-md}"
261
+ rounded: "{rounded.md}"
262
+ padding: "{spacing.sm} {spacing.md}"
263
+ border: "1px solid {colors.hairline-strong}"
264
+ height: 44px
265
+ text-input-focused:
266
+ backgroundColor: "{colors.canvas}"
267
+ textColor: "{colors.ink}"
268
+ border: "2px solid {colors.primary}"
269
+ text-area:
270
+ backgroundColor: "{colors.canvas}"
271
+ textColor: "{colors.ink}"
272
+ typography: "{typography.body-md}"
273
+ rounded: "{rounded.md}"
274
+ padding: "{spacing.md}"
275
+ border: "1px solid {colors.hairline-strong}"
276
+ contact-form-panel:
277
+ backgroundColor: "{colors.cream}"
278
+ rounded: "{rounded.lg}"
279
+ padding: "{spacing.xxl}"
280
+ border: "1px solid {colors.beige-deep}"
281
+ pill-tab:
282
+ backgroundColor: "{colors.canvas}"
283
+ textColor: "{colors.steel}"
284
+ typography: "{typography.body-sm-medium}"
285
+ rounded: "{rounded.full}"
286
+ padding: "{spacing.xs} {spacing.md}"
287
+ border: "1px solid {colors.hairline}"
288
+ pill-tab-active:
289
+ backgroundColor: "{colors.ink}"
290
+ textColor: "{colors.on-dark}"
291
+ rounded: "{rounded.full}"
292
+ border: "1px solid {colors.ink}"
293
+ segmented-tab:
294
+ backgroundColor: "transparent"
295
+ textColor: "{colors.steel}"
296
+ typography: "{typography.body-sm-medium}"
297
+ padding: "{spacing.sm} {spacing.md}"
298
+ border: "0 0 2px transparent solid"
299
+ segmented-tab-active:
300
+ backgroundColor: "transparent"
301
+ textColor: "{colors.primary}"
302
+ typography: "{typography.body-sm-medium}"
303
+ border: "0 0 2px {colors.primary} solid"
304
+ badge-orange:
305
+ backgroundColor: "{colors.primary}"
306
+ textColor: "{colors.on-primary}"
307
+ typography: "{typography.caption-bold}"
308
+ rounded: "{rounded.full}"
309
+ padding: "4px 10px"
310
+ badge-cream:
311
+ backgroundColor: "{colors.cream-deeper}"
312
+ textColor: "{colors.ink}"
313
+ typography: "{typography.caption-bold}"
314
+ rounded: "{rounded.full}"
315
+ padding: "4px 10px"
316
+ badge-dark:
317
+ backgroundColor: "{colors.ink}"
318
+ textColor: "{colors.on-dark}"
319
+ typography: "{typography.caption-bold}"
320
+ rounded: "{rounded.full}"
321
+ padding: "4px 10px"
322
+ promo-banner:
323
+ backgroundColor: "{colors.ink}"
324
+ textColor: "{colors.on-dark}"
325
+ typography: "{typography.body-sm-medium}"
326
+ padding: "{spacing.sm} {spacing.md}"
327
+ hero-band-sunset:
328
+ backgroundColor: "{colors.sunshine-700}"
329
+ textColor: "{colors.ink}"
330
+ rounded: "0"
331
+ padding: "{spacing.hero}"
332
+ sunset-stripe-band:
333
+ backgroundColor: "{colors.primary}"
334
+ textColor: "{colors.on-primary}"
335
+ rounded: "0"
336
+ padding: "{spacing.lg} 0"
337
+ cta-banner-cream:
338
+ backgroundColor: "{colors.cream}"
339
+ textColor: "{colors.ink}"
340
+ rounded: "{rounded.lg}"
341
+ padding: "{spacing.section}"
342
+ code-block:
343
+ backgroundColor: "{colors.surface-code}"
344
+ textColor: "{colors.on-dark}"
345
+ typography: "{typography.code-md}"
346
+ rounded: "{rounded.md}"
347
+ padding: "{spacing.md}"
348
+ code-block-header:
349
+ backgroundColor: "{colors.surface-code}"
350
+ textColor: "{colors.on-dark-muted}"
351
+ typography: "{typography.caption}"
352
+ padding: "{spacing.xs} {spacing.md}"
353
+ border: "0 0 1px rgba(255,255,255,0.08) solid"
354
+ feature-icon-tile:
355
+ backgroundColor: "{colors.cream}"
356
+ rounded: "{rounded.md}"
357
+ padding: "{spacing.md}"
358
+ border: "1px solid {colors.beige-deep}"
359
+ industry-tile:
360
+ backgroundColor: "{colors.canvas}"
361
+ rounded: "{rounded.lg}"
362
+ padding: "{spacing.xl}"
363
+ border: "1px solid {colors.hairline-soft}"
364
+ stat-cell:
365
+ backgroundColor: "transparent"
366
+ textColor: "{colors.ink}"
367
+ typography: "{typography.stat-display}"
368
+ padding: "{spacing.lg}"
369
+ customer-testimonial-card:
370
+ backgroundColor: "{colors.canvas}"
371
+ rounded: "{rounded.lg}"
372
+ padding: "{spacing.xxl}"
373
+ border: "1px solid {colors.hairline-soft}"
374
+ logo-wall-item:
375
+ backgroundColor: "transparent"
376
+ textColor: "{colors.steel}"
377
+ typography: "{typography.body-md-medium}"
378
+ padding: "{spacing.lg}"
379
+ faq-accordion-item:
380
+ backgroundColor: "{colors.canvas}"
381
+ rounded: "{rounded.md}"
382
+ padding: "{spacing.xl}"
383
+ border: "0 0 1px {colors.hairline} solid"
384
+ footer-region:
385
+ backgroundColor: "{colors.footer-cream}"
386
+ textColor: "{colors.ink}"
387
+ typography: "{typography.body-sm}"
388
+ padding: "{spacing.section} {spacing.xxl}"
389
+ footer-link:
390
+ backgroundColor: "transparent"
391
+ textColor: "{colors.primary}"
392
+ typography: "{typography.body-sm}"
393
+ padding: "{spacing.xxs} 0"
394
+ app-store-badge:
395
+ backgroundColor: "{colors.ink}"
396
+ textColor: "{colors.on-dark}"
397
+ typography: "{typography.caption-bold}"
398
+ rounded: "{rounded.md}"
399
+ padding: "{spacing.sm} {spacing.md}"
400
+ ---
401
+
402
+ ## Overview
403
+
404
+ Mistral AI carries itself with a singular, almost cinematographic visual signature — the homepage opens with "Frontier AI. In your hands." rendered in elegant near-serif display type over a photographic mountain landscape bathed in mustard-orange sunset light. Below the hero, every page closes with the same recognizable element: a horizontal "sunset stripe" gradient band running red→orange→yellow→cream that wraps the foot of the page just above the footer. This stripe is THE brand recognizer — it appears on the homepage, products/studio, solutions/coding, news articles, contact form, and services tier page without exception.
405
+
406
+ The system pairs PP Editorial Old (a near-serif elegant display face) for hero displays with Inter for everything else (body, headings, UI). Cream-yellow surfaces ({colors.cream}, {colors.surface-cream-soft}) anchor form panels and feature cards; saturated orange ({colors.primary}) carries primary CTAs; the deep mountain photography on the homepage and the dark code mockups inside Le Studio create photographic depth. Cards are rectangular with `{rounded.lg}` (12px) corners — distinctly less playful than Miro's or Mintlify's pill-buttons-everywhere approach. Buttons are also `{rounded.md}` (8px), not pills — Mistral's geometry is more sober and editorial than its peers.
407
+
408
+ **Key Characteristics:**
409
+ - Atmospheric mountain-sunset hero photography (orange-red-yellow gradient sky)
410
+ - Horizontal "sunset stripe" band ({colors.primary} → {colors.sunshine-700} → {colors.yellow-saturated} → {colors.cream}) at every page bottom
411
+ - Cream-yellow surfaces ({colors.cream}, {colors.cream-soft}) for form panels and feature cards
412
+ - PP Editorial Old (or similar near-serif) for hero displays; Inter for everything else
413
+ - `{rounded.md}` (8px) buttons and `{rounded.lg}` (12px) cards — less playful, more editorial geometry
414
+ - Saturated orange primary CTA ({colors.primary}) carries every action call
415
+
416
+ ## Colors
417
+
418
+ > Source pages: mistral.ai/ (homepage), /products/studio (Le Studio product), /solutions/coding (coding solution), /news/vibe-remote-agents-mistral-medium-3-5 (news), /contact (contact form), /services (services tiers). Token coverage was identical across all six pages.
419
+
420
+ ### Brand & Accent
421
+ - **Mistral Orange** ({colors.primary}): Primary CTA color, brand orange
422
+ - **Orange Deep** ({colors.primary-deep}): Pressed-state and emphasis variant
423
+ - **Sunshine 300** ({colors.sunshine-300}): Atmospheric light orange-yellow
424
+ - **Sunshine 500** ({colors.sunshine-500}): Mid-spectrum sunset orange
425
+ - **Sunshine 700** ({colors.sunshine-700}): Saturated mid sunset gradient stop
426
+ - **Sunshine 800** ({colors.sunshine-800}): Deep sunset gradient stop
427
+ - **Sunshine 900** ({colors.sunshine-900}): Deepest sunset orange
428
+ - **Yellow Saturated** ({colors.yellow-saturated}): Pure brand yellow used in the sunset stripe gradient
429
+ - **Block 5/6/7** ({colors.block-5}, {colors.block-6}, {colors.block-7}): Spectrum stops along the sunset gradient (light-yellow → mid-yellow → deep-orange)
430
+
431
+ ### Cream / Neutral Warm
432
+ - **Cream** ({colors.cream}): Warm yellow-cream surface for form panels, feature cards, footer
433
+ - **Cream Soft** ({colors.cream-soft}): Lighter cream variant
434
+ - **Cream Deeper** ({colors.cream-deeper}): More-saturated cream for badge/tag chips
435
+ - **Beige Deep** ({colors.beige-deep}): Cream surface 1px border color
436
+
437
+ ### Surface
438
+ - **Canvas White** ({colors.canvas}): Page background and card surface
439
+ - **Surface** ({colors.surface}): Subtle quieter background
440
+ - **Surface Cream** ({colors.surface-cream}): Cream-yellow tinted surface
441
+ - **Surface Code** ({colors.surface-code}): Dark code-block / IDE mockup surface
442
+ - **Hairline** ({colors.hairline}): 1px borders
443
+ - **Hairline Soft** ({colors.hairline-soft}): Quieter dividers
444
+ - **Hairline Strong** ({colors.hairline-strong}): Stronger 1px border for inputs
445
+
446
+ ### Text
447
+ - **Ink** ({colors.ink}): Primary headlines and body text
448
+ - **Ink Tint** ({colors.ink-tint}): Slightly softer black for hero overlay text
449
+ - **Charcoal** ({colors.charcoal}): Body emphasis
450
+ - **Slate** ({colors.slate}): Secondary text
451
+ - **Steel** ({colors.steel}): Tertiary text, captions
452
+ - **Stone** ({colors.stone}): Muted labels
453
+ - **Muted** ({colors.muted}): Disabled, placeholders
454
+ - **On Dark** ({colors.on-dark}): White text on dark surfaces
455
+ - **On Dark Muted** ({colors.on-dark-muted}): Reduced-opacity white
456
+ - **On Cream** ({colors.on-cream}): Ink text on cream surfaces
457
+
458
+ ### Semantic
459
+ - **Link** ({colors.link}): Inline link color (matches primary orange)
460
+
461
+ ## Typography
462
+
463
+ ### Font Family
464
+ **PP Editorial Old** (display): Mistral's signature near-serif elegant display typeface used for hero displays, large numbers, and editorial section openers. Carries a slightly classical, intelligent character that contrasts the contemporary product positioning. Fallbacks: 'Times New Roman', Georgia, serif.
465
+
466
+ **Inter** (UI prose): Variable typeface for body, navigation, buttons, labels, captions. Fallbacks: ui-sans-serif, system-ui, -apple-system, sans-serif.
467
+
468
+ **JetBrains Mono** (code): Monospace for code blocks and IDE mockups. Fallbacks: 'SF Mono', Menlo, Consolas, monospace.
469
+
470
+ ### Hierarchy
471
+
472
+ | Token | Size | Weight | Line Height | Letter Spacing | Family | Use |
473
+ |---|---|---|---|---|---|---|
474
+ | `{typography.hero-display}` | 84px | 400 | 1.05 | -1.5px | PP Editorial Old | Hero ("Frontier AI. In your hands.") |
475
+ | `{typography.display-lg}` | 64px | 400 | 1.10 | -1px | PP Editorial Old | Section openers |
476
+ | `{typography.heading-1}` | 52px | 400 | 1.15 | -0.5px | PP Editorial Old | Page headlines ("Get in touch with the team.") |
477
+ | `{typography.stat-display}` | 56px | 400 | 1.10 | -1px | PP Editorial Old | Stat callouts ("75%") |
478
+ | `{typography.heading-2}` | 36px | 500 | 1.20 | -0.5px | Inter | Subsection headlines |
479
+ | `{typography.heading-3}` | 28px | 500 | 1.25 | 0 | Inter | Card titles |
480
+ | `{typography.heading-4}` | 22px | 500 | 1.30 | 0 | Inter | Feature tile titles |
481
+ | `{typography.heading-5}` | 18px | 500 | 1.40 | 0 | Inter | Smaller card titles |
482
+ | `{typography.subtitle}` | 18px | 400 | 1.50 | 0 | Inter | Hero subtitle, lead body |
483
+ | `{typography.body-md}` | 16px | 400 | 1.55 | 0 | Inter | Primary body text |
484
+ | `{typography.body-md-medium}` | 16px | 500 | 1.55 | 0 | Inter | Body emphasis |
485
+ | `{typography.body-sm}` | 14px | 400 | 1.50 | 0 | Inter | Secondary body |
486
+ | `{typography.body-sm-medium}` | 14px | 500 | 1.50 | 0 | Inter | Active sidebar, button labels |
487
+ | `{typography.caption}` | 13px | 400 | 1.40 | 0 | Inter | Helper text |
488
+ | `{typography.caption-bold}` | 13px | 600 | 1.40 | 0 | Inter | Badge labels |
489
+ | `{typography.micro}` | 12px | 500 | 1.40 | 0 | Inter | Footer microcopy |
490
+ | `{typography.micro-uppercase}` | 11px | 600 | 1.40 | 1px | Inter | Section eyebrows |
491
+ | `{typography.button-md}` | 14px | 500 | 1.30 | 0 | Inter | Button labels |
492
+ | `{typography.code-md}` | 14px | 400 | 1.50 | 0 | JetBrains Mono | Code blocks |
493
+
494
+ ### Principles
495
+ - **Editorial / sans pairing** — PP Editorial Old (near-serif, classical) anchors hero displays; Inter (geometric sans) carries everything else. The contrast IS the brand voice.
496
+ - **Generous body leading** (1.55 on body-md) for editorial readability across long-form pages
497
+ - **Tight hero leading** (1.05 on 84px display) creates magazine-grade typographic display
498
+ - **Negative letter-spacing** progresses with size — display sizes use -1.5px to -0.5px; smaller heads relax to 0
499
+ - **Stat-display token** (56px Editorial) for marketing stat callouts ("75% / 80% / 100%")
500
+
501
+ ## Layout
502
+
503
+ ### Spacing System
504
+ - **Base unit**: 4px (8px primary increment)
505
+ - **Tokens**: `{spacing.xxs}` (4px) · `{spacing.xs}` (8px) · `{spacing.sm}` (12px) · `{spacing.md}` (16px) · `{spacing.lg}` (20px) · `{spacing.xl}` (24px) · `{spacing.xxl}` (32px) · `{spacing.xxxl}` (40px) · `{spacing.section-sm}` (48px) · `{spacing.section}` (64px) · `{spacing.section-lg}` (96px) · `{spacing.hero}` (120px)
506
+ - **Section rhythm**: Marketing pages use `{spacing.section-lg}` (96px); content pages tighten to `{spacing.section}` (64px)
507
+ - **Card internal padding**: `{spacing.xl}` (24px) for compact cards; `{spacing.xxl}` (32px) for feature panels and form panels
508
+
509
+ ### Grid & Container
510
+ - Marketing pages use 1280px max-width with 32px gutters
511
+ - Hero band uses 2-column split (text left, sunset photography right) on desktop
512
+ - Le Studio product page uses 3-up feature grid below the hero
513
+ - Contact page uses 1-column layout with cream form panel centered (~520px max-width)
514
+ - Services page uses 4-tier card layout with cream feature panel separator strip
515
+
516
+ ### Whitespace Philosophy
517
+ Marketing surfaces give content generous breathing room — `{spacing.hero}` (120px) hero padding lets the mountain-sunset photography fill the frame. Form pages tighten dramatically: contact form panel uses `{spacing.xxl}` (32px) internal padding, fields stack on `{spacing.md}` (16px) gap.
518
+
519
+ ## Elevation & Depth
520
+
521
+ The system runs predominantly flat with strategic atmospheric depth from photography.
522
+
523
+ | Level | Treatment | Use |
524
+ |---|---|---|
525
+ | 0 (flat) | No shadow; `{colors.hairline-soft}` border | Default cards, table rows, form inputs |
526
+ | 1 (subtle) | `rgba(0, 0, 0, 0.04) 0px 1px 2px 0px` | Hover-elevated tiles |
527
+ | 2 (card) | `rgba(0, 0, 0, 0.04) 0px 4px 12px 0px` | Standard feature cards |
528
+ | 3 (mockup) | `rgba(0, 0, 0, 0.08) 0px 12px 24px -4px` | IDE mockup, code editor frames |
529
+ | 4 (modal) | `rgba(0, 0, 0, 0.12) 0px 16px 48px -8px` | Modals, dropdowns |
530
+
531
+ ### Decorative Depth
532
+ - The atmospheric depth on Mistral's hero comes from the photographic mountain-sunset imagery — natural light gradient does the work
533
+ - The "sunset stripe" closing band carries depth via its multi-stop gradient (red → orange → yellow → cream)
534
+ - IDE / code mockups use dark-canvas backgrounds with subtle drop shadow
535
+
536
+ ## Shapes
537
+
538
+ ### Border Radius Scale
539
+
540
+ | Token | Value | Use |
541
+ |---|---|---|
542
+ | `{rounded.xs}` | 4px | Small chips, micro-controls |
543
+ | `{rounded.sm}` | 6px | Discount badges, compact UI |
544
+ | `{rounded.md}` | 8px | Buttons, inputs, search-pill, code blocks |
545
+ | `{rounded.lg}` | 12px | Cards, modals, panels (the dominant card radius) |
546
+ | `{rounded.xl}` | 16px | Larger feature panels |
547
+ | `{rounded.xxl}` | 20px | Featured emphasis cards |
548
+ | `{rounded.full}` | 9999px | Status badges, pill tabs (used sparingly — most buttons are NOT pills) |
549
+
550
+ The radius scale is sober and editorial — Mistral does NOT use pill buttons. `{rounded.md}` (8px) for buttons, `{rounded.lg}` (12px) for cards, `{rounded.full}` reserved for badges and the rare pill tab.
551
+
552
+ ### Photography Geometry
553
+ - Hero photography is full-bleed atmospheric mountain-sunset imagery with no internal framing
554
+ - IDE/code mockups render with `{rounded.lg}` (12px) corners on dark canvas
555
+ - Customer logos wall presents wordmarks inline at consistent 60–80px height
556
+ - Product imagery (Le Studio mockup, agent UI mockups) sits in `{rounded.lg}` panels with subtle border
557
+
558
+ ## Components
559
+
560
+ > Per the no-hover policy, hover states are NOT documented. Default and pressed/active states only.
561
+
562
+ ### Buttons
563
+
564
+ **`button-primary`** — Saturated-orange primary CTA, the dominant action.
565
+ - Background `{colors.primary}`, text `{colors.on-primary}`, typography `{typography.button-md}`, padding `10px 20px`, rounded `{rounded.md}`.
566
+ - Pressed state `button-primary-pressed` deepens to `{colors.primary-deep}`.
567
+ - Disabled state `button-primary-disabled` uses `{colors.hairline}` background and `{colors.muted}` text.
568
+
569
+ **`button-cream`** — Warm cream-yellow secondary action, common on cream-surface sections.
570
+ - Background `{colors.cream}`, text `{colors.ink}`, border `1px solid {colors.beige-deep}`, typography `{typography.button-md}`, padding `10px 20px`, rounded `{rounded.md}`.
571
+
572
+ **`button-dark`** — Dark/black primary CTA on cream surfaces.
573
+ - Background `{colors.ink}`, text `{colors.on-dark}`, typography `{typography.button-md}`, padding `10px 20px`, rounded `{rounded.md}`.
574
+
575
+ **`button-secondary`** — Outlined secondary action.
576
+ - Background transparent, text `{colors.ink}`, border `1px solid {colors.hairline-strong}`, typography `{typography.button-md}`, padding `10px 20px`, rounded `{rounded.md}`.
577
+
578
+ **`button-on-cream`** — White button on cream-tinted backgrounds.
579
+ - Background `{colors.canvas}`, text `{colors.ink}`, border `1px solid {colors.beige-deep}`, typography `{typography.button-md}`, padding `10px 20px`, rounded `{rounded.md}`.
580
+
581
+ **`button-link`** — Inline orange text link.
582
+ - Background transparent, text `{colors.primary}`, typography `{typography.body-sm-medium}`, padding `0`. Underline on activation.
583
+
584
+ ### Cards & Containers
585
+
586
+ **`card-base`** — Standard content card.
587
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xl}`, border `1px solid {colors.hairline-soft}`.
588
+
589
+ **`card-feature`** — White feature card with larger padding.
590
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid `{colors.hairline-soft}`.
591
+
592
+ **`card-cream`** — Warm cream-yellow feature card (services tiers, perk callouts).
593
+ - Background `{colors.cream}`, text `{colors.ink}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid {colors.beige-deep}`.
594
+
595
+ **`card-cream-soft`** — Lighter cream variant.
596
+ - Background `{colors.surface-cream-soft}`, text `{colors.ink}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`.
597
+
598
+ **`card-feature-product`** — Product showcase card with subtle elevation.
599
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid {colors.hairline-soft}`, shadow `rgba(0, 0, 0, 0.04) 0px 4px 12px`.
600
+
601
+ **`card-photographic`** — Photographic product card with dark background.
602
+ - Background `{colors.surface-code}`, text `{colors.on-dark}`, rounded `{rounded.lg}`, padding `0` (image fills the card).
603
+
604
+ **`pricing-card`** — Standard pricing tier card.
605
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid {colors.hairline-soft}`.
606
+
607
+ **`pricing-card-featured`** — Featured pricing tier (cream background + orange border).
608
+ - Background `{colors.cream}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `2px solid {colors.primary}`.
609
+
610
+ ### Inputs & Forms
611
+
612
+ **`text-input`** — Standard text field.
613
+ - Background `{colors.canvas}`, text `{colors.ink}`, border `1px solid {colors.hairline-strong}`, rounded `{rounded.md}`, padding `{spacing.sm} {spacing.md}`, height 44px.
614
+
615
+ **`text-input-focused`** — Activated state.
616
+ - Border switches to `2px solid {colors.primary}`.
617
+
618
+ **`text-area`** — Multi-line text area for contact form.
619
+ - Background `{colors.canvas}`, text `{colors.ink}`, border `1px solid {colors.hairline-strong}`, rounded `{rounded.md}`, padding `{spacing.md}`.
620
+
621
+ **`contact-form-panel`** — Cream-tinted form container on the contact page.
622
+ - Background `{colors.cream}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid {colors.beige-deep}`. Hosts text-inputs, text-area, submit `button-dark`.
623
+
624
+ ### Tabs
625
+
626
+ **`pill-tab`** + **`pill-tab-active`** — Pill-style tab nav (used sparingly on product pages).
627
+ - Inactive: background `{colors.canvas}`, text `{colors.steel}`, border `1px solid {colors.hairline}`, padding `{spacing.xs} {spacing.md}`, rounded `{rounded.full}`.
628
+ - Active: background `{colors.ink}`, text `{colors.on-dark}`.
629
+
630
+ **`segmented-tab`** + **`segmented-tab-active`** — Underline-style tab navigation.
631
+ - Inactive: text `{colors.steel}`, transparent background, padding `{spacing.sm} {spacing.md}`, no bottom border.
632
+ - Active: text `{colors.primary}`, 2px bottom border in `{colors.primary}`.
633
+
634
+ ### Badges & Status
635
+
636
+ **`badge-orange`** — Saturated orange badge.
637
+ - Background `{colors.primary}`, text `{colors.on-primary}`, typography `{typography.caption-bold}`, rounded `{rounded.full}`, padding `4px 10px`.
638
+
639
+ **`badge-cream`** — Cream-tinted tag chip.
640
+ - Background `{colors.cream-deeper}`, text `{colors.ink}`, typography `{typography.caption-bold}`, rounded `{rounded.full}`, padding `4px 10px`.
641
+
642
+ **`badge-dark`** — Dark/black status badge.
643
+ - Background `{colors.ink}`, text `{colors.on-dark}`, typography `{typography.caption-bold}`, rounded `{rounded.full}`, padding `4px 10px`.
644
+
645
+ **`promo-banner`** — Sticky black promo strip ABOVE the top nav.
646
+ - Background `{colors.ink}`, text `{colors.on-dark}`, typography `{typography.body-sm-medium}`, padding `{spacing.sm} {spacing.md}`. Carries one-line copy + inline CTA.
647
+
648
+ ### Code
649
+
650
+ **`code-block`** — Syntax-highlighted IDE-style code block (Le Studio page mockup, agent demos).
651
+ - Background `{colors.surface-code}`, text `{colors.on-dark}`, typography `{typography.code-md}`, rounded `{rounded.md}`, padding `{spacing.md}`.
652
+
653
+ **`code-block-header`** — Header bar above the code block.
654
+ - Background `{colors.surface-code}`, text `{colors.on-dark-muted}`, typography `{typography.caption}`, padding `{spacing.xs} {spacing.md}`, bottom border `1px solid rgba(255,255,255,0.08)`.
655
+
656
+ ### Documentation Components
657
+
658
+ **`feature-icon-tile`** — Cream-yellow feature icon callout.
659
+ - Background `{colors.cream}`, rounded `{rounded.md}`, padding `{spacing.md}`, border `1px solid {colors.beige-deep}`.
660
+
661
+ **`industry-tile`** — Industry-vertical tile in solutions page grid.
662
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xl}`, border `1px solid {colors.hairline-soft}`.
663
+
664
+ **`stat-cell`** — Stat-row cell ("75% more / 80% better").
665
+ - Background transparent, text `{colors.ink}`, typography `{typography.stat-display}`, padding `{spacing.lg}`.
666
+
667
+ **`customer-testimonial-card`** — Customer quote card (used inside Le Studio and Solutions pages).
668
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid {colors.hairline-soft}`. Quote in `{typography.body-md}`, attribution in `{typography.body-sm}` `{colors.steel}`.
669
+
670
+ **`logo-wall-item`** — Customer logo wordmark cell.
671
+ - Background transparent, text `{colors.steel}`, typography `{typography.body-md-medium}`, padding `{spacing.lg}`.
672
+
673
+ **`faq-accordion-item`** — FAQ panel.
674
+ - Background `{colors.canvas}`, rounded `{rounded.md}`, padding `{spacing.xl}`, bottom border `1px solid {colors.hairline}`.
675
+
676
+ **`app-store-badge`** — App Store / Google Play download badge.
677
+ - Background `{colors.ink}`, text `{colors.on-dark}`, typography `{typography.caption-bold}`, rounded `{rounded.md}`, padding `{spacing.sm} {spacing.md}`.
678
+
679
+ ### Navigation
680
+
681
+ **Top Navigation (Marketing)** — Sticky white bar.
682
+ - Background `{colors.canvas}`, height ~64px, bottom border `1px solid {colors.hairline-soft}`.
683
+ - Left: Mistral M-mark logo + "MISTRAL AI_" wordmark + horizontal link list (Products, Solutions, Research, Blog, Customers, Company).
684
+ - Right: "Contact Sales" link + black-pill "Try Studio" CTA.
685
+
686
+ ### Signature Components
687
+
688
+ **`hero-band-sunset`** — Atmospheric sunset hero band.
689
+ - Background gradient `linear-gradient(135deg, {colors.sunshine-700} 0%, {colors.sunshine-900} 60%, {colors.primary} 100%)` overlaid on photographic mountain landscape.
690
+ - Layout: hero headline left in `{typography.hero-display}` ({colors.ink}), subtitle in `{typography.subtitle}` ({colors.ink-tint}), button row (`button-dark` + `button-secondary`), atmospheric mountain photography right.
691
+
692
+ **`sunset-stripe-band`** — Horizontal closing band at the foot of every page.
693
+ - Multi-stop gradient: `{colors.primary}` → `{colors.sunshine-700}` → `{colors.sunshine-500}` → `{colors.yellow-saturated}` → `{colors.cream}`.
694
+ - Padding `{spacing.lg} 0`. Spans full width, sits above the footer. THIS IS THE BRAND'S MOST RECOGNIZABLE SIGNATURE ELEMENT.
695
+
696
+ **`cta-banner-cream`** — Page-bottom CTA band on cream surface.
697
+ - Background `{colors.cream}`, text `{colors.ink}`, rounded `{rounded.lg}`, padding `{spacing.section}`. "The next chapter of AI is yours." headline in `{typography.heading-1}` (PP Editorial Old), button row below.
698
+
699
+ **`footer-region`** — Cream-tinted multi-column footer.
700
+ - Background `{colors.footer-cream}`, padding `{spacing.section} {spacing.xxl}`.
701
+ - 5-column link grid (Why Mistral / Explore / Build / Legal + brand mark column).
702
+ - Bottom: language picker + social icons.
703
+
704
+ **`footer-link`** — Individual footer link.
705
+ - Background transparent, text `{colors.primary}`, typography `{typography.body-sm}`, padding `{spacing.xxs} 0`.
706
+
707
+ ## Do's and Don'ts
708
+
709
+ ### Do
710
+ - Reserve `{colors.primary}` (saturated orange) for primary CTAs and active states only
711
+ - Use the **sunset stripe band** at the foot of every page — it's the brand's most recognizable signature
712
+ - Pair PP Editorial Old (display) with Inter (UI) — never substitute either with a generic alternative
713
+ - Apply `{rounded.md}` (8px) to buttons and `{rounded.lg}` (12px) to cards consistently
714
+ - Use cream-yellow surfaces ({colors.cream}) for form panels, feature cards, and footer
715
+ - Anchor heroes with photographic mountain-sunset imagery (or its visual equivalent — atmospheric gradient sky)
716
+ - Use stat-display token (PP Editorial 56px) for stat callouts to maintain editorial character
717
+
718
+ ### Don't
719
+ - Don't use pill-shaped buttons (`{rounded.full}`) — Mistral's geometry is sober and editorial, not playful
720
+ - Don't introduce additional accent colors beyond the orange/yellow/cream sunset palette
721
+ - Don't reduce hero leading below 1.05 — the editorial display needs that magazine-grade tightness
722
+ - Don't replace PP Editorial Old hero displays with Inter — the editorial / sans contrast IS the brand
723
+ - Don't apply heavy shadows on flat documentation cards; reserve elevation for IDE mockups
724
+ - Don't drop the sunset stripe band from any page bottom — it's the brand's continuity element
725
+
726
+ ## Responsive Behavior
727
+
728
+ ### Breakpoints
729
+ | Name | Width | Key Changes |
730
+ |---|---|---|
731
+ | Mobile (small) | < 480px | Single column. Hero scales to 40px (PP Editorial). Pill nav collapses to hamburger. Pricing tiers stack 1-up. |
732
+ | Mobile (large) | 480 – 767px | Feature tiles 2-up. Hero scales to 52px. |
733
+ | Tablet | 768 – 1023px | 2-column feature grids. Pill-tab nav returns. Hero 64px. |
734
+ | Desktop | 1024 – 1279px | Multi-column layouts. Hero 76px. Stat row at full width. |
735
+ | Wide Desktop | ≥ 1280px | Full 84px hero presentation. |
736
+
737
+ ### Touch Targets
738
+ - Buttons render at 40–44px effective height — at WCAG AAA floor with `10px 20px` padding
739
+ - Form inputs render at 44px height
740
+ - Pill tabs render at ~32px tall — bumps to 44px on mobile
741
+
742
+ ### Collapsing Strategy
743
+ - **Promo banner** stays full-width; truncates at < 480px
744
+ - **Top nav** below 1024px collapses to hamburger
745
+ - **Hero band**: 2-column hero (text + photography) collapses to stacked at < 1024px
746
+ - **Pricing tiers**: 4-column desktop → 2-column tablet → 1-column mobile
747
+ - **Stat row**: 3-column → stacked at < 768px
748
+ - **Hero typography**: 84px → 64px → 52px → 40px
749
+ - **Footer**: 5-column desktop → 3-column tablet → 1-column accordion mobile
750
+ - **Sunset stripe band** stays full-width on all breakpoints
751
+
752
+ ### Image Behavior
753
+ - Mountain-sunset photography uses 16:9 ratio with full-bleed scaling
754
+ - IDE mockup images maintain aspect ratio across breakpoints
755
+ - Customer logo wall presents wordmarks at consistent 60–80px height
756
+
757
+ ## Iteration Guide
758
+
759
+ 1. Focus on ONE component at a time
760
+ 2. Reference component names and tokens directly (`{colors.primary}`, `{component-name}-pressed`)
761
+ 3. Run `npx @google/design.md lint DESIGN.md` after edits
762
+ 4. Add new variants as separate `components:` entries
763
+ 5. Default to `{typography.body-md}` for body and `{typography.subtitle}` for emphasis. Hero displays use `{typography.hero-display}` (PP Editorial Old).
764
+ 6. Keep `{colors.primary}` confined to primary CTAs, active states, and the sunset stripe band
765
+ 7. Cards use `{rounded.lg}` (12px), buttons use `{rounded.md}` (8px). Pills (`{rounded.full}`) reserved for badges only.
766
+ 8. Always include the sunset-stripe-band component at the foot of every page mockup.
767
+
768
+ ## Known Gaps
769
+
770
+ - Specific dark-mode token values not surfaced; the brand has not shipped a published dark-mode palette
771
+ - Animation/transition timings not extracted; recommend 150–200ms ease for hover/focus state transitions
772
+ - Form validation success state not explicitly captured beyond defaults
773
+ - Sunset stripe band gradient stops are approximations — the actual values may vary slightly across pages but the visual rhythm is consistent