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,767 @@
1
+ ---
2
+ version: alpha
3
+ name: MongoDB
4
+ description: MongoDB carries a strong dual-mode visual identity — dark deep-teal hero bands with bright MongoDB green ({colors.brand-green}) CTAs paired with stark white documentation surfaces. The signature green pill button is unmistakable across product, pricing, learning, and AI use-case surfaces. The system uses Euclid Circular A as its display face, anchors a 3-tier pricing comparison (Free / Flex / Dedicated), and presents extensive course catalogs in card grids with colored category tags. Coverage spans homepage, Atlas product page, Community Edition, MongoDB University, AI use cases, and pricing.
5
+
6
+ colors:
7
+ primary: "#00ed64"
8
+ primary-deep: "#00b545"
9
+ primary-pressed: "#008c34"
10
+ on-primary: "#001e2b"
11
+ brand-green: "#00ed64"
12
+ brand-green-dark: "#00684a"
13
+ brand-green-mid: "#00a35c"
14
+ brand-green-soft: "#c3f0d2"
15
+ brand-teal-deep: "#001e2b"
16
+ brand-teal: "#003d4f"
17
+ brand-teal-mid: "#00684a"
18
+ accent-purple: "#7b3ff2"
19
+ accent-orange: "#fa6e39"
20
+ accent-pink: "#f06bb8"
21
+ accent-blue: "#3d4f9f"
22
+ semantic-warning-bg: "#fff8e0"
23
+ semantic-warning-text: "#946f3f"
24
+ canvas: "#ffffff"
25
+ canvas-dark: "#001e2b"
26
+ surface: "#f9fbfa"
27
+ surface-soft: "#f4f7f6"
28
+ surface-feature: "#e3fcef"
29
+ hairline: "#e1e5e8"
30
+ hairline-soft: "#eceff1"
31
+ hairline-strong: "#c1ccd6"
32
+ hairline-dark: "#1c2d38"
33
+ ink: "#001e2b"
34
+ charcoal: "#1c2d38"
35
+ slate: "#3d4f5b"
36
+ steel: "#5c6c7a"
37
+ stone: "#7c8c9a"
38
+ muted: "#a8b3bc"
39
+ on-dark: "#ffffff"
40
+ on-dark-muted: "#a8b3bc"
41
+
42
+ typography:
43
+ hero-display:
44
+ fontFamily: Euclid Circular A
45
+ fontSize: 72px
46
+ fontWeight: 500
47
+ lineHeight: 1.10
48
+ letterSpacing: -1.5px
49
+ display-lg:
50
+ fontFamily: Euclid Circular A
51
+ fontSize: 56px
52
+ fontWeight: 500
53
+ lineHeight: 1.15
54
+ letterSpacing: -1px
55
+ heading-1:
56
+ fontFamily: Euclid Circular A
57
+ fontSize: 48px
58
+ fontWeight: 500
59
+ lineHeight: 1.20
60
+ letterSpacing: -0.5px
61
+ heading-2:
62
+ fontFamily: Euclid Circular A
63
+ fontSize: 36px
64
+ fontWeight: 500
65
+ lineHeight: 1.25
66
+ letterSpacing: -0.5px
67
+ heading-3:
68
+ fontFamily: Euclid Circular A
69
+ fontSize: 28px
70
+ fontWeight: 500
71
+ lineHeight: 1.30
72
+ heading-4:
73
+ fontFamily: Euclid Circular A
74
+ fontSize: 22px
75
+ fontWeight: 500
76
+ lineHeight: 1.35
77
+ heading-5:
78
+ fontFamily: Euclid Circular A
79
+ fontSize: 18px
80
+ fontWeight: 600
81
+ lineHeight: 1.40
82
+ subtitle:
83
+ fontFamily: Euclid Circular A
84
+ fontSize: 18px
85
+ fontWeight: 400
86
+ lineHeight: 1.50
87
+ body-md:
88
+ fontFamily: Euclid Circular A
89
+ fontSize: 16px
90
+ fontWeight: 400
91
+ lineHeight: 1.55
92
+ body-md-medium:
93
+ fontFamily: Euclid Circular A
94
+ fontSize: 16px
95
+ fontWeight: 500
96
+ lineHeight: 1.55
97
+ body-sm:
98
+ fontFamily: Euclid Circular A
99
+ fontSize: 14px
100
+ fontWeight: 400
101
+ lineHeight: 1.50
102
+ body-sm-medium:
103
+ fontFamily: Euclid Circular A
104
+ fontSize: 14px
105
+ fontWeight: 500
106
+ lineHeight: 1.50
107
+ caption:
108
+ fontFamily: Euclid Circular A
109
+ fontSize: 13px
110
+ fontWeight: 400
111
+ lineHeight: 1.40
112
+ caption-bold:
113
+ fontFamily: Euclid Circular A
114
+ fontSize: 13px
115
+ fontWeight: 600
116
+ lineHeight: 1.40
117
+ micro:
118
+ fontFamily: Euclid Circular A
119
+ fontSize: 12px
120
+ fontWeight: 500
121
+ lineHeight: 1.40
122
+ micro-uppercase:
123
+ fontFamily: Euclid Circular A
124
+ fontSize: 11px
125
+ fontWeight: 600
126
+ lineHeight: 1.40
127
+ letterSpacing: 1px
128
+ button-md:
129
+ fontFamily: Euclid Circular A
130
+ fontSize: 14px
131
+ fontWeight: 600
132
+ lineHeight: 1.30
133
+ code-md:
134
+ fontFamily: Source Code Pro
135
+ fontSize: 14px
136
+ fontWeight: 400
137
+ lineHeight: 1.55
138
+
139
+ rounded:
140
+ xs: 4px
141
+ sm: 6px
142
+ md: 8px
143
+ lg: 12px
144
+ xl: 16px
145
+ xxl: 24px
146
+ full: 9999px
147
+
148
+ spacing:
149
+ xxs: 4px
150
+ xs: 8px
151
+ sm: 12px
152
+ md: 16px
153
+ lg: 20px
154
+ xl: 24px
155
+ xxl: 32px
156
+ xxxl: 40px
157
+ section-sm: 48px
158
+ section: 64px
159
+ section-lg: 96px
160
+ hero: 120px
161
+
162
+ components:
163
+ button-primary:
164
+ backgroundColor: "{colors.brand-green}"
165
+ textColor: "{colors.on-primary}"
166
+ typography: "{typography.button-md}"
167
+ rounded: "{rounded.full}"
168
+ padding: "10px 22px"
169
+ button-primary-pressed:
170
+ backgroundColor: "{colors.primary-pressed}"
171
+ textColor: "{colors.on-primary}"
172
+ button-primary-disabled:
173
+ backgroundColor: "{colors.hairline}"
174
+ textColor: "{colors.muted}"
175
+ button-secondary:
176
+ backgroundColor: "transparent"
177
+ textColor: "{colors.ink}"
178
+ typography: "{typography.button-md}"
179
+ rounded: "{rounded.full}"
180
+ padding: "10px 22px"
181
+ border: "1px solid {colors.hairline-strong}"
182
+ button-on-dark:
183
+ backgroundColor: "{colors.brand-green}"
184
+ textColor: "{colors.on-primary}"
185
+ typography: "{typography.button-md}"
186
+ rounded: "{rounded.full}"
187
+ padding: "10px 22px"
188
+ button-secondary-on-dark:
189
+ backgroundColor: "transparent"
190
+ textColor: "{colors.on-dark}"
191
+ typography: "{typography.button-md}"
192
+ rounded: "{rounded.full}"
193
+ padding: "10px 22px"
194
+ border: "1px solid {colors.hairline-dark}"
195
+ button-ghost:
196
+ backgroundColor: "transparent"
197
+ textColor: "{colors.ink}"
198
+ typography: "{typography.button-md}"
199
+ rounded: "{rounded.md}"
200
+ padding: "8px 12px"
201
+ button-link:
202
+ backgroundColor: "transparent"
203
+ textColor: "{colors.brand-green-dark}"
204
+ typography: "{typography.body-sm-medium}"
205
+ padding: "0"
206
+ card-base:
207
+ backgroundColor: "{colors.canvas}"
208
+ rounded: "{rounded.lg}"
209
+ padding: "{spacing.xl}"
210
+ border: "1px solid {colors.hairline}"
211
+ card-feature:
212
+ backgroundColor: "{colors.canvas}"
213
+ rounded: "{rounded.lg}"
214
+ padding: "{spacing.xxl}"
215
+ border: "1px solid {colors.hairline}"
216
+ card-product-deploy:
217
+ backgroundColor: "{colors.canvas}"
218
+ rounded: "{rounded.lg}"
219
+ padding: "{spacing.xxl}"
220
+ border: "1px solid {colors.hairline}"
221
+ card-feature-dark:
222
+ backgroundColor: "{colors.brand-teal-deep}"
223
+ textColor: "{colors.on-dark}"
224
+ rounded: "{rounded.lg}"
225
+ padding: "{spacing.xxl}"
226
+ card-course:
227
+ backgroundColor: "{colors.canvas}"
228
+ rounded: "{rounded.lg}"
229
+ padding: "{spacing.xl}"
230
+ border: "1px solid {colors.hairline}"
231
+ card-cert:
232
+ backgroundColor: "{colors.canvas}"
233
+ rounded: "{rounded.lg}"
234
+ padding: "{spacing.xl}"
235
+ border: "1px solid {colors.hairline}"
236
+ pricing-card:
237
+ backgroundColor: "{colors.canvas}"
238
+ rounded: "{rounded.lg}"
239
+ padding: "{spacing.xxl}"
240
+ border: "1px solid {colors.hairline}"
241
+ pricing-card-featured:
242
+ backgroundColor: "{colors.surface-feature}"
243
+ rounded: "{rounded.lg}"
244
+ padding: "{spacing.xxl}"
245
+ border: "2px solid {colors.brand-green}"
246
+ text-input:
247
+ backgroundColor: "{colors.canvas}"
248
+ textColor: "{colors.ink}"
249
+ typography: "{typography.body-md}"
250
+ rounded: "{rounded.md}"
251
+ padding: "{spacing.sm} {spacing.md}"
252
+ border: "1px solid {colors.hairline-strong}"
253
+ height: 44px
254
+ text-input-focused:
255
+ backgroundColor: "{colors.canvas}"
256
+ textColor: "{colors.ink}"
257
+ border: "2px solid {colors.brand-green-dark}"
258
+ search-pill:
259
+ backgroundColor: "{colors.surface}"
260
+ textColor: "{colors.steel}"
261
+ typography: "{typography.body-md}"
262
+ rounded: "{rounded.md}"
263
+ padding: "{spacing.sm} {spacing.md}"
264
+ height: 44px
265
+ border: "1px solid {colors.hairline-strong}"
266
+ search-pill-large:
267
+ backgroundColor: "{colors.canvas}"
268
+ textColor: "{colors.steel}"
269
+ typography: "{typography.body-md}"
270
+ rounded: "{rounded.md}"
271
+ padding: "{spacing.md}"
272
+ height: 56px
273
+ border: "1px solid {colors.hairline-strong}"
274
+ pill-tab:
275
+ backgroundColor: "transparent"
276
+ textColor: "{colors.steel}"
277
+ typography: "{typography.body-sm-medium}"
278
+ rounded: "{rounded.full}"
279
+ padding: "{spacing.xs} {spacing.md}"
280
+ border: "1px solid {colors.hairline}"
281
+ pill-tab-active:
282
+ backgroundColor: "{colors.ink}"
283
+ textColor: "{colors.on-dark}"
284
+ rounded: "{rounded.full}"
285
+ border: "1px solid {colors.ink}"
286
+ segmented-tab:
287
+ backgroundColor: "transparent"
288
+ textColor: "{colors.steel}"
289
+ typography: "{typography.body-sm-medium}"
290
+ padding: "{spacing.sm} {spacing.md}"
291
+ border: "0 0 2px transparent solid"
292
+ segmented-tab-active:
293
+ backgroundColor: "transparent"
294
+ textColor: "{colors.brand-green-dark}"
295
+ typography: "{typography.body-sm-medium}"
296
+ border: "0 0 2px {colors.brand-green-dark} solid"
297
+ badge-green:
298
+ backgroundColor: "{colors.brand-green}"
299
+ textColor: "{colors.on-primary}"
300
+ typography: "{typography.caption-bold}"
301
+ rounded: "{rounded.sm}"
302
+ padding: "2px 8px"
303
+ badge-green-soft:
304
+ backgroundColor: "{colors.brand-green-soft}"
305
+ textColor: "{colors.brand-green-dark}"
306
+ typography: "{typography.caption-bold}"
307
+ rounded: "{rounded.full}"
308
+ padding: "4px 10px"
309
+ badge-purple:
310
+ backgroundColor: "{colors.accent-purple}"
311
+ textColor: "{colors.on-dark}"
312
+ typography: "{typography.caption-bold}"
313
+ rounded: "{rounded.sm}"
314
+ padding: "2px 8px"
315
+ badge-orange:
316
+ backgroundColor: "{colors.accent-orange}"
317
+ textColor: "{colors.on-dark}"
318
+ typography: "{typography.caption-bold}"
319
+ rounded: "{rounded.sm}"
320
+ padding: "2px 8px"
321
+ badge-popular:
322
+ backgroundColor: "{colors.brand-teal-deep}"
323
+ textColor: "{colors.brand-green}"
324
+ typography: "{typography.caption-bold}"
325
+ rounded: "{rounded.full}"
326
+ padding: "4px 10px"
327
+ promo-banner:
328
+ backgroundColor: "{colors.brand-teal-deep}"
329
+ textColor: "{colors.on-dark}"
330
+ typography: "{typography.body-sm-medium}"
331
+ padding: "{spacing.sm} {spacing.md}"
332
+ hero-band-dark:
333
+ backgroundColor: "{colors.brand-teal-deep}"
334
+ textColor: "{colors.on-dark}"
335
+ rounded: "0"
336
+ padding: "{spacing.hero}"
337
+ hero-platform-card:
338
+ backgroundColor: "{colors.brand-teal-mid}"
339
+ textColor: "{colors.on-dark}"
340
+ rounded: "{rounded.xl}"
341
+ padding: "{spacing.xxl}"
342
+ cta-banner-dark:
343
+ backgroundColor: "{colors.brand-teal-deep}"
344
+ textColor: "{colors.on-dark}"
345
+ rounded: "{rounded.lg}"
346
+ padding: "{spacing.section}"
347
+ code-block:
348
+ backgroundColor: "{colors.canvas-dark}"
349
+ textColor: "{colors.on-dark}"
350
+ typography: "{typography.code-md}"
351
+ rounded: "{rounded.md}"
352
+ padding: "{spacing.md}"
353
+ code-mockup-card:
354
+ backgroundColor: "{colors.canvas-dark}"
355
+ textColor: "{colors.on-dark}"
356
+ rounded: "{rounded.lg}"
357
+ padding: "{spacing.lg}"
358
+ comparison-table:
359
+ backgroundColor: "{colors.canvas}"
360
+ textColor: "{colors.ink}"
361
+ typography: "{typography.body-sm}"
362
+ rounded: "{rounded.md}"
363
+ border: "1px solid {colors.hairline}"
364
+ comparison-row:
365
+ backgroundColor: "{colors.canvas}"
366
+ textColor: "{colors.ink}"
367
+ padding: "{spacing.md} {spacing.lg}"
368
+ border: "0 0 1px {colors.hairline-soft} solid"
369
+ service-tile:
370
+ backgroundColor: "{colors.canvas}"
371
+ rounded: "{rounded.lg}"
372
+ padding: "{spacing.xl}"
373
+ border: "1px solid {colors.hairline}"
374
+ why-card:
375
+ backgroundColor: "{colors.surface}"
376
+ rounded: "{rounded.lg}"
377
+ padding: "{spacing.xl}"
378
+ customer-testimonial-card:
379
+ backgroundColor: "{colors.canvas}"
380
+ rounded: "{rounded.lg}"
381
+ padding: "{spacing.xxl}"
382
+ border: "1px solid {colors.hairline}"
383
+ logo-wall-item:
384
+ backgroundColor: "transparent"
385
+ textColor: "{colors.steel}"
386
+ typography: "{typography.body-md-medium}"
387
+ padding: "{spacing.lg}"
388
+ faq-accordion-item:
389
+ backgroundColor: "{colors.canvas}"
390
+ rounded: "{rounded.md}"
391
+ padding: "{spacing.xl}"
392
+ border: "0 0 1px {colors.hairline} solid"
393
+ footer-region:
394
+ backgroundColor: "{colors.brand-teal-deep}"
395
+ textColor: "{colors.on-dark}"
396
+ typography: "{typography.body-sm}"
397
+ padding: "{spacing.section} {spacing.xxl}"
398
+ footer-link:
399
+ backgroundColor: "transparent"
400
+ textColor: "{colors.on-dark-muted}"
401
+ typography: "{typography.body-sm}"
402
+ padding: "{spacing.xxs} 0"
403
+ ---
404
+
405
+ ## Overview
406
+
407
+ MongoDB carries a strong dual-mode visual identity — dark deep-teal hero bands with the unmistakable bright MongoDB green ({colors.brand-green}) CTA pill paired with stark white documentation and pricing surfaces. The homepage opens with "One data platform. Unlimited AI potential." headline over a deep navy hero, the green pill sitting at the visual center as the primary CTA. Lower on the page, embedded code mockup cards (terminal-aesthetic) sit on the dark hero band, breaking out into white feature cards below. The pricing page renders a 3-tier comparison (Free / Flex / Dedicated) with a featured tier highlighted in soft mint background and bright green border. The MongoDB University page presents a course catalog grid where each tile carries a colored category tag (orange, purple, green, teal) — these are MongoDB's category-encoding accent colors and are the only place outside the brand green where saturated color appears.
408
+
409
+ The system uses Euclid Circular A as its display face. The face is contemporary geometric — confident but not overly playful — and pairs naturally with both the developer-tool aesthetic of the database product and the educational positioning of the learning surfaces. Cards use `{rounded.lg}` (12px) corners; buttons use `{rounded.full}` pills universally. The brand-teal palette ({colors.brand-teal-deep}) anchors hero bands, footer, code mockups, and the dark CTA banners.
410
+
411
+ **Key Characteristics:**
412
+ - Deep navy/teal hero bands ({colors.brand-teal-deep}) with bright MongoDB green ({colors.brand-green}) CTA pills
413
+ - Stark white pricing/documentation surfaces with colored category tags for course tiles (purple, orange, green, teal)
414
+ - Euclid Circular A across every UI surface
415
+ - Pill-shaped buttons ({rounded.full}) and 12px-rounded cards
416
+ - 3-tier pricing comparison (Free / Flex / Dedicated) with featured-mint highlight tier
417
+ - Code mockup cards with terminal-aesthetic dark canvas
418
+
419
+ ## Colors
420
+
421
+ > Source pages: mongodb.com/ (homepage), /products/platform/atlas-database (Atlas product), /products/self-managed/community-edition, learn.mongodb.com/ (MongoDB University), /solutions/use-cases/artificial-intelligence (AI), /pricing (3-tier comparison). Token coverage was identical across all six pages.
422
+
423
+ ### Brand & Accent
424
+ - **MongoDB Green** ({colors.brand-green}): The brand's most recognizable signal — bright pill-CTA color
425
+ - **Green Dark** ({colors.brand-green-dark}): Inline link color, secondary green
426
+ - **Green Mid** ({colors.brand-green-mid}): Mid-spectrum green for atmospheric tints
427
+ - **Green Soft** ({colors.brand-green-soft}): Pale-mint background tint for success badges and featured pricing tier
428
+ - **Brand Teal Deep** ({colors.brand-teal-deep}): Deep navy-teal for hero bands, footer
429
+ - **Brand Teal** ({colors.brand-teal}): Mid-spectrum teal
430
+ - **Brand Teal Mid** ({colors.brand-teal-mid}): Lighter teal for hero platform cards
431
+
432
+ ### Category Accent (Course Tags)
433
+ - **Accent Purple** ({colors.accent-purple}): Course tag for "Database & Security"
434
+ - **Accent Orange** ({colors.accent-orange}): Course tag for "Search"
435
+ - **Accent Pink** ({colors.accent-pink}): Course tag variant
436
+ - **Accent Blue** ({colors.accent-blue}): Course tag variant for atlas/cloud topics
437
+
438
+ ### Surface
439
+ - **Canvas White** ({colors.canvas}): Page background and primary card surface
440
+ - **Canvas Dark** ({colors.canvas-dark}): Code-block backgrounds, dark mockup canvas
441
+ - **Surface** ({colors.surface}): Subtle section backgrounds, search-pill rest
442
+ - **Surface Soft** ({colors.surface-soft}): Quieter section divisions
443
+ - **Surface Feature** ({colors.surface-feature}): Pale mint background for featured pricing tier
444
+ - **Hairline** ({colors.hairline}): 1px borders and primary dividers
445
+ - **Hairline Soft** ({colors.hairline-soft}): Quieter dividers
446
+ - **Hairline Strong** ({colors.hairline-strong}): Stronger 1px border for inputs
447
+ - **Hairline Dark** ({colors.hairline-dark}): Border on dark surfaces
448
+
449
+ ### Text
450
+ - **Ink** ({colors.ink}): Primary headlines and body text (deep navy-teal)
451
+ - **Charcoal** ({colors.charcoal}): Body emphasis
452
+ - **Slate** ({colors.slate}): Secondary text
453
+ - **Steel** ({colors.steel}): Tertiary text, captions
454
+ - **Stone** ({colors.stone}): Muted labels
455
+ - **Muted** ({colors.muted}): Disabled, placeholders
456
+ - **On Dark** ({colors.on-dark}): White text on dark surfaces
457
+ - **On Dark Muted** ({colors.on-dark-muted}): Reduced-opacity white
458
+
459
+ ### Semantic
460
+ - **Warning Background** ({colors.semantic-warning-bg}): Pale yellow callout bg
461
+ - **Warning Text** ({colors.semantic-warning-text}): Warning state copy color
462
+
463
+ ## Typography
464
+
465
+ ### Font Family
466
+ **Euclid Circular A** (primary): MongoDB's geometric sans-serif. Fallbacks: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif.
467
+ **Source Code Pro** (code): Monospace for code mockups. Fallbacks: 'SF Mono', Menlo, Consolas, monospace.
468
+
469
+ ### Hierarchy
470
+
471
+ | Token | Size | Weight | Line Height | Letter Spacing | Use |
472
+ |---|---|---|---|---|---|
473
+ | `{typography.hero-display}` | 72px | 500 | 1.10 | -1.5px | Hero ("One data platform") |
474
+ | `{typography.display-lg}` | 56px | 500 | 1.15 | -1px | Major section openers |
475
+ | `{typography.heading-1}` | 48px | 500 | 1.20 | -0.5px | Page-level headlines |
476
+ | `{typography.heading-2}` | 36px | 500 | 1.25 | -0.5px | Subsection headlines |
477
+ | `{typography.heading-3}` | 28px | 500 | 1.30 | 0 | Card titles |
478
+ | `{typography.heading-4}` | 22px | 500 | 1.35 | 0 | Feature tile titles |
479
+ | `{typography.heading-5}` | 18px | 600 | 1.40 | 0 | Smaller card titles, FAQ questions |
480
+ | `{typography.subtitle}` | 18px | 400 | 1.50 | 0 | Hero subtitle, lead body |
481
+ | `{typography.body-md}` | 16px | 400 | 1.55 | 0 | Primary body text |
482
+ | `{typography.body-sm}` | 14px | 400 | 1.50 | 0 | Secondary body, table cells |
483
+ | `{typography.body-sm-medium}` | 14px | 500 | 1.50 | 0 | Active sidebar, button labels |
484
+ | `{typography.caption-bold}` | 13px | 600 | 1.40 | 0 | Badge labels |
485
+ | `{typography.micro-uppercase}` | 11px | 600 | 1.40 | 1px | Section eyebrows, course category tags |
486
+ | `{typography.button-md}` | 14px | 600 | 1.30 | 0 | Pill button labels |
487
+ | `{typography.code-md}` | 14px | 400 | 1.55 | 0 | Code mockups |
488
+
489
+ ### Principles
490
+ - Tight hero leading (1.10) on 72px display
491
+ - Negative letter-spacing on display sizes (-1.5px to -0.5px)
492
+ - 600 weight reserved for buttons and small emphasis (FAQ headings, badges)
493
+ - Generous body leading (1.55) for technical documentation readability
494
+
495
+ ## Layout
496
+
497
+ ### Spacing System
498
+ - **Base unit**: 4px (8px primary increment)
499
+ - **Tokens**: `{spacing.xxs}` (4px) through `{spacing.hero}` (120px)
500
+ - **Section rhythm**: Marketing pages use `{spacing.section-lg}` (96px); pricing tightens to `{spacing.section}` (64px)
501
+
502
+ ### Grid & Container
503
+ - 1280px max-width with 32px gutters
504
+ - Pricing: 3-tier card row, dense feature comparison table below
505
+ - Learn catalog: 3-up course tile grid, 4-up certification grid
506
+ - AI use cases: 2-column hero with atmospheric illustration
507
+
508
+ ### Whitespace Philosophy
509
+ Marketing surfaces give content generous breathing room — `{spacing.hero}` (120px) hero padding for deep teal bands. Pricing/learn surfaces tighten dramatically.
510
+
511
+ ## Elevation & Depth
512
+
513
+ | Level | Treatment | Use |
514
+ |---|---|---|
515
+ | 0 (flat) | No shadow; `{colors.hairline}` border | Default cards, table rows |
516
+ | 1 (subtle) | `rgba(0, 30, 43, 0.04) 0px 1px 2px 0px` | Hover-elevated tiles |
517
+ | 2 (card) | `rgba(0, 30, 43, 0.08) 0px 4px 12px 0px` | Feature cards |
518
+ | 3 (mockup) | `rgba(0, 30, 43, 0.12) 0px 12px 24px -4px` | Code mockup over hero |
519
+ | 4 (modal) | `rgba(0, 30, 43, 0.16) 0px 16px 48px -8px` | Modals, dropdowns |
520
+
521
+ ### Decorative Depth
522
+ - Dark teal hero bands carry atmospheric gradient depth
523
+ - Code mockup cards on hero use canvas-dark surface with terminal aesthetic
524
+ - Pale-mint pricing-feature tier uses brand-tinted shadow
525
+
526
+ ## Shapes
527
+
528
+ ### Border Radius Scale
529
+
530
+ | Token | Value | Use |
531
+ |---|---|---|
532
+ | `{rounded.xs}` | 4px | Course category tags |
533
+ | `{rounded.sm}` | 6px | Type badges, code chips |
534
+ | `{rounded.md}` | 8px | Inputs, search-pill, code blocks |
535
+ | `{rounded.lg}` | 12px | Cards, pricing tiers, course tiles |
536
+ | `{rounded.xl}` | 16px | Larger feature panels |
537
+ | `{rounded.xxl}` | 24px | Featured product showcases |
538
+ | `{rounded.full}` | 9999px | All buttons, status badges |
539
+
540
+ ### Photography Geometry
541
+ - Hero illustrations sit on full-bleed dark backgrounds
542
+ - Course tile thumbnails use `{rounded.lg}` corners
543
+ - Customer logos wall: wordmarks at consistent 60–80px height
544
+
545
+ ## Components
546
+
547
+ > Per the no-hover policy, hover states are NOT documented. Default and pressed/active states only.
548
+
549
+ ### Buttons
550
+
551
+ **`button-primary`** — Bright MongoDB green pill primary CTA, the dominant action.
552
+ - Background `{colors.brand-green}`, text `{colors.on-primary}` (deep navy), typography `{typography.button-md}`, padding `10px 22px`, rounded `{rounded.full}`.
553
+ - Pressed state `button-primary-pressed` deepens to `{colors.primary-pressed}`.
554
+ - Disabled state `button-primary-disabled` uses `{colors.hairline}` background.
555
+
556
+ **`button-secondary`** — Outlined pill for secondary actions.
557
+ - Background transparent, text `{colors.ink}`, border `1px solid {colors.hairline-strong}`, typography `{typography.button-md}`, padding `10px 22px`, rounded `{rounded.full}`.
558
+
559
+ **`button-on-dark`** — Bright green pill on dark hero bands.
560
+ - Background `{colors.brand-green}`, text `{colors.on-primary}`, typography `{typography.button-md}`, padding `10px 22px`, rounded `{rounded.full}`.
561
+
562
+ **`button-secondary-on-dark`** — Outlined pill on dark backgrounds.
563
+ - Background transparent, text `{colors.on-dark}`, border `1px solid {colors.hairline-dark}`, typography `{typography.button-md}`, padding `10px 22px`, rounded `{rounded.full}`.
564
+
565
+ **`button-ghost`** — Quieter rectangular ghost button.
566
+ - Background transparent, text `{colors.ink}`, typography `{typography.button-md}`, padding `8px 12px`, rounded `{rounded.md}`.
567
+
568
+ **`button-link`** — Inline green text link.
569
+ - Background transparent, text `{colors.brand-green-dark}`, typography `{typography.body-sm-medium}`, padding `0`.
570
+
571
+ ### Cards & Containers
572
+
573
+ **`card-base`** — Standard content card.
574
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xl}`, border `1px solid {colors.hairline}`.
575
+
576
+ **`card-feature`** — Feature card with larger padding.
577
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid {colors.hairline}`.
578
+
579
+ **`card-product-deploy`** — Product deployment card ("MongoDB Atlas / Community").
580
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid {colors.hairline}`.
581
+
582
+ **`card-feature-dark`** — Dark teal feature card on hero band.
583
+ - Background `{colors.brand-teal-deep}`, text `{colors.on-dark}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`.
584
+
585
+ **`card-course`** — MongoDB University course tile.
586
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xl}`, border `1px solid {colors.hairline}`.
587
+ - Top: colored category tag. Below: title `{typography.heading-5}`, description `{typography.body-sm}`, "Get Started →" link.
588
+
589
+ **`card-cert`** — Certification card.
590
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xl}`, border `1px solid {colors.hairline}`.
591
+
592
+ **`pricing-card`** — Standard pricing tier card.
593
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid {colors.hairline}`.
594
+
595
+ **`pricing-card-featured`** — Featured pricing tier (Flex tier, mint background + green border).
596
+ - Background `{colors.surface-feature}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `2px solid {colors.brand-green}`.
597
+
598
+ ### Inputs & Forms
599
+
600
+ **`text-input`** — Standard text field.
601
+ - Background `{colors.canvas}`, text `{colors.ink}`, border `1px solid {colors.hairline-strong}`, rounded `{rounded.md}`, padding `{spacing.sm} {spacing.md}`, height 44px.
602
+
603
+ **`text-input-focused`** — Activated state.
604
+ - Border switches to `2px solid {colors.brand-green-dark}`.
605
+
606
+ **`search-pill`** — Standard 44px search bar.
607
+ - Background `{colors.surface}`, text `{colors.steel}`, typography `{typography.body-md}`, rounded `{rounded.md}`, height 44px, border `1px solid {colors.hairline-strong}`.
608
+
609
+ **`search-pill-large`** — Large 56px search bar (top of MongoDB University catalog).
610
+ - Background `{colors.canvas}`, text `{colors.steel}`, typography `{typography.body-md}`, rounded `{rounded.md}`, height 56px, border `1px solid {colors.hairline-strong}`.
611
+
612
+ ### Tabs
613
+
614
+ **`pill-tab`** + **`pill-tab-active`** — Pill-style tab nav (top of pricing: "MongoDB Atlas / Enterprise Advanced").
615
+ - Inactive: text `{colors.steel}`, border `1px solid {colors.hairline}`, padding `{spacing.xs} {spacing.md}`, rounded `{rounded.full}`.
616
+ - Active: background `{colors.ink}`, text `{colors.on-dark}`.
617
+
618
+ **`segmented-tab`** + **`segmented-tab-active`** — Underline-style tab navigation.
619
+ - Inactive: text `{colors.steel}`, no border. Active: text `{colors.brand-green-dark}`, 2px bottom border in `{colors.brand-green-dark}`.
620
+
621
+ ### Badges & Status
622
+
623
+ **`badge-green`** — Bright green badge for new product highlights.
624
+ - Background `{colors.brand-green}`, text `{colors.on-primary}`, typography `{typography.caption-bold}`, rounded `{rounded.sm}`, padding `2px 8px`.
625
+
626
+ **`badge-green-soft`** — Pale-mint pill for success/free indicators.
627
+ - Background `{colors.brand-green-soft}`, text `{colors.brand-green-dark}`, typography `{typography.caption-bold}`, rounded `{rounded.full}`, padding `4px 10px`.
628
+
629
+ **`badge-purple`** — Purple course category tag.
630
+ - Background `{colors.accent-purple}`, text `{colors.on-dark}`, typography `{typography.caption-bold}`, rounded `{rounded.sm}`, padding `2px 8px`.
631
+
632
+ **`badge-orange`** — Orange course category tag.
633
+ - Background `{colors.accent-orange}`, text `{colors.on-dark}`, typography `{typography.caption-bold}`, rounded `{rounded.sm}`, padding `2px 8px`.
634
+
635
+ **`badge-popular`** — "Most Popular" tier indicator (dark teal pill with green text).
636
+ - Background `{colors.brand-teal-deep}`, text `{colors.brand-green}`, typography `{typography.caption-bold}`, rounded `{rounded.full}`, padding `4px 10px`.
637
+
638
+ **`promo-banner`** — Dark teal sticky promo strip ABOVE the top nav.
639
+ - Background `{colors.brand-teal-deep}`, text `{colors.on-dark}`, typography `{typography.body-sm-medium}`, padding `{spacing.sm} {spacing.md}`.
640
+
641
+ ### Code
642
+
643
+ **`code-block`** — Code container.
644
+ - Background `{colors.canvas-dark}`, text `{colors.on-dark}`, typography `{typography.code-md}`, rounded `{rounded.md}`, padding `{spacing.md}`.
645
+
646
+ **`code-mockup-card`** — Embedded code mockup on hero band.
647
+ - Background `{colors.canvas-dark}`, text `{colors.on-dark}`, rounded `{rounded.lg}`, padding `{spacing.lg}`. Carries terminal-aesthetic code snippet.
648
+
649
+ ### Tables
650
+
651
+ **`comparison-table`** — Pricing feature comparison table.
652
+ - Background `{colors.canvas}`, text `{colors.ink}`, typography `{typography.body-sm}`, rounded `{rounded.md}`, border `1px solid {colors.hairline}`.
653
+
654
+ **`comparison-row`** — Individual feature row.
655
+ - Background `{colors.canvas}`, text `{colors.ink}`, padding `{spacing.md} {spacing.lg}`, bottom border `1px solid {colors.hairline-soft}`.
656
+
657
+ ### Documentation Components
658
+
659
+ **`service-tile`** — Tile in "Customize your deployment" 6-up grid.
660
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xl}`, border `1px solid {colors.hairline}`.
661
+
662
+ **`why-card`** — "Loved by builders" feature card.
663
+ - Background `{colors.surface}`, rounded `{rounded.lg}`, padding `{spacing.xl}`.
664
+
665
+ **`customer-testimonial-card`** — Customer quote card.
666
+ - Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid {colors.hairline}`.
667
+
668
+ **`logo-wall-item`** — Customer logo wordmark cell.
669
+ - Background transparent, text `{colors.steel}`, typography `{typography.body-md-medium}`, padding `{spacing.lg}`.
670
+
671
+ **`faq-accordion-item`** — FAQ panel.
672
+ - Background `{colors.canvas}`, rounded `{rounded.md}`, padding `{spacing.xl}`, bottom border `1px solid {colors.hairline}`.
673
+
674
+ ### Navigation
675
+
676
+ **Top Navigation (Marketing)** — Sticky white bar.
677
+ - Background `{colors.canvas}`, height ~64px, bottom border `1px solid {colors.hairline}`.
678
+ - Left: MongoDB leaf logo + "Solutions / Resources / Company / Pricing" links.
679
+ - Right: "Sign In" link + bright-green pill "Try Free" CTA.
680
+
681
+ ### Signature Components
682
+
683
+ **`hero-band-dark`** — Deep teal hero band with embedded code mockup.
684
+ - Background `{colors.brand-teal-deep}`, text `{colors.on-dark}`, padding `{spacing.hero}`.
685
+ - Layout: centered headline `{typography.hero-display}`, subtitle, button row, `code-mockup-card` below.
686
+
687
+ **`hero-platform-card`** — Lighter-teal platform showcase card on dark hero.
688
+ - Background `{colors.brand-teal-mid}`, text `{colors.on-dark}`, rounded `{rounded.xl}`, padding `{spacing.xxl}`.
689
+
690
+ **`cta-banner-dark`** — Dark CTA banner at the bottom of feature pages.
691
+ - Background `{colors.brand-teal-deep}`, text `{colors.on-dark}`, rounded `{rounded.lg}`, padding `{spacing.section}`.
692
+
693
+ **`footer-region`** — Dark teal multi-column footer.
694
+ - Background `{colors.brand-teal-deep}`, padding `{spacing.section} {spacing.xxl}`.
695
+ - 6-column link grid.
696
+ - Section headings in `{typography.body-sm-medium}` `{colors.on-dark}`.
697
+
698
+ **`footer-link`** — Individual footer link.
699
+ - Background transparent, text `{colors.on-dark-muted}`, typography `{typography.body-sm}`, padding `{spacing.xxs} 0`.
700
+
701
+ ## Do's and Don'ts
702
+
703
+ ### Do
704
+ - Use `{colors.brand-green}` (bright MongoDB green) for primary CTAs everywhere
705
+ - Pair dark-teal hero bands with bright green CTA pills
706
+ - Apply `{rounded.full}` to every button, every status badge
707
+ - Apply `{rounded.lg}` (12px) to cards consistently
708
+ - Use category accent colors (purple, orange, green, teal) ONLY for course tags
709
+ - Maintain Euclid Circular A across every UI surface
710
+ - Use code mockup cards with terminal-aesthetic content for product showcases
711
+
712
+ ### Don't
713
+ - Don't use the bright green for body text or large surfaces
714
+ - Don't introduce additional accent colors beyond the brand green and category-encoding palette
715
+ - Don't soften corners on buttons; the pill is a brand signature
716
+ - Don't replace deep teal hero bands with white hero bands
717
+ - Don't apply heavy shadows on flat documentation cards; reserve elevation for code mockups
718
+ - Don't use Source Code Pro for prose
719
+
720
+ ## Responsive Behavior
721
+
722
+ ### Breakpoints
723
+ | Name | Width | Key Changes |
724
+ |---|---|---|
725
+ | Mobile (small) | < 480px | Single column. Hero 36px. Pricing 1-up. Course catalog 1-up. |
726
+ | Mobile (large) | 480 – 767px | Course tiles 2-up. Hero 48px. |
727
+ | Tablet | 768 – 1023px | 2-column feature grids. Hero 56px. |
728
+ | Desktop | 1024 – 1279px | 3-tier pricing card row. 3-up course catalog. Hero 64px. |
729
+ | Wide Desktop | ≥ 1280px | Full 72px hero presentation. |
730
+
731
+ ### Touch Targets
732
+ - Pill buttons render at 40–44px effective height
733
+ - Form inputs render at 44px height
734
+ - Search pill (large) renders at 56px
735
+ - Pill tabs ~32px → 44px on mobile
736
+
737
+ ### Collapsing Strategy
738
+ - **Promo banner** stays full-width; truncates at < 480px
739
+ - **Top nav** below 1024px collapses to hamburger
740
+ - **Hero band**: code mockup card moves below text on mobile
741
+ - **Pricing tiers**: 3-column → 2-column tablet → 1-column mobile
742
+ - **Course catalog**: 3-up → 2-up tablet → 1-up mobile
743
+ - **Hero typography**: 72px → 56px → 48px → 36px
744
+ - **Footer**: 6-column desktop → 3-column tablet → accordion mobile
745
+
746
+ ### Image Behavior
747
+ - Atmospheric AI imagery uses 16:9 ratio with full-bleed scaling
748
+ - Code mockup card content remains readable across breakpoints
749
+ - Customer logo wall: wordmarks at consistent 60–80px height
750
+
751
+ ## Iteration Guide
752
+
753
+ 1. Focus on ONE component at a time
754
+ 2. Reference component names and tokens directly
755
+ 3. Run `npx @google/design.md lint DESIGN.md` after edits
756
+ 4. Add new variants as separate `components:` entries
757
+ 5. Default to `{typography.body-md}` for body
758
+ 6. Keep `{colors.brand-green}` as the primary CTA across all surfaces
759
+ 7. Pill-shaped buttons (`{rounded.full}`) always
760
+ 8. Dark-teal hero bands frame primary CTAs
761
+
762
+ ## Known Gaps
763
+
764
+ - Specific dark-mode token values for canvas/surface beyond hero bands not surfaced
765
+ - Animation/transition timings not extracted; recommend 150–200ms ease
766
+ - Form validation success state not explicitly captured
767
+ - Course-tile category color mappings are observation-based