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,544 @@
1
+ ---
2
+ version: alpha
3
+ name: ClickHouse
4
+ 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.
5
+
6
+ colors:
7
+ primary: "#faff69"
8
+ primary-active: "#e6eb52"
9
+ primary-disabled: "#3a3a1f"
10
+ ink: "#ffffff"
11
+ body: "#cccccc"
12
+ body-strong: "#e6e6e6"
13
+ muted: "#888888"
14
+ muted-soft: "#5a5a5a"
15
+ hairline: "#2a2a2a"
16
+ hairline-strong: "#3a3a3a"
17
+ canvas: "#0a0a0a"
18
+ surface-soft: "#121212"
19
+ surface-card: "#1a1a1a"
20
+ surface-elevated: "#242424"
21
+ surface-yellow-band: "#faff69"
22
+ on-primary: "#0a0a0a"
23
+ on-dark: "#ffffff"
24
+ on-yellow: "#0a0a0a"
25
+ accent-emerald: "#22c55e"
26
+ accent-rose: "#ef4444"
27
+ accent-blue: "#3b82f6"
28
+ success: "#22c55e"
29
+ warning: "#f59e0b"
30
+ error: "#ef4444"
31
+
32
+ typography:
33
+ display-xl:
34
+ fontFamily: "Inter, sans-serif"
35
+ fontSize: 72px
36
+ fontWeight: 700
37
+ lineHeight: 1.05
38
+ letterSpacing: -2.5px
39
+ display-lg:
40
+ fontFamily: "Inter, sans-serif"
41
+ fontSize: 56px
42
+ fontWeight: 700
43
+ lineHeight: 1.1
44
+ letterSpacing: -2px
45
+ display-md:
46
+ fontFamily: "Inter, sans-serif"
47
+ fontSize: 40px
48
+ fontWeight: 700
49
+ lineHeight: 1.15
50
+ letterSpacing: -1.5px
51
+ display-sm:
52
+ fontFamily: "Inter, sans-serif"
53
+ fontSize: 32px
54
+ fontWeight: 700
55
+ lineHeight: 1.2
56
+ letterSpacing: -1px
57
+ title-lg:
58
+ fontFamily: "Inter, sans-serif"
59
+ fontSize: 24px
60
+ fontWeight: 700
61
+ lineHeight: 1.3
62
+ letterSpacing: -0.3px
63
+ title-md:
64
+ fontFamily: "Inter, sans-serif"
65
+ fontSize: 18px
66
+ fontWeight: 600
67
+ lineHeight: 1.4
68
+ letterSpacing: 0
69
+ title-sm:
70
+ fontFamily: "Inter, sans-serif"
71
+ fontSize: 16px
72
+ fontWeight: 600
73
+ lineHeight: 1.4
74
+ letterSpacing: 0
75
+ stat-display:
76
+ fontFamily: "Inter, sans-serif"
77
+ fontSize: 56px
78
+ fontWeight: 700
79
+ lineHeight: 1.0
80
+ letterSpacing: -1.5px
81
+ body-md:
82
+ fontFamily: "Inter, sans-serif"
83
+ fontSize: 16px
84
+ fontWeight: 400
85
+ lineHeight: 1.55
86
+ letterSpacing: 0
87
+ body-sm:
88
+ fontFamily: "Inter, sans-serif"
89
+ fontSize: 14px
90
+ fontWeight: 400
91
+ lineHeight: 1.55
92
+ letterSpacing: 0
93
+ caption:
94
+ fontFamily: "Inter, sans-serif"
95
+ fontSize: 13px
96
+ fontWeight: 500
97
+ lineHeight: 1.4
98
+ letterSpacing: 0
99
+ caption-uppercase:
100
+ fontFamily: "Inter, sans-serif"
101
+ fontSize: 12px
102
+ fontWeight: 600
103
+ lineHeight: 1.4
104
+ letterSpacing: 1.5px
105
+ code:
106
+ fontFamily: "JetBrains Mono, ui-monospace, monospace"
107
+ fontSize: 14px
108
+ fontWeight: 400
109
+ lineHeight: 1.55
110
+ letterSpacing: 0
111
+ button:
112
+ fontFamily: "Inter, sans-serif"
113
+ fontSize: 14px
114
+ fontWeight: 600
115
+ lineHeight: 1
116
+ letterSpacing: 0
117
+ nav-link:
118
+ fontFamily: "Inter, sans-serif"
119
+ fontSize: 14px
120
+ fontWeight: 500
121
+ lineHeight: 1.4
122
+ letterSpacing: 0
123
+
124
+ rounded:
125
+ xs: 4px
126
+ sm: 6px
127
+ md: 8px
128
+ lg: 12px
129
+ pill: 9999px
130
+ full: 9999px
131
+
132
+ spacing:
133
+ xxs: 4px
134
+ xs: 8px
135
+ sm: 12px
136
+ md: 16px
137
+ lg: 24px
138
+ xl: 32px
139
+ xxl: 48px
140
+ section: 96px
141
+
142
+ components:
143
+ button-primary:
144
+ backgroundColor: "{colors.primary}"
145
+ textColor: "{colors.on-primary}"
146
+ typography: "{typography.button}"
147
+ rounded: "{rounded.md}"
148
+ padding: 12px 20px
149
+ height: 40px
150
+ button-primary-active:
151
+ backgroundColor: "{colors.primary-active}"
152
+ textColor: "{colors.on-primary}"
153
+ rounded: "{rounded.md}"
154
+ button-primary-disabled:
155
+ backgroundColor: "{colors.primary-disabled}"
156
+ textColor: "{colors.muted}"
157
+ rounded: "{rounded.md}"
158
+ button-secondary:
159
+ backgroundColor: "{colors.surface-card}"
160
+ textColor: "{colors.on-dark}"
161
+ typography: "{typography.button}"
162
+ rounded: "{rounded.md}"
163
+ padding: 12px 20px
164
+ height: 40px
165
+ button-text-link:
166
+ backgroundColor: transparent
167
+ textColor: "{colors.on-dark}"
168
+ typography: "{typography.button}"
169
+ button-icon-circular:
170
+ backgroundColor: "{colors.surface-card}"
171
+ textColor: "{colors.on-dark}"
172
+ rounded: "{rounded.full}"
173
+ size: 36px
174
+ text-link:
175
+ backgroundColor: transparent
176
+ textColor: "{colors.primary}"
177
+ typography: "{typography.body-md}"
178
+ top-nav:
179
+ backgroundColor: "{colors.canvas}"
180
+ textColor: "{colors.on-dark}"
181
+ typography: "{typography.nav-link}"
182
+ height: 64px
183
+ hero-band:
184
+ backgroundColor: "{colors.canvas}"
185
+ textColor: "{colors.on-dark}"
186
+ typography: "{typography.display-xl}"
187
+ padding: 96px
188
+ hero-stat-card:
189
+ backgroundColor: "{colors.canvas}"
190
+ textColor: "{colors.primary}"
191
+ typography: "{typography.stat-display}"
192
+ feature-card-yellow:
193
+ backgroundColor: "{colors.surface-yellow-band}"
194
+ textColor: "{colors.on-yellow}"
195
+ typography: "{typography.title-md}"
196
+ rounded: "{rounded.lg}"
197
+ padding: 32px
198
+ feature-card-dark:
199
+ backgroundColor: "{colors.surface-card}"
200
+ textColor: "{colors.on-dark}"
201
+ typography: "{typography.title-md}"
202
+ rounded: "{rounded.lg}"
203
+ padding: 32px
204
+ code-window-card:
205
+ backgroundColor: "{colors.surface-card}"
206
+ textColor: "{colors.on-dark}"
207
+ typography: "{typography.code}"
208
+ rounded: "{rounded.lg}"
209
+ padding: 24px
210
+ product-mockup-card:
211
+ backgroundColor: "{colors.surface-card}"
212
+ textColor: "{colors.on-dark}"
213
+ typography: "{typography.title-md}"
214
+ rounded: "{rounded.lg}"
215
+ padding: 24px
216
+ pricing-tier-card:
217
+ backgroundColor: "{colors.surface-card}"
218
+ textColor: "{colors.on-dark}"
219
+ typography: "{typography.title-lg}"
220
+ rounded: "{rounded.lg}"
221
+ padding: 32px
222
+ pricing-tier-card-featured:
223
+ backgroundColor: "{colors.primary}"
224
+ textColor: "{colors.on-primary}"
225
+ typography: "{typography.title-lg}"
226
+ rounded: "{rounded.lg}"
227
+ padding: 32px
228
+ stat-callout:
229
+ backgroundColor: transparent
230
+ textColor: "{colors.primary}"
231
+ typography: "{typography.stat-display}"
232
+ cta-band-yellow:
233
+ backgroundColor: "{colors.primary}"
234
+ textColor: "{colors.on-primary}"
235
+ typography: "{typography.display-md}"
236
+ rounded: "{rounded.lg}"
237
+ padding: 64px
238
+ text-input:
239
+ backgroundColor: "{colors.surface-card}"
240
+ textColor: "{colors.on-dark}"
241
+ typography: "{typography.body-md}"
242
+ rounded: "{rounded.md}"
243
+ padding: 10px 14px
244
+ height: 40px
245
+ text-input-focused:
246
+ backgroundColor: "{colors.surface-card}"
247
+ textColor: "{colors.on-dark}"
248
+ rounded: "{rounded.md}"
249
+ category-tab:
250
+ backgroundColor: transparent
251
+ textColor: "{colors.muted}"
252
+ typography: "{typography.nav-link}"
253
+ rounded: "{rounded.md}"
254
+ padding: 8px 14px
255
+ category-tab-active:
256
+ backgroundColor: "{colors.surface-card}"
257
+ textColor: "{colors.on-dark}"
258
+ typography: "{typography.nav-link}"
259
+ rounded: "{rounded.md}"
260
+ badge-pill:
261
+ backgroundColor: "{colors.surface-card}"
262
+ textColor: "{colors.on-dark}"
263
+ typography: "{typography.caption}"
264
+ rounded: "{rounded.pill}"
265
+ padding: 4px 12px
266
+ badge-yellow:
267
+ backgroundColor: "{colors.primary}"
268
+ textColor: "{colors.on-primary}"
269
+ typography: "{typography.caption-uppercase}"
270
+ rounded: "{rounded.pill}"
271
+ padding: 4px 12px
272
+ events-card:
273
+ backgroundColor: "{colors.surface-card}"
274
+ textColor: "{colors.on-dark}"
275
+ typography: "{typography.title-md}"
276
+ rounded: "{rounded.lg}"
277
+ padding: 24px
278
+ customer-logo-strip:
279
+ backgroundColor: "{colors.canvas}"
280
+ textColor: "{colors.muted}"
281
+ typography: "{typography.body-md}"
282
+ padding: 32px
283
+ footer:
284
+ backgroundColor: "{colors.canvas}"
285
+ textColor: "{colors.muted}"
286
+ typography: "{typography.body-sm}"
287
+ padding: 64px
288
+ ---
289
+
290
+ ## Overview
291
+
292
+ 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.
293
+
294
+ 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.
295
+
296
+ 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.
297
+
298
+ **Key Characteristics:**
299
+ - Near-pure black canvas (`{colors.canvas}` — #0a0a0a) with white type. The system has no light-mode marketing surface.
300
+ - Electric yellow primary (`{colors.primary}` — #faff69). Used on primary CTAs, large stat-callout numbers ("2.8k+", "74k+"), and full-bleed yellow CTA bands.
301
+ - Inter at weight 700 for display, weight 600 for sub-titles + buttons, weight 400 for body. No serif counterpoint.
302
+ - 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.
303
+ - Code blocks render in JetBrains Mono inside `{colors.surface-card}`. SQL syntax-highlighted in muted blues / yellows / grays.
304
+ - Stat numbers in yellow + sans-700 + huge size carry the credibility moment ("779+", "2.8k+", "47k+" community / contributor / star counts).
305
+ - Border radius is hierarchical: `{rounded.md}` (8px) for buttons, `{rounded.lg}` (12px) for content cards. No pill except in tag badges.
306
+ - Section rhythm `{spacing.section}` (96px) between major editorial bands.
307
+
308
+ ## Colors
309
+
310
+ ### Brand & Accent
311
+ - **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.
312
+ - **Primary Active** (`{colors.primary-active}` — #e6eb52): Press / hover-darker variant.
313
+ - **Primary Disabled** (`{colors.primary-disabled}` — #3a3a1f): Desaturated dark-yellow on dark canvas.
314
+
315
+ ### Surface
316
+ - **Canvas** (`{colors.canvas}` — #0a0a0a): The default page floor. Near-pure black.
317
+ - **Surface Soft** (`{colors.surface-soft}` — #121212): Section dividers, very-soft band tints.
318
+ - **Surface Card** (`{colors.surface-card}` — #1a1a1a): Feature cards, code windows, product mockups, pricing tier cards.
319
+ - **Surface Elevated** (`{colors.surface-elevated}` — #242424): Nested cards inside larger dark cards.
320
+ - **Surface Yellow Band** (`{colors.surface-yellow-band}` — #faff69): The yellow CTA card / band fill — same hex as primary.
321
+ - **Hairline** (`{colors.hairline}` — #2a2a2a): 1px borders on cards.
322
+ - **Hairline Strong** (`{colors.hairline-strong}` — #3a3a3a): Heavier divider on input underlines and emphasis.
323
+
324
+ ### Text
325
+ - **Ink / On Dark** (`{colors.on-dark}` — #ffffff): All headline and primary text.
326
+ - **Body** (`{colors.body}` — #cccccc): Default running-text color.
327
+ - **Body Strong** (`{colors.body-strong}` — #e6e6e6): Emphasized paragraphs.
328
+ - **Muted** (`{colors.muted}` — #888888): Footer links, captions, breadcrumbs.
329
+ - **Muted Soft** (`{colors.muted-soft}` — #5a5a5a): Tertiary text — fine print.
330
+ - **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.
331
+
332
+ ### Semantic / Accent
333
+ - **Accent Emerald** (`{colors.accent-emerald}` — #22c55e): Success states, "active" status indicators in product UI.
334
+ - **Accent Rose** (`{colors.accent-rose}` — #ef4444): Error states, "down" indicators.
335
+ - **Accent Blue** (`{colors.accent-blue}` — #3b82f6): Info states, code-syntax highlighting.
336
+
337
+ ## Typography
338
+
339
+ ### Font Family
340
+ 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`.
341
+
342
+ 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.
343
+
344
+ ### Hierarchy
345
+
346
+ | Token | Size | Weight | Line Height | Letter Spacing | Use |
347
+ |---|---|---|---|---|---|
348
+ | `{typography.display-xl}` | 72px | 700 | 1.05 | -2.5px | Homepage h1 ("The leading database for AI") |
349
+ | `{typography.display-lg}` | 56px | 700 | 1.1 | -2px | Section heads |
350
+ | `{typography.display-md}` | 40px | 700 | 1.15 | -1.5px | Sub-section heads, CTA-band heads |
351
+ | `{typography.display-sm}` | 32px | 700 | 1.2 | -1px | Card titles, pricing tier prices |
352
+ | `{typography.title-lg}` | 24px | 700 | 1.3 | -0.3px | Pricing plan names, larger feature titles |
353
+ | `{typography.title-md}` | 18px | 600 | 1.4 | 0 | Card titles, intro paragraphs |
354
+ | `{typography.title-sm}` | 16px | 600 | 1.4 | 0 | Small card titles, list labels |
355
+ | `{typography.stat-display}` | 56px | 700 | 1.0 | -1.5px | Stat callouts ("779+", "47k+") — ALWAYS yellow |
356
+ | `{typography.body-md}` | 16px | 400 | 1.55 | 0 | Default running-text |
357
+ | `{typography.body-sm}` | 14px | 400 | 1.55 | 0 | Footer body, fine-print |
358
+ | `{typography.caption}` | 13px | 500 | 1.4 | 0 | Badge labels, captions |
359
+ | `{typography.caption-uppercase}` | 12px | 600 | 1.4 | 1.5px | Section labels, "NEW" badges |
360
+ | `{typography.code}` | 14px | 400 | 1.55 | 0 | Code blocks — JetBrains Mono |
361
+ | `{typography.button}` | 14px | 600 | 1.0 | 0 | Standard button labels |
362
+ | `{typography.nav-link}` | 14px | 500 | 1.4 | 0 | Top-nav menu items |
363
+
364
+ ### Principles
365
+ 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.
366
+
367
+ Body and labels stay at weights 400 / 500 / 600. The hierarchy is built on size + weight, not on family contrast.
368
+
369
+ ### Note on Font Substitutes
370
+ Inter is open-source and the documented choice. **Söhne** is a close commercial alternative if licensed. **Geist** is another modern alternative.
371
+
372
+ ## Layout
373
+
374
+ ### Spacing System
375
+ - **Base unit:** 4px.
376
+ - **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.
377
+ - **Section padding:** `{spacing.section}` (96px) between major bands.
378
+ - **Card internal padding:** `{spacing.xl}` (32px) for feature cards, pricing tiers; `{spacing.lg}` (24px) for code-window cards and event cards.
379
+
380
+ ### Grid & Container
381
+ - **Max content width:** ~1280px centered.
382
+ - **Editorial body:** Single 12-column grid; hero often uses 7/5 split (h1 left, code mockup right).
383
+ - **Feature card grids:** 3-up at desktop, 2-up at tablet, 1-up at mobile.
384
+ - **Pricing grid:** 3-4 up at desktop, 1-up at mobile.
385
+
386
+ ### Whitespace Philosophy
387
+ 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.
388
+
389
+ ## Elevation & Depth
390
+
391
+ | Level | Treatment | Use |
392
+ |---|---|---|
393
+ | Flat | No shadow, no border | Body sections, top nav, hero |
394
+ | Soft hairline | 1px `{colors.hairline}` border | Code-window cards, content cards |
395
+ | Surface card | `{colors.surface-card}` background — no shadow | Feature cards, pricing tiers, event cards |
396
+ | Yellow band | `{colors.primary}` background — no shadow | Full-bleed yellow CTA cards / bands |
397
+
398
+ 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."
399
+
400
+ ### Decorative Depth
401
+ - Code-window cards carry their own internal product chrome — line numbers, syntax highlighting, status bars at the bottom — adding visual density without external shadows.
402
+ - The yellow-on-black contrast does most of the elevation work for CTAs.
403
+
404
+ ## Shapes
405
+
406
+ ### Border Radius Scale
407
+
408
+ | Token | Value | Use |
409
+ |---|---|---|
410
+ | `{rounded.xs}` | 4px | Reserved for badge accents |
411
+ | `{rounded.sm}` | 6px | Small inline buttons |
412
+ | `{rounded.md}` | 8px | Standard CTA buttons, text inputs |
413
+ | `{rounded.lg}` | 12px | Content cards, code-window cards, pricing tiers |
414
+ | `{rounded.pill}` | 9999px | Badge pills |
415
+ | `{rounded.full}` | 9999px / 50% | Avatars, icon buttons |
416
+
417
+ ## Components
418
+
419
+ ### Top Navigation
420
+
421
+ **`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).
422
+
423
+ ### Buttons
424
+
425
+ **`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.
426
+
427
+ **`button-secondary`** — Dark surface card button. Background `{colors.surface-card}`, text `{colors.on-dark}`, same shape as primary.
428
+
429
+ **`button-text-link`** — Inline text button, no background. Used for "Sign in" and inline link CTAs.
430
+
431
+ **`text-link`** — Inline body links in `{colors.primary}` (yellow on dark). Underlined.
432
+
433
+ **`button-icon-circular`** — 36 × 36 circular icon button on dark.
434
+
435
+ ### Cards & Containers
436
+
437
+ **`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).
438
+
439
+ **`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).
440
+
441
+ **`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.
442
+
443
+ **`feature-card-dark`** — Standard dark feature card. Background `{colors.surface-card}`, text `{colors.on-dark}`, rounded `{rounded.lg}`, padding `{spacing.xl}` (32px).
444
+
445
+ **`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.
446
+
447
+ **`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.
448
+
449
+ **`pricing-tier-card`** — Standard tier card. Background `{colors.surface-card}`, rounded `{rounded.lg}`, padding `{spacing.xl}` (32px).
450
+
451
+ **`pricing-tier-card-featured`** — The featured tier flips to `{colors.primary}` (yellow). The yellow surface IS the featured signal.
452
+
453
+ **`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.
454
+
455
+ **`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}`.
456
+
457
+ **`customer-logo-strip`** — Horizontal monochrome customer-logo strip. Background `{colors.canvas}`, logos in `{colors.muted}`, vertical padding `{spacing.xl}` (32px).
458
+
459
+ ### Inputs & Forms
460
+
461
+ **`text-input`** — Dark text input. Background `{colors.surface-card}`, text `{colors.on-dark}`, rounded `{rounded.md}` (8px), padding 10px × 14px, height 40px.
462
+
463
+ **`text-input-focused`** — Border thickens to `{colors.primary}` (yellow) for emphasis.
464
+
465
+ ### Tags / Badges
466
+
467
+ **`badge-pill`** — Small dark pill label. Background `{colors.surface-card}`, text `{colors.on-dark}`, type `{typography.caption}`, rounded `{rounded.pill}`.
468
+
469
+ **`badge-yellow`** — Yellow pill for "NEW", "GET STARTED" emphasis. Background `{colors.primary}`, text `{colors.on-primary}`, type `{typography.caption-uppercase}`, rounded `{rounded.pill}`.
470
+
471
+ ### Tab / Filter
472
+
473
+ **`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}`.
474
+
475
+ ### CTA / Footer
476
+
477
+ **`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.
478
+
479
+ **`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}`.
480
+
481
+ ## Do's and Don'ts
482
+
483
+ ### Do
484
+ - Anchor every page on the black canvas. The yellow + black pairing is the brand voltage.
485
+ - 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.
486
+ - Use Inter at weight 700 for every display headline, with -1 to -2.5px letter-spacing.
487
+ - Show actual SQL code blocks inside `{component.code-window-card}` — ClickHouse is a database; show the query, don't paint marketing illustrations of queries.
488
+ - Use `{component.stat-callout}` numbers to establish credibility (community size, contributors, performance benchmarks). The yellow stat numbers are signature.
489
+ - Anchor every band with `{spacing.section}` (96px) vertical rhythm.
490
+
491
+ ### Don't
492
+ - Don't introduce a second brand color. ClickHouse is monochromatic + yellow.
493
+ - Don't bold display weight beyond 700 or use weight 500 for headlines. The hierarchy depends on size, not on weight gradation.
494
+ - Don't use yellow for body text or large surface fills outside of intentional yellow cards.
495
+ - Don't use rounded buttons / pills outside of small badges. The standard button radius is 8px (md).
496
+ - Don't repeat the same surface mode in two consecutive bands. Black canvas → dark feature card → yellow CTA card → black canvas → code-window card.
497
+ - Don't replace SQL code mockups with abstract illustrations. The code IS the marketing voltage.
498
+ - Don't add hover state styling beyond what the system already encodes.
499
+
500
+ ## Responsive Behavior
501
+
502
+ ### Breakpoints
503
+
504
+ | Name | Width | Key Changes |
505
+ |---|---|---|
506
+ | Mobile | < 768px | Hamburger nav; hero h1 72→36px; code-window-card stacks below; feature grids 1-up; pricing 1-up |
507
+ | Tablet | 768–1024px | Top nav tightens; feature cards 2-up; pricing 2-up |
508
+ | Desktop | 1024–1440px | Full top-nav; 3-up feature cards; 3-4 up pricing tiers |
509
+ | Wide | > 1440px | Same as desktop with more breathing room; max content 1280px |
510
+
511
+ ### Touch Targets
512
+ - `{component.button-primary}` at minimum 40 × 40px.
513
+ - `{component.button-icon-circular}` at exactly 36 × 36 — slightly under WCAG 44, visually centered.
514
+ - `{component.text-input}` height is 40px.
515
+
516
+ ### Collapsing Strategy
517
+ - Top nav collapses to hamburger at < 768px.
518
+ - Hero 7-5 grid → single-column on mobile.
519
+ - Feature card grids reduce columns rather than scaling.
520
+ - Code-window cards retain font-size; horizontal scroll inside the card on mobile.
521
+ - Pricing tier cards collapse 4 → 2 → 1; featured tier yellow stays distinct.
522
+
523
+ ### Image Behavior
524
+ - Code blocks inside dark mockups stay at fixed font-size; horizontal scroll on mobile rather than wrapping.
525
+ - Customer logos in monochrome strip retain native widths; row wraps on mobile.
526
+
527
+ ## Iteration Guide
528
+
529
+ 1. Focus on ONE component at a time. Reference its YAML key (`{component.code-window-card}`, `{component.pricing-tier-card-featured}`).
530
+ 2. Variants of an existing component (`-active`, `-disabled`, `-focused`) live as separate entries.
531
+ 3. Use `{token.refs}` everywhere — never inline hex.
532
+ 4. Never document hover. Default and Active/Pressed states only.
533
+ 5. Display headlines stay Inter 700 with negative letter-spacing. Body stays Inter 400.
534
+ 6. The yellow + black pairing is the brand contract. Don't soften with secondary accents.
535
+ 7. When in doubt about emphasis: bigger Inter 700 before adding color.
536
+
537
+ ## Known Gaps
538
+
539
+ - The exact yellow hex (#faff69) was sampled from the screenshot; ClickHouse may publish an official brand color slightly differently.
540
+ - Inter weight axis values beyond 400 / 500 / 600 / 700 are not formalized — only the static weights observed are documented.
541
+ - Animation and transition timings (code typewriter effects, stat counter animations) are not in scope.
542
+ - Form validation states beyond `{component.text-input-focused}` are not extracted.
543
+ - 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.
544
+ - The customer logo strip's exact opacity / treatment varies — the muted gray is approximate.
@@ -0,0 +1,5 @@
1
+ # ClickHouse Inspired Design System
2
+
3
+ Design system details have been moved to: https://getdesign.md/clickhouse/design-md
4
+
5
+ You can also view previews, dark mode examples, and download options on getdesign.md.