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,482 @@
1
+ ---
2
+ version: alpha
3
+ name: Slacc Inspired
4
+ description: An inspired interpretation of Slacc's design language — a workplace messaging brand built on a deep aubergine primary, with cream-lavender hero gradients, blue inline links, and pill CTAs. The system pairs a proprietary humanist sans for display with a separate utility sans for body, and stages product UI mockups inside soft pastel-mesh hero composites that act as both decoration and feature explanation.
5
+
6
+ colors:
7
+ primary: "#4a154b"
8
+ primary-deep: "#481a54"
9
+ primary-press: "#611f69"
10
+ primary-tint: "#592466"
11
+ on-primary: "#ffffff"
12
+ ink: "#1d1d1d"
13
+ ink-mute: "#696969"
14
+ link-blue: "#1264a3"
15
+ link-hover: "#3860be"
16
+ canvas: "#ffffff"
17
+ canvas-cream: "#f4ede4"
18
+ canvas-lavender: "#f9f0ff"
19
+ surface-elev: "#ffffff"
20
+ surface-aubergine: "#4a154b"
21
+ hairline: "#e6e6e6"
22
+ hairline-strong: "#000000"
23
+ semantic-error: "#cc4117"
24
+ semantic-success: "#007a5a"
25
+ on-aubergine-mute: "#d9bdde"
26
+
27
+ typography:
28
+ display-xxl:
29
+ fontFamily: "Salesforce-Avant-Garde, system-ui, -apple-system, BlinkMacSystemFont, sans-serif"
30
+ fontSize: 64px
31
+ fontWeight: 700
32
+ lineHeight: 1.12
33
+ letterSpacing: -0.768px
34
+ display-xl:
35
+ fontFamily: "Salesforce-Avant-Garde, system-ui, -apple-system, BlinkMacSystemFont, sans-serif"
36
+ fontSize: 58px
37
+ fontWeight: 600
38
+ lineHeight: 1.25
39
+ letterSpacing: -0.464px
40
+ display-lg:
41
+ fontFamily: "Salesforce-Avant-Garde, system-ui, -apple-system, BlinkMacSystemFont, sans-serif"
42
+ fontSize: 50px
43
+ fontWeight: 700
44
+ lineHeight: 1.12
45
+ letterSpacing: -0.6px
46
+ display-md:
47
+ fontFamily: "Salesforce-Avant-Garde, system-ui, -apple-system, BlinkMacSystemFont, sans-serif"
48
+ fontSize: 32px
49
+ fontWeight: 700
50
+ lineHeight: 1.25
51
+ letterSpacing: -0.256px
52
+ heading-lg:
53
+ fontFamily: "Salesforce-Avant-Garde, system-ui, -apple-system, BlinkMacSystemFont, sans-serif"
54
+ fontSize: 24px
55
+ fontWeight: 700
56
+ lineHeight: 1.33
57
+ letterSpacing: -0.096px
58
+ heading-md:
59
+ fontFamily: "Salesforce-Avant-Garde, system-ui, -apple-system, BlinkMacSystemFont, sans-serif"
60
+ fontSize: 22px
61
+ fontWeight: 600
62
+ lineHeight: 1.4
63
+ letterSpacing: 0
64
+ heading-sm:
65
+ fontFamily: "Salesforce-Avant-Garde, system-ui, -apple-system, BlinkMacSystemFont, sans-serif"
66
+ fontSize: 18px
67
+ fontWeight: 600
68
+ lineHeight: 1.56
69
+ letterSpacing: -0.0216px
70
+ body-lg:
71
+ fontFamily: "Salesforce-Sans, system-ui, -apple-system, sans-serif"
72
+ fontSize: 18px
73
+ fontWeight: 400
74
+ lineHeight: 1.55
75
+ letterSpacing: -0.0216px
76
+ body-md:
77
+ fontFamily: "Salesforce-Sans, system-ui, -apple-system, sans-serif"
78
+ fontSize: 16px
79
+ fontWeight: 400
80
+ lineHeight: 1.55
81
+ letterSpacing: 0
82
+ body-strong:
83
+ fontFamily: "Salesforce-Sans, system-ui, -apple-system, sans-serif"
84
+ fontSize: 16px
85
+ fontWeight: 700
86
+ lineHeight: 1.5
87
+ letterSpacing: 0.16px
88
+ button-lg:
89
+ fontFamily: "Salesforce-Sans, system-ui, -apple-system, sans-serif"
90
+ fontSize: 18px
91
+ fontWeight: 700
92
+ lineHeight: 1.0
93
+ letterSpacing: 0
94
+ button-md:
95
+ fontFamily: "Salesforce-Sans, system-ui, -apple-system, sans-serif"
96
+ fontSize: 16px
97
+ fontWeight: 700
98
+ lineHeight: 1.38
99
+ letterSpacing: 0.2px
100
+ button-cap:
101
+ fontFamily: "Salesforce-Sans, system-ui, -apple-system, sans-serif"
102
+ fontSize: 14.4px
103
+ fontWeight: 700
104
+ lineHeight: 1.0
105
+ letterSpacing: 0.144px
106
+ caption:
107
+ fontFamily: "Salesforce-Sans, system-ui, -apple-system, sans-serif"
108
+ fontSize: 14px
109
+ fontWeight: 400
110
+ lineHeight: 1.43
111
+ letterSpacing: 0.1px
112
+ micro-cap:
113
+ fontFamily: "Salesforce-Sans, system-ui, -apple-system, sans-serif"
114
+ fontSize: 12px
115
+ fontWeight: 700
116
+ lineHeight: 1.0
117
+ letterSpacing: 0.96px
118
+
119
+ rounded:
120
+ xs: 2px
121
+ sm: 4px
122
+ md: 8px
123
+ lg: 12px
124
+ xl: 16px
125
+ xxl: 48px
126
+ pill: 90px
127
+
128
+ spacing:
129
+ xs: 4px
130
+ sm: 8px
131
+ md: 12px
132
+ lg: 16px
133
+ xl: 20px
134
+ xxl: 24px
135
+ huge: 28px
136
+
137
+ components:
138
+ button-primary-pill:
139
+ backgroundColor: "{colors.primary}"
140
+ textColor: "{colors.on-primary}"
141
+ typography: "{typography.button-md}"
142
+ rounded: "{rounded.pill}"
143
+ padding: 14px 28px
144
+ button-primary-pill-pressed:
145
+ backgroundColor: "{colors.primary-press}"
146
+ textColor: "{colors.on-primary}"
147
+ typography: "{typography.button-md}"
148
+ rounded: "{rounded.pill}"
149
+ padding: 14px 28px
150
+ button-secondary-pill:
151
+ backgroundColor: "{colors.canvas-lavender}"
152
+ textColor: "{colors.ink}"
153
+ typography: "{typography.button-md}"
154
+ rounded: "{rounded.pill}"
155
+ padding: 10px 30px
156
+ button-outline-aubergine:
157
+ backgroundColor: "{colors.canvas}"
158
+ textColor: "{colors.primary}"
159
+ typography: "{typography.button-md}"
160
+ rounded: "{rounded.pill}"
161
+ padding: 14px 28px
162
+ button-outline-on-aubergine:
163
+ backgroundColor: "{colors.surface-aubergine}"
164
+ textColor: "{colors.on-primary}"
165
+ typography: "{typography.button-md}"
166
+ rounded: "{rounded.pill}"
167
+ padding: 14px 28px
168
+ text-input:
169
+ backgroundColor: "{colors.canvas}"
170
+ textColor: "{colors.ink}"
171
+ typography: "{typography.body-md}"
172
+ rounded: "{rounded.sm}"
173
+ padding: 10px 12px
174
+ pill-cap-shade:
175
+ backgroundColor: "{colors.canvas-cream}"
176
+ textColor: "{colors.ink}"
177
+ typography: "{typography.micro-cap}"
178
+ rounded: "{rounded.pill}"
179
+ padding: 4px 12px
180
+ card-pricing:
181
+ backgroundColor: "{colors.canvas}"
182
+ textColor: "{colors.ink}"
183
+ typography: "{typography.body-md}"
184
+ rounded: "{rounded.xl}"
185
+ padding: 32px
186
+ card-pricing-featured:
187
+ backgroundColor: "{colors.surface-aubergine}"
188
+ textColor: "{colors.on-primary}"
189
+ typography: "{typography.body-md}"
190
+ rounded: "{rounded.xl}"
191
+ padding: 32px
192
+ card-feature-cream:
193
+ backgroundColor: "{colors.canvas-cream}"
194
+ textColor: "{colors.ink}"
195
+ typography: "{typography.body-md}"
196
+ rounded: "{rounded.xl}"
197
+ padding: 32px
198
+ card-aubergine-band:
199
+ backgroundColor: "{colors.surface-aubergine}"
200
+ textColor: "{colors.on-primary}"
201
+ typography: "{typography.body-lg}"
202
+ rounded: "{rounded.xl}"
203
+ padding: 48px
204
+ card-stat:
205
+ backgroundColor: "{colors.canvas}"
206
+ textColor: "{colors.primary}"
207
+ typography: "{typography.display-lg}"
208
+ rounded: "{rounded.xl}"
209
+ padding: 32px
210
+ nav-bar-light:
211
+ backgroundColor: "{colors.canvas}"
212
+ textColor: "{colors.ink}"
213
+ typography: "{typography.body-md}"
214
+ rounded: "{rounded.xs}"
215
+ padding: 16px 24px
216
+ link-on-light:
217
+ backgroundColor: "{colors.canvas}"
218
+ textColor: "{colors.link-blue}"
219
+ typography: "{typography.body-md}"
220
+ rounded: "{rounded.xs}"
221
+ padding: 0px
222
+ link-on-aubergine:
223
+ backgroundColor: "{colors.surface-aubergine}"
224
+ textColor: "{colors.on-primary}"
225
+ typography: "{typography.body-md}"
226
+ rounded: "{rounded.xs}"
227
+ padding: 0px
228
+ footer-aubergine:
229
+ backgroundColor: "{colors.surface-aubergine}"
230
+ textColor: "{colors.on-primary}"
231
+ typography: "{typography.caption}"
232
+ rounded: "{rounded.xs}"
233
+ padding: 32px 24px
234
+ ---
235
+
236
+ ## Overview
237
+
238
+ Slacc's design language centers on a deep aubergine primary (`{colors.primary}`) — the brand's most enduring visual asset — applied as the dominant button color, the footer band, the featured pricing tier, and the brand wordmark. Around that aubergine the system stages an unusually delicate ecosystem: cream-lavender hero canvases with soft pastel-mesh gradients (peachy oranges, lavenders, dusty greens) that pulse behind floating product UI mockups, with the actual interface chrome rendered in fine detail at 3:2 aspect.
239
+
240
+ Typography splits between two proprietary humanist sans families. The display tier runs at 700 weight at sizes 32–64px with negative letter-spacing for tight optical density on hero headlines. The UI tier uses the second family at 400–700 with slightly relaxed leading (1.55) — the brand's body copy reads quietly without competing with the aubergine moments.
241
+
242
+ Buttons are pill-shaped at 90px radius with an unusual amount of horizontal padding (28–30px), giving them a distinctly comfortable, almost over-padded feel. The primary aubergine pill is the only filled button in most contexts; secondary actions use a soft lavender pill (`{colors.canvas-lavender}`) which reads as a gentler echo of the primary surface. Inline links shift to a saturated blue (`{colors.link-blue}`) — the brand's only chromatic departure from the aubergine-and-cream world.
243
+
244
+ **Key Characteristics:**
245
+ - Single aubergine primary (`{colors.primary}`) reused across CTAs, the featured pricing tier, the footer band, and the wordmark — the brand's chromatic monotheism.
246
+ - Cream-lavender hero canvas (`{colors.canvas-cream}` / `{colors.canvas-lavender}`) with diffused pastel-mesh atmospheric gradients and floating UI mockups composited above.
247
+ - Pill buttons at `{rounded.pill}` (90px radius) with generous 28–30px horizontal padding — over-padded by SaaS-default standards, deliberately so.
248
+ - Tight negative letter-spacing on display sizes (-0.768px on 64px hero) for editorial-density headlines.
249
+ - Blue inline links (`{colors.link-blue}`) — the only non-aubergine chromatic accent in body type.
250
+ - Pastel-mesh gradient atmospherics: every hero band has a subtle peach-lavender-dusty-green wash behind it; product UI sits on top, never inside, the gradient.
251
+ - Statistics cards rendered in massive aubergine display type (90% / 43 / 87%) on white — quantitative emphasis through scale alone.
252
+
253
+ ## Colors
254
+
255
+ > **Source pages:** home (`/`), `/features/channels`, `/pricing`, `/contact-sales`.
256
+
257
+ ### Brand & Accent
258
+ - **Aubergine** (`{colors.primary}` — `#4a154b`): The brand's primary surface and CTA color. Deep, warm purple with a hint of ruby — used on filled buttons, the featured pricing tier, the footer band, and the brand wordmark.
259
+ - **Aubergine Deep** (`{colors.primary-deep}` — `#481a54`): A near-identical sibling of `{colors.primary}` extracted from a different surface; treat as functionally equivalent.
260
+ - **Aubergine Press** (`{colors.primary-press}` — `#611f69`): Pressed-state lift of the primary, slightly lighter and warmer.
261
+ - **Aubergine Tint** (`{colors.primary-tint}` — `#592466`): Border accent on aubergine-on-aubergine surfaces.
262
+ - **Link Blue** (`{colors.link-blue}` — `#1264a3`): Inline link color — saturated, slightly warm blue. The only chromatic alternative to aubergine in body type.
263
+ - **Link Hover** (`{colors.link-hover}` — `#3860be`): A more saturated blue used on link hover state.
264
+
265
+ ### Surface
266
+ - **Canvas White** (`{colors.canvas}` — `#ffffff`): Default content surface.
267
+ - **Canvas Cream** (`{colors.canvas-cream}` — `#f4ede4`): Warm off-white used on hero gradients and feature bands. Adds editorial warmth.
268
+ - **Canvas Lavender** (`{colors.canvas-lavender}` — `#f9f0ff`): Pale lavender tint used as the secondary-button surface and as a soft section band.
269
+ - **Surface Aubergine** (`{colors.surface-aubergine}` — `#4a154b`): The primary aubergine reused as a surface — featured pricing tier, footer, dark feature bands.
270
+ - **Hairline** (`{colors.hairline}` — `#e6e6e6`): 1px borders on cards and table dividers.
271
+
272
+ ### Text
273
+ - **Ink** (`{colors.ink}` — `#1d1d1d`): Primary body text on light surfaces. Just shy of pure black.
274
+ - **Ink Mute** (`{colors.ink-mute}` — `#696969`): Secondary text, captions, helper copy.
275
+ - **On Primary** (`{colors.on-primary}` — `#ffffff`): Text on aubergine surfaces and filled CTAs.
276
+ - **On Aubergine Mute** (`{colors.on-aubergine-mute}` — `#d9bdde`): Secondary text on aubergine surfaces — a desaturated mauve that reads as muted-light.
277
+
278
+ ### Semantic
279
+ - **Error** (`{colors.semantic-error}` — `#cc4117`): Form error and destructive-action color.
280
+ - **Success** (`{colors.semantic-success}` — `#007a5a`): Inline success indicators.
281
+
282
+ ## Typography
283
+
284
+ ### Font Family
285
+
286
+ The display tier is **Salesforce Avant Garde** — a proprietary humanist sans with broad apertures and a slightly geometric character. When unavailable, fall back to the system font stack (`system-ui, -apple-system, BlinkMacSystemFont`).
287
+
288
+ The UI tier is **Salesforce Sans** — a separate proprietary face used for body, captions, and button labels. Same fallback chain.
289
+
290
+ Both faces are proprietary and not freely available. Substitute with **Inter** (open-source via Google Fonts) at matching weights for both display and body — Inter is the closest open analogue across both tiers.
291
+
292
+ ### Hierarchy
293
+
294
+ | Token | Size | Weight | Line Height | Letter Spacing | Use |
295
+ |---|---|---|---|---|---|
296
+ | `{typography.display-xxl}` | 64px | 700 | 1.12 | -0.768px | Marketing hero headline |
297
+ | `{typography.display-xl}` | 58px | 600 | 1.25 | -0.464px | Section openers |
298
+ | `{typography.display-lg}` | 50px | 700 | 1.12 | -0.6px | Statistics callouts |
299
+ | `{typography.display-md}` | 32px | 700 | 1.25 | -0.256px | Card / feature titles |
300
+ | `{typography.heading-lg}` | 24px | 700 | 1.33 | -0.096px | Pricing tier names |
301
+ | `{typography.heading-md}` | 22px | 600 | 1.4 | 0 | Sub-section heading |
302
+ | `{typography.heading-sm}` | 18px | 600 | 1.56 | -0.0216px | Compact card title |
303
+ | `{typography.body-lg}` | 18px | 400 | 1.55 | -0.0216px | Marketing body lead |
304
+ | `{typography.body-md}` | 16px | 400 | 1.55 | 0 | Default UI body |
305
+ | `{typography.body-strong}` | 16px | 700 | 1.5 | 0.16px | Emphasized body |
306
+ | `{typography.button-lg}` | 18px | 700 | 1.0 | 0 | Hero pill button label |
307
+ | `{typography.button-md}` | 16px | 700 | 1.38 | 0.2px | Standard pill button label |
308
+ | `{typography.button-cap}` | 14.4px | 700 | 1.0 | 0.144px | Compact pill label |
309
+ | `{typography.caption}` | 14px | 400 | 1.43 | 0.1px | Helper, footnote |
310
+ | `{typography.micro-cap}` | 12px | 700 | 1.0 | 0.96px | All-caps eyebrow |
311
+
312
+ ### Principles
313
+ - **Tight tracking on display.** Negative letter-spacing across 32–64px sizes; the proprietary face is wide by default, the negative tracking pulls it into editorial density.
314
+ - **Body at 1.55 leading.** Slightly relaxed for marketing readability without crossing into airy / 1.7+ territory.
315
+ - **Caps for eyebrows.** All eyebrows render uppercase with positive 0.96–0.144px tracking depending on size.
316
+
317
+ ### Note on Font Substitutes
318
+ Use **Inter** (open-source Google Fonts) for both display and UI tiers — Inter at 700 weight with `-0.768px` letter-spacing closely approximates the brand's display behavior. For maximum brand fidelity, **Lato** is a softer humanist alternative that pairs well at body sizes. Avoid System UI fonts on the body — the brand's subtle warmth disappears at default weights.
319
+
320
+ ## Layout
321
+
322
+ ### Spacing System
323
+ - **Base unit**: 8px (with 4 / 12 / 16 / 20 / 24 / 28 sub-tokens for fine vertical rhythm).
324
+ - **Tokens**: `{spacing.xs}` 4px · `{spacing.sm}` 8px · `{spacing.md}` 12px · `{spacing.lg}` 16px · `{spacing.xl}` 20px · `{spacing.xxl}` 24px · `{spacing.huge}` 28px.
325
+ - **Section padding**: 64–96px on marketing surfaces; tightens to 48px on transactional pages.
326
+ - **Card internal padding**: 32px on pricing cards; 48px on aubergine band cards.
327
+
328
+ ### Grid & Container
329
+ - Marketing pages center in a ~1240px container with edge-bleeding pastel-mesh gradients escaping the container.
330
+ - Pricing collapses 4-up → 2-up → 1-up at 992 / 768 breakpoints.
331
+ - Statistics row: 3-column grid with massive 50px aubergine display numerals.
332
+
333
+ ### Whitespace Philosophy
334
+ The pastel-mesh gradients fill most of the negative space on marketing pages — sections feel expansive without being literally empty. On transactional pages the gradients drop, and whitespace reverts to traditional 48px-section breathing room.
335
+
336
+ ## Elevation & Depth
337
+
338
+ | Level | Treatment | Use |
339
+ |---|---|---|
340
+ | 0 | Flat | Default surface |
341
+ | 1 | `box-shadow: rgba(0,0,0,0.1) 0 5px 20px 0` | Floating buttons on hero |
342
+ | 2 | `box-shadow: rgba(0,0,0,0.1) 0 0 32px 0` | Product UI mockup composites |
343
+ | 3 | `box-shadow: rgba(0,0,0,0.2) 0 1px 10px 0` | Toast / notification chrome |
344
+ | 4 | `box-shadow: rgb(97,31,105) 0 0 0 1px inset` | Aubergine inset border (button focus, special chrome) |
345
+
346
+ ### Decorative Depth
347
+ The brand's depth language is the **pastel-mesh gradient** — peach, lavender, dusty green stops blurred together at large radii to create soft atmospheric backdrops behind product UI screenshots. The gradient is the brand's flavor of "depth without shadows": the eye perceives the product mockup as floating above a luminous backdrop without any literal lift.
348
+
349
+ ## Shapes
350
+
351
+ ### Border Radius Scale
352
+
353
+ | Token | Value | Use |
354
+ |---|---|---|
355
+ | `{rounded.xs}` | 2px | Hairline tags, status pills (rare) |
356
+ | `{rounded.sm}` | 4px | Form inputs |
357
+ | `{rounded.md}` | 8px | Compact card chrome, video frames |
358
+ | `{rounded.lg}` | 12px | Mid-size cards, secondary surface |
359
+ | `{rounded.xl}` | 16px | Pricing cards, feature cards |
360
+ | `{rounded.xxl}` | 48px | Stat badge backdrops |
361
+ | `{rounded.pill}` | 90px | All buttons |
362
+
363
+ ### Photography Geometry
364
+ The brand uses **product UI screenshots** more than photography. UI mockups sit on top of pastel-mesh gradients at roughly 4:3 aspect, with no shadow but with the gradient providing the "lift" the eye expects. Real photography appears in customer-logo strips and the occasional case-study card, treated as full-bleed inside `{rounded.xl}` containers.
365
+
366
+ ## Components
367
+
368
+ ### Buttons
369
+
370
+ **`button-primary-pill`** — the dominant CTA system-wide.
371
+ - Background `{colors.primary}`, text `{colors.on-primary}`, type `{typography.button-md}`, padding `14px 28px`, rounded `{rounded.pill}` 90px.
372
+ - Pressed state `button-primary-pill-pressed` shifts background to `{colors.primary-press}`.
373
+
374
+ **`button-secondary-pill`** — the soft lavender alternative.
375
+ - Background `{colors.canvas-lavender}`, text `{colors.ink}`, padding `10px 30px`, same pill geometry. Used as the second action beside the primary aubergine pill.
376
+
377
+ **`button-outline-aubergine`** — outline variant on white surfaces.
378
+ - Background `{colors.canvas}`, text `{colors.primary}`, 2px solid `{colors.primary}` border, same pill shape.
379
+
380
+ **`button-outline-on-aubergine`** — outline on aubergine canvas.
381
+ - Background `{colors.surface-aubergine}` (transparent over the surface), text `{colors.on-primary}`, 2px solid `{colors.on-primary}` border, same pill shape.
382
+
383
+ ### Cards & Containers
384
+
385
+ **`card-pricing`** — standard pricing tier card.
386
+ - Background `{colors.canvas}`, padding `{spacing.xxl}+` (32px), rounded `{rounded.xl}` 16px, 1px `{colors.hairline}` border. Title in `{typography.heading-lg}`, price in `{typography.display-md}`, body in `{typography.body-md}`, CTA pinned to bottom as `button-primary-pill`.
387
+
388
+ **`card-pricing-featured`** — the inverted aubergine featured tier.
389
+ - Background `{colors.surface-aubergine}`, text `{colors.on-primary}`, otherwise identical to `card-pricing`. The aubergine fill is the brand's signature featured-tier choice.
390
+
391
+ **`card-feature-cream`** — feature explanation card on the cream track.
392
+ - Background `{colors.canvas-cream}`, text `{colors.ink}`, rounded `{rounded.xl}`, padding 32px.
393
+
394
+ **`card-aubergine-band`** — large horizontal band card with aubergine fill, often containing the closing CTA of a marketing page.
395
+ - Background `{colors.surface-aubergine}`, text `{colors.on-primary}`, padding 48px, rounded `{rounded.xl}` 16px.
396
+
397
+ **`card-stat`** — statistics callout card.
398
+ - Background `{colors.canvas}`, text `{colors.primary}` rendered in `{typography.display-lg}` (50px aubergine numeral). Holds a single percentage/number with a small caption underneath.
399
+
400
+ ### Inputs & Forms
401
+
402
+ **`text-input`** — standard form field.
403
+ - Background `{colors.canvas}`, text `{colors.ink}`, type `{typography.body-md}`, padding `10px 12px`, rounded `{rounded.sm}` 4px, 1px `{colors.hairline}` border.
404
+
405
+ ### Navigation
406
+
407
+ **`nav-bar-light`** — top nav across all marketing pages.
408
+ - Background `{colors.canvas}`, text `{colors.ink}`, padding `{spacing.lg} {spacing.xxl}`. Logo wordmark on the left, nav items center, two pill buttons on the right (`button-secondary-pill` for "Sign In", `button-primary-pill` for "Try For Free").
409
+
410
+ ### Pills, Tags, and Chips
411
+
412
+ **`pill-cap-shade`** — small all-caps pill used as eyebrow above pricing-tier titles.
413
+ - Background `{colors.canvas-cream}`, text `{colors.ink}`, type `{typography.micro-cap}`, padding `4px 12px`, rounded `{rounded.pill}`.
414
+
415
+ ### Signature Components
416
+
417
+ **Pastel-Mesh Gradient Backdrop** — peach (`#fff0e6`-ish) + lavender (`#e9d8ff`) + dusty green stops blurred together behind hero bands. Implemented as a CSS radial-gradient stack, not a single image. Provides the brand's depth/luminosity without literal shadows.
418
+
419
+ **Floating Product UI Mockup** — product screenshots framed in `{rounded.lg}` (12px) containers, positioned above the pastel-mesh gradient with no border or shadow. The gradient does the lifting.
420
+
421
+ **Aubergine Footer Band** — every marketing page closes with a full-bleed `card-aubergine-band` containing a closing CTA in white type. The band height is generous (~480–600px on desktop) and reads as the page's signature.
422
+
423
+ **`link-on-light`** — inline links in body copy on light surfaces.
424
+ - Text `{colors.link-blue}` rendered in `{typography.body-md}`. No underline by default; underline appears on hover via the link-hover behavior.
425
+
426
+ **`link-on-aubergine`** — links inside aubergine surfaces.
427
+ - Text `{colors.on-primary}` with persistent underline.
428
+
429
+ **`footer-aubergine`** — site-wide footer.
430
+ - Background `{colors.surface-aubergine}`, text `{colors.on-primary}` rendered in `{typography.caption}`, padding `{spacing.huge}+ {spacing.xxl}` (32px 24px). Holds 4–5 columns of `{colors.on-aubergine-mute}` link groups, social icons, and a small legal/copyright row at the bottom.
431
+
432
+ ## Do's and Don'ts
433
+
434
+ ### Do
435
+ - Reserve `{colors.primary}` aubergine for filled CTAs, the featured pricing tier, and the closing aubergine band — it's the brand's chromatic monotheism.
436
+ - Use `{rounded.pill}` (90px) for every button across the system — never a rounded-rectangle button.
437
+ - Pair display tiers with negative letter-spacing (`-0.768px` at 64px); the proprietary face needs the tracking pull.
438
+ - Compose hero bands with pastel-mesh gradient backdrop + floating product UI mockup; the gradient is the depth.
439
+ - Use `{colors.link-blue}` for inline links — it's the only chromatic departure from aubergine and is part of the brand voice.
440
+
441
+ ### Don't
442
+ - Don't add a third accent color to the system — the aubergine + blue link combination is exhaustive.
443
+ - Don't shrink button padding below `14px 28px` — the over-padded pill is part of the brand feel.
444
+ - Don't render display tiers at default tracking (0) — without negative letter-spacing the headlines read loose and unedited.
445
+ - Don't put product UI screenshots inside cards — they sit ABOVE the pastel-mesh gradient, never inside chrome.
446
+ - Don't use aubergine for body text — it's a surface and CTA color, not a type color at body sizes.
447
+ - Don't replace the pill shape with a square button anywhere.
448
+
449
+ ## Responsive Behavior
450
+
451
+ ### Breakpoints
452
+
453
+ | Name | Width | Key Changes |
454
+ |---|---|---|
455
+ | Wide | ≥ 1440px | Full-bleed pastel-mesh hero; pricing 4-up |
456
+ | Desktop | 1024–1440px | Default content max-width; pricing 4-up |
457
+ | Tablet | 768–1023px | Pricing 2-up; product UI mockups crop to focal panel |
458
+ | Mobile | < 768px | Pricing 1-up; hamburger nav; display-xxl drops 64 → 40px |
459
+
460
+ ### Touch Targets
461
+ - Pill buttons hit ≥ 48×48px due to the over-padded geometry. WCAG AAA compliant.
462
+ - Form fields stay at the 44px minimum height.
463
+
464
+ ### Collapsing Strategy
465
+ - Display tiers stair-step 64 → 50 → 32 → 28 → 24 across breakpoints.
466
+ - Pastel-mesh gradients re-tile on mobile to prevent the wash from disappearing entirely.
467
+ - Floating product UI mockups crop to the most actionable inner panel on mobile.
468
+ - Pricing tiers stair-step 4 → 2 → 1; aubergine featured tier stays distinguished.
469
+ - Top nav collapses to hamburger below 768px; menu inherits canvas color.
470
+
471
+ ### Image Behavior
472
+ Product UI mockups use `srcset` for desktop / tablet / mobile crops; the mobile crop centers on the most actionable inner panel rather than scaling the whole composite down.
473
+
474
+ ## Iteration Guide
475
+
476
+ 1. Focus on ONE component at a time.
477
+ 2. Reference component names and tokens directly (`{colors.primary}`, `{button-primary-pill}-pressed`, `{rounded.pill}`).
478
+ 3. Run `npx @google/design.md lint DESIGN.md` after edits.
479
+ 4. Add new variants as separate entries.
480
+ 5. Default body to `{typography.body-md}`; reserve `{typography.body-lg}` for marketing leads.
481
+ 6. Keep aubergine scarce — one filled aubergine button per viewport.
482
+ 7. Pair every hero band with the pastel-mesh gradient backdrop; bare-canvas heroes read as off-brand.