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: Zapier Inspired
4
+ description: An inspired interpretation of Zapier's design language — a workflow-automation platform whose surface combines warm-cream neutrals (`#fffefb` canvas, `#f8f4f0` soft cream) with deep coffee ink (`#201515`) and a single saturated orange CTA accent (`#ff4f00`); typography pairs the proprietary Degular Display family at hero scale with Inter for sub-displays and body, giving the brand a confident-warm rather than cool-tech voice.
5
+
6
+ colors:
7
+ primary: "#ff4f00"
8
+ on-primary: "#fffefb"
9
+ ink: "#201515"
10
+ ink-soft: "#2f2a26"
11
+ ink-mid: "#36342e"
12
+ body: "#605d52"
13
+ body-mid: "#939084"
14
+ mute: "#c5c0b1"
15
+ canvas: "#fffefb"
16
+ canvas-soft: "#f8f4f0"
17
+
18
+ typography:
19
+ display-xl:
20
+ fontFamily: Degular Display, Inter, system-ui, -apple-system, sans-serif
21
+ fontSize: 56px
22
+ fontWeight: 500
23
+ lineHeight: 56px
24
+ display-lg:
25
+ fontFamily: Degular Display, Inter, system-ui, sans-serif
26
+ fontSize: 48px
27
+ fontWeight: 500
28
+ lineHeight: 48px
29
+ display-md:
30
+ fontFamily: Degular Display, Inter, system-ui, sans-serif
31
+ fontSize: 32px
32
+ fontWeight: 500
33
+ lineHeight: 36px
34
+ letterSpacing: 1px
35
+ display-sub-lg:
36
+ fontFamily: Inter, system-ui, sans-serif
37
+ fontSize: 48px
38
+ fontWeight: 500
39
+ lineHeight: 49.92px
40
+ display-sub-md:
41
+ fontFamily: Inter, system-ui, sans-serif
42
+ fontSize: 32px
43
+ fontWeight: 400
44
+ lineHeight: 40px
45
+ display-sub-sm:
46
+ fontFamily: Inter, system-ui, sans-serif
47
+ fontSize: 24px
48
+ fontWeight: 600
49
+ lineHeight: 30px
50
+ letterSpacing: -0.6px
51
+ display-xs:
52
+ fontFamily: Inter, system-ui, sans-serif
53
+ fontSize: 20px
54
+ fontWeight: 700
55
+ lineHeight: 25px
56
+ letterSpacing: -0.5px
57
+ body-lg:
58
+ fontFamily: Inter, system-ui, sans-serif
59
+ fontSize: 20px
60
+ fontWeight: 400
61
+ lineHeight: 30px
62
+ letterSpacing: -0.2px
63
+ body-md:
64
+ fontFamily: Inter, system-ui, sans-serif
65
+ fontSize: 18px
66
+ fontWeight: 400
67
+ lineHeight: 27px
68
+ body-md-strong:
69
+ fontFamily: Inter, system-ui, sans-serif
70
+ fontSize: 18px
71
+ fontWeight: 600
72
+ lineHeight: 27px
73
+ body-sm:
74
+ fontFamily: Inter, system-ui, sans-serif
75
+ fontSize: 16px
76
+ fontWeight: 400
77
+ lineHeight: 24px
78
+ body-sm-strong:
79
+ fontFamily: Inter, system-ui, sans-serif
80
+ fontSize: 16px
81
+ fontWeight: 600
82
+ lineHeight: 24px
83
+ caption:
84
+ fontFamily: Inter, system-ui, sans-serif
85
+ fontSize: 14px
86
+ fontWeight: 400
87
+ lineHeight: 21px
88
+ eyebrow-uppercase:
89
+ fontFamily: Degular Display, Inter, system-ui, sans-serif
90
+ fontSize: 14px
91
+ fontWeight: 500
92
+ lineHeight: 14px
93
+ letterSpacing: 1px
94
+ button-md:
95
+ fontFamily: Inter, system-ui, sans-serif
96
+ fontSize: 18px
97
+ fontWeight: 600
98
+ lineHeight: 27px
99
+ button-sm:
100
+ fontFamily: Inter, system-ui, sans-serif
101
+ fontSize: 14.4px
102
+ fontWeight: 700
103
+ lineHeight: 14.4px
104
+ letterSpacing: 0.144px
105
+
106
+ rounded:
107
+ none: 0px
108
+ sm: 6px
109
+ md: 12px
110
+ pill: 9999px
111
+ full: 9999px
112
+
113
+ spacing:
114
+ xxs: 2px
115
+ xs: 4px
116
+ sm: 8px
117
+ md: 12px
118
+ lg: 16px
119
+ xl: 24px
120
+ 2xl: 32px
121
+ 3xl: 48px
122
+ 4xl: 64px
123
+
124
+ components:
125
+ nav-bar:
126
+ backgroundColor: "{colors.canvas}"
127
+ textColor: "{colors.ink}"
128
+ typography: "{typography.body-sm}"
129
+ padding: "{spacing.md} {spacing.xl}"
130
+ nav-link:
131
+ textColor: "{colors.ink}"
132
+ typography: "{typography.body-sm}"
133
+ button-primary:
134
+ backgroundColor: "{colors.primary}"
135
+ textColor: "{colors.on-primary}"
136
+ typography: "{typography.button-md}"
137
+ rounded: "{rounded.md}"
138
+ padding: "{spacing.md} {spacing.xl}"
139
+ button-secondary:
140
+ backgroundColor: "{colors.ink}"
141
+ textColor: "{colors.on-primary}"
142
+ typography: "{typography.button-md}"
143
+ rounded: "{rounded.md}"
144
+ padding: "{spacing.md} {spacing.xl}"
145
+ button-tertiary:
146
+ backgroundColor: "{colors.canvas}"
147
+ textColor: "{colors.ink}"
148
+ borderColor: "{colors.ink}"
149
+ typography: "{typography.button-md}"
150
+ rounded: "{rounded.md}"
151
+ padding: "{spacing.md} {spacing.xl}"
152
+ button-text:
153
+ backgroundColor: "{colors.canvas}"
154
+ textColor: "{colors.ink}"
155
+ typography: "{typography.button-sm}"
156
+ rounded: "{rounded.md}"
157
+ padding: "{spacing.sm} {spacing.lg}"
158
+ text-input:
159
+ backgroundColor: "{colors.canvas}"
160
+ textColor: "{colors.ink}"
161
+ borderColor: "{colors.ink}"
162
+ typography: "{typography.body-md}"
163
+ rounded: "{rounded.sm}"
164
+ padding: "{spacing.md} {spacing.lg}"
165
+ card-content:
166
+ backgroundColor: "{colors.canvas-soft}"
167
+ textColor: "{colors.ink}"
168
+ typography: "{typography.body-md}"
169
+ rounded: "{rounded.md}"
170
+ padding: "{spacing.xl}"
171
+ card-feature-cream:
172
+ backgroundColor: "{colors.canvas-soft}"
173
+ textColor: "{colors.ink}"
174
+ typography: "{typography.body-md}"
175
+ rounded: "{rounded.md}"
176
+ padding: "{spacing.xl}"
177
+ card-feature-dark:
178
+ backgroundColor: "{colors.ink}"
179
+ textColor: "{colors.on-primary}"
180
+ typography: "{typography.body-md}"
181
+ rounded: "{rounded.md}"
182
+ padding: "{spacing.xl}"
183
+ pricing-card:
184
+ backgroundColor: "{colors.canvas}"
185
+ textColor: "{colors.ink}"
186
+ borderColor: "{colors.ink}"
187
+ typography: "{typography.body-md}"
188
+ rounded: "{rounded.md}"
189
+ padding: "{spacing.xl}"
190
+ pricing-card-featured:
191
+ backgroundColor: "{colors.ink}"
192
+ textColor: "{colors.on-primary}"
193
+ typography: "{typography.body-md}"
194
+ rounded: "{rounded.md}"
195
+ padding: "{spacing.xl}"
196
+ hero-band:
197
+ backgroundColor: "{colors.canvas}"
198
+ textColor: "{colors.ink}"
199
+ typography: "{typography.display-xl}"
200
+ padding: "{spacing.4xl} {spacing.xl}"
201
+ hero-band-dark:
202
+ backgroundColor: "{colors.ink}"
203
+ textColor: "{colors.on-primary}"
204
+ typography: "{typography.display-xl}"
205
+ padding: "{spacing.4xl} {spacing.xl}"
206
+ content-band-cream:
207
+ backgroundColor: "{colors.canvas-soft}"
208
+ textColor: "{colors.ink}"
209
+ typography: "{typography.display-lg}"
210
+ padding: "{spacing.4xl} {spacing.xl}"
211
+ content-band-light:
212
+ backgroundColor: "{colors.canvas}"
213
+ textColor: "{colors.ink}"
214
+ typography: "{typography.display-lg}"
215
+ padding: "{spacing.4xl} {spacing.xl}"
216
+ eyebrow-uppercase:
217
+ textColor: "{colors.ink}"
218
+ typography: "{typography.eyebrow-uppercase}"
219
+ badge-pill:
220
+ backgroundColor: "{colors.canvas-soft}"
221
+ textColor: "{colors.ink}"
222
+ typography: "{typography.body-sm}"
223
+ rounded: "{rounded.pill}"
224
+ padding: "{spacing.xs} {spacing.md}"
225
+ footer:
226
+ backgroundColor: "{colors.ink}"
227
+ textColor: "{colors.canvas-soft}"
228
+ typography: "{typography.body-sm}"
229
+ padding: "{spacing.3xl} {spacing.xl}"
230
+
231
+ # ─── Examples (illustrative) — auto-derived; resolve any TO_FILL markers below ───
232
+ ex-pricing-tier:
233
+ description: "Default Pricing tier card. Re-uses feature-card chrome with brand canvas-soft surface."
234
+ backgroundColor: "{colors.canvas-soft}"
235
+ textColor: "{colors.ink}"
236
+ borderColor: "{colors.mute}"
237
+ rounded: "{rounded.md}"
238
+ padding: "{spacing.xl}"
239
+ ex-pricing-tier-featured:
240
+ description: "Featured/highlighted tier — polarity-flipped surface (dark fill + light text in light mode, light fill + dark text in dark mode)."
241
+ backgroundColor: "{colors.ink}"
242
+ textColor: "{colors.on-primary}"
243
+ rounded: "{rounded.md}"
244
+ padding: "{spacing.xl}"
245
+ ex-product-selector:
246
+ description: "What's Included summary card — re-purposed for SaaS / B2B verticals (NOT a literal product gallery)."
247
+ backgroundColor: "{colors.canvas-soft}"
248
+ rounded: "{rounded.md}"
249
+ padding: "{spacing.xl}"
250
+ ex-cart-drawer:
251
+ description: "Subscription summary — re-purposed for SaaS / B2B (line items per add-on, not literal cart)."
252
+ backgroundColor: "{colors.canvas}"
253
+ rounded: "{rounded.md}"
254
+ padding: "{spacing.xl}"
255
+ item-divider: "{colors.mute}"
256
+ ex-app-shell-row:
257
+ description: "Sidebar nav row inside the App Shell example. Active state uses brand primary as the indicator."
258
+ backgroundColor: "{colors.canvas}"
259
+ activeIndicator: "{colors.primary}"
260
+ rounded: "{rounded.sm}"
261
+ padding: "{spacing.md} {spacing.lg}"
262
+ ex-data-table-cell:
263
+ description: "Default data-table th + td chrome. Header uses mono-caps eyebrow typography; body uses body-sm."
264
+ headerBackground: "{colors.canvas-soft}"
265
+ headerTypography: "{typography.caption}"
266
+ bodyTypography: "{typography.body-sm}"
267
+ cellPadding: "{spacing.md} {spacing.lg}"
268
+ rowBorder: "{colors.mute}"
269
+ ex-auth-form-card:
270
+ description: "Sign-in / sign-up card. Re-uses feature-card chrome with text-input primitives inside."
271
+ backgroundColor: "{colors.canvas-soft}"
272
+ rounded: "{rounded.md}"
273
+ padding: "{spacing.xl}"
274
+ ex-modal-card:
275
+ description: "Modal dialog surface — same chrome as feature-card with elevated shadow."
276
+ backgroundColor: "{colors.canvas}"
277
+ rounded: "{rounded.md}"
278
+ padding: "{spacing.xl}"
279
+ ex-empty-state-card:
280
+ description: "Empty-state illustration frame."
281
+ backgroundColor: "{colors.canvas-soft}"
282
+ rounded: "{rounded.md}"
283
+ padding: "{spacing.3xl}"
284
+ captionTypography: "{typography.body-md}"
285
+ ex-toast:
286
+ description: "Toast notification surface — feature-card shape + medium shadow."
287
+ backgroundColor: "{colors.canvas}"
288
+ rounded: "{rounded.md}"
289
+ padding: "{spacing.md} {spacing.lg}"
290
+ typography: "{typography.body-sm}"
291
+
292
+ ---
293
+
294
+
295
+ ## Overview
296
+
297
+ Zapier is the original "connect your apps" workflow automation platform — and the marketing surface today reads as confidently-mature. The brand pairs a warm-cream canvas `{colors.canvas}` (`#fffefb`) with a deep coffee-ink `{colors.ink}` (`#201515`) and a single saturated orange `{colors.primary}` (`#ff4f00`) CTA. The warmth in the neutrals — slightly cream rather than pure white — is the brand's defining temperature signal.
298
+
299
+ Type carries the second voice. The proprietary `Degular Display` family carries hero displays at weight 500. The brand uses `Inter` for everything else — sub-displays, body, button, eyebrow. The two-face pairing reads as "the brand has its own typeface for the loud moments and uses the workhorse for the rest" — modest and unflashy.
300
+
301
+ Cards are universally `{rounded.md}` 12 px. Buttons share the same 12 px radius — not pills, not square. The brand sits between the friendly-rounded and the technical-square camps with a deliberate middle position.
302
+
303
+ **Key Characteristics:**
304
+ - A single primary CTA color `{colors.primary}` (`#ff4f00`) — saturated orange. The brand's conversion signature.
305
+ - Warm-cream canvas `{colors.canvas}` (`#fffefb`) — not pure white. The temperature IS the brand voice.
306
+ - Deep coffee ink `{colors.ink}` (`#201515`) — not pure black. Warmth carries through to text.
307
+ - Proprietary Degular Display for hero-scale, Inter for everything else. Two-face system.
308
+ - `{rounded.md}` 12 px for buttons and cards — the brand's middle-radius signature.
309
+ - A muted cream / coffee neutral ladder — `{colors.canvas-soft}` (`#f8f4f0`), `{colors.mute}` (`#c5c0b1`), `{colors.body-mid}` (`#939084`), `{colors.body}` (`#605d52`) — every neutral carries warmth, none are cool grey.
310
+
311
+ ## Colors
312
+
313
+ ### Brand & Accent
314
+ - **Zapier Orange** (`{colors.primary}` — `#ff4f00`): The single brand accent. Every primary CTA pill, every conversion target. The saturated orange IS the brand.
315
+
316
+ ### Surface
317
+ - **Canvas** (`{colors.canvas}` — `#fffefb`): Warm off-white page background.
318
+ - **Canvas Soft** (`{colors.canvas-soft}` — `#f8f4f0`): Cream-tinted soft surface for cards / inset regions.
319
+
320
+ ### Text
321
+ - **Ink** (`{colors.ink}` — `#201515`): Deep coffee — every heading and primary text.
322
+ - **Ink Soft** (`{colors.ink-soft}` — `#2f2a26`): Near-black with brown warmth.
323
+ - **Ink Mid** (`{colors.ink-mid}` — `#36342e`): Mid-emphasis text.
324
+ - **Body** (`{colors.body}` — `#605d52`): Default body text color.
325
+ - **Body Mid** (`{colors.body-mid}` — `#939084`): Secondary body / metadata.
326
+ - **Mute** (`{colors.mute}` — `#c5c0b1`): Lowest-priority text — fine print, low-emphasis captions.
327
+
328
+ ### Semantic
329
+ The brand doesn't surface a separate semantic palette on its marketing pages. Status / validation cues borrow from the ink + orange hierarchy.
330
+
331
+ ## Typography
332
+
333
+ ### Font Family
334
+ Two faces ladder the system:
335
+ 1. **Degular Display** — proprietary geometric display sans used for hero headlines at weight 500. The brand's typographic signature.
336
+ 2. **Inter** — used for sub-displays, body, links, buttons, and eyebrows. Weights 400 / 500 / 600 / 700 are present.
337
+
338
+ ### Hierarchy
339
+
340
+ | Token | Size | Weight | Line Height | Letter Spacing | Use |
341
+ |---|---|---|---|---|---|
342
+ | `{typography.display-xl}` | 56px | 500 | 56px | 0 | Hero headline (Degular Display). |
343
+ | `{typography.display-lg}` | 48px | 500 | 48px | 0 | Sub-hero displays (Degular Display). |
344
+ | `{typography.display-md}` | 32px | 500 | 36px | 1px | Section displays (Degular Display, positive tracking). |
345
+ | `{typography.display-sub-lg}` | 48px | 500 | 49.92px | 0 | Inter-rendered sub-display. |
346
+ | `{typography.display-sub-md}` | 32px | 400 | 40px | 0 | Inter sub-display. |
347
+ | `{typography.display-sub-sm}` | 24px | 600 | 30px | -0.6px | Card titles (Inter, semibold). |
348
+ | `{typography.display-xs}` | 20px | 700 | 25px | -0.5px | Inline display micro-headings. |
349
+ | `{typography.body-lg}` | 20px | 400 | 30px | -0.2px | Lead paragraphs. |
350
+ | `{typography.body-md}` | 18px | 400 | 27px | 0 | Default body. |
351
+ | `{typography.body-md-strong}` | 18px | 600 | 27px | 0 | Bolded inline body. |
352
+ | `{typography.body-sm}` | 16px | 400 | 24px | 0 | Secondary body. |
353
+ | `{typography.body-sm-strong}` | 16px | 600 | 24px | 0 | Bold caption. |
354
+ | `{typography.caption}` | 14px | 400 | 21px | 0 | Fine print. |
355
+ | `{typography.eyebrow-uppercase}` | 14px | 500 | 14px | 1px | UPPERCASE eyebrow (Degular Display, positive tracking). |
356
+ | `{typography.button-md}` | 18px | 600 | 27px | 0 | Primary button label. |
357
+ | `{typography.button-sm}` | 14.4px | 700 | 14.4px | 0.144px | Small button label. |
358
+
359
+ ### Principles
360
+ - **Degular Display 500 for hero, Inter for everything else.** Strict role separation.
361
+ - **Positive tracking on the Degular eyebrow** — `1 px` at 14 px is the brand's signature label style.
362
+ - **Sentence-case headlines.** The brand never uppercases display sizes.
363
+
364
+ ### Note on Font Substitutes
365
+ Degular Display is proprietary. Open-source substitutes:
366
+ - **Display** — *Inter* weight 500 at hero scale comes closest. *Mona Sans* weight 500 is a softer alternative.
367
+ - **Sub-display + body** — *Inter* is the brand's actual second face.
368
+
369
+ ## Layout
370
+
371
+ ### Spacing System
372
+ - **Base unit**: 4 px.
373
+ - **Tokens**: `{spacing.xxs}` 2 px · `{spacing.xs}` 4 px · `{spacing.sm}` 8 px · `{spacing.md}` 12 px · `{spacing.lg}` 16 px · `{spacing.xl}` 24 px · `{spacing.2xl}` 32 px · `{spacing.3xl}` 48 px · `{spacing.4xl}` 64 px.
374
+ - **Section padding**: bands use `{spacing.4xl}` 64 px top/bottom.
375
+ - **Card interior**: cards at `{spacing.xl}` 24 px.
376
+
377
+ ### Grid & Container
378
+ - Marketing container ~1280 px wide; centred with gutters.
379
+ - Hero: split at desktop (headline left, illustration right); stacked at mobile.
380
+ - Pricing tier grid: 3 / 4-up at desktop.
381
+
382
+ ### Responsive Strategy
383
+
384
+ #### Breakpoints
385
+
386
+ | Name | Width | Key Changes |
387
+ |---|---|---|
388
+ | Mobile | < 768px | Hero stacks; grids 1-up; hamburger nav. |
389
+ | Tablet | 768–1023px | 2-up grids. |
390
+ | Desktop | ≥ 1024px | Full grids; hero split. |
391
+
392
+ #### Touch Targets
393
+ Buttons render ~48 px tall (12 vertical padding + 27 line). WCAG AAA met.
394
+
395
+ #### Image Behavior
396
+ The brand uses illustrative SVGs of zaps / workflows + product screenshots inside `{rounded.md}` framed cards. Photography is rare.
397
+
398
+ ## Elevation & Depth
399
+
400
+ | Level | Treatment | Use |
401
+ |---|---|---|
402
+ | Level 0 — Flat | No shadow, no border. | Default for hero. |
403
+ | Level 1 — Hairline | 1 px solid `{colors.ink}` border. | Pricing-tier card chrome, outline buttons. |
404
+ | Level 2 — Soft Card | `{colors.canvas-soft}` cream fill against `{colors.canvas}` page. | Default content cards — surface contrast carries elevation. |
405
+
406
+ ## Shapes
407
+
408
+ ### Border Radius Scale
409
+
410
+ | Token | Value | Use |
411
+ |---|---|---|
412
+ | `{rounded.none}` | 0px | Full-bleed bands. |
413
+ | `{rounded.sm}` | 6px | Inline pills, form inputs. |
414
+ | `{rounded.md}` | 12px | The brand's canonical button + card radius. |
415
+ | `{rounded.pill}` | 9999px | Status pills, badges. |
416
+ | `{rounded.full}` | 9999px | Circular icon containers. |
417
+
418
+ ## Components
419
+
420
+ ### Buttons
421
+
422
+ **`button-primary`** — the orange CTA.
423
+ - Background `{colors.primary}`, text `{colors.on-primary}` (warm white), label `{typography.button-md}`, padding `{spacing.md} {spacing.xl}`, shape `{rounded.md}` 12 px.
424
+
425
+ **`button-secondary`** — the dark coffee-ink CTA.
426
+ - Background `{colors.ink}`, text `{colors.on-primary}`, same typography / padding / shape.
427
+
428
+ **`button-tertiary`** — the outline CTA.
429
+ - Background `{colors.canvas}`, text `{colors.ink}`, 1 px solid `{colors.ink}` border, same typography / padding / shape.
430
+
431
+ **`button-text`** — text-only CTA used inside cards / nav.
432
+ - Background `{colors.canvas}`, text `{colors.ink}`, body in `{typography.button-sm}`, padding `{spacing.sm} {spacing.lg}`, shape `{rounded.md}`.
433
+
434
+ ### Cards & Containers
435
+
436
+ **`card-content`** — the default cream content card.
437
+ - Background `{colors.canvas-soft}`, text `{colors.ink}`, padding `{spacing.xl}`, shape `{rounded.md}`.
438
+
439
+ **`card-feature-cream`** — the cream feature card.
440
+ - Same chrome as `card-content`. Hosts headline + body + illustration.
441
+
442
+ **`card-feature-dark`** — the polarity-flipped dark coffee card.
443
+ - Background `{colors.ink}`, text `{colors.on-primary}`, padding `{spacing.xl}`, shape `{rounded.md}`.
444
+
445
+ **`pricing-card`** — the default pricing tier card.
446
+ - Background `{colors.canvas}`, text `{colors.ink}`, 1 px solid `{colors.ink}` border, padding `{spacing.xl}`, shape `{rounded.md}`.
447
+
448
+ **`pricing-card-featured`** — the polarity-flipped featured pricing tier.
449
+ - Background `{colors.ink}`, text `{colors.on-primary}`, same shape / padding.
450
+
451
+ ### Inputs & Forms
452
+
453
+ **`text-input`** — the canonical text input.
454
+ - Background `{colors.canvas}`, text `{colors.ink}`, 1 px solid `{colors.ink}` border, body in `{typography.body-md}`, padding `{spacing.md} {spacing.lg}`, shape `{rounded.sm}` 6 px.
455
+
456
+ ### Navigation
457
+
458
+ **`nav-bar`** — the sticky top nav.
459
+ - Background `{colors.canvas}`, text `{colors.ink}`, padding `{spacing.md} {spacing.xl}`.
460
+
461
+ **`nav-link`** — link items inside nav.
462
+ - Text `{colors.ink}`, set in `{typography.body-sm}`.
463
+
464
+ **`footer`** — the dark coffee footer.
465
+ - Background `{colors.ink}`, text `{colors.canvas-soft}`, padding `{spacing.3xl} {spacing.xl}`. Body in `{typography.body-sm}`.
466
+
467
+ ### Signature Components
468
+
469
+ **`hero-band`** — the cream hero band.
470
+ - Background `{colors.canvas}`, text `{colors.ink}`, padding `{spacing.4xl} {spacing.xl}`. Headline in `{typography.display-xl}` (Degular Display 56 px / 500).
471
+
472
+ **`hero-band-dark`** — the polarity-flipped dark coffee hero.
473
+ - Background `{colors.ink}`, text `{colors.on-primary}`, same scale.
474
+
475
+ **`content-band-cream`** — the cream content band that follows hero.
476
+ - Background `{colors.canvas-soft}`, text `{colors.ink}`, padding `{spacing.4xl} {spacing.xl}`. Section headline in `{typography.display-lg}`.
477
+
478
+ **`content-band-light`** — the white content band.
479
+ - Background `{colors.canvas}`, text `{colors.ink}`, same padding / scale.
480
+
481
+ **`eyebrow-uppercase`** — the small UPPERCASE Degular eyebrow above section headlines.
482
+ - Text `{colors.ink}`, set in `{typography.eyebrow-uppercase}` (14 px / 500 / `1 px` tracking).
483
+
484
+ **`badge-pill`** — the inline pill for metadata / tag.
485
+ - Background `{colors.canvas-soft}`, text `{colors.ink}`, body in `{typography.body-sm}`, padding `{spacing.xs} {spacing.md}`, shape `{rounded.pill}`.
486
+
487
+ ### Examples (illustrative)
488
+
489
+ > Auto-derived kit-mirror demonstration surfaces (`scripts/derive-examples-block.mjs`). Each `ex-*` entry references brand-native primitives so downstream consumers (`/preview-design`, `/generate-kit`) re-skin the same 10 surfaces consistently. `TO_FILL` markers indicate missing primitives — resolve in the LLM judgment pass.
490
+
491
+ **`ex-pricing-tier`** — Default Pricing tier card. Re-uses feature-card chrome with brand canvas-soft surface.
492
+ - Properties: `backgroundColor`, `textColor`, `borderColor`, `rounded`, `padding`
493
+
494
+ **`ex-pricing-tier-featured`** — Featured/highlighted tier — polarity-flipped surface (dark fill + light text in light mode, light fill + dark text in dark mode).
495
+ - Properties: `backgroundColor`, `textColor`, `rounded`, `padding`
496
+
497
+ **`ex-product-selector`** — What's Included summary card — re-purposed for SaaS / B2B verticals (NOT a literal product gallery).
498
+ - Properties: `backgroundColor`, `rounded`, `padding`
499
+
500
+ **`ex-cart-drawer`** — Subscription summary — re-purposed for SaaS / B2B (line items per add-on, not literal cart).
501
+ - Properties: `backgroundColor`, `rounded`, `padding`, `item-divider`
502
+
503
+ **`ex-app-shell-row`** — Sidebar nav row inside the App Shell example. Active state uses brand primary as the indicator.
504
+ - Properties: `backgroundColor`, `activeIndicator`, `rounded`, `padding`
505
+
506
+ **`ex-data-table-cell`** — Default data-table th + td chrome. Header uses mono-caps eyebrow typography; body uses body-sm.
507
+ - Properties: `headerBackground`, `headerTypography`, `bodyTypography`, `cellPadding`, `rowBorder`
508
+
509
+ **`ex-auth-form-card`** — Sign-in / sign-up card. Re-uses feature-card chrome with text-input primitives inside.
510
+ - Properties: `backgroundColor`, `rounded`, `padding`
511
+
512
+ **`ex-modal-card`** — Modal dialog surface — same chrome as feature-card with elevated shadow.
513
+ - Properties: `backgroundColor`, `rounded`, `padding`
514
+
515
+ **`ex-empty-state-card`** — Empty-state illustration frame.
516
+ - Properties: `backgroundColor`, `rounded`, `padding`, `captionTypography`
517
+
518
+ **`ex-toast`** — Toast notification surface — feature-card shape + medium shadow.
519
+ - Properties: `backgroundColor`, `rounded`, `padding`, `typography`
520
+
521
+
522
+ ## Do's and Don'ts
523
+
524
+ ### Do
525
+ - Reserve `{colors.primary}` Zapier orange for every primary CTA. The saturated orange IS the conversion signature.
526
+ - Keep canvas WARM — `{colors.canvas}` `#fffefb` cream, not pure white. The temperature is the brand voice.
527
+ - Set hero headlines in `{typography.display-xl}` Degular Display weight 500. Sentence-case, no uppercase.
528
+ - Pair Degular Display (hero, eyebrow) with Inter (everything else). Two faces, two roles.
529
+ - Use `{rounded.md}` 12 px for buttons + cards. The middle radius is the brand's signature.
530
+ - Pair orange CTA with ink-dark text on cream backgrounds — the three-token rhythm is the brand's whole conversion story.
531
+
532
+ ### Don't
533
+ - Don't replace cream canvas with pure white. The warmth is the brand.
534
+ - Don't use pure black ink. The coffee-warmth in `#201515` carries through every text color.
535
+ - Don't render CTAs as pills. The brand's button is 12 px rounded rectangle.
536
+ - Don't introduce a second chromatic accent. Orange + cream + coffee is the entire palette.
537
+ - Don't substitute Degular Display with a cool geometric sans (e.g., generic Helvetica) — the brand's display face has warm proportions that the substitute doesn't capture.
@@ -0,0 +1,5 @@
1
+ # Zapier Inspired Design System
2
+
3
+ Design system details have been moved to: https://getdesign.md/zapier/design-md
4
+
5
+ You can also view previews, dark mode examples, and download options on getdesign.md.
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "getrelay",
3
+ "version": "0.1.0",
4
+ "description": "RelayDesgins CLI for copying website-inspired design instructions into a project as Relay.md.",
5
+ "license": "MIT",
6
+ "type": "commonjs",
7
+ "bin": "bin/relay.js",
8
+ "files": [
9
+ "bin/",
10
+ "design-md/",
11
+ "README.md",
12
+ "LICENSE"
13
+ ],
14
+ "engines": {
15
+ "node": ">=18"
16
+ },
17
+ "scripts": {
18
+ "check": "node --check bin/relay.js"
19
+ },
20
+ "publishConfig": {
21
+ "access": "public"
22
+ },
23
+ "keywords": [
24
+ "relay",
25
+ "getrelay",
26
+ "relaydesgins",
27
+ "website-styles",
28
+ "cli",
29
+ "ai"
30
+ ]
31
+ }