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.
- package/LICENSE +21 -0
- package/README.md +40 -0
- package/bin/relay.js +362 -0
- package/design-md/airbnb/DESIGN.md +545 -0
- package/design-md/airbnb/README.md +5 -0
- package/design-md/airtable/DESIGN.md +554 -0
- package/design-md/airtable/README.md +5 -0
- package/design-md/apple/DESIGN.md +562 -0
- package/design-md/apple/README.md +5 -0
- package/design-md/binance/DESIGN.md +634 -0
- package/design-md/binance/README.md +5 -0
- package/design-md/bmw/DESIGN.md +544 -0
- package/design-md/bmw/README.md +5 -0
- package/design-md/bmw-m/DESIGN.md +503 -0
- package/design-md/bmw-m/README.md +5 -0
- package/design-md/bugatti/DESIGN.md +454 -0
- package/design-md/bugatti/README.md +5 -0
- package/design-md/cal/DESIGN.md +542 -0
- package/design-md/cal/README.md +5 -0
- package/design-md/claude/DESIGN.md +589 -0
- package/design-md/claude/README.md +5 -0
- package/design-md/clay/DESIGN.md +541 -0
- package/design-md/clay/README.md +5 -0
- package/design-md/clickhouse/DESIGN.md +544 -0
- package/design-md/clickhouse/README.md +5 -0
- package/design-md/cohere/DESIGN.md +451 -0
- package/design-md/cohere/README.md +5 -0
- package/design-md/coinbase/DESIGN.md +570 -0
- package/design-md/coinbase/README.md +5 -0
- package/design-md/composio/DESIGN.md +506 -0
- package/design-md/composio/README.md +5 -0
- package/design-md/cursor/DESIGN.md +537 -0
- package/design-md/cursor/README.md +5 -0
- package/design-md/elevenlabs/DESIGN.md +504 -0
- package/design-md/elevenlabs/README.md +5 -0
- package/design-md/expo/DESIGN.md +526 -0
- package/design-md/expo/README.md +5 -0
- package/design-md/ferrari/DESIGN.md +531 -0
- package/design-md/ferrari/README.md +5 -0
- package/design-md/figma/DESIGN.md +578 -0
- package/design-md/figma/README.md +5 -0
- package/design-md/framer/DESIGN.md +544 -0
- package/design-md/framer/README.md +5 -0
- package/design-md/hashicorp/DESIGN.md +575 -0
- package/design-md/hashicorp/README.md +5 -0
- package/design-md/ibm/DESIGN.md +550 -0
- package/design-md/ibm/README.md +5 -0
- package/design-md/intercom/DESIGN.md +546 -0
- package/design-md/intercom/README.md +5 -0
- package/design-md/kraken/DESIGN.md +125 -0
- package/design-md/kraken/README.md +5 -0
- package/design-md/lamborghini/DESIGN.md +288 -0
- package/design-md/lamborghini/README.md +5 -0
- package/design-md/linear.app/DESIGN.md +548 -0
- package/design-md/linear.app/README.md +5 -0
- package/design-md/lovable/DESIGN.md +298 -0
- package/design-md/lovable/README.md +5 -0
- package/design-md/mastercard/DESIGN.md +365 -0
- package/design-md/mastercard/README.md +5 -0
- package/design-md/meta/DESIGN.md +683 -0
- package/design-md/meta/README.md +5 -0
- package/design-md/minimax/DESIGN.md +746 -0
- package/design-md/minimax/README.md +5 -0
- package/design-md/mintlify/DESIGN.md +852 -0
- package/design-md/mintlify/README.md +5 -0
- package/design-md/miro/DESIGN.md +825 -0
- package/design-md/miro/README.md +5 -0
- package/design-md/mistral.ai/DESIGN.md +773 -0
- package/design-md/mistral.ai/README.md +5 -0
- package/design-md/mongodb/DESIGN.md +767 -0
- package/design-md/mongodb/README.md +5 -0
- package/design-md/nike/DESIGN.md +575 -0
- package/design-md/nike/README.md +5 -0
- package/design-md/notion/DESIGN.md +821 -0
- package/design-md/notion/README.md +5 -0
- package/design-md/nvidia/DESIGN.md +640 -0
- package/design-md/nvidia/README.md +5 -0
- package/design-md/ollama/DESIGN.md +539 -0
- package/design-md/ollama/README.md +5 -0
- package/design-md/opencode.ai/DESIGN.md +521 -0
- package/design-md/opencode.ai/README.md +5 -0
- package/design-md/pinterest/DESIGN.md +597 -0
- package/design-md/pinterest/README.md +5 -0
- package/design-md/playstation/DESIGN.md +661 -0
- package/design-md/playstation/README.md +5 -0
- package/design-md/posthog/DESIGN.md +690 -0
- package/design-md/posthog/README.md +5 -0
- package/design-md/raycast/DESIGN.md +669 -0
- package/design-md/raycast/README.md +5 -0
- package/design-md/renault/DESIGN.md +589 -0
- package/design-md/renault/README.md +5 -0
- package/design-md/replicate/DESIGN.md +616 -0
- package/design-md/replicate/README.md +5 -0
- package/design-md/resend/DESIGN.md +585 -0
- package/design-md/resend/README.md +5 -0
- package/design-md/revolut/DESIGN.md +636 -0
- package/design-md/revolut/README.md +5 -0
- package/design-md/runwayml/DESIGN.md +244 -0
- package/design-md/runwayml/README.md +5 -0
- package/design-md/sanity/DESIGN.md +357 -0
- package/design-md/sanity/README.md +5 -0
- package/design-md/sentry/DESIGN.md +551 -0
- package/design-md/sentry/README.md +5 -0
- package/design-md/shopify/DESIGN.md +516 -0
- package/design-md/shopify/README.md +5 -0
- package/design-md/slack/DESIGN.md +482 -0
- package/design-md/spacex/DESIGN.md +363 -0
- package/design-md/spacex/README.md +5 -0
- package/design-md/spotify/DESIGN.md +246 -0
- package/design-md/spotify/README.md +5 -0
- package/design-md/starbucks/DESIGN.md +580 -0
- package/design-md/starbucks/README.md +5 -0
- package/design-md/stripe/DESIGN.md +487 -0
- package/design-md/stripe/README.md +5 -0
- package/design-md/supabase/DESIGN.md +462 -0
- package/design-md/supabase/README.md +5 -0
- package/design-md/superhuman/DESIGN.md +448 -0
- package/design-md/superhuman/README.md +5 -0
- package/design-md/tesla/DESIGN.md +286 -0
- package/design-md/tesla/README.md +5 -0
- package/design-md/theverge/DESIGN.md +339 -0
- package/design-md/theverge/README.md +5 -0
- package/design-md/together.ai/DESIGN.md +633 -0
- package/design-md/together.ai/README.md +5 -0
- package/design-md/uber/DESIGN.md +636 -0
- package/design-md/uber/README.md +5 -0
- package/design-md/vercel/DESIGN.md +736 -0
- package/design-md/vercel/README.md +5 -0
- package/design-md/vodafone/DESIGN.md +538 -0
- package/design-md/vodafone/README.md +5 -0
- package/design-md/voltagent/DESIGN.md +521 -0
- package/design-md/voltagent/README.md +5 -0
- package/design-md/warp/DESIGN.md +526 -0
- package/design-md/warp/README.md +5 -0
- package/design-md/webflow/DESIGN.md +588 -0
- package/design-md/webflow/README.md +5 -0
- package/design-md/wired/DESIGN.md +497 -0
- package/design-md/wired/README.md +5 -0
- package/design-md/wise/DESIGN.md +544 -0
- package/design-md/wise/README.md +5 -0
- package/design-md/x.ai/DESIGN.md +465 -0
- package/design-md/x.ai/README.md +5 -0
- package/design-md/zapier/DESIGN.md +537 -0
- package/design-md/zapier/README.md +5 -0
- 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.
|
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
|
+
}
|