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,537 @@
1
+ ---
2
+ version: alpha
3
+ name: Cursor
4
+ description: An AI-first code editor whose marketing site reads like a quietly-confident developer-tools brand with a warm-cream editorial canvas (`#f7f7f4`) instead of the typical dark IDE atmosphere. Near-black warm ink (`#26251e`) carries body and display alike — display sits at weight 400 with negative letter-spacing for a magazine feel rather than a bold tech voice. The single brand voltage is **Cursor Orange** (`#f54e00`) reserved for primary CTAs and the wordmark. A signature pastel timeline palette (peach, mint, blue, lavender, gold) marks AI-action stages (Thinking / Reading / Editing / Grepping / Done) — only inside in-product timeline visualizations. Cards use minimal hairlines, no shadows, generous 80px section rhythm. CursorGothic for display/body, JetBrains Mono on every code surface (which is roughly half the page).
5
+
6
+ colors:
7
+ primary: "#f54e00"
8
+ primary-active: "#d04200"
9
+ ink: "#26251e"
10
+ body: "#5a5852"
11
+ body-strong: "#26251e"
12
+ muted: "#807d72"
13
+ muted-soft: "#a09c92"
14
+ hairline: "#e6e5e0"
15
+ hairline-soft: "#efeee8"
16
+ hairline-strong: "#cfcdc4"
17
+ canvas: "#f7f7f4"
18
+ canvas-soft: "#fafaf7"
19
+ surface-card: "#ffffff"
20
+ surface-strong: "#e6e5e0"
21
+ on-primary: "#ffffff"
22
+ timeline-thinking: "#dfa88f"
23
+ timeline-grep: "#9fc9a2"
24
+ timeline-read: "#9fbbe0"
25
+ timeline-edit: "#c0a8dd"
26
+ timeline-done: "#c08532"
27
+ semantic-error: "#cf2d56"
28
+ semantic-success: "#1f8a65"
29
+
30
+ typography:
31
+ display-mega:
32
+ fontFamily: "'CursorGothic', system-ui, 'Helvetica Neue', Helvetica, Arial, sans-serif"
33
+ fontSize: 72px
34
+ fontWeight: 400
35
+ lineHeight: 1.1
36
+ letterSpacing: -2.16px
37
+ display-lg:
38
+ fontFamily: "'CursorGothic', sans-serif"
39
+ fontSize: 36px
40
+ fontWeight: 400
41
+ lineHeight: 1.2
42
+ letterSpacing: -0.72px
43
+ display-md:
44
+ fontFamily: "'CursorGothic', sans-serif"
45
+ fontSize: 26px
46
+ fontWeight: 400
47
+ lineHeight: 1.25
48
+ letterSpacing: -0.325px
49
+ display-sm:
50
+ fontFamily: "'CursorGothic', sans-serif"
51
+ fontSize: 22px
52
+ fontWeight: 400
53
+ lineHeight: 1.3
54
+ letterSpacing: -0.11px
55
+ title-md:
56
+ fontFamily: "'CursorGothic', sans-serif"
57
+ fontSize: 18px
58
+ fontWeight: 600
59
+ lineHeight: 1.4
60
+ letterSpacing: 0
61
+ title-sm:
62
+ fontFamily: "'CursorGothic', sans-serif"
63
+ fontSize: 16px
64
+ fontWeight: 600
65
+ lineHeight: 1.4
66
+ letterSpacing: 0
67
+ body-md:
68
+ fontFamily: "'CursorGothic', sans-serif"
69
+ fontSize: 16px
70
+ fontWeight: 400
71
+ lineHeight: 1.5
72
+ letterSpacing: 0
73
+ body-tracked:
74
+ fontFamily: "'CursorGothic', sans-serif"
75
+ fontSize: 16px
76
+ fontWeight: 400
77
+ lineHeight: 1.5
78
+ letterSpacing: 0.08px
79
+ body-sm:
80
+ fontFamily: "'CursorGothic', sans-serif"
81
+ fontSize: 14px
82
+ fontWeight: 400
83
+ lineHeight: 1.5
84
+ letterSpacing: 0
85
+ caption:
86
+ fontFamily: "'CursorGothic', sans-serif"
87
+ fontSize: 13px
88
+ fontWeight: 400
89
+ lineHeight: 1.4
90
+ letterSpacing: 0
91
+ caption-uppercase:
92
+ fontFamily: "'CursorGothic', sans-serif"
93
+ fontSize: 11px
94
+ fontWeight: 600
95
+ lineHeight: 1.4
96
+ letterSpacing: 0.88px
97
+ textTransform: uppercase
98
+ code:
99
+ fontFamily: "'JetBrains Mono', 'Fira Code', monospace"
100
+ fontSize: 13px
101
+ fontWeight: 400
102
+ lineHeight: 1.5
103
+ letterSpacing: 0
104
+ button:
105
+ fontFamily: "'CursorGothic', sans-serif"
106
+ fontSize: 14px
107
+ fontWeight: 500
108
+ lineHeight: 1.0
109
+ letterSpacing: 0
110
+ nav-link:
111
+ fontFamily: "'CursorGothic', sans-serif"
112
+ fontSize: 14px
113
+ fontWeight: 500
114
+ lineHeight: 1.4
115
+ letterSpacing: 0
116
+
117
+ rounded:
118
+ none: 0px
119
+ xs: 4px
120
+ sm: 6px
121
+ md: 8px
122
+ lg: 12px
123
+ xl: 16px
124
+ pill: 9999px
125
+ full: 9999px
126
+
127
+ spacing:
128
+ xxs: 4px
129
+ xs: 8px
130
+ sm: 12px
131
+ base: 16px
132
+ md: 20px
133
+ lg: 24px
134
+ xl: 32px
135
+ xxl: 48px
136
+ section: 80px
137
+
138
+ components:
139
+ top-nav:
140
+ backgroundColor: "{colors.canvas}"
141
+ textColor: "{colors.ink}"
142
+ typography: "{typography.nav-link}"
143
+ height: 64px
144
+ button-primary:
145
+ backgroundColor: "{colors.primary}"
146
+ textColor: "{colors.on-primary}"
147
+ typography: "{typography.button}"
148
+ rounded: "{rounded.md}"
149
+ padding: 10px 18px
150
+ height: 40px
151
+ button-primary-active:
152
+ backgroundColor: "{colors.primary-active}"
153
+ textColor: "{colors.on-primary}"
154
+ rounded: "{rounded.md}"
155
+ button-secondary:
156
+ backgroundColor: "{colors.surface-card}"
157
+ textColor: "{colors.ink}"
158
+ typography: "{typography.button}"
159
+ rounded: "{rounded.md}"
160
+ padding: 9px 17px
161
+ height: 40px
162
+ button-tertiary-text:
163
+ backgroundColor: transparent
164
+ textColor: "{colors.ink}"
165
+ typography: "{typography.button}"
166
+ button-download:
167
+ backgroundColor: "{colors.ink}"
168
+ textColor: "{colors.canvas}"
169
+ typography: "{typography.button}"
170
+ rounded: "{rounded.md}"
171
+ padding: 12px 20px
172
+ height: 44px
173
+ hero-band:
174
+ backgroundColor: "{colors.canvas}"
175
+ textColor: "{colors.ink}"
176
+ typography: "{typography.display-mega}"
177
+ padding: 80px
178
+ ide-mockup-card:
179
+ backgroundColor: "{colors.surface-card}"
180
+ textColor: "{colors.ink}"
181
+ rounded: "{rounded.lg}"
182
+ padding: 0
183
+ ide-pane:
184
+ backgroundColor: "{colors.canvas-soft}"
185
+ textColor: "{colors.body}"
186
+ typography: "{typography.code}"
187
+ rounded: "{rounded.md}"
188
+ padding: 16px
189
+ feature-card:
190
+ backgroundColor: "{colors.surface-card}"
191
+ textColor: "{colors.ink}"
192
+ typography: "{typography.title-md}"
193
+ rounded: "{rounded.lg}"
194
+ padding: 24px
195
+ comparison-card:
196
+ backgroundColor: "{colors.surface-card}"
197
+ textColor: "{colors.ink}"
198
+ typography: "{typography.body-md}"
199
+ rounded: "{rounded.lg}"
200
+ padding: 24px
201
+ timeline-pill-thinking:
202
+ backgroundColor: "{colors.timeline-thinking}"
203
+ textColor: "{colors.ink}"
204
+ typography: "{typography.caption-uppercase}"
205
+ rounded: "{rounded.pill}"
206
+ padding: 4px 10px
207
+ timeline-pill-grep:
208
+ backgroundColor: "{colors.timeline-grep}"
209
+ textColor: "{colors.ink}"
210
+ typography: "{typography.caption-uppercase}"
211
+ rounded: "{rounded.pill}"
212
+ padding: 4px 10px
213
+ timeline-pill-read:
214
+ backgroundColor: "{colors.timeline-read}"
215
+ textColor: "{colors.ink}"
216
+ typography: "{typography.caption-uppercase}"
217
+ rounded: "{rounded.pill}"
218
+ padding: 4px 10px
219
+ timeline-pill-edit:
220
+ backgroundColor: "{colors.timeline-edit}"
221
+ textColor: "{colors.ink}"
222
+ typography: "{typography.caption-uppercase}"
223
+ rounded: "{rounded.pill}"
224
+ padding: 4px 10px
225
+ timeline-pill-done:
226
+ backgroundColor: "{colors.timeline-done}"
227
+ textColor: "{colors.on-primary}"
228
+ typography: "{typography.caption-uppercase}"
229
+ rounded: "{rounded.pill}"
230
+ padding: 4px 10px
231
+ code-block:
232
+ backgroundColor: "{colors.surface-card}"
233
+ textColor: "{colors.ink}"
234
+ typography: "{typography.code}"
235
+ rounded: "{rounded.lg}"
236
+ padding: 20px
237
+ pricing-tier-card:
238
+ backgroundColor: "{colors.surface-card}"
239
+ textColor: "{colors.ink}"
240
+ typography: "{typography.body-md}"
241
+ rounded: "{rounded.lg}"
242
+ padding: 32px
243
+ pricing-tier-featured:
244
+ backgroundColor: "{colors.ink}"
245
+ textColor: "{colors.canvas}"
246
+ typography: "{typography.body-md}"
247
+ rounded: "{rounded.lg}"
248
+ padding: 32px
249
+ text-input:
250
+ backgroundColor: "{colors.surface-card}"
251
+ textColor: "{colors.ink}"
252
+ typography: "{typography.body-md}"
253
+ rounded: "{rounded.md}"
254
+ padding: 12px 16px
255
+ height: 44px
256
+ badge-pill:
257
+ backgroundColor: "{colors.surface-strong}"
258
+ textColor: "{colors.ink}"
259
+ typography: "{typography.caption-uppercase}"
260
+ rounded: "{rounded.pill}"
261
+ padding: 4px 10px
262
+ cta-band:
263
+ backgroundColor: "{colors.canvas}"
264
+ textColor: "{colors.ink}"
265
+ typography: "{typography.display-lg}"
266
+ padding: 96px
267
+ testimonial-card:
268
+ backgroundColor: "{colors.surface-card}"
269
+ textColor: "{colors.body}"
270
+ typography: "{typography.body-md}"
271
+ rounded: "{rounded.lg}"
272
+ padding: 24px
273
+ footer:
274
+ backgroundColor: "{colors.canvas}"
275
+ textColor: "{colors.body}"
276
+ typography: "{typography.body-sm}"
277
+ padding: 64px 48px
278
+ footer-link:
279
+ backgroundColor: transparent
280
+ textColor: "{colors.body}"
281
+ typography: "{typography.body-sm}"
282
+ ---
283
+
284
+ ## Overview
285
+
286
+ Cursor's marketing site reads as a quietly-confident developer brand that believes in editorial calm over IDE-darkness. The base canvas is **warm cream** (`{colors.canvas}` — #f7f7f4) holding warm near-black ink (`{colors.ink}` — #26251e) for body and display alike. The single brand voltage is **Cursor Orange** (`{colors.primary}` — #f54e00) reserved for primary CTAs and the wordmark — used scarcely.
287
+
288
+ Type runs **CursorGothic** as the single sans family. Display sits at weight 400 with negative letter-spacing — a magazine-editorial voice rather than tech-bombastic. JetBrains Mono carries every code surface (and code surfaces are roughly half the page).
289
+
290
+ The brand's strongest visual signature is the **AI-timeline pill palette**: five pastel pills (peach `{colors.timeline-thinking}`, mint `{colors.timeline-grep}`, blue `{colors.timeline-read}`, lavender `{colors.timeline-edit}`, gold `{colors.timeline-done}`) marking AI-action stages inside in-product timeline visualizations. Used only in product UI — never as system action colors.
291
+
292
+ **Key Characteristics:**
293
+ - Warm cream canvas, not white. Ink is warm (#26251e), not pure black.
294
+ - Single CTA color: `{colors.primary}` (Cursor Orange #f54e00). Used scarcely.
295
+ - Display weight stays at 400 — never bold. Magazine voice.
296
+ - AI timeline pastels: 5 dedicated tokens for in-product agent action stages.
297
+ - Compact 8px CTA radius — developer dialect.
298
+ - Hairline-only depth; no drop shadows.
299
+ - 80px section rhythm.
300
+
301
+ ## Colors
302
+
303
+ ### Brand & Accent
304
+ - **Cursor Orange** (`{colors.primary}` — #f54e00): Primary CTA pills, wordmark, hero accent. Used scarcely.
305
+ - **Cursor Orange Active** (`{colors.primary-active}` — #d04200): Press state.
306
+
307
+ ### Surface
308
+ - **Canvas** (`{colors.canvas}` — #f7f7f4): Warm cream page floor.
309
+ - **Canvas Soft** (`{colors.canvas-soft}` — #fafaf7): IDE-pane background inside mockups.
310
+ - **Surface Card** (`{colors.surface-card}` — #ffffff): Pure white card surface — slight contrast against the cream canvas.
311
+ - **Surface Strong** (`{colors.surface-strong}` — #e6e5e0): Badges, tag pills.
312
+
313
+ ### Hairlines
314
+ - **Hairline** (`{colors.hairline}` — #e6e5e0): 1px divider.
315
+ - **Hairline Soft** (`{colors.hairline-soft}` — #efeee8): Lighter divider.
316
+ - **Hairline Strong** (`{colors.hairline-strong}` — #cfcdc4): Stronger panel outline.
317
+
318
+ ### Text
319
+ - **Ink** (`{colors.ink}` — #26251e): Display, body emphasis. Warm near-black.
320
+ - **Body** (`{colors.body}` — #5a5852): Default running-text.
321
+ - **Body Strong** (`{colors.body-strong}` — #26251e): Same as ink.
322
+ - **Muted** (`{colors.muted}` — #807d72): Sub-titles.
323
+ - **Muted Soft** (`{colors.muted-soft}` — #a09c92): Disabled text.
324
+ - **On Primary** (`{colors.on-primary}` — #ffffff): White text on Cursor Orange.
325
+
326
+ ### Timeline (AI-action signature)
327
+ - **Thinking** (`{colors.timeline-thinking}` — #dfa88f): Peach. Used inside in-product agent timeline only.
328
+ - **Grep** (`{colors.timeline-grep}` — #9fc9a2): Mint.
329
+ - **Read** (`{colors.timeline-read}` — #9fbbe0): Pastel blue.
330
+ - **Edit** (`{colors.timeline-edit}` — #c0a8dd): Lavender.
331
+ - **Done** (`{colors.timeline-done}` — #c08532): Warm gold.
332
+
333
+ ### Semantic
334
+ - **Success** (`{colors.semantic-success}` — #1f8a65): Confirmation indicators.
335
+ - **Error** (`{colors.semantic-error}` — #cf2d56): Validation errors.
336
+
337
+ ## Typography
338
+
339
+ ### Font Family
340
+ **CursorGothic** is the licensed display + body family. Fallback: `system-ui, "Helvetica Neue", Helvetica, Arial, sans-serif`. Code surfaces switch to **JetBrains Mono**.
341
+
342
+ ### Hierarchy
343
+
344
+ | Token | Size | Weight | Line Height | Letter Spacing | Use |
345
+ |---|---|---|---|---|---|
346
+ | `{typography.display-mega}` | 72px | 400 | 1.1 | -2.16px | Homepage hero h1 |
347
+ | `{typography.display-lg}` | 36px | 400 | 1.2 | -0.72px | Section heads |
348
+ | `{typography.display-md}` | 26px | 400 | 1.25 | -0.325px | Sub-section heads |
349
+ | `{typography.display-sm}` | 22px | 400 | 1.3 | -0.11px | Card group titles |
350
+ | `{typography.title-md}` | 18px | 600 | 1.4 | 0 | Component titles |
351
+ | `{typography.title-sm}` | 16px | 600 | 1.4 | 0 | List labels |
352
+ | `{typography.body-md}` | 16px | 400 | 1.5 | 0 | Default body |
353
+ | `{typography.body-tracked}` | 16px | 400 | 1.5 | 0.08px | Tracked editorial body |
354
+ | `{typography.body-sm}` | 14px | 400 | 1.5 | 0 | Footer body |
355
+ | `{typography.caption}` | 13px | 400 | 1.4 | 0 | Photo captions |
356
+ | `{typography.caption-uppercase}` | 11px | 600 | 1.4 | 0.88px | Section labels, timeline pill labels |
357
+ | `{typography.code}` | 13px | 400 | 1.5 | 0 | Code blocks — JetBrains Mono |
358
+ | `{typography.button}` | 14px | 500 | 1.0 | 0 | CTA pill labels |
359
+ | `{typography.nav-link}` | 14px | 500 | 1.4 | 0 | Top-nav menu |
360
+
361
+ ### Principles
362
+ - **Display weight stays at 400.** Magazine voice, never bold.
363
+ - **Negative letter-spacing on display only.** -0.11px to -2.16px tracking.
364
+ - **JetBrains Mono on every code surface.**
365
+
366
+ ### Note on Font Substitutes
367
+ CursorGothic is licensed. Open-source substitute: **Inter** at weight 400 with letter-spacing -1.5%. Or **GT Sectra** for a more editorial feel.
368
+
369
+ ## Layout
370
+
371
+ ### Spacing System
372
+ - **Base unit:** 4px.
373
+ - **Tokens:** `{spacing.xxs}` 4px · `{spacing.xs}` 8px · `{spacing.sm}` 12px · `{spacing.base}` 16px · `{spacing.md}` 20px · `{spacing.lg}` 24px · `{spacing.xl}` 32px · `{spacing.xxl}` 48px · `{spacing.section}` 80px.
374
+ - **Section padding:** 80px.
375
+
376
+ ### Grid & Container
377
+ - Max content width: ~1200px.
378
+ - Editorial body: 12-column grid.
379
+ - Feature card grids: 2-up at desktop for splits, 3-up for benefits.
380
+ - Footer: 5-column at desktop.
381
+
382
+ ### Whitespace Philosophy
383
+ Generous editorial pacing — closer to a print magazine than a tech site. The cream canvas has plenty of breathing room; cards within bands sit close (16-24px gap).
384
+
385
+ ## Elevation & Depth
386
+
387
+ The system uses **hairline-only depth**. No drop shadows, no elevation tiers. Cards float above the canvas via 1px hairlines and the slight white-on-cream contrast.
388
+
389
+ | Level | Treatment | Use |
390
+ |---|---|---|
391
+ | Flat (canvas) | `{colors.canvas}` (#f7f7f4) | Body bands, footer |
392
+ | Card | `{colors.surface-card}` (#ffffff) | Content cards |
393
+ | Hairline border | 1px `{colors.hairline}` | Card outlines, dividers |
394
+ | IDE pane | `{colors.canvas-soft}` (#fafaf7) | Inside IDE mockup cards |
395
+
396
+ ### Decorative Depth
397
+ - **IDE-mockup cards** are the only "elevated" element. White card on cream canvas with internal pane structure mimicking the actual Cursor editor.
398
+ - **Timeline pastel pills** add chromatic depth without surface elevation.
399
+
400
+ ## Shapes
401
+
402
+ ### Border Radius Scale
403
+
404
+ | Token | Value | Use |
405
+ |---|---|---|
406
+ | `{rounded.none}` | 0px | Reserved |
407
+ | `{rounded.xs}` | 4px | Inline tags |
408
+ | `{rounded.sm}` | 6px | Compact rows |
409
+ | `{rounded.md}` | 8px | CTA buttons, form inputs |
410
+ | `{rounded.lg}` | 12px | Cards, IDE panes |
411
+ | `{rounded.xl}` | 16px | Larger feature cards (rare) |
412
+ | `{rounded.pill}` | 9999px | Timeline pills, badges |
413
+ | `{rounded.full}` | 9999px | Avatars (rare) |
414
+
415
+ ## Components
416
+
417
+ ### Top Navigation
418
+
419
+ **`top-nav`** — Background `{colors.canvas}`, text `{colors.ink}`, height 64px. Layout: Cursor wordmark left, primary horizontal menu (Pricing / Features / Enterprise / Blog / Forum / Careers), Sign In + Download primary CTA right.
420
+
421
+ ### Buttons
422
+
423
+ **`button-primary`** — The signature Cursor Orange CTA. Background `{colors.primary}`, text `{colors.on-primary}`, type `{typography.button}` (14px / 500), padding 10px × 18px, height 40px, rounded `{rounded.md}` (8px).
424
+
425
+ **`button-primary-active`** — Press state. Background `{colors.primary-active}`.
426
+
427
+ **`button-secondary`** — White card pill on cream canvas. Background `{colors.surface-card}`, text `{colors.ink}`, 1px `{colors.hairline-strong}` border.
428
+
429
+ **`button-tertiary-text`** — Inline ink text link.
430
+
431
+ **`button-download`** — Larger ink-canvas CTA. Background `{colors.ink}`, text `{colors.canvas}`, padding 12px × 20px, height 44px. Used for "Download for macOS" type CTAs.
432
+
433
+ ### Hero & IDE Mockups
434
+
435
+ **`hero-band`** — Background `{colors.canvas}`, full-width display headline in `{typography.display-mega}` (72px / 400 / -2.16px), subhead in `{typography.body-md}`, two CTAs (`button-download` + `button-tertiary-text`), and a centered IDE-mockup card below the hero copy.
436
+
437
+ **`ide-mockup-card`** — A white card containing a multi-pane IDE mockup (sidebar + main editor + chat panel + terminal). Background `{colors.surface-card}`, rounded `{rounded.lg}` (12px), 1px `{colors.hairline}` border, no padding (panes fill the card edge-to-edge).
438
+
439
+ **`ide-pane`** — Individual IDE pane inside the mockup. Background `{colors.canvas-soft}`, text `{colors.body}` in `{typography.code}` (JetBrains Mono 13px), rounded `{rounded.md}` (8px), padding 16px.
440
+
441
+ ### Cards
442
+
443
+ **`feature-card`** — Background `{colors.surface-card}`, text `{colors.ink}`, type `{typography.title-md}`, rounded `{rounded.lg}`, padding 24px. 1px `{colors.hairline}` border.
444
+
445
+ **`comparison-card`** — Side-by-side "Cursor vs other tools" card. Same surface and rounding; internally split into 2 columns.
446
+
447
+ **`testimonial-card`** — Quote card. Background `{colors.surface-card}`, text `{colors.body}`, rounded `{rounded.lg}`, padding 24px.
448
+
449
+ ### AI Timeline (signature)
450
+
451
+ **`timeline-pill-thinking`** — Peach pill. Background `{colors.timeline-thinking}`, text `{colors.ink}`, type `{typography.caption-uppercase}` (11px / 600 / 0.88px tracking, uppercase), rounded `{rounded.pill}`, padding 4px × 10px. Marks "Thinking" stage in product timeline.
452
+
453
+ **`timeline-pill-grep`** — Mint pill. Same shape, background `{colors.timeline-grep}`. Marks "Grepping" stage.
454
+
455
+ **`timeline-pill-read`** — Pastel-blue pill. Background `{colors.timeline-read}`. Marks "Reading" stage.
456
+
457
+ **`timeline-pill-edit`** — Lavender pill. Background `{colors.timeline-edit}`. Marks "Editing" stage.
458
+
459
+ **`timeline-pill-done`** — Gold pill. Background `{colors.timeline-done}`, text `{colors.on-primary}` white. Marks "Done" stage.
460
+
461
+ ### Code
462
+
463
+ **`code-block`** — Inline code block. Background `{colors.surface-card}`, text `{colors.ink}` in `{typography.code}`, rounded `{rounded.lg}`, padding 20px, 1px `{colors.hairline}` border.
464
+
465
+ ### Pricing
466
+
467
+ **`pricing-tier-card`** — Background `{colors.surface-card}`, rounded `{rounded.lg}`, padding 32px, 1px `{colors.hairline}` border.
468
+
469
+ **`pricing-tier-featured`** — Featured tier inverts to ink. Background `{colors.ink}`, text `{colors.canvas}`. Same shape, dark inversion signals "highlighted" without colored ribbon.
470
+
471
+ ### Forms & Tags
472
+
473
+ **`text-input`** — Background `{colors.surface-card}`, text `{colors.ink}`, rounded `{rounded.md}` (8px), padding 12px × 16px, height 44px.
474
+
475
+ **`badge-pill`** — Small uppercase pill. Background `{colors.surface-strong}`, text `{colors.ink}`, type `{typography.caption-uppercase}`, rounded `{rounded.pill}`, padding 4px × 10px.
476
+
477
+ ### CTA / Footer
478
+
479
+ **`cta-band`** — Pre-footer "Try Cursor now" band. Background `{colors.canvas}`, centered display headline in `{typography.display-lg}`, single Cursor Orange CTA. 96px vertical padding.
480
+
481
+ **`footer`** — Closing footer. Background `{colors.canvas}`, text `{colors.body}`. 5-column link list. 64×48px padding.
482
+
483
+ **`footer-link`** — Background transparent, text `{colors.body}`, type `{typography.body-sm}`.
484
+
485
+ ## Do's and Don'ts
486
+
487
+ ### Do
488
+ - Reserve `{colors.primary}` (Cursor Orange) for primary CTAs and brand wordmark.
489
+ - Keep display weight at 400. The editorial voice depends on this.
490
+ - Use the cream `{colors.canvas}` page floor — never pure white.
491
+ - Render every code surface (inline, blocks, IDE panes) in JetBrains Mono.
492
+ - Use timeline pastels only inside in-product agent visualizations — never as system action colors.
493
+
494
+ ### Don't
495
+ - Don't introduce a secondary brand action color. Cursor Orange is the only one.
496
+ - Don't drop display to bold weights (700+). Magazine voice depends on 400.
497
+ - Don't add drop shadows. Hairlines + ink-on-cream contrast carry the depth.
498
+ - Don't use timeline pastels on non-timeline UI. They're scoped to the agent timeline only.
499
+ - Don't extract a CTA color from a third-party widget (cookie consent, OneTrust). The brand's CTA is what appears on actual product CTAs.
500
+
501
+ ## Responsive Behavior
502
+
503
+ ### Breakpoints
504
+
505
+ | Name | Width | Key Changes |
506
+ |---|---|---|
507
+ | Mobile | < 640px | Hero h1 72→32px; IDE mockup collapses to single pane preview; feature grid 1-up; nav hamburger. |
508
+ | Tablet | 640–1024px | Hero h1 56px; IDE mockup compresses; feature grid 2-up. |
509
+ | Desktop | 1024–1280px | Full hero h1 72px; full multi-pane IDE mockup; feature grid 3-up. |
510
+ | Wide | > 1280px | Content caps at 1200px. |
511
+
512
+ ### Touch Targets
513
+ - Primary CTA at 40px height — at WCAG AA, padded for AAA.
514
+ - Download CTA at 44px — at AAA.
515
+
516
+ ### Collapsing Strategy
517
+ - Top nav switches to hamburger below 768px.
518
+ - IDE mockup multi-pane collapses to a single primary pane preview on mobile.
519
+ - Feature grid: 3-up → 2-up → 1-up.
520
+
521
+ ## Iteration Guide
522
+
523
+ 1. Focus on a single component at a time.
524
+ 2. CTAs default to `{rounded.md}` (8px). Cards use `{rounded.lg}` (12px).
525
+ 3. Variants live as separate entries inside `components:`.
526
+ 4. Use `{token.refs}` everywhere — never inline hex.
527
+ 5. Hover state never documented.
528
+ 6. CursorGothic 400 for display, 400/500/600 for body. JetBrains Mono on every code surface.
529
+ 7. Cursor Orange stays scarce.
530
+ 8. Timeline pastels stay scoped to in-product agent visualizations.
531
+
532
+ ## Known Gaps
533
+
534
+ - CursorGothic is a licensed typeface; Inter is the substitute.
535
+ - Animation timings (timeline pill entrance, IDE pane reveal) out of scope.
536
+ - In-app surfaces (code editor, chat panel, agent timeline) only partially captured via marketing IDE mockups.
537
+ - Form validation states beyond focus not visible on captured surfaces.
@@ -0,0 +1,5 @@
1
+ # Cursor Inspired Design System
2
+
3
+ Design system details have been moved to: https://getdesign.md/cursor/design-md
4
+
5
+ You can also view previews, dark mode examples, and download options on getdesign.md.