savant-code 0.0.21 → 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 +16 -8
  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,926 @@
1
+ {
2
+ "schemaVersion": "1",
3
+ "id": "clickhouse-design-analysis",
4
+ "displayName": "ClickHouse-design-analysis",
5
+ "description": "A high-performance database interface anchored on near-pure black canvas with electric yellow as the brand voltage. White typography in confident sans, yellow CTAs, and yellow-text stat numbers carry the brand voice across every page. Code blocks and product UI fragments embed directly in dark cards. The yellow + black pairing (and yellow used scarcely as accent) is the system's signature — brand identity without atmospheric decoration.",
6
+ "source": "embedded",
7
+ "status": "curated-reference",
8
+ "targets": [
9
+ "terminal",
10
+ "react"
11
+ ],
12
+ "contentPath": "packages/design-systems/library/clickhouse.design.md",
13
+ "sourceContentHash": "50987e29b603cc7503ebe724af810fcf43845e96fdd4083e0fbe5fe00d2cdd2e",
14
+ "normalizedContentHash": "ba74099b5a95ba2369039f4bf9081e1ac871a92baa7dc4afcd3926adc91581d6",
15
+ "provenance": {
16
+ "sourceRepository": "VoltAgent/awesome-design-md",
17
+ "sourceRevision": "working-tree-curated-snapshot",
18
+ "sourcePath": "packages/design-systems/library/clickhouse.design.md",
19
+ "license": "MIT"
20
+ },
21
+ "fonts": [
22
+ {
23
+ "family": "Inter",
24
+ "fallback": [
25
+ "system-ui",
26
+ "sans-serif"
27
+ ],
28
+ "redistributable": false
29
+ },
30
+ {
31
+ "family": "JetBrains Mono",
32
+ "fallback": [
33
+ "system-ui",
34
+ "sans-serif"
35
+ ],
36
+ "redistributable": false
37
+ },
38
+ {
39
+ "family": "ui-monospace",
40
+ "fallback": [
41
+ "system-ui",
42
+ "sans-serif"
43
+ ],
44
+ "redistributable": false
45
+ }
46
+ ],
47
+ "tokens": {
48
+ "colors": {
49
+ "accent-blue": "#3b82f6",
50
+ "accent-emerald": "#22c55e",
51
+ "accent-rose": "#ef4444",
52
+ "body": "#cccccc",
53
+ "body-strong": "#e6e6e6",
54
+ "canvas": "#0a0a0a",
55
+ "error": "#ef4444",
56
+ "hairline": "#2a2a2a",
57
+ "hairline-strong": "#3a3a3a",
58
+ "ink": "#ffffff",
59
+ "muted": "#888888",
60
+ "muted-soft": "#5a5a5a",
61
+ "on-dark": "#ffffff",
62
+ "on-primary": "#0a0a0a",
63
+ "on-yellow": "#0a0a0a",
64
+ "primary": "#faff69",
65
+ "primary-active": "#e6eb52",
66
+ "primary-disabled": "#3a3a1f",
67
+ "success": "#22c55e",
68
+ "surface-card": "#1a1a1a",
69
+ "surface-elevated": "#242424",
70
+ "surface-soft": "#121212",
71
+ "surface-yellow-band": "#faff69",
72
+ "warning": "#f59e0b"
73
+ },
74
+ "typography": {
75
+ "display-xl": {
76
+ "fontFamily": "Inter, sans-serif",
77
+ "fontSize": "72px",
78
+ "fontWeight": 700,
79
+ "letterSpacing": "-2.5px",
80
+ "lineHeight": 1.05
81
+ },
82
+ "display-lg": {
83
+ "fontFamily": "Inter, sans-serif",
84
+ "fontSize": "56px",
85
+ "fontWeight": 700,
86
+ "letterSpacing": "-2px",
87
+ "lineHeight": 1.1
88
+ },
89
+ "display-md": {
90
+ "fontFamily": "Inter, sans-serif",
91
+ "fontSize": "40px",
92
+ "fontWeight": 700,
93
+ "letterSpacing": "-1.5px",
94
+ "lineHeight": 1.15
95
+ },
96
+ "display-sm": {
97
+ "fontFamily": "Inter, sans-serif",
98
+ "fontSize": "32px",
99
+ "fontWeight": 700,
100
+ "letterSpacing": "-1px",
101
+ "lineHeight": 1.2
102
+ },
103
+ "title-lg": {
104
+ "fontFamily": "Inter, sans-serif",
105
+ "fontSize": "24px",
106
+ "fontWeight": 700,
107
+ "letterSpacing": "-0.3px",
108
+ "lineHeight": 1.3
109
+ },
110
+ "title-md": {
111
+ "fontFamily": "Inter, sans-serif",
112
+ "fontSize": "18px",
113
+ "fontWeight": 600,
114
+ "letterSpacing": 0,
115
+ "lineHeight": 1.4
116
+ },
117
+ "title-sm": {
118
+ "fontFamily": "Inter, sans-serif",
119
+ "fontSize": "16px",
120
+ "fontWeight": 600,
121
+ "letterSpacing": 0,
122
+ "lineHeight": 1.4
123
+ },
124
+ "stat-display": {
125
+ "fontFamily": "Inter, sans-serif",
126
+ "fontSize": "56px",
127
+ "fontWeight": 700,
128
+ "letterSpacing": "-1.5px",
129
+ "lineHeight": 1
130
+ },
131
+ "body-md": {
132
+ "fontFamily": "Inter, sans-serif",
133
+ "fontSize": "16px",
134
+ "fontWeight": 400,
135
+ "letterSpacing": 0,
136
+ "lineHeight": 1.55
137
+ },
138
+ "body-sm": {
139
+ "fontFamily": "Inter, sans-serif",
140
+ "fontSize": "14px",
141
+ "fontWeight": 400,
142
+ "letterSpacing": 0,
143
+ "lineHeight": 1.55
144
+ },
145
+ "caption": {
146
+ "fontFamily": "Inter, sans-serif",
147
+ "fontSize": "13px",
148
+ "fontWeight": 500,
149
+ "letterSpacing": 0,
150
+ "lineHeight": 1.4
151
+ },
152
+ "caption-uppercase": {
153
+ "fontFamily": "Inter, sans-serif",
154
+ "fontSize": "12px",
155
+ "fontWeight": 600,
156
+ "letterSpacing": "1.5px",
157
+ "lineHeight": 1.4
158
+ },
159
+ "code": {
160
+ "fontFamily": "JetBrains Mono, ui-monospace, monospace",
161
+ "fontSize": "14px",
162
+ "fontWeight": 400,
163
+ "letterSpacing": 0,
164
+ "lineHeight": 1.55
165
+ },
166
+ "button": {
167
+ "fontFamily": "Inter, sans-serif",
168
+ "fontSize": "14px",
169
+ "fontWeight": 600,
170
+ "letterSpacing": 0,
171
+ "lineHeight": 1
172
+ },
173
+ "nav-link": {
174
+ "fontFamily": "Inter, sans-serif",
175
+ "fontSize": "14px",
176
+ "fontWeight": 500,
177
+ "letterSpacing": 0,
178
+ "lineHeight": 1.4
179
+ }
180
+ },
181
+ "spacing": {
182
+ "lg": "24px",
183
+ "md": "16px",
184
+ "section": "96px",
185
+ "sm": "12px",
186
+ "xl": "32px",
187
+ "xs": "8px",
188
+ "xxl": "48px",
189
+ "xxs": "4px"
190
+ },
191
+ "radius": {
192
+ "full": "9999px",
193
+ "lg": "12px",
194
+ "md": "8px",
195
+ "pill": "9999px",
196
+ "sm": "6px",
197
+ "xs": "4px"
198
+ },
199
+ "components": {
200
+ "button-primary": {
201
+ "backgroundColor": "{colors.primary}",
202
+ "height": "40px",
203
+ "padding": "12px 20px",
204
+ "rounded": "{rounded.md}",
205
+ "textColor": "{colors.on-primary}",
206
+ "typography": "{typography.button}"
207
+ },
208
+ "button-primary-active": {
209
+ "backgroundColor": "{colors.primary-active}",
210
+ "rounded": "{rounded.md}",
211
+ "textColor": "{colors.on-primary}"
212
+ },
213
+ "button-primary-disabled": {
214
+ "backgroundColor": "{colors.primary-disabled}",
215
+ "rounded": "{rounded.md}",
216
+ "textColor": "{colors.muted}"
217
+ },
218
+ "button-secondary": {
219
+ "backgroundColor": "{colors.surface-card}",
220
+ "height": "40px",
221
+ "padding": "12px 20px",
222
+ "rounded": "{rounded.md}",
223
+ "textColor": "{colors.on-dark}",
224
+ "typography": "{typography.button}"
225
+ },
226
+ "button-text-link": {
227
+ "backgroundColor": "transparent",
228
+ "textColor": "{colors.on-dark}",
229
+ "typography": "{typography.button}"
230
+ },
231
+ "button-icon-circular": {
232
+ "backgroundColor": "{colors.surface-card}",
233
+ "rounded": "{rounded.full}",
234
+ "size": "36px",
235
+ "textColor": "{colors.on-dark}"
236
+ },
237
+ "text-link": {
238
+ "backgroundColor": "transparent",
239
+ "textColor": "{colors.primary}",
240
+ "typography": "{typography.body-md}"
241
+ },
242
+ "top-nav": {
243
+ "backgroundColor": "{colors.canvas}",
244
+ "height": "64px",
245
+ "textColor": "{colors.on-dark}",
246
+ "typography": "{typography.nav-link}"
247
+ },
248
+ "hero-band": {
249
+ "backgroundColor": "{colors.canvas}",
250
+ "padding": "96px",
251
+ "textColor": "{colors.on-dark}",
252
+ "typography": "{typography.display-xl}"
253
+ },
254
+ "hero-stat-card": {
255
+ "backgroundColor": "{colors.canvas}",
256
+ "textColor": "{colors.primary}",
257
+ "typography": "{typography.stat-display}"
258
+ },
259
+ "feature-card-yellow": {
260
+ "backgroundColor": "{colors.surface-yellow-band}",
261
+ "padding": "32px",
262
+ "rounded": "{rounded.lg}",
263
+ "textColor": "{colors.on-yellow}",
264
+ "typography": "{typography.title-md}"
265
+ },
266
+ "feature-card-dark": {
267
+ "backgroundColor": "{colors.surface-card}",
268
+ "padding": "32px",
269
+ "rounded": "{rounded.lg}",
270
+ "textColor": "{colors.on-dark}",
271
+ "typography": "{typography.title-md}"
272
+ },
273
+ "code-window-card": {
274
+ "backgroundColor": "{colors.surface-card}",
275
+ "padding": "24px",
276
+ "rounded": "{rounded.lg}",
277
+ "textColor": "{colors.on-dark}",
278
+ "typography": "{typography.code}"
279
+ },
280
+ "product-mockup-card": {
281
+ "backgroundColor": "{colors.surface-card}",
282
+ "padding": "24px",
283
+ "rounded": "{rounded.lg}",
284
+ "textColor": "{colors.on-dark}",
285
+ "typography": "{typography.title-md}"
286
+ },
287
+ "pricing-tier-card": {
288
+ "backgroundColor": "{colors.surface-card}",
289
+ "padding": "32px",
290
+ "rounded": "{rounded.lg}",
291
+ "textColor": "{colors.on-dark}",
292
+ "typography": "{typography.title-lg}"
293
+ },
294
+ "pricing-tier-card-featured": {
295
+ "backgroundColor": "{colors.primary}",
296
+ "padding": "32px",
297
+ "rounded": "{rounded.lg}",
298
+ "textColor": "{colors.on-primary}",
299
+ "typography": "{typography.title-lg}"
300
+ },
301
+ "stat-callout": {
302
+ "backgroundColor": "transparent",
303
+ "textColor": "{colors.primary}",
304
+ "typography": "{typography.stat-display}"
305
+ },
306
+ "cta-band-yellow": {
307
+ "backgroundColor": "{colors.primary}",
308
+ "padding": "64px",
309
+ "rounded": "{rounded.lg}",
310
+ "textColor": "{colors.on-primary}",
311
+ "typography": "{typography.display-md}"
312
+ },
313
+ "text-input": {
314
+ "backgroundColor": "{colors.surface-card}",
315
+ "height": "40px",
316
+ "padding": "10px 14px",
317
+ "rounded": "{rounded.md}",
318
+ "textColor": "{colors.on-dark}",
319
+ "typography": "{typography.body-md}"
320
+ },
321
+ "text-input-focused": {
322
+ "backgroundColor": "{colors.surface-card}",
323
+ "rounded": "{rounded.md}",
324
+ "textColor": "{colors.on-dark}"
325
+ },
326
+ "category-tab": {
327
+ "backgroundColor": "transparent",
328
+ "padding": "8px 14px",
329
+ "rounded": "{rounded.md}",
330
+ "textColor": "{colors.muted}",
331
+ "typography": "{typography.nav-link}"
332
+ },
333
+ "category-tab-active": {
334
+ "backgroundColor": "{colors.surface-card}",
335
+ "rounded": "{rounded.md}",
336
+ "textColor": "{colors.on-dark}",
337
+ "typography": "{typography.nav-link}"
338
+ },
339
+ "badge-pill": {
340
+ "backgroundColor": "{colors.surface-card}",
341
+ "padding": "4px 12px",
342
+ "rounded": "{rounded.pill}",
343
+ "textColor": "{colors.on-dark}",
344
+ "typography": "{typography.caption}"
345
+ },
346
+ "badge-yellow": {
347
+ "backgroundColor": "{colors.primary}",
348
+ "padding": "4px 12px",
349
+ "rounded": "{rounded.pill}",
350
+ "textColor": "{colors.on-primary}",
351
+ "typography": "{typography.caption-uppercase}"
352
+ },
353
+ "events-card": {
354
+ "backgroundColor": "{colors.surface-card}",
355
+ "padding": "24px",
356
+ "rounded": "{rounded.lg}",
357
+ "textColor": "{colors.on-dark}",
358
+ "typography": "{typography.title-md}"
359
+ },
360
+ "customer-logo-strip": {
361
+ "backgroundColor": "{colors.canvas}",
362
+ "padding": "32px",
363
+ "textColor": "{colors.muted}",
364
+ "typography": "{typography.body-md}"
365
+ },
366
+ "footer": {
367
+ "backgroundColor": "{colors.canvas}",
368
+ "padding": "64px",
369
+ "textColor": "{colors.muted}",
370
+ "typography": "{typography.body-sm}"
371
+ }
372
+ },
373
+ "extensions": {
374
+ "description": "A high-performance database interface anchored on near-pure black canvas with electric yellow as the brand voltage. White typography in confident sans, yellow CTAs, and yellow-text stat numbers carry the brand voice across every page. Code blocks and product UI fragments embed directly in dark cards. The yellow + black pairing (and yellow used scarcely as accent) is the system's signature — brand identity without atmospheric decoration.",
375
+ "name": "ClickHouse-design-analysis",
376
+ "version": "alpha"
377
+ }
378
+ }
379
+ }
380
+
381
+ ---
382
+
383
+ ---
384
+ version: alpha
385
+ name: ClickHouse-design-analysis
386
+ description: A high-performance database interface anchored on near-pure black canvas with electric yellow as the brand voltage. White typography in confident sans, yellow CTAs, and yellow-text stat numbers carry the brand voice across every page. Code blocks and product UI fragments embed directly in dark cards. The yellow + black pairing (and yellow used scarcely as accent) is the system's signature — brand identity without atmospheric decoration.
387
+
388
+ colors:
389
+ primary: "#faff69"
390
+ primary-active: "#e6eb52"
391
+ primary-disabled: "#3a3a1f"
392
+ ink: "#ffffff"
393
+ body: "#cccccc"
394
+ body-strong: "#e6e6e6"
395
+ muted: "#888888"
396
+ muted-soft: "#5a5a5a"
397
+ hairline: "#2a2a2a"
398
+ hairline-strong: "#3a3a3a"
399
+ canvas: "#0a0a0a"
400
+ surface-soft: "#121212"
401
+ surface-card: "#1a1a1a"
402
+ surface-elevated: "#242424"
403
+ surface-yellow-band: "#faff69"
404
+ on-primary: "#0a0a0a"
405
+ on-dark: "#ffffff"
406
+ on-yellow: "#0a0a0a"
407
+ accent-emerald: "#22c55e"
408
+ accent-rose: "#ef4444"
409
+ accent-blue: "#3b82f6"
410
+ success: "#22c55e"
411
+ warning: "#f59e0b"
412
+ error: "#ef4444"
413
+
414
+ typography:
415
+ display-xl:
416
+ fontFamily: "Inter, sans-serif"
417
+ fontSize: 72px
418
+ fontWeight: 700
419
+ lineHeight: 1.05
420
+ letterSpacing: -2.5px
421
+ display-lg:
422
+ fontFamily: "Inter, sans-serif"
423
+ fontSize: 56px
424
+ fontWeight: 700
425
+ lineHeight: 1.1
426
+ letterSpacing: -2px
427
+ display-md:
428
+ fontFamily: "Inter, sans-serif"
429
+ fontSize: 40px
430
+ fontWeight: 700
431
+ lineHeight: 1.15
432
+ letterSpacing: -1.5px
433
+ display-sm:
434
+ fontFamily: "Inter, sans-serif"
435
+ fontSize: 32px
436
+ fontWeight: 700
437
+ lineHeight: 1.2
438
+ letterSpacing: -1px
439
+ title-lg:
440
+ fontFamily: "Inter, sans-serif"
441
+ fontSize: 24px
442
+ fontWeight: 700
443
+ lineHeight: 1.3
444
+ letterSpacing: -0.3px
445
+ title-md:
446
+ fontFamily: "Inter, sans-serif"
447
+ fontSize: 18px
448
+ fontWeight: 600
449
+ lineHeight: 1.4
450
+ letterSpacing: 0
451
+ title-sm:
452
+ fontFamily: "Inter, sans-serif"
453
+ fontSize: 16px
454
+ fontWeight: 600
455
+ lineHeight: 1.4
456
+ letterSpacing: 0
457
+ stat-display:
458
+ fontFamily: "Inter, sans-serif"
459
+ fontSize: 56px
460
+ fontWeight: 700
461
+ lineHeight: 1.0
462
+ letterSpacing: -1.5px
463
+ body-md:
464
+ fontFamily: "Inter, sans-serif"
465
+ fontSize: 16px
466
+ fontWeight: 400
467
+ lineHeight: 1.55
468
+ letterSpacing: 0
469
+ body-sm:
470
+ fontFamily: "Inter, sans-serif"
471
+ fontSize: 14px
472
+ fontWeight: 400
473
+ lineHeight: 1.55
474
+ letterSpacing: 0
475
+ caption:
476
+ fontFamily: "Inter, sans-serif"
477
+ fontSize: 13px
478
+ fontWeight: 500
479
+ lineHeight: 1.4
480
+ letterSpacing: 0
481
+ caption-uppercase:
482
+ fontFamily: "Inter, sans-serif"
483
+ fontSize: 12px
484
+ fontWeight: 600
485
+ lineHeight: 1.4
486
+ letterSpacing: 1.5px
487
+ code:
488
+ fontFamily: "JetBrains Mono, ui-monospace, monospace"
489
+ fontSize: 14px
490
+ fontWeight: 400
491
+ lineHeight: 1.55
492
+ letterSpacing: 0
493
+ button:
494
+ fontFamily: "Inter, sans-serif"
495
+ fontSize: 14px
496
+ fontWeight: 600
497
+ lineHeight: 1
498
+ letterSpacing: 0
499
+ nav-link:
500
+ fontFamily: "Inter, sans-serif"
501
+ fontSize: 14px
502
+ fontWeight: 500
503
+ lineHeight: 1.4
504
+ letterSpacing: 0
505
+
506
+ rounded:
507
+ xs: 4px
508
+ sm: 6px
509
+ md: 8px
510
+ lg: 12px
511
+ pill: 9999px
512
+ full: 9999px
513
+
514
+ spacing:
515
+ xxs: 4px
516
+ xs: 8px
517
+ sm: 12px
518
+ md: 16px
519
+ lg: 24px
520
+ xl: 32px
521
+ xxl: 48px
522
+ section: 96px
523
+
524
+ components:
525
+ button-primary:
526
+ backgroundColor: "{colors.primary}"
527
+ textColor: "{colors.on-primary}"
528
+ typography: "{typography.button}"
529
+ rounded: "{rounded.md}"
530
+ padding: 12px 20px
531
+ height: 40px
532
+ button-primary-active:
533
+ backgroundColor: "{colors.primary-active}"
534
+ textColor: "{colors.on-primary}"
535
+ rounded: "{rounded.md}"
536
+ button-primary-disabled:
537
+ backgroundColor: "{colors.primary-disabled}"
538
+ textColor: "{colors.muted}"
539
+ rounded: "{rounded.md}"
540
+ button-secondary:
541
+ backgroundColor: "{colors.surface-card}"
542
+ textColor: "{colors.on-dark}"
543
+ typography: "{typography.button}"
544
+ rounded: "{rounded.md}"
545
+ padding: 12px 20px
546
+ height: 40px
547
+ button-text-link:
548
+ backgroundColor: transparent
549
+ textColor: "{colors.on-dark}"
550
+ typography: "{typography.button}"
551
+ button-icon-circular:
552
+ backgroundColor: "{colors.surface-card}"
553
+ textColor: "{colors.on-dark}"
554
+ rounded: "{rounded.full}"
555
+ size: 36px
556
+ text-link:
557
+ backgroundColor: transparent
558
+ textColor: "{colors.primary}"
559
+ typography: "{typography.body-md}"
560
+ top-nav:
561
+ backgroundColor: "{colors.canvas}"
562
+ textColor: "{colors.on-dark}"
563
+ typography: "{typography.nav-link}"
564
+ height: 64px
565
+ hero-band:
566
+ backgroundColor: "{colors.canvas}"
567
+ textColor: "{colors.on-dark}"
568
+ typography: "{typography.display-xl}"
569
+ padding: 96px
570
+ hero-stat-card:
571
+ backgroundColor: "{colors.canvas}"
572
+ textColor: "{colors.primary}"
573
+ typography: "{typography.stat-display}"
574
+ feature-card-yellow:
575
+ backgroundColor: "{colors.surface-yellow-band}"
576
+ textColor: "{colors.on-yellow}"
577
+ typography: "{typography.title-md}"
578
+ rounded: "{rounded.lg}"
579
+ padding: 32px
580
+ feature-card-dark:
581
+ backgroundColor: "{colors.surface-card}"
582
+ textColor: "{colors.on-dark}"
583
+ typography: "{typography.title-md}"
584
+ rounded: "{rounded.lg}"
585
+ padding: 32px
586
+ code-window-card:
587
+ backgroundColor: "{colors.surface-card}"
588
+ textColor: "{colors.on-dark}"
589
+ typography: "{typography.code}"
590
+ rounded: "{rounded.lg}"
591
+ padding: 24px
592
+ product-mockup-card:
593
+ backgroundColor: "{colors.surface-card}"
594
+ textColor: "{colors.on-dark}"
595
+ typography: "{typography.title-md}"
596
+ rounded: "{rounded.lg}"
597
+ padding: 24px
598
+ pricing-tier-card:
599
+ backgroundColor: "{colors.surface-card}"
600
+ textColor: "{colors.on-dark}"
601
+ typography: "{typography.title-lg}"
602
+ rounded: "{rounded.lg}"
603
+ padding: 32px
604
+ pricing-tier-card-featured:
605
+ backgroundColor: "{colors.primary}"
606
+ textColor: "{colors.on-primary}"
607
+ typography: "{typography.title-lg}"
608
+ rounded: "{rounded.lg}"
609
+ padding: 32px
610
+ stat-callout:
611
+ backgroundColor: transparent
612
+ textColor: "{colors.primary}"
613
+ typography: "{typography.stat-display}"
614
+ cta-band-yellow:
615
+ backgroundColor: "{colors.primary}"
616
+ textColor: "{colors.on-primary}"
617
+ typography: "{typography.display-md}"
618
+ rounded: "{rounded.lg}"
619
+ padding: 64px
620
+ text-input:
621
+ backgroundColor: "{colors.surface-card}"
622
+ textColor: "{colors.on-dark}"
623
+ typography: "{typography.body-md}"
624
+ rounded: "{rounded.md}"
625
+ padding: 10px 14px
626
+ height: 40px
627
+ text-input-focused:
628
+ backgroundColor: "{colors.surface-card}"
629
+ textColor: "{colors.on-dark}"
630
+ rounded: "{rounded.md}"
631
+ category-tab:
632
+ backgroundColor: transparent
633
+ textColor: "{colors.muted}"
634
+ typography: "{typography.nav-link}"
635
+ rounded: "{rounded.md}"
636
+ padding: 8px 14px
637
+ category-tab-active:
638
+ backgroundColor: "{colors.surface-card}"
639
+ textColor: "{colors.on-dark}"
640
+ typography: "{typography.nav-link}"
641
+ rounded: "{rounded.md}"
642
+ badge-pill:
643
+ backgroundColor: "{colors.surface-card}"
644
+ textColor: "{colors.on-dark}"
645
+ typography: "{typography.caption}"
646
+ rounded: "{rounded.pill}"
647
+ padding: 4px 12px
648
+ badge-yellow:
649
+ backgroundColor: "{colors.primary}"
650
+ textColor: "{colors.on-primary}"
651
+ typography: "{typography.caption-uppercase}"
652
+ rounded: "{rounded.pill}"
653
+ padding: 4px 12px
654
+ events-card:
655
+ backgroundColor: "{colors.surface-card}"
656
+ textColor: "{colors.on-dark}"
657
+ typography: "{typography.title-md}"
658
+ rounded: "{rounded.lg}"
659
+ padding: 24px
660
+ customer-logo-strip:
661
+ backgroundColor: "{colors.canvas}"
662
+ textColor: "{colors.muted}"
663
+ typography: "{typography.body-md}"
664
+ padding: 32px
665
+ footer:
666
+ backgroundColor: "{colors.canvas}"
667
+ textColor: "{colors.muted}"
668
+ typography: "{typography.body-sm}"
669
+ padding: 64px
670
+ ---
671
+
672
+ ## Overview
673
+
674
+ ClickHouse's marketing surface is the highest-contrast interface in the database / data-platform category. The base atmosphere is **near-pure black canvas** (`{colors.canvas}` — #0a0a0a) with **electric yellow** (`{colors.primary}` — #faff69) as the singular brand voltage. The yellow handles every primary CTA, every stat-callout number, every "GET STARTED" badge — used scarcely on individual elements but generously on full-bleed yellow CTA cards. White typography in confident weight-700 sans-serif anchors the editorial body.
675
+
676
+ The yellow + black pairing is what makes ClickHouse instantly recognizable. Where Snowflake uses cool blue gradients and Databricks uses red + slate, ClickHouse leans hard into one electric yellow that does all the brand work. Code blocks, terminal output, and product UI fragments embed directly in dark `{colors.surface-card}` (#1a1a1a) cards across every page.
677
+
678
+ Type voice runs **Inter** at confident weights — 700 for display headlines (with negative letter-spacing -1 to -2.5px), 600 for sub-titles and buttons, 400 for body. The system has no display-serif counter-voice; everything is one geometric humanist sans, scaled and weighted for hierarchy.
679
+
680
+ **Key Characteristics:**
681
+ - Near-pure black canvas (`{colors.canvas}` — #0a0a0a) with white type. The system has no light-mode marketing surface.
682
+ - Electric yellow primary (`{colors.primary}` — #faff69). Used on primary CTAs, large stat-callout numbers ("2.8k+", "74k+"), and full-bleed yellow CTA bands.
683
+ - Inter at weight 700 for display, weight 600 for sub-titles + buttons, weight 400 for body. No serif counterpoint.
684
+ - Dark surface cards (`{colors.surface-card}` — #1a1a1a) for feature cards, code windows, and product mockups. Cards barely lighter than canvas — color-block contrast is subtle.
685
+ - Code blocks render in JetBrains Mono inside `{colors.surface-card}`. SQL syntax-highlighted in muted blues / yellows / grays.
686
+ - Stat numbers in yellow + sans-700 + huge size carry the credibility moment ("779+", "2.8k+", "47k+" community / contributor / star counts).
687
+ - Border radius is hierarchical: `{rounded.md}` (8px) for buttons, `{rounded.lg}` (12px) for content cards. No pill except in tag badges.
688
+ - Section rhythm `{spacing.section}` (96px) between major editorial bands.
689
+
690
+ ## Colors
691
+
692
+ ### Brand & Accent
693
+ - **Primary (Electric Yellow)** (`{colors.primary}` — #faff69): The signature brand color. All primary CTA backgrounds, large stat-callout numbers, full-bleed yellow CTA cards. The yellow is the brand.
694
+ - **Primary Active** (`{colors.primary-active}` — #e6eb52): Press / hover-darker variant.
695
+ - **Primary Disabled** (`{colors.primary-disabled}` — #3a3a1f): Desaturated dark-yellow on dark canvas.
696
+
697
+ ### Surface
698
+ - **Canvas** (`{colors.canvas}` — #0a0a0a): The default page floor. Near-pure black.
699
+ - **Surface Soft** (`{colors.surface-soft}` — #121212): Section dividers, very-soft band tints.
700
+ - **Surface Card** (`{colors.surface-card}` — #1a1a1a): Feature cards, code windows, product mockups, pricing tier cards.
701
+ - **Surface Elevated** (`{colors.surface-elevated}` — #242424): Nested cards inside larger dark cards.
702
+ - **Surface Yellow Band** (`{colors.surface-yellow-band}` — #faff69): The yellow CTA card / band fill — same hex as primary.
703
+ - **Hairline** (`{colors.hairline}` — #2a2a2a): 1px borders on cards.
704
+ - **Hairline Strong** (`{colors.hairline-strong}` — #3a3a3a): Heavier divider on input underlines and emphasis.
705
+
706
+ ### Text
707
+ - **Ink / On Dark** (`{colors.on-dark}` — #ffffff): All headline and primary text.
708
+ - **Body** (`{colors.body}` — #cccccc): Default running-text color.
709
+ - **Body Strong** (`{colors.body-strong}` — #e6e6e6): Emphasized paragraphs.
710
+ - **Muted** (`{colors.muted}` — #888888): Footer links, captions, breadcrumbs.
711
+ - **Muted Soft** (`{colors.muted-soft}` — #5a5a5a): Tertiary text — fine print.
712
+ - **On Primary / On Yellow** (`{colors.on-primary}` / `{colors.on-yellow}` — #0a0a0a): Black text on yellow CTAs and yellow CTA bands. The high-contrast yellow + black combo is the brand action signal.
713
+
714
+ ### Semantic / Accent
715
+ - **Accent Emerald** (`{colors.accent-emerald}` — #22c55e): Success states, "active" status indicators in product UI.
716
+ - **Accent Rose** (`{colors.accent-rose}` — #ef4444): Error states, "down" indicators.
717
+ - **Accent Blue** (`{colors.accent-blue}` — #3b82f6): Info states, code-syntax highlighting.
718
+
719
+ ## Typography
720
+
721
+ ### Font Family
722
+ The system runs **Inter** for everything — display, body, navigation, buttons, captions. **JetBrains Mono** handles code blocks. The fallback stack walks `-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif`.
723
+
724
+ The single-family approach is deliberate: Inter at weight 700 + 600 + 400 covers the entire hierarchy without needing a serif or display counter-voice. The geometric humanist character of Inter at confident bold weight gives ClickHouse a precise, engineered feel that matches the database's performance-first positioning.
725
+
726
+ ### Hierarchy
727
+
728
+ | Token | Size | Weight | Line Height | Letter Spacing | Use |
729
+ |---|---|---|---|---|---|
730
+ | `{typography.display-xl}` | 72px | 700 | 1.05 | -2.5px | Homepage h1 ("The leading database for AI") |
731
+ | `{typography.display-lg}` | 56px | 700 | 1.1 | -2px | Section heads |
732
+ | `{typography.display-md}` | 40px | 700 | 1.15 | -1.5px | Sub-section heads, CTA-band heads |
733
+ | `{typography.display-sm}` | 32px | 700 | 1.2 | -1px | Card titles, pricing tier prices |
734
+ | `{typography.title-lg}` | 24px | 700 | 1.3 | -0.3px | Pricing plan names, larger feature titles |
735
+ | `{typography.title-md}` | 18px | 600 | 1.4 | 0 | Card titles, intro paragraphs |
736
+ | `{typography.title-sm}` | 16px | 600 | 1.4 | 0 | Small card titles, list labels |
737
+ | `{typography.stat-display}` | 56px | 700 | 1.0 | -1.5px | Stat callouts ("779+", "47k+") — ALWAYS yellow |
738
+ | `{typography.body-md}` | 16px | 400 | 1.55 | 0 | Default running-text |
739
+ | `{typography.body-sm}` | 14px | 400 | 1.55 | 0 | Footer body, fine-print |
740
+ | `{typography.caption}` | 13px | 500 | 1.4 | 0 | Badge labels, captions |
741
+ | `{typography.caption-uppercase}` | 12px | 600 | 1.4 | 1.5px | Section labels, "NEW" badges |
742
+ | `{typography.code}` | 14px | 400 | 1.55 | 0 | Code blocks — JetBrains Mono |
743
+ | `{typography.button}` | 14px | 600 | 1.0 | 0 | Standard button labels |
744
+ | `{typography.nav-link}` | 14px | 500 | 1.4 | 0 | Top-nav menu items |
745
+
746
+ ### Principles
747
+ Display weights stay at 700 across all sizes. Negative letter-spacing (-1 to -2.5px) is essential — Inter at weight 700 without negative tracking reads as too wide / Apple-marketing. The tightened tracking gives ClickHouse the precise, engineered feel.
748
+
749
+ Body and labels stay at weights 400 / 500 / 600. The hierarchy is built on size + weight, not on family contrast.
750
+
751
+ ### Note on Font Substitutes
752
+ Inter is open-source and the documented choice. **Söhne** is a close commercial alternative if licensed. **Geist** is another modern alternative.
753
+
754
+ ## Layout
755
+
756
+ ### Spacing System
757
+ - **Base unit:** 4px.
758
+ - **Tokens:** `{spacing.xxs}` 4px · `{spacing.xs}` 8px · `{spacing.sm}` 12px · `{spacing.md}` 16px · `{spacing.lg}` 24px · `{spacing.xl}` 32px · `{spacing.xxl}` 48px · `{spacing.section}` 96px.
759
+ - **Section padding:** `{spacing.section}` (96px) between major bands.
760
+ - **Card internal padding:** `{spacing.xl}` (32px) for feature cards, pricing tiers; `{spacing.lg}` (24px) for code-window cards and event cards.
761
+
762
+ ### Grid & Container
763
+ - **Max content width:** ~1280px centered.
764
+ - **Editorial body:** Single 12-column grid; hero often uses 7/5 split (h1 left, code mockup right).
765
+ - **Feature card grids:** 3-up at desktop, 2-up at tablet, 1-up at mobile.
766
+ - **Pricing grid:** 3-4 up at desktop, 1-up at mobile.
767
+
768
+ ### Whitespace Philosophy
769
+ ClickHouse uses dense, slightly-compressed whitespace appropriate for a developer-tooling brand — generous enough to read editorially, tight enough to feel "engineering-grade" rather than "marketing-soft." Section rhythm at 96px is standard; card internal padding stays at 32px for feature cards.
770
+
771
+ ## Elevation & Depth
772
+
773
+ | Level | Treatment | Use |
774
+ |---|---|---|
775
+ | Flat | No shadow, no border | Body sections, top nav, hero |
776
+ | Soft hairline | 1px `{colors.hairline}` border | Code-window cards, content cards |
777
+ | Surface card | `{colors.surface-card}` background — no shadow | Feature cards, pricing tiers, event cards |
778
+ | Yellow band | `{colors.primary}` background — no shadow | Full-bleed yellow CTA cards / bands |
779
+
780
+ The system uses no drop shadows. Depth comes from the contrast between black canvas and `{colors.surface-card}` (a barely-lighter-than-canvas tone) — the contrast is subtle, more like an "engineering-grade dim panel" than an "elevated card."
781
+
782
+ ### Decorative Depth
783
+ - Code-window cards carry their own internal product chrome — line numbers, syntax highlighting, status bars at the bottom — adding visual density without external shadows.
784
+ - The yellow-on-black contrast does most of the elevation work for CTAs.
785
+
786
+ ## Shapes
787
+
788
+ ### Border Radius Scale
789
+
790
+ | Token | Value | Use |
791
+ |---|---|---|
792
+ | `{rounded.xs}` | 4px | Reserved for badge accents |
793
+ | `{rounded.sm}` | 6px | Small inline buttons |
794
+ | `{rounded.md}` | 8px | Standard CTA buttons, text inputs |
795
+ | `{rounded.lg}` | 12px | Content cards, code-window cards, pricing tiers |
796
+ | `{rounded.pill}` | 9999px | Badge pills |
797
+ | `{rounded.full}` | 9999px / 50% | Avatars, icon buttons |
798
+
799
+ ## Components
800
+
801
+ ### Top Navigation
802
+
803
+ **`top-nav`** — Black nav bar pinned to top. 64px tall, `{colors.canvas}` background. Carries the ClickHouse logo + wordmark at left, primary horizontal menu (Product, Use Cases, Pricing, Resources, Customers) center-left, right-side cluster with "Sign in" + "Get Started" `{component.button-primary}` (yellow). Menu items in `{typography.nav-link}` (Inter 14px / 500).
804
+
805
+ ### Buttons
806
+
807
+ **`button-primary`** — The signature yellow CTA. Background `{colors.primary}` (#faff69), text `{colors.on-primary}` (black), type `{typography.button}` (Inter 14px / 600), padding 12px × 20px, height 40px, rounded `{rounded.md}` (8px). The yellow + black combination is iconic.
808
+
809
+ **`button-secondary`** — Dark surface card button. Background `{colors.surface-card}`, text `{colors.on-dark}`, same shape as primary.
810
+
811
+ **`button-text-link`** — Inline text button, no background. Used for "Sign in" and inline link CTAs.
812
+
813
+ **`text-link`** — Inline body links in `{colors.primary}` (yellow on dark). Underlined.
814
+
815
+ **`button-icon-circular`** — 36 × 36 circular icon button on dark.
816
+
817
+ ### Cards & Containers
818
+
819
+ **`hero-band`** — Black-canvas hero with 7-5 grid: h1 + sub-headline + button row on the left, code-window or product mockup on the right. Vertical padding `{spacing.section}` (96px).
820
+
821
+ **`hero-stat-card`** — Yellow stat-display numbers ("779+", "47k+") inline on the canvas. No card surface — just yellow text in `{typography.stat-display}` (56px / 700).
822
+
823
+ **`feature-card-yellow`** — Full-bleed yellow card ("Built for every modern data challenge"). Background `{colors.primary}`, text `{colors.on-yellow}` (black), rounded `{rounded.lg}` (12px), padding `{spacing.xl}` (32px). The yellow card IS the visual emphasis.
824
+
825
+ **`feature-card-dark`** — Standard dark feature card. Background `{colors.surface-card}`, text `{colors.on-dark}`, rounded `{rounded.lg}`, padding `{spacing.xl}` (32px).
826
+
827
+ **`code-window-card`** — Dark card showing a SQL code block. Background `{colors.surface-card}`, code in JetBrains Mono with syntax highlighting, rounded `{rounded.lg}`, padding `{spacing.lg}` (24px). Often the hero's right-side artifact on developer-focused pages.
828
+
829
+ **`product-mockup-card`** — Card showing actual ClickHouse product UI (query editor, dashboard, monitoring panel). Same shape as `{component.feature-card-dark}` but with embedded product chrome inside.
830
+
831
+ **`pricing-tier-card`** — Standard tier card. Background `{colors.surface-card}`, rounded `{rounded.lg}`, padding `{spacing.xl}` (32px).
832
+
833
+ **`pricing-tier-card-featured`** — The featured tier flips to `{colors.primary}` (yellow). The yellow surface IS the featured signal.
834
+
835
+ **`stat-callout`** — Inline yellow stat numbers ("779+", "2.8k+", "47k+"). Transparent background, text `{colors.primary}`, type `{typography.stat-display}`. Used as a flat layout block, not a card with surface.
836
+
837
+ **`events-card`** — Used on /company/events. Dark card with event title, date in `{typography.caption-uppercase}`, location, and a "Register" CTA. Rounded `{rounded.lg}`, padding `{spacing.lg}`.
838
+
839
+ **`customer-logo-strip`** — Horizontal monochrome customer-logo strip. Background `{colors.canvas}`, logos in `{colors.muted}`, vertical padding `{spacing.xl}` (32px).
840
+
841
+ ### Inputs & Forms
842
+
843
+ **`text-input`** — Dark text input. Background `{colors.surface-card}`, text `{colors.on-dark}`, rounded `{rounded.md}` (8px), padding 10px × 14px, height 40px.
844
+
845
+ **`text-input-focused`** — Border thickens to `{colors.primary}` (yellow) for emphasis.
846
+
847
+ ### Tags / Badges
848
+
849
+ **`badge-pill`** — Small dark pill label. Background `{colors.surface-card}`, text `{colors.on-dark}`, type `{typography.caption}`, rounded `{rounded.pill}`.
850
+
851
+ **`badge-yellow`** — Yellow pill for "NEW", "GET STARTED" emphasis. Background `{colors.primary}`, text `{colors.on-primary}`, type `{typography.caption-uppercase}`, rounded `{rounded.pill}`.
852
+
853
+ ### Tab / Filter
854
+
855
+ **`category-tab`** + **`category-tab-active`** — Dark tab navigation. Inactive: transparent + muted text. Active: surface-card background + on-dark text. Padding 8px × 14px, rounded `{rounded.md}`.
856
+
857
+ ### CTA / Footer
858
+
859
+ **`cta-band-yellow`** — A pre-footer "Deploy your way" CTA band. Full yellow fill, black type, rounded `{rounded.lg}`, padding 64px. Carries an h2 in `{typography.display-md}` and a CTA — usually a black-button on the yellow surface.
860
+
861
+ **`footer`** — Black footer that closes every page. Background `{colors.canvas}`, text `{colors.muted}`. 4-column link list at desktop covering Product / Use Cases / Resources / Company. Vertical padding 64px. The ClickHouse wordmark sits at the top in `{colors.on-dark}`.
862
+
863
+ ## Do's and Don'ts
864
+
865
+ ### Do
866
+ - Anchor every page on the black canvas. The yellow + black pairing is the brand voltage.
867
+ - Reserve `{colors.primary}` (yellow) for primary CTAs, stat-callout numbers, and full-bleed yellow CTA bands. The yellow's scarcity at the element level + abundance at the band level is what makes it powerful.
868
+ - Use Inter at weight 700 for every display headline, with -1 to -2.5px letter-spacing.
869
+ - Show actual SQL code blocks inside `{component.code-window-card}` — ClickHouse is a database; show the query, don't paint marketing illustrations of queries.
870
+ - Use `{component.stat-callout}` numbers to establish credibility (community size, contributors, performance benchmarks). The yellow stat numbers are signature.
871
+ - Anchor every band with `{spacing.section}` (96px) vertical rhythm.
872
+
873
+ ### Don't
874
+ - Don't introduce a second brand color. ClickHouse is monochromatic + yellow.
875
+ - Don't bold display weight beyond 700 or use weight 500 for headlines. The hierarchy depends on size, not on weight gradation.
876
+ - Don't use yellow for body text or large surface fills outside of intentional yellow cards.
877
+ - Don't use rounded buttons / pills outside of small badges. The standard button radius is 8px (md).
878
+ - Don't repeat the same surface mode in two consecutive bands. Black canvas → dark feature card → yellow CTA card → black canvas → code-window card.
879
+ - Don't replace SQL code mockups with abstract illustrations. The code IS the marketing voltage.
880
+ - Don't add hover state styling beyond what the system already encodes.
881
+
882
+ ## Responsive Behavior
883
+
884
+ ### Breakpoints
885
+
886
+ | Name | Width | Key Changes |
887
+ |---|---|---|
888
+ | Mobile | < 768px | Hamburger nav; hero h1 72→36px; code-window-card stacks below; feature grids 1-up; pricing 1-up |
889
+ | Tablet | 768–1024px | Top nav tightens; feature cards 2-up; pricing 2-up |
890
+ | Desktop | 1024–1440px | Full top-nav; 3-up feature cards; 3-4 up pricing tiers |
891
+ | Wide | > 1440px | Same as desktop with more breathing room; max content 1280px |
892
+
893
+ ### Touch Targets
894
+ - `{component.button-primary}` at minimum 40 × 40px.
895
+ - `{component.button-icon-circular}` at exactly 36 × 36 — slightly under WCAG 44, visually centered.
896
+ - `{component.text-input}` height is 40px.
897
+
898
+ ### Collapsing Strategy
899
+ - Top nav collapses to hamburger at < 768px.
900
+ - Hero 7-5 grid → single-column on mobile.
901
+ - Feature card grids reduce columns rather than scaling.
902
+ - Code-window cards retain font-size; horizontal scroll inside the card on mobile.
903
+ - Pricing tier cards collapse 4 → 2 → 1; featured tier yellow stays distinct.
904
+
905
+ ### Image Behavior
906
+ - Code blocks inside dark mockups stay at fixed font-size; horizontal scroll on mobile rather than wrapping.
907
+ - Customer logos in monochrome strip retain native widths; row wraps on mobile.
908
+
909
+ ## Iteration Guide
910
+
911
+ 1. Focus on ONE component at a time. Reference its YAML key (`{component.code-window-card}`, `{component.pricing-tier-card-featured}`).
912
+ 2. Variants of an existing component (`-active`, `-disabled`, `-focused`) live as separate entries.
913
+ 3. Use `{token.refs}` everywhere — never inline hex.
914
+ 4. Never document hover. Default and Active/Pressed states only.
915
+ 5. Display headlines stay Inter 700 with negative letter-spacing. Body stays Inter 400.
916
+ 6. The yellow + black pairing is the brand contract. Don't soften with secondary accents.
917
+ 7. When in doubt about emphasis: bigger Inter 700 before adding color.
918
+
919
+ ## Known Gaps
920
+
921
+ - The exact yellow hex (#faff69) was sampled from the screenshot; ClickHouse may publish an official brand color slightly differently.
922
+ - Inter weight axis values beyond 400 / 500 / 600 / 700 are not formalized — only the static weights observed are documented.
923
+ - Animation and transition timings (code typewriter effects, stat counter animations) are not in scope.
924
+ - Form validation states beyond `{component.text-input-focused}` are not extracted.
925
+ - The actual ClickHouse Cloud product surface (query console, monitoring dashboards, table browser) shares some tokens with the marketing site but adds many product-specific components that are out of scope.
926
+ - The customer logo strip's exact opacity / treatment varies — the muted gray is approximate.