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,462 @@
1
+ ---
2
+ version: alpha
3
+ name: Supabaze Inspired
4
+ description: An inspired interpretation of Supabaze's design language — an open-source database platform built on a clean white-and-near-black system with a single signature emerald-green CTA, a custom humanist sans display tier, and dense product UI mockups composited above the hero. The brand reads as quietly technical: minimal chrome, a near-monochrome palette, and the green primary acting as the only chromatic event on the page.
5
+
6
+ colors:
7
+ primary: "#3ecf8e"
8
+ primary-deep: "#24b47e"
9
+ primary-soft: "#4ade80"
10
+ ink: "#171717"
11
+ ink-secondary: "#212121"
12
+ ink-mute: "#707070"
13
+ ink-mute-2: "#9a9a9a"
14
+ ink-faint: "#b2b2b2"
15
+ on-primary: "#171717"
16
+ on-dark: "#ffffff"
17
+ canvas: "#ffffff"
18
+ canvas-soft: "#fafafa"
19
+ canvas-night: "#1c1c1c"
20
+ canvas-night-soft: "#202020"
21
+ hairline: "#dfdfdf"
22
+ hairline-strong: "#c7c7c7"
23
+ hairline-cool: "#ededed"
24
+ hairline-cool-2: "#efefef"
25
+ hairline-cool-3: "#d4d4d4"
26
+ accent-purple: "#6b01c2"
27
+ accent-violet: "#644fc1"
28
+ accent-purple-soft: "#eddbf9"
29
+ accent-yellow: "#ffdb13"
30
+ accent-tomato: "#ff2201"
31
+ accent-pink: "#c7007e"
32
+ accent-indigo: "#054cff"
33
+ accent-crimson: "#e2005a"
34
+
35
+ typography:
36
+ display-xxl:
37
+ fontFamily: "Circular, 'Helvetica Neue', Helvetica, Arial, sans-serif"
38
+ fontSize: 64px
39
+ fontWeight: 500
40
+ lineHeight: 1.1
41
+ letterSpacing: -1.92px
42
+ display-xl:
43
+ fontFamily: "Circular, 'Helvetica Neue', Helvetica, Arial, sans-serif"
44
+ fontSize: 48px
45
+ fontWeight: 500
46
+ lineHeight: 1.1
47
+ letterSpacing: -1.44px
48
+ display-lg:
49
+ fontFamily: "Circular, 'Helvetica Neue', Helvetica, Arial, sans-serif"
50
+ fontSize: 36px
51
+ fontWeight: 500
52
+ lineHeight: 1.15
53
+ letterSpacing: -0.72px
54
+ display-md:
55
+ fontFamily: "Circular, 'Helvetica Neue', Helvetica, Arial, sans-serif"
56
+ fontSize: 28px
57
+ fontWeight: 500
58
+ lineHeight: 1.2
59
+ letterSpacing: -0.42px
60
+ heading-lg:
61
+ fontFamily: "Circular, 'Helvetica Neue', Helvetica, Arial, sans-serif"
62
+ fontSize: 22px
63
+ fontWeight: 500
64
+ lineHeight: 1.2
65
+ letterSpacing: 0
66
+ heading-md:
67
+ fontFamily: "Circular, 'Helvetica Neue', Helvetica, Arial, sans-serif"
68
+ fontSize: 18px
69
+ fontWeight: 500
70
+ lineHeight: 1.4
71
+ letterSpacing: 0
72
+ body-lg:
73
+ fontFamily: "Circular, 'Helvetica Neue', Helvetica, Arial, sans-serif"
74
+ fontSize: 18px
75
+ fontWeight: 400
76
+ lineHeight: 1.55
77
+ letterSpacing: 0
78
+ body-md:
79
+ fontFamily: "Circular, 'Helvetica Neue', Helvetica, Arial, sans-serif"
80
+ fontSize: 16px
81
+ fontWeight: 400
82
+ lineHeight: 1.5
83
+ letterSpacing: 0
84
+ button-md:
85
+ fontFamily: "Circular, 'Helvetica Neue', Helvetica, Arial, sans-serif"
86
+ fontSize: 14px
87
+ fontWeight: 500
88
+ lineHeight: 1.0
89
+ letterSpacing: 0
90
+ caption:
91
+ fontFamily: "Circular, 'Helvetica Neue', Helvetica, Arial, sans-serif"
92
+ fontSize: 13px
93
+ fontWeight: 400
94
+ lineHeight: 1.45
95
+ letterSpacing: 0
96
+ micro:
97
+ fontFamily: "Circular, 'Helvetica Neue', Helvetica, Arial, sans-serif"
98
+ fontSize: 12px
99
+ fontWeight: 400
100
+ lineHeight: 1.45
101
+ letterSpacing: 0
102
+ code:
103
+ fontFamily: "ui-monospace, Menlo, Monaco, Consolas, 'Liberation Mono', monospace"
104
+ fontSize: 14px
105
+ fontWeight: 400
106
+ lineHeight: 1.5
107
+ letterSpacing: 0
108
+
109
+ rounded:
110
+ xs: 4px
111
+ sm: 6px
112
+ md: 8px
113
+ lg: 12px
114
+ xl: 16px
115
+ full: 9999px
116
+
117
+ spacing:
118
+ xxs: 2px
119
+ xs: 4px
120
+ sm: 8px
121
+ md: 12px
122
+ lg: 16px
123
+ xl: 24px
124
+ xxl: 32px
125
+ huge: 64px
126
+
127
+ components:
128
+ button-primary-green:
129
+ backgroundColor: "{colors.primary}"
130
+ textColor: "{colors.on-primary}"
131
+ typography: "{typography.button-md}"
132
+ rounded: "{rounded.sm}"
133
+ padding: 8px 16px
134
+ button-primary-green-pressed:
135
+ backgroundColor: "{colors.primary-deep}"
136
+ textColor: "{colors.on-primary}"
137
+ typography: "{typography.button-md}"
138
+ rounded: "{rounded.sm}"
139
+ padding: 8px 16px
140
+ button-secondary-outline:
141
+ backgroundColor: "{colors.canvas}"
142
+ textColor: "{colors.ink}"
143
+ typography: "{typography.button-md}"
144
+ rounded: "{rounded.sm}"
145
+ padding: 8px 16px
146
+ button-on-dark:
147
+ backgroundColor: "{colors.canvas-night}"
148
+ textColor: "{colors.on-dark}"
149
+ typography: "{typography.button-md}"
150
+ rounded: "{rounded.sm}"
151
+ padding: 8px 16px
152
+ button-link:
153
+ backgroundColor: "{colors.canvas}"
154
+ textColor: "{colors.ink}"
155
+ typography: "{typography.button-md}"
156
+ rounded: "{rounded.xs}"
157
+ padding: 0px
158
+ text-input:
159
+ backgroundColor: "{colors.canvas}"
160
+ textColor: "{colors.ink}"
161
+ typography: "{typography.body-md}"
162
+ rounded: "{rounded.sm}"
163
+ padding: 8px 12px
164
+ card-feature-light:
165
+ backgroundColor: "{colors.canvas}"
166
+ textColor: "{colors.ink}"
167
+ typography: "{typography.body-md}"
168
+ rounded: "{rounded.lg}"
169
+ padding: 32px
170
+ card-pricing:
171
+ backgroundColor: "{colors.canvas}"
172
+ textColor: "{colors.ink}"
173
+ typography: "{typography.body-md}"
174
+ rounded: "{rounded.lg}"
175
+ padding: 32px
176
+ card-pricing-featured:
177
+ backgroundColor: "{colors.canvas-night}"
178
+ textColor: "{colors.on-dark}"
179
+ typography: "{typography.body-md}"
180
+ rounded: "{rounded.lg}"
181
+ padding: 32px
182
+ card-feature-dark:
183
+ backgroundColor: "{colors.canvas-night}"
184
+ textColor: "{colors.on-dark}"
185
+ typography: "{typography.body-md}"
186
+ rounded: "{rounded.lg}"
187
+ padding: 32px
188
+ code-block:
189
+ backgroundColor: "{colors.canvas-night}"
190
+ textColor: "{colors.on-dark}"
191
+ typography: "{typography.code}"
192
+ rounded: "{rounded.sm}"
193
+ padding: 16px
194
+ pill-tag-green:
195
+ backgroundColor: "{colors.primary}"
196
+ textColor: "{colors.on-primary}"
197
+ typography: "{typography.micro}"
198
+ rounded: "{rounded.full}"
199
+ padding: 2px 8px
200
+ pill-tag-soft:
201
+ backgroundColor: "{colors.canvas-soft}"
202
+ textColor: "{colors.ink}"
203
+ typography: "{typography.micro}"
204
+ rounded: "{rounded.full}"
205
+ padding: 2px 8px
206
+ nav-bar-light:
207
+ backgroundColor: "{colors.canvas}"
208
+ textColor: "{colors.ink}"
209
+ typography: "{typography.body-md}"
210
+ rounded: "{rounded.xs}"
211
+ padding: 16px 24px
212
+ link-on-light:
213
+ backgroundColor: "{colors.canvas}"
214
+ textColor: "{colors.ink}"
215
+ typography: "{typography.body-md}"
216
+ rounded: "{rounded.xs}"
217
+ padding: 0px
218
+ footer-light:
219
+ backgroundColor: "{colors.canvas}"
220
+ textColor: "{colors.ink-mute}"
221
+ typography: "{typography.caption}"
222
+ rounded: "{rounded.xs}"
223
+ padding: 64px 24px
224
+ ---
225
+
226
+ ## Overview
227
+
228
+ Supabaze's design language is engineered for clarity above all else. The marketing surfaces sit on `{colors.canvas}` (pure white), with text rendered in `{colors.ink}` (`#171717` — near-black, never pure black). Across the entire system the only consistent chromatic event is the **emerald green primary** (`{colors.primary}` — `#3ecf8e`) — used as the filled CTA, occasional accent dot, and the signature highlight color in the wordmark. Everything else is a calibrated grey ladder from `#ededed` hairline-cool to `#171717` ink, with thin black-on-white typography doing most of the visual work.
229
+
230
+ Typography runs **Circular** at weight 500 for display and 400 for body. The display tier uses tight negative letter-spacing (-1.92px at 64px) to pull the rounded humanist letterforms into editorial density. There's no atmospheric gradient, no full-bleed photography, no dark-canvas marketing track — the brand commits to white.
231
+
232
+ The product itself appears as composited UI screenshots on every page: dashboard tables, SQL editors, query builders, log streams. These screenshots are the brand's argument. They sit inside `{rounded.lg}` 12px containers with subtle 1px hairlines, often arranged 2-up or in a floating "stacked panes" composition above the hero band.
233
+
234
+ **Key Characteristics:**
235
+ - Single emerald primary (`{colors.primary}` `#3ecf8e`) as the only chromatic event; everything else is monochrome.
236
+ - White canvas marketing track with greyscale hierarchy from `{colors.hairline-cool}` to `{colors.ink}`.
237
+ - Custom humanist sans display tier at weight 500 with negative letter-spacing of -1.92px to -0.42px.
238
+ - Composited product UI screenshots (dashboard, SQL editor, log stream) are the dominant decorative element — never photography, never illustrations.
239
+ - Tight 6px / 8px button radii — square-ish, technical, never pill-shaped.
240
+ - Code blocks rendered in deep `{colors.canvas-night}` (`#1c1c1c`) with monospace inline code; the brand's developer DNA is visible in every snippet.
241
+ - Pricing tiers use a dark inverted `{colors.canvas-night}` featured tier, not a green one — the green is reserved for buttons and dot accents.
242
+
243
+ ## Colors
244
+
245
+ > **Source pages:** home (`/`), `/database`, `/partners/integrations`, `/partners/integrations/powersync`, `/solutions/ai-builders`, `/pricing`.
246
+
247
+ ### Brand & Accent
248
+ - **Emerald** (`{colors.primary}` — `#3ecf8e`): The signature CTA color. Filled-button background, brand wordmark accent, dot indicator.
249
+ - **Emerald Deep** (`{colors.primary-deep}` — `#24b47e`): Pressed-state lift of the primary.
250
+ - **Emerald Soft** (`{colors.primary-soft}` — `#4ade80`): Lighter emerald used in chart accents and product UI.
251
+ - **Accent Purple** (`{colors.accent-purple}` — `#6b01c2`): Rare accent used in integration logos and chart points; never a button.
252
+ - **Accent Violet** (`{colors.accent-violet}` — `#644fc1`): Secondary accent in the same role as accent purple.
253
+ - **Accent Yellow** (`{colors.accent-yellow}` — `#ffdb13`): Chart accent / status indicator only.
254
+ - **Accent Pink / Crimson / Indigo / Tomato**: Reserved for integration logos and rare chart highlights, never as system colors.
255
+
256
+ ### Surface
257
+ - **Canvas** (`{colors.canvas}` — `#ffffff`): Default page background.
258
+ - **Canvas Soft** (`{colors.canvas-soft}` — `#fafafa`): Barely-tinted off-white for alternating section bands.
259
+ - **Canvas Night** (`{colors.canvas-night}` — `#1c1c1c`): Deep near-black used in code blocks, dashboard mockups, featured pricing tier.
260
+ - **Canvas Night Soft** (`{colors.canvas-night-soft}` — `#202020`): Slightly lifted dark for nested chrome.
261
+ - **Hairline** (`{colors.hairline}` — `#dfdfdf`): 1px borders on cards and tables.
262
+ - **Hairline Strong** (`{colors.hairline-strong}` — `#c7c7c7`): Slightly darker border for emphasis.
263
+ - **Hairline Cool** (`{colors.hairline-cool}` — `#ededed`) / **Hairline Cool 2** (`#efefef`) / **Hairline Cool 3** (`#d4d4d4`): The brand's grey ladder for fine chrome work.
264
+
265
+ ### Text
266
+ - **Ink** (`{colors.ink}` — `#171717`): Default body text. Near-black, never pure.
267
+ - **Ink Secondary** (`{colors.ink-secondary}` — `#212121`): Slightly cooler near-black for body emphasis.
268
+ - **Ink Mute** (`{colors.ink-mute}` — `#707070`): Secondary text and helper copy.
269
+ - **Ink Mute 2** (`{colors.ink-mute-2}` — `#9a9a9a`): Tertiary text.
270
+ - **Ink Faint** (`{colors.ink-faint}` — `#b2b2b2`): Disabled / placeholder text.
271
+ - **On Primary** (`{colors.on-primary}` — `#171717`): Text on the emerald primary fill — near-black, not white. The button reads as a "lit" surface with dark type, not a colored chip.
272
+ - **On Dark** (`{colors.on-dark}` — `#ffffff`): Text on canvas-night surfaces.
273
+
274
+ ## Typography
275
+
276
+ ### Font Family
277
+
278
+ The display and UI tier is **Circular** — a proprietary geometric humanist sans by Lineto. Fallback chain: `'Helvetica Neue', Helvetica, Arial`.
279
+
280
+ For maximum brand fidelity when Circular isn't licensed, use **Inter** (open-source via Google Fonts) at weight 500 for display with `letter-spacing: -1.92px` at 64px. Inter is the closest open-source analogue to Circular's geometric humanist character.
281
+
282
+ Code blocks use **system mono** (`ui-monospace`, with Menlo / Monaco / Consolas fallbacks).
283
+
284
+ ### Hierarchy
285
+
286
+ | Token | Size | Weight | Line Height | Letter Spacing | Use |
287
+ |---|---|---|---|---|---|
288
+ | `{typography.display-xxl}` | 64px | 500 | 1.1 | -1.92px | Hero headline |
289
+ | `{typography.display-xl}` | 48px | 500 | 1.1 | -1.44px | Section opener |
290
+ | `{typography.display-lg}` | 36px | 500 | 1.15 | -0.72px | Sub-section / pricing tier |
291
+ | `{typography.display-md}` | 28px | 500 | 1.2 | -0.42px | Card title |
292
+ | `{typography.heading-lg}` | 22px | 500 | 1.2 | 0 | Compact heading |
293
+ | `{typography.heading-md}` | 18px | 500 | 1.4 | 0 | Section sub-heading |
294
+ | `{typography.body-lg}` | 18px | 400 | 1.55 | 0 | Marketing body lead |
295
+ | `{typography.body-md}` | 16px | 400 | 1.5 | 0 | Default UI body |
296
+ | `{typography.button-md}` | 14px | 500 | 1.0 | 0 | Button label |
297
+ | `{typography.caption}` | 13px | 400 | 1.45 | 0 | Helper, footnote |
298
+ | `{typography.micro}` | 12px | 400 | 1.45 | 0 | Pill label, fine print |
299
+ | `{typography.code}` | 14px | 400 | 1.5 | 0 | Code block content |
300
+
301
+ ### Principles
302
+ - **Weight 500 across display.** Mid-weight reads as engineered, not decorative.
303
+ - **Negative tracking on display.** -1.92px at 64px scaling proportionally down — tightens the rounded humanist letterforms into editorial density.
304
+ - **Mono for code.** System mono families (Menlo / Monaco) — no proprietary mono webfont.
305
+
306
+ ### Note on Font Substitutes
307
+ Circular is proprietary. Use **Inter** at weight 500 with `letter-spacing: -1.92px` for display tiers. **Geist Sans** (open-source from Vercel) is another close alternative for both display and body. Avoid Helvetica defaults — they're heavier and lack the geometric warmth.
308
+
309
+ ## Layout
310
+
311
+ ### Spacing System
312
+ - **Base unit**: 8px (with 2 / 4 / 12 sub-tokens for fine work).
313
+ - **Tokens**: `{spacing.xxs}` 2px · `{spacing.xs}` 4px · `{spacing.sm}` 8px · `{spacing.md}` 12px · `{spacing.lg}` 16px · `{spacing.xl}` 24px · `{spacing.xxl}` 32px · `{spacing.huge}` 64px.
314
+ - **Section padding**: 64–96px on marketing surfaces.
315
+ - **Card internal padding**: 32px on feature/pricing cards.
316
+
317
+ ### Grid & Container
318
+ - Marketing pages center in a ~1280px container with no edge-bleed; the brand keeps content inside the box.
319
+ - Pricing collapses 4-up → 2-up → 1-up at 1024 / 768 breakpoints.
320
+ - Product UI mockups stack 2-up or render as overlapping panes inside the same container.
321
+
322
+ ### Whitespace Philosophy
323
+ The brand uses generous 64–96px section padding without atmospheric gradients filling the space — the white canvas is the design. The composited product UI mockups break up sections without requiring decoration.
324
+
325
+ ## Elevation & Depth
326
+
327
+ | Level | Treatment | Use |
328
+ |---|---|---|
329
+ | 0 | Flat, 1px hairline | Default cards |
330
+ | 1 | `box-shadow: 0 1px 3px rgba(0,0,0,0.06)` | Subtle card lift |
331
+ | 2 | `box-shadow: 0 8px 24px rgba(0,0,0,0.08)` | Floating composited UI mockups |
332
+ | 3 | `box-shadow: 0 16px 48px rgba(0,0,0,0.12)` | Modal overlays, deep elevation |
333
+
334
+ ### Decorative Depth
335
+ The brand's depth is **product UI mockups** rather than gradients. Stacked dashboard / SQL editor / log panes composite together with subtle Level 2 shadows to suggest spatial hierarchy.
336
+
337
+ ## Shapes
338
+
339
+ ### Border Radius Scale
340
+
341
+ | Token | Value | Use |
342
+ |---|---|---|
343
+ | `{rounded.xs}` | 4px | Form inputs, hairline tags |
344
+ | `{rounded.sm}` | 6px | Buttons (the brand's signature button radius), code blocks |
345
+ | `{rounded.md}` | 8px | Compact cards, alerts |
346
+ | `{rounded.lg}` | 12px | Pricing cards, feature cards, product mockups |
347
+ | `{rounded.xl}` | 16px | Modal dialogs, large container chrome |
348
+ | `{rounded.full}` | 9999px | Pill tags, avatars |
349
+
350
+ ### Photography Geometry
351
+ The brand uses minimal photography. Customer logo strips display wordmarks at uniform height (~24–32px) in greyscale; case-study cards (rare) use 4:3 photos inset in `{rounded.lg}` containers.
352
+
353
+ ## Components
354
+
355
+ ### Buttons
356
+
357
+ **`button-primary-green`** — the signature CTA.
358
+ - Background `{colors.primary}`, text `{colors.on-primary}` (near-black, NOT white), type `{typography.button-md}`, padding `{spacing.sm} {spacing.lg}` (8px 16px), rounded `{rounded.sm}` 6px.
359
+ - Pressed state `button-primary-green-pressed` shifts to `{colors.primary-deep}`.
360
+
361
+ **`button-secondary-outline`** — outline alternative on white.
362
+ - Background `{colors.canvas}`, text `{colors.ink}`, 1px solid `{colors.hairline-strong}` border, same shape.
363
+
364
+ **`button-on-dark`** — used on dark surfaces / code-block CTAs.
365
+ - Background `{colors.canvas-night}`, text `{colors.on-dark}`, same shape.
366
+
367
+ **`button-link`** — text-only inline button.
368
+ - Transparent background, text `{colors.ink}` rendered in `{typography.button-md}`, no padding, with a subtle underline on hover.
369
+
370
+ ### Cards & Containers
371
+
372
+ **`card-feature-light`** — feature card on white.
373
+ - Background `{colors.canvas}`, padding `{spacing.xxl}`, rounded `{rounded.lg}` 12px, 1px `{colors.hairline}` border.
374
+
375
+ **`card-pricing`** — standard pricing tier.
376
+ - Background `{colors.canvas}`, padding `{spacing.xxl}`, rounded `{rounded.lg}`, 1px `{colors.hairline}` border. Title in `{typography.heading-lg}`, price in `{typography.display-md}`, body in `{typography.body-md}`, CTA `button-primary-green` pinned bottom.
377
+
378
+ **`card-pricing-featured`** — inverted dark featured tier.
379
+ - Background `{colors.canvas-night}`, text `{colors.on-dark}`, otherwise identical structure.
380
+
381
+ **`card-feature-dark`** — feature card with deep dark fill.
382
+ - Background `{colors.canvas-night}`, text `{colors.on-dark}`, padding `{spacing.xxl}`, rounded `{rounded.lg}`. Used for code-heavy feature explanations.
383
+
384
+ **`code-block`** — code snippet container.
385
+ - Background `{colors.canvas-night}`, text `{colors.on-dark}` rendered in `{typography.code}`. Padding `{spacing.lg}` 16px, rounded `{rounded.sm}` 6px.
386
+
387
+ ### Inputs & Forms
388
+
389
+ **`text-input`** — standard form input.
390
+ - Background `{colors.canvas}`, text `{colors.ink}`, type `{typography.body-md}`, padding `{spacing.sm} {spacing.md}` (8px 12px), rounded `{rounded.sm}` 6px, 1px `{colors.hairline}` border.
391
+
392
+ ### Navigation
393
+
394
+ **`nav-bar-light`** — top nav across the site.
395
+ - Background `{colors.canvas}`, text `{colors.ink}`, padding `{spacing.lg} {spacing.xl}`. Logo on the left, primary nav center, "Sign In" link + filled `button-primary-green` on the right.
396
+
397
+ ### Pills, Tags, and Chips
398
+
399
+ **`pill-tag-green`** — small green pill used for "new" or featured indicators.
400
+ - Background `{colors.primary}`, text `{colors.on-primary}`, type `{typography.micro}`, padding `{spacing.xxs} {spacing.sm}`, rounded `{rounded.full}`.
401
+
402
+ **`pill-tag-soft`** — neutral pill on light surfaces.
403
+ - Background `{colors.canvas-soft}`, text `{colors.ink}`, otherwise same shape.
404
+
405
+ ### Signature Components
406
+
407
+ **Composited Product UI Mockups** — multi-layer dashboard / SQL editor / log pane composites with subtle Level 2 shadows. The product is the brand's argument; mockups always sit on white canvas with no surrounding decoration.
408
+
409
+ **`link-on-light`** — inline links in body copy.
410
+ - Text `{colors.ink}` rendered in `{typography.body-md}` with a persistent underline.
411
+
412
+ **`footer-light`** — site-wide footer.
413
+ - Background `{colors.canvas}`, text `{colors.ink-mute}`, type `{typography.caption}`, padding `{spacing.huge} {spacing.xl}` (64px 24px). Holds 4–5 columns of link groups, social icons, and a small legal row.
414
+
415
+ ## Do's and Don'ts
416
+
417
+ ### Do
418
+ - Reserve `{colors.primary}` emerald for filled CTAs and the wordmark accent — it should appear sparingly.
419
+ - Render display tiers at weight 500 with negative letter-spacing — the engineered tightness is part of the brand.
420
+ - Use `{rounded.sm}` 6px for buttons — square-ish radii, never pill-shaped.
421
+ - Composite product UI mockups inside `{rounded.lg}` containers with subtle Level 2 shadows.
422
+ - Use near-black `{colors.ink}` on the emerald button (not white) — the green reads as "lit" with dark type, which is the brand's idiosyncratic choice.
423
+ - Apply system mono for every code block.
424
+
425
+ ### Don't
426
+ - Don't introduce additional accent colors as system colors — purples, yellows, and pinks belong inside chart points and integration logos only.
427
+ - Don't bump display weight above 500 — the brand's calibrated mid-weight breaks at 600+.
428
+ - Don't use pill-shaped buttons; the brand's button radius is square-ish 6px.
429
+ - Don't use white text on the emerald button — the brand specifically uses near-black on green.
430
+ - Don't add atmospheric gradients to hero bands — the white canvas is the design.
431
+
432
+ ## Responsive Behavior
433
+
434
+ ### Breakpoints
435
+
436
+ | Name | Width | Key Changes |
437
+ |---|---|---|
438
+ | Wide | ≥ 1440px | Full container width; product mockups at full scale |
439
+ | Desktop | 1024–1440px | Default content max-width; pricing 4-up |
440
+ | Tablet | 768–1023px | Pricing 2-up; mockups simplify to single panel |
441
+ | Mobile | < 768px | Pricing 1-up; hamburger nav; display drops 64 → 36px |
442
+
443
+ ### Touch Targets
444
+ - Buttons hit ≥ 36×36px on mobile; vertical padding scales up to maintain WCAG AA minimum.
445
+ - Form fields stay at 36px minimum height.
446
+
447
+ ### Collapsing Strategy
448
+ - Display tiers stair-step 64 → 48 → 36 → 28 → 22px.
449
+ - Product UI mockups simplify to a single primary panel on mobile.
450
+ - Pricing tiers stair-step 4-up → 2-up → 1-up; dark featured tier always distinguished.
451
+
452
+ ### Image Behavior
453
+ Product UI mockups use `srcset` with desktop / mobile crops; mobile crops focus on the most actionable inner panel.
454
+
455
+ ## Iteration Guide
456
+
457
+ 1. Focus on ONE component at a time.
458
+ 2. Reference component names and tokens directly.
459
+ 3. Run `npx @google/design.md lint DESIGN.md` after edits.
460
+ 4. Default body to `{typography.body-md}`; use `{typography.code}` for any developer-facing snippet.
461
+ 5. Keep emerald scarce; one filled green button per viewport.
462
+ 6. The white-canvas commitment is non-negotiable — adding atmospheric backdrops breaks the brand.
@@ -0,0 +1,5 @@
1
+ # Supabase Inspired Design System
2
+
3
+ Design system details have been moved to: https://getdesign.md/supabase/design-md
4
+
5
+ You can also view previews, dark mode examples, and download options on getdesign.md.