oh-my-design-cli 1.8.7 → 1.9.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 (247) hide show
  1. package/.claude/hooks/lib/preferences-parser.cjs +1 -0
  2. package/.claude/hooks/lib/preferences-writer.cjs +1 -0
  3. package/.claude/hooks/post-edit-watch.cjs +1 -0
  4. package/.claude/hooks/session-end-foldin.cjs +1 -0
  5. package/.claude/hooks/session-state-loader.cjs +1 -0
  6. package/.claude/hooks/skill-activation.cjs +1 -0
  7. package/.claude/settings.json +10 -1
  8. package/.github/assets/logo-bg.png +0 -0
  9. package/AGENTS.md +20 -1
  10. package/CHANGELOG.md +482 -0
  11. package/MIGRATION.md +103 -0
  12. package/README.ja.md +56 -19
  13. package/README.ko.md +47 -30
  14. package/README.md +48 -30
  15. package/README.zh-TW.md +59 -22
  16. package/agents/AGENT.md +8 -7
  17. package/agents/omd-codex-image.md +1 -1
  18. package/agents/omd-critic.md +6 -7
  19. package/agents/omd-designer-review.md +1 -1
  20. package/agents/omd-final-qa.md +1 -1
  21. package/agents/omd-humanizer.md +38 -0
  22. package/agents/omd-kr-writer.md +3 -4
  23. package/agents/omd-locale-adapter.md +12 -16
  24. package/agents/omd-master.md +24 -19
  25. package/agents/omd-microcopy.md +1 -1
  26. package/agents/omd-orchestrator.md +7 -8
  27. package/agents/omd-slop-auditor.md +31 -0
  28. package/agents/omd-ux-researcher.md +1 -1
  29. package/data/reference-fingerprints.json +1995 -38
  30. package/dist/bin/oh-my-design.js +16 -8
  31. package/dist/bin/oh-my-design.js.map +1 -1
  32. package/dist/chunk-UJIHCEYF.js +99 -0
  33. package/dist/chunk-UJIHCEYF.js.map +1 -0
  34. package/dist/doctor-LDWSFM3I.js +763 -0
  35. package/dist/doctor-LDWSFM3I.js.map +1 -0
  36. package/dist/install-skills-ZZFNJ2II.js +1120 -0
  37. package/dist/install-skills-ZZFNJ2II.js.map +1 -0
  38. package/docs/CLI_QUICKSTART.md +157 -0
  39. package/package.json +25 -4
  40. package/scripts/postinstall.cjs +5 -4
  41. package/skills/claude-design/SKILL.md +38 -14
  42. package/skills/claude-design/references/claude-design-flow.md +11 -11
  43. package/skills/claude-design/references/codebase-analysis.md +5 -4
  44. package/skills/omd-final-qa/SKILL.md +1 -1
  45. package/skills/omd-harness/SKILL.md +51 -50
  46. package/skills/omd-humanize/SKILL.md +116 -0
  47. package/skills/omd-humanize/agents/openai.yaml +4 -0
  48. package/skills/omd-humanize/references/locale-playbooks.md +102 -0
  49. package/skills/omd-humanize/references/sources.md +11 -0
  50. package/skills/omd-init/SKILL.md +18 -12
  51. package/skills/omd-locale-adapter/SKILL.md +58 -91
  52. package/skills/omd-orchestrator/SKILL.md +11 -5
  53. package/skills/omd-reference-capture/SKILL.md +80 -26
  54. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-LICENSE.txt +202 -0
  55. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-NOTICE.txt +5 -0
  56. package/skills/omd-reference-capture/scripts/THIRD_PARTY_NOTICES.md +3 -0
  57. package/skills/omd-reference-capture/scripts/capture-reference-evidence.mjs +159906 -0
  58. package/skills/omd-slop-audit/SKILL.md +110 -0
  59. package/skills/omd-slop-audit/agents/openai.yaml +4 -0
  60. package/skills/omd-slop-audit/references/pattern-catalog.md +96 -0
  61. package/skills/omd-slop-audit/references/sources.md +24 -0
  62. package/web/references/104/DESIGN.md +354 -0
  63. package/web/references/11st/DESIGN.md +197 -316
  64. package/web/references/29cm/DESIGN.md +297 -393
  65. package/web/references/42dot/DESIGN.md +390 -0
  66. package/web/references/8percent/DESIGN.md +438 -0
  67. package/web/references/ably/DESIGN.md +267 -572
  68. package/web/references/acer/DESIGN.md +329 -0
  69. package/web/references/airbnb/DESIGN.md +219 -557
  70. package/web/references/alipay/DESIGN.md +179 -420
  71. package/web/references/apple/DESIGN.md +224 -498
  72. package/web/references/asleep/DESIGN.md +402 -0
  73. package/web/references/au/DESIGN.md +334 -0
  74. package/web/references/autopedia/DESIGN.md +382 -0
  75. package/web/references/aws-cloudscape/DESIGN.md +241 -0
  76. package/web/references/baemin/DESIGN.md +332 -491
  77. package/web/references/banksalad/DESIGN.md +269 -180
  78. package/web/references/barogo/DESIGN.md +416 -0
  79. package/web/references/beusable/DESIGN.md +464 -0
  80. package/web/references/bilibili/DESIGN.md +206 -374
  81. package/web/references/bmw/DESIGN.md +162 -276
  82. package/web/references/brandi/DESIGN.md +184 -325
  83. package/web/references/catchtable/DESIGN.md +219 -264
  84. package/web/references/cgv/DESIGN.md +317 -0
  85. package/web/references/channeltalk/DESIGN.md +210 -336
  86. package/web/references/china-airlines/DESIGN.md +291 -0
  87. package/web/references/cjonstyle/DESIGN.md +453 -0
  88. package/web/references/class101/DESIGN.md +168 -387
  89. package/web/references/classum/DESIGN.md +228 -203
  90. package/web/references/claude/DESIGN.md +242 -479
  91. package/web/references/clay/DESIGN.md +179 -377
  92. package/web/references/clickhouse/DESIGN.md +254 -343
  93. package/web/references/cohere/DESIGN.md +214 -324
  94. package/web/references/coinone/DESIGN.md +199 -179
  95. package/web/references/corca/DESIGN.md +414 -0
  96. package/web/references/coupang/DESIGN.md +205 -475
  97. package/web/references/cursor/DESIGN.md +240 -381
  98. package/web/references/dabang/DESIGN.md +248 -213
  99. package/web/references/dable/DESIGN.md +431 -0
  100. package/web/references/datarize/DESIGN.md +217 -330
  101. package/web/references/dealicious/DESIGN.md +402 -0
  102. package/web/references/drdiary/DESIGN.md +404 -0
  103. package/web/references/elastic/DESIGN.md +238 -0
  104. package/web/references/elevenlabs/DESIGN.md +183 -321
  105. package/web/references/eslite/DESIGN.md +257 -0
  106. package/web/references/evaair/DESIGN.md +338 -0
  107. package/web/references/expo/DESIGN.md +238 -331
  108. package/web/references/familymart-tw/DESIGN.md +254 -0
  109. package/web/references/ferrari/DESIGN.md +160 -377
  110. package/web/references/figma/DESIGN.md +197 -451
  111. package/web/references/fitpet/DESIGN.md +445 -0
  112. package/web/references/flex/DESIGN.md +170 -253
  113. package/web/references/framer/DESIGN.md +197 -340
  114. package/web/references/freee/DESIGN.md +211 -533
  115. package/web/references/friendliai/DESIGN.md +431 -0
  116. package/web/references/frip/DESIGN.md +440 -0
  117. package/web/references/gangnamunni/DESIGN.md +154 -591
  118. package/web/references/gaudiolab/DESIGN.md +414 -0
  119. package/web/references/google/DESIGN.md +290 -398
  120. package/web/references/hashicorp/DESIGN.md +273 -318
  121. package/web/references/heydealer/DESIGN.md +429 -0
  122. package/web/references/humanscape/DESIGN.md +433 -0
  123. package/web/references/hyundai/DESIGN.md +158 -368
  124. package/web/references/hyundaicard/DESIGN.md +171 -121
  125. package/web/references/ibm/DESIGN.md +227 -378
  126. package/web/references/idus/DESIGN.md +450 -0
  127. package/web/references/igaworks/DESIGN.md +437 -0
  128. package/web/references/inflearn/DESIGN.md +221 -366
  129. package/web/references/intuit/DESIGN.md +244 -0
  130. package/web/references/jandi/DESIGN.md +191 -291
  131. package/web/references/jobplanet/DESIGN.md +415 -0
  132. package/web/references/kakao/DESIGN.md +287 -475
  133. package/web/references/kakaobank/DESIGN.md +220 -521
  134. package/web/references/kakaogames/DESIGN.md +220 -0
  135. package/web/references/kakaopay/DESIGN.md +207 -526
  136. package/web/references/karrot/DESIGN.md +227 -251
  137. package/web/references/kb-kookmin/DESIGN.md +308 -0
  138. package/web/references/kbank/DESIGN.md +220 -175
  139. package/web/references/kmong/DESIGN.md +281 -356
  140. package/web/references/krds/DESIGN.md +245 -19
  141. package/web/references/kream/DESIGN.md +224 -359
  142. package/web/references/kurly/DESIGN.md +211 -533
  143. package/web/references/lamborghini/DESIGN.md +198 -360
  144. package/web/references/lguplus/DESIGN.md +259 -0
  145. package/web/references/likelion/DESIGN.md +283 -0
  146. package/web/references/line/DESIGN.md +396 -355
  147. package/web/references/linear.app/DESIGN.md +209 -562
  148. package/web/references/lotteon/DESIGN.md +386 -0
  149. package/web/references/lovable/DESIGN.md +255 -349
  150. package/web/references/makinarocks/DESIGN.md +149 -349
  151. package/web/references/maum-ai/DESIGN.md +423 -0
  152. package/web/references/medibloc/DESIGN.md +425 -0
  153. package/web/references/megabox/DESIGN.md +232 -0
  154. package/web/references/mercari/DESIGN.md +217 -434
  155. package/web/references/microsoft/DESIGN.md +234 -388
  156. package/web/references/mildang/DESIGN.md +411 -0
  157. package/web/references/millie/DESIGN.md +183 -504
  158. package/web/references/minimax/DESIGN.md +264 -322
  159. package/web/references/miricanvas/DESIGN.md +182 -355
  160. package/web/references/miro/DESIGN.md +234 -232
  161. package/web/references/mistral.ai/DESIGN.md +231 -314
  162. package/web/references/mixi/DESIGN.md +234 -0
  163. package/web/references/moin/DESIGN.md +445 -0
  164. package/web/references/mongodb/DESIGN.md +219 -316
  165. package/web/references/musinsa/DESIGN.md +184 -510
  166. package/web/references/mynavi/DESIGN.md +242 -0
  167. package/web/references/myrealtrip/DESIGN.md +169 -406
  168. package/web/references/naver/DESIGN.md +328 -499
  169. package/web/references/naverwebtoon/DESIGN.md +172 -395
  170. package/web/references/nhn/DESIGN.md +169 -346
  171. package/web/references/nhncloud/DESIGN.md +185 -123
  172. package/web/references/notion/DESIGN.md +271 -475
  173. package/web/references/nrise/DESIGN.md +417 -0
  174. package/web/references/ohouse/DESIGN.md +210 -549
  175. package/web/references/oliveyoung/DESIGN.md +217 -326
  176. package/web/references/ollama/DESIGN.md +241 -308
  177. package/web/references/onestore/DESIGN.md +248 -0
  178. package/web/references/palantir/DESIGN.md +256 -0
  179. package/web/references/panasonic/DESIGN.md +276 -0
  180. package/web/references/patternfly/DESIGN.md +259 -0
  181. package/web/references/payhere/DESIGN.md +438 -0
  182. package/web/references/pega/DESIGN.md +262 -0
  183. package/web/references/peoplefund/DESIGN.md +431 -0
  184. package/web/references/petfriends/DESIGN.md +428 -0
  185. package/web/references/pinkfong/DESIGN.md +199 -367
  186. package/web/references/pinterest/DESIGN.md +258 -308
  187. package/web/references/poya/DESIGN.md +286 -0
  188. package/web/references/pozalabs/DESIGN.md +438 -0
  189. package/web/references/protopie/DESIGN.md +419 -0
  190. package/web/references/qraft/DESIGN.md +448 -0
  191. package/web/references/quotabook/DESIGN.md +449 -0
  192. package/web/references/recruit/DESIGN.md +247 -0
  193. package/web/references/remember/DESIGN.md +202 -396
  194. package/web/references/resend/DESIGN.md +274 -348
  195. package/web/references/sakura-internet/DESIGN.md +269 -0
  196. package/web/references/samsung/DESIGN.md +157 -359
  197. package/web/references/sandoll/DESIGN.md +445 -0
  198. package/web/references/sanity/DESIGN.md +241 -375
  199. package/web/references/scatterlab/DESIGN.md +412 -0
  200. package/web/references/selectstar/DESIGN.md +439 -0
  201. package/web/references/servicenow/DESIGN.md +289 -0
  202. package/web/references/shinhanbank/DESIGN.md +161 -341
  203. package/web/references/shinhancard/DESIGN.md +208 -319
  204. package/web/references/sionic/DESIGN.md +454 -0
  205. package/web/references/sktelecom/DESIGN.md +310 -0
  206. package/web/references/socar/DESIGN.md +125 -32
  207. package/web/references/softbank/DESIGN.md +231 -0
  208. package/web/references/sony/DESIGN.md +234 -0
  209. package/web/references/soop/DESIGN.md +261 -0
  210. package/web/references/spacex/DESIGN.md +184 -323
  211. package/web/references/spotify/DESIGN.md +253 -394
  212. package/web/references/squeezebits/DESIGN.md +441 -0
  213. package/web/references/stayfolio/DESIGN.md +422 -0
  214. package/web/references/stripe/DESIGN.md +212 -491
  215. package/web/references/supabase/DESIGN.md +244 -316
  216. package/web/references/tabling/DESIGN.md +415 -0
  217. package/web/references/taishinbank/DESIGN.md +243 -0
  218. package/web/references/teamlab/DESIGN.md +240 -0
  219. package/web/references/teamsparta/DESIGN.md +472 -0
  220. package/web/references/tellingme/DESIGN.md +392 -0
  221. package/web/references/tesla/DESIGN.md +244 -427
  222. package/web/references/thsr/DESIGN.md +284 -0
  223. package/web/references/thumbtack/DESIGN.md +302 -0
  224. package/web/references/together.ai/DESIGN.md +257 -304
  225. package/web/references/toss/DESIGN.md +251 -593
  226. package/web/references/toss-securities/DESIGN.md +255 -178
  227. package/web/references/tossbank/DESIGN.md +195 -491
  228. package/web/references/toyota/DESIGN.md +238 -0
  229. package/web/references/tving/DESIGN.md +197 -245
  230. package/web/references/typed/DESIGN.md +413 -0
  231. package/web/references/uber/DESIGN.md +256 -333
  232. package/web/references/udn/DESIGN.md +250 -0
  233. package/web/references/upbit/DESIGN.md +145 -256
  234. package/web/references/upstage/DESIGN.md +211 -204
  235. package/web/references/uswds/DESIGN.md +287 -0
  236. package/web/references/vercel/DESIGN.md +236 -440
  237. package/web/references/wanted/DESIGN.md +215 -487
  238. package/web/references/wise/DESIGN.md +223 -231
  239. package/web/references/wisetracker/DESIGN.md +462 -0
  240. package/web/references/wooribank/DESIGN.md +245 -0
  241. package/web/references/yanolja/DESIGN.md +250 -419
  242. package/web/references/yeogiotte/DESIGN.md +235 -418
  243. package/web/references/zapier/DESIGN.md +256 -377
  244. package/web/references/zendesk/DESIGN.md +288 -0
  245. package/web/references/zigzag/DESIGN.md +200 -621
  246. package/dist/install-skills-7UUDOLG2.js +0 -734
  247. package/dist/install-skills-7UUDOLG2.js.map +0 -1
@@ -4,386 +4,314 @@ name: Supabase
4
4
  country: US
5
5
  category: backend-devops
6
6
  homepage: "https://supabase.com"
7
- primary_color: "#3ecf8e"
7
+ primary_color: "#72e3ad"
8
8
  logo:
9
9
  type: simpleicons
10
10
  slug: supabase
11
- verified: "2026-05-15"
11
+ verified: "2026-07-13"
12
12
  omd: "0.1"
13
13
  ds:
14
14
  name: Supabase Brand Assets
15
15
  url: "https://supabase.com/brand-assets"
16
16
  type: brand
17
- description: Supabase's brand guidelines with logos and integration button specs.
17
+ description: Official logo and integration-button assets with trademark-use boundaries.
18
18
  og_image: "https://supabase.com/images/og/supabase-og.png"
19
+ verification_v2:
20
+ schema: 2
21
+ checked: "2026-07-13"
22
+ surfaces:
23
+ - { id: home, kind: marketing, url: "https://supabase.com/", inspected: "2026-07-13" }
24
+ - { id: features, kind: marketing, url: "https://supabase.com/features", inspected: "2026-07-13" }
25
+ - { id: pricing, kind: public-pricing, url: "https://supabase.com/pricing", inspected: "2026-07-13" }
26
+ sources:
27
+ - { id: home-live, kind: product-surface, url: "https://supabase.com/", captured: "2026-07-13" }
28
+ - { id: features-live, kind: product-surface, url: "https://supabase.com/features", captured: "2026-07-13" }
29
+ - { id: pricing-live, kind: product-surface, url: "https://supabase.com/pricing", captured: "2026-07-13" }
30
+ - { id: brand-assets, kind: brand-asset, url: "https://supabase.com/brand-assets", captured: "2026-07-13" }
31
+ - { id: architecture, kind: official-doc, url: "https://supabase.com/docs/guides/getting-started/architecture", captured: "2026-07-13" }
32
+ - { id: community, kind: official-doc, url: "https://supabase.com/contribute/about", captured: "2026-07-13" }
33
+ - { id: inter-license, kind: license, url: "https://github.com/rsms/inter", captured: "2026-07-13" }
34
+ - { id: manrope-license, kind: license, url: "https://github.com/davelab6/manrope", captured: "2026-07-13" }
35
+ - { id: source-code-license, kind: license, url: "https://github.com/adobe-fonts/source-code-pro", captured: "2026-07-13" }
36
+ conflicts: []
37
+ claims:
38
+ "tokens.colors.primary": &home { surface_id: home, source_id: home-live, method: computed-style, captured: "2026-07-13" }
39
+ "tokens.typography.family.ui": *home
40
+ "tokens.typography.family.display": *home
41
+ "tokens.typography.family.mono": *home
42
+ "tokens.typography.display.size": *home
43
+ "tokens.typography.display.weight": *home
44
+ "tokens.typography.display.lineHeight": *home
45
+ "tokens.typography.display.use": *home
46
+ "tokens.typography.body.size": *home
47
+ "tokens.typography.body.weight": *home
48
+ "tokens.typography.body.lineHeight": *home
49
+ "tokens.typography.body.use": *home
50
+ "tokens.typography.control.size": *home
51
+ "tokens.typography.control.weight": *home
52
+ "tokens.typography.control.lineHeight": *home
53
+ "tokens.typography.control.use": *home
54
+ "tokens.spacing.xs": *home
55
+ "tokens.spacing.sm": *home
56
+ "tokens.spacing.md": *home
57
+ "tokens.spacing.control": *home
58
+ "tokens.spacing.lg": *home
59
+ "tokens.spacing.xl": *home
60
+ "tokens.rounded.focus": *home
61
+ "tokens.rounded.control": *home
62
+ "tokens.rounded.overlay": *home
63
+ "tokens.components.green-form-submit.type": *home
64
+ "tokens.components.green-form-submit.bg": *home
65
+ "tokens.components.green-form-submit.fg": *home
66
+ "tokens.components.green-form-submit.border": *home
67
+ "tokens.components.green-form-submit.radius": *home
68
+ "tokens.components.green-form-submit.padding": *home
69
+ "tokens.components.green-form-submit.font": *home
70
+ "tokens.components.green-form-submit.states": *home
71
+ "tokens.components.green-form-submit.use": *home
72
+ "tokens.components.dark-compact-action.type": &pricing { surface_id: pricing, source_id: pricing-live, method: computed-style, captured: "2026-07-13" }
73
+ "tokens.components.dark-compact-action.bg": *pricing
74
+ "tokens.components.dark-compact-action.fg": *pricing
75
+ "tokens.components.dark-compact-action.border": *pricing
76
+ "tokens.components.dark-compact-action.radius": *pricing
77
+ "tokens.components.dark-compact-action.padding": *pricing
78
+ "tokens.components.dark-compact-action.font": *pricing
79
+ "tokens.components.dark-compact-action.states": *pricing
80
+ "tokens.components.dark-compact-action.use": *pricing
81
+ "tokens.components.selected-pill-tab.type": *home
82
+ "tokens.components.selected-pill-tab.bg": *home
83
+ "tokens.components.selected-pill-tab.fg": *home
84
+ "tokens.components.selected-pill-tab.border": *home
85
+ "tokens.components.selected-pill-tab.radius": *home
86
+ "tokens.components.selected-pill-tab.padding": *home
87
+ "tokens.components.selected-pill-tab.font": *home
88
+ "tokens.components.selected-pill-tab.states": *home
89
+ "tokens.components.selected-pill-tab.use": *home
90
+ "tokens.components.public-input.type": *home
91
+ "tokens.components.public-input.bg": *home
92
+ "tokens.components.public-input.fg": *home
93
+ "tokens.components.public-input.border": *home
94
+ "tokens.components.public-input.radius": *home
95
+ "tokens.components.public-input.padding": *home
96
+ "tokens.components.public-input.font": *home
97
+ "tokens.components.public-input.states": *home
98
+ "tokens.components.public-input.use": *home
99
+ "tokens.components.public-dialog.type": *home
100
+ "tokens.components.public-dialog.bg": *home
101
+ "tokens.components.public-dialog.fg": *home
102
+ "tokens.components.public-dialog.border": *home
103
+ "tokens.components.public-dialog.radius": *home
104
+ "tokens.components.public-dialog.states": *home
105
+ "tokens.components.public-dialog.use": *home
19
106
  tokens:
20
- source: prose-derived
21
- extracted: "2026-06-09"
107
+ source: reconciled
108
+ extracted: "2026-07-13"
109
+ note: "Selector-backed observations from Supabase public marketing, features, and pricing routes only. No authenticated dashboard or documentation-chrome token is inferred."
22
110
  colors:
23
- primary: "#3ecf8e"
24
- green-link: "#00c573"
25
- near-black: "#0f0f0f"
26
- canvas: "#171717"
27
- border-dark: "#242424"
28
- border: "#2e2e2e"
29
- border-mid: "#363636"
30
- border-light: "#393939"
31
- charcoal: "#434343"
32
- dark-gray: "#4d4d4d"
33
- mid-gray: "#898989"
34
- light-gray: "#b4b4b4"
35
- near-white: "#efefef"
36
- off-white: "#fafafa"
111
+ primary: "#72e3ad"
37
112
  typography:
38
- family: { sans: "Circular", mono: "Source Code Pro" }
39
- display-hero: { size: 72, weight: 400, lineHeight: 1.00, use: "Maximum density, zero waste" }
40
- section: { size: 36, weight: 400, lineHeight: 1.25, use: "Feature section titles" }
41
- card-title: { size: 24, weight: 400, lineHeight: 1.33, tracking: -0.16, use: "Slight negative tracking" }
42
- subheading: { size: 18, weight: 400, lineHeight: 1.56, use: "Secondary headings" }
43
- body: { size: 16, weight: 400, lineHeight: 1.50, use: "Standard body text" }
44
- nav-link: { size: 14, weight: 500, lineHeight: 1.43, use: "Navigation items" }
45
- button: { size: 14, weight: 500, lineHeight: 1.14, use: "Button labels" }
46
- caption: { size: 14, weight: 400, lineHeight: 1.43, use: "Metadata, tags" }
47
- small: { size: 12, weight: 400, lineHeight: 1.33, use: "Fine print, footer links" }
48
- code-label: { size: 12, weight: 400, lineHeight: 1.33, tracking: 1.2, use: "Uppercase technical labels (Source Code Pro)" }
49
- spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32, xxl: 48, section: 96 }
50
- rounded: { sm: 6, md: 8, lg: 16, full: 9999 }
51
- shadow:
52
- focus: "rgba(0,0,0,0.1) 0px 4px 12px"
113
+ family: { ui: "Inter", display: "Manrope", mono: "Source Code Pro" }
114
+ display: { size: 46, weight: 500, lineHeight: 1.00, use: "Home h1 only; not a complete display scale" }
115
+ body: { size: 16, weight: 450, lineHeight: 1.50, use: "Repeated public-route Inter text and list items" }
116
+ control: { size: 14, weight: 500, lineHeight: 1.14, use: "Observed public navigation/control sample" }
117
+ spacing: { xs: 4, sm: 8, md: 12, control: 16, lg: 24, xl: 32 }
118
+ rounded: { focus: 2, control: 6, overlay: 8 }
53
119
  components:
54
- button-primary: { type: button, bg: "#0f0f0f", fg: "#fafafa", radius: 9999, padding: "8px 32px", font: "14px/500 Circular", use: "Primary CTA, 1px #fafafa border" }
55
- button-secondary: { type: button, bg: "#0f0f0f", fg: "#fafafa", radius: 9999, padding: "8px 32px", font: "14px/500 Circular", use: "Secondary CTA, 1px #2e2e2e border, opacity 0.8" }
56
- button-ghost: { type: button, fg: "#fafafa", radius: 6, padding: "8px", font: "14px/500 Circular", use: "Tertiary actions, icon buttons" }
57
- card-standard: { type: card, bg: "#171717", radius: 16, padding: "24px", use: "Feature card, 1px #2e2e2e border, no shadow" }
58
- tab-pill: { type: tab, radius: 9999, font: "14px/500 Circular", active: "Active green accent or lighter surface", use: "Pill tabs, 1px #2e2e2e border" }
120
+ green-form-submit: { type: button, bg: "#72e3ad", fg: "oklch(0.1 0 34)", border: "1px solid oklab(0.685565 -0.144466 0.057858 / 0.75)", radius: "6px", padding: "4px 10px", font: "12px / 450 / Inter", states: "dialog-open capture context", use: "home::[data-omd-capture=\"75\"] public form submit" }
121
+ dark-compact-action: { type: button, bg: "oklch(0.1 0 34)", fg: "oklch(0.995 0 34)", border: "1px solid oklch(0.394455 0 34)", radius: "6px", padding: "4px 10px", font: "12px / 450 / Inter", states: "focus, hover, and pressed computed snapshots", use: "pricing::[data-omd-capture=\"17\"] compact public action" }
122
+ selected-pill-tab: { type: tab, bg: "oklch(0.995 0 34)", fg: "oklch(0.1 0 34)", border: "1px solid oklch(0.1 0 34)", radius: "3.35544e+07px", padding: "8px 32px", font: "14px / 450 / Inter", states: "selected and tab-selected", use: "home::[data-omd-capture=\"19\"] selected public tab" }
123
+ public-input: { type: input, bg: "oklab(0.1 0 0 / 0.026)", fg: "oklch(0.1 0 34)", border: "1px solid oklch(0.1 0 34 / 0.146418)", radius: "6px", padding: "8px", font: "14px / 450 / Inter", states: "error capture; no changed error color is asserted", use: "home::[data-omd-capture=\"74\"] public email input" }
124
+ public-dialog: { type: dialog, bg: "oklch(0.995 0 34)", fg: "oklch(0.1 0 34)", border: "1px solid oklch(0.1 0 34 / 0.0812725)", radius: "8px", states: "dialog-open", use: "home::[data-omd-interaction-capture=\"dialog-1-0\"] public dialog" }
59
125
  components_harvested: true
60
126
  ---
61
127
 
62
- # Design System Inspiration of Supabase
128
+ # Supabase Design Reference
63
129
 
64
130
  ## 1. Visual Theme & Atmosphere
65
131
 
66
- Supabase's website is a dark-mode-native developer platform that channels the aesthetic of a premium code editor deep black backgrounds (`#0f0f0f`, `#171717`) with emerald green accents (`#3ecf8e`, `#00c573`) that reference the brand's open-source, PostgreSQL-green identity. The design system feels like it was born in a terminal window and evolved into a sophisticated marketing surface without losing its developer soul.
132
+ Supabase is an open-source Postgres development platform: its architecture documentation places a full Postgres database at the center of a project, with Auth, Storage, Realtime, Functions, and other services around it. The current public site communicates that developer platform with a bright, low-chrome interface rather than the older dark-terminal treatment in this reference. Across the captured home, features, and pricing routes, a mint `#72e3ad` action fill punctuates white and near-white surfaces; Inter supplies repeated UI text, Manrope carries the larger marketing hierarchy, and Source Code Pro appears sparingly in live public content. The result is technical but open rather than ornamental—small radii, direct controls, and lightweight overlays support dense product information without standing in for the authenticated dashboard.
67
133
 
68
- The typography is built on "Circular" a geometric sans-serif with rounded terminals that softens the technical edge. At 72px with a 1.00 line-height, the hero text is compressed to its absolute minimum vertical space, creating dense, impactful statements that waste nothing. The monospace companion (Source Code Pro) appears sparingly for uppercase technical labels with 1.2px letter-spacing, creating the "developer console" markers that connect the marketing site to the product experience.
134
+ The official brand-assets page separately governs logo and integration-button use: official logos are supplied in light and dark treatments, and Supabase says its trademarks and other brand elements must represent Supabase. This reference therefore keeps that identity guidance separate from the computed public-route values. It also keeps public marketing, public pricing, authenticated product UI, documentation chrome, and declared-only font assets as different evidence domains.
69
135
 
70
- What makes Supabase distinctive is its sophisticated HSL-based color token system. Rather than flat hex values, Supabase uses HSL with alpha channels for nearly every color (`--colors-crimson4`, `--colors-purple5`, `--colors-slateA12`), enabling a nuanced layering system where colors interact through transparency. This creates depth through translucency — borders at `rgba(46, 46, 46)`, surfaces at `rgba(41, 41, 41, 0.84)`, and accents at partial opacity all blend with the dark background to create a rich, dimensional palette from minimal color ingredients.
136
+ - **Mint action signal:** `#72e3ad` is the repeated observed public background color, not a blanket status or product-surface palette.
137
+ - **Light public chrome:** the captured menu and dialog surfaces compute to near-white Oklch values with thin neutral rules.
138
+ - **Compact geometry:** 4px, 8px, 12px, 16px, 24px, and 32px are recurring public-route measurements; the packet does not publish them as an official scale.
71
139
 
72
- The green accent (`#3ecf8e`) appears selectively — in the Supabase logo, in link colors (`#00c573`), and in border highlights (`rgba(62, 207, 142, 0.3)`) always as a signal of "this is Supabase" rather than as a decorative element. Pill-shaped buttons (9999px radius) for primary CTAs contrast with standard 6px radius for secondary elements, creating a clear visual hierarchy of importance.
140
+ ## 2. Color Palette & Roles
73
141
 
74
- **Key Characteristics:**
75
- - Dark-mode-native: near-black backgrounds (`#0f0f0f`, `#171717`) — never pure black
76
- - Emerald green brand accent (`#3ecf8e`, `#00c573`) used sparingly as identity marker
77
- - Circular font — geometric sans-serif with rounded terminals
78
- - Source Code Pro for uppercase technical labels (1.2px letter-spacing)
79
- - HSL-based color token system with alpha channels for translucent layering
80
- - Pill buttons (9999px) for primary CTAs, 6px radius for secondary
81
- - Neutral gray scale from `#171717` through `#898989` to `#fafafa`
82
- - Border system using dark grays (`#2e2e2e`, `#363636`, `#393939`)
83
- - Minimal shadows — depth through border contrast and transparency
84
- - Radix color primitives (crimson, purple, violet, indigo, yellow, tomato, orange, slate)
142
+ ### Selector-backed public roles
85
143
 
86
- ## 2. Color Palette & Roles
144
+ - **Mint action** (`#72e3ad`): high-confidence public background color across all three captured routes; exact submit sample at `home::[data-omd-capture="75"]`.
145
+ - **Compact dark action** (`oklch(0.1 0 34)`): pricing compact-action background at `pricing::[data-omd-capture="17"]`.
146
+ - **Near-white public surfaces** (`oklch(1 0 34)` and `oklch(0.995 0 34)`): observed menu, selected-tab, and dialog backgrounds. They remain raw computed values because the packet does not provide a matching official hex scale.
147
+ - **Public foreground** (`oklch(0.1 0 34)`): observed button, input, tab, and dialog text; it is not presented as a dashboard token.
87
148
 
88
- ### Brand
89
- - **Supabase Green** (`#3ecf8e`): Primary brand color, logo, accent borders
90
- - **Green Link** (`#00c573`): Interactive green for links and actions
91
- - **Green Border** (`rgba(62, 207, 142, 0.3)`): Subtle green border accent
92
-
93
- ### Neutral Scale (Dark Mode)
94
- - **Near Black** (`#0f0f0f`): Primary button background, deepest surface
95
- - **Dark** (`#171717`): Page background, primary canvas
96
- - **Dark Border** (`#242424`): Horizontal rule, section dividers
97
- - **Border Dark** (`#2e2e2e`): Card borders, tab borders
98
- - **Mid Border** (`#363636`): Button borders, dividers
99
- - **Border Light** (`#393939`): Secondary borders
100
- - **Charcoal** (`#434343`): Tertiary borders, dark accents
101
- - **Dark Gray** (`#4d4d4d`): Heavy secondary text
102
- - **Mid Gray** (`#898989`): Muted text, link color
103
- - **Light Gray** (`#b4b4b4`): Secondary link text
104
- - **Near White** (`#efefef`): Light border, subtle surface
105
- - **Off White** (`#fafafa`): Primary text, button text
106
-
107
- ### Radix Color Tokens (HSL-based)
108
- - **Slate Scale**: `--colors-slate5` through `--colors-slateA12` — neutral progression
109
- - **Purple**: `--colors-purple4`, `--colors-purple5`, `--colors-purpleA7` — accent spectrum
110
- - **Violet**: `--colors-violet10` (`hsl(251, 63.2%, 63.2%)`) — vibrant accent
111
- - **Crimson**: `--colors-crimson4`, `--colors-crimsonA9` — warm accent / alert
112
- - **Indigo**: `--colors-indigoA2` — subtle blue wash
113
- - **Yellow**: `--colors-yellowA7` — attention/warning
114
- - **Tomato**: `--colors-tomatoA4` — error accent
115
- - **Orange**: `--colors-orange6` — warm accent
116
-
117
- ### Surface & Overlay
118
- - **Glass Dark** (`rgba(41, 41, 41, 0.84)`): Translucent dark overlay
119
- - **Slate Alpha** (`hsla(210, 87.8%, 16.1%, 0.031)`): Ultra-subtle blue wash
120
- - **Fixed Scale Alpha** (`hsla(200, 90.3%, 93.4%, 0.109)`): Light frost overlay
121
-
122
- ### Shadows
123
- - Supabase uses **almost no shadows** in its dark theme. Depth is created through border contrast and surface color differences rather than box-shadows. Focus states use `rgba(0, 0, 0, 0.1) 0px 4px 12px` — minimal, functional.
149
+ The collector also aggregates `#3fcf8e` and `#0a874f` on public routes, but no selector-backed role from this packet makes either a canonical token. The brand-assets page supplies logo rules, not a published UI color scale; no semantic success, warning, error, product-console, or documentation palette is inferred.
124
150
 
125
151
  ## 3. Typography Rules
126
152
 
127
- ### Font Families
128
- - **Primary**: `Circular`, with fallbacks: `custom-font, Helvetica Neue, Helvetica, Arial`
129
- - **Monospace**: `Source Code Pro`, with fallbacks: `Office Code Pro, Menlo`
130
-
131
- ### Hierarchy
132
-
133
- | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
134
- |------|------|------|--------|-------------|----------------|-------|
135
- | Display Hero | Circular | 72px (4.50rem) | 400 | 1.00 (tight) | normal | Maximum density, zero waste |
136
- | Section Heading | Circular | 36px (2.25rem) | 400 | 1.25 (tight) | normal | Feature section titles |
137
- | Card Title | Circular | 24px (1.50rem) | 400 | 1.33 | -0.16px | Slight negative tracking |
138
- | Sub-heading | Circular | 18px (1.13rem) | 400 | 1.56 | normal | Secondary headings |
139
- | Body | Circular | 16px (1.00rem) | 400 | 1.50 | normal | Standard body text |
140
- | Nav Link | Circular | 14px (0.88rem) | 500 | 1.00–1.43 | normal | Navigation items |
141
- | Button | Circular | 14px (0.88rem) | 500 | 1.14 (tight) | normal | Button labels |
142
- | Caption | Circular | 14px (0.88rem) | 400–500 | 1.43 | normal | Metadata, tags |
143
- | Small | Circular | 12px (0.75rem) | 400 | 1.33 | normal | Fine print, footer links |
144
- | Code Label | Source Code Pro | 12px (0.75rem) | 400 | 1.33 | 1.2px | `text-transform: uppercase` |
145
-
146
- ### Principles
147
- - **Weight restraint**: Nearly all text uses weight 400 (regular/book). Weight 500 appears only for navigation links and button labels. There is no bold (700) in the detected system — hierarchy is created through size, not weight.
148
- - **1.00 hero line-height**: The hero text is compressed to absolute zero leading. This is the defining typographic gesture — text that feels like a terminal command: dense, efficient, no wasted vertical space.
149
- - **Negative tracking on cards**: Card titles use -0.16px letter-spacing, a subtle tightening that differentiates them from body text without being obvious.
150
- - **Monospace as ritual**: Source Code Pro in uppercase with 1.2px letter-spacing is the "developer console" voice used sparingly for technical labels that connect to the product experience.
151
- - **Geometric personality**: Circular's rounded terminals create warmth in what could otherwise be a cold, technical interface. The font is the humanizing element.
152
-
153
- ## 4. Component Stylings
154
-
155
- ### Buttons
156
-
157
- **Primary Pill (Dark)**
158
- - Background: `#0f0f0f`
159
- - Text: `#fafafa`
160
- - Padding: 8px 32px
161
- - Radius: 9999px (full pill)
162
- - Border: `1px solid #fafafa` (white border on dark)
163
- - Focus shadow: `rgba(0, 0, 0, 0.1) 0px 4px 12px`
164
- - Use: Primary CTA ("Start your project")
165
-
166
- **Secondary Pill (Dark, Muted)**
167
- - Background: `#0f0f0f`
168
- - Text: `#fafafa`
169
- - Padding: 8px 32px
170
- - Radius: 9999px
171
- - Border: `1px solid #2e2e2e` (dark border)
172
- - Opacity: 0.8
173
- - Use: Secondary CTA alongside primary
174
-
175
- **Ghost Button**
176
- - Background: transparent
177
- - Text: `#fafafa`
178
- - Padding: 8px
179
- - Radius: 6px
180
- - Border: `1px solid transparent`
181
- - Use: Tertiary actions, icon buttons
182
-
183
- ### Cards & Containers
184
- - Background: dark surfaces (`#171717` or slightly lighter)
185
- - Border: `1px solid #2e2e2e` or `#363636`
186
- - Radius: 8px–16px
187
- - No visible shadows — borders define edges
188
- - Internal padding: 16px–24px
189
-
190
- ### Tabs
191
- - Border: `1px solid #2e2e2e`
192
- - Radius: 9999px (pill tabs)
193
- - Active: green accent or lighter surface
194
- - Inactive: dark, muted
195
-
196
- ### Links
197
- - **Green**: `#00c573` Supabase-branded links
198
- - **Primary Light**: `#fafafa` — standard links on dark
199
- - **Secondary**: `#b4b4b4` — muted links
200
- - **Muted**: `#898989` tertiary links, footer
201
-
202
- ### Navigation
203
- - Dark background matching page (`#171717`)
204
- - Supabase logo with green icon
205
- - Circular 14px weight 500 for nav links
206
- - Clean horizontal layout with product dropdown
207
- - Green "Start your project" CTA pill button
208
- - Sticky header behavior
153
+ ### Evidence classes
154
+
155
+ | Evidence class | Family and boundary |
156
+ |---|---|
157
+ | Live computed public-surface use | **Inter** is loaded/high, has 752 visible uses, and is backed by Supabase-hosted WOFF2 sources. It appears in body, buttons, cards, dialogs, inputs, lists, menus, tabs, text, and toggles. |
158
+ | Live computed public-surface use | **Manrope** is loaded/high, has 150 visible uses, and is backed by Supabase-hosted WOFF2 sources. It appears in public h1–h4, body, and buttons. |
159
+ | Live computed public-surface use | **Source Code Pro** is loaded/high, has 13 visible uses and seven Supabase-hosted source URLs. Its captured uses are limited to body, button, and h3 roles; this is not a complete code-style scale. |
160
+ | System stack | `ui-sans-serif` has 407 uses but is an operating-system stack, not a Supabase-family substitute. |
161
+ | Declared-only | `Inter Fallback` and the KaTeX family declarations have zero visible captured uses. They are not typography-family tokens. |
162
+ | Documentation boundary | Some font source URLs are served from Supabase’s docs asset host, but no documentation route or documentation-chrome computed sample is in this packet. An asset URL alone does not populate documentation typography. |
163
+
164
+ ### Captured public hierarchy
165
+
166
+ | Role | Family | Size | Weight | Line height | Scope |
167
+ |---|---|---:|---:|---:|---|
168
+ | Home h1 | Manrope | 46px | 500 | 46px | `home::h1` only |
169
+ | Public large heading | Manrope | 34px | 600 | 37.7778px | home h2/h3 samples |
170
+ | Repeated body/list text | Inter | 16px | 450 | 24px | public routes |
171
+ | Navigation/control sample | Inter | 14px | 500 | 16px | public controls |
172
+ | Compact action label | Inter | 12px | 450 | 16px | home/pricing compact actions |
173
+
174
+ ### Official font and licence context
175
+
176
+ Inter’s official repository describes it as screen-oriented and licensed under the SIL Open Font License. The Manrope project identifies Michael Sharanda as designer and uses the SIL Open Font License. Adobe’s official Source Code Pro repository describes a monospaced family for UI and coding environments under OFL-1.1. Those licences explain the upstream font families; Supabase’s loaded WOFF2 URLs prove public-route use, not a grant to redistribute Supabase’s served files. If a target cannot load the family legitimately, mark the specimen unavailable rather than rendering a system substitute as Inter, Manrope, or Source Code Pro.
177
+
178
+ ## 4. Components
179
+
180
+ All values below retain their public-route selector and state boundary. The collector reports four interaction kinds and 12 interactions: menu, dialog, tab, and form-error captures. Those records prove the listed expanded/open/selected/error contexts only; unobserved variants are omitted.
181
+
182
+ ### Public actions
183
+
184
+ **Green form submit**
185
+ - Background: `#72e3ad`
186
+ - Text: `oklch(0.1 0 34)`
187
+ - Border: `1px solid oklab(0.685565 -0.144466 0.057858 / 0.75)`
188
+ - Radius: `6px`
189
+ - Padding: `4px 10px`
190
+ - Font: `12px / 450 / Inter`
191
+ - Dialog-open: captured context at `home::[data-omd-capture="75"]`; no general dialog-button contract is inferred
192
+ - Use: Public home form submit
193
+
194
+ **Dark compact action**
195
+ - Background: `oklch(0.1 0 34)`
196
+ - Text: `oklch(0.995 0 34)`
197
+ - Border: `1px solid oklch(0.394455 0 34)`
198
+ - Radius: `6px`
199
+ - Padding: `4px 10px`
200
+ - Font: `12px / 450 / Inter`
201
+ - Hover: computed snapshot recorded for `pricing::[data-omd-capture="17"]`
202
+ - Pressed: computed snapshot recorded for `pricing::[data-omd-capture="17"]`
203
+ - Focus: computed snapshot recorded for `pricing::[data-omd-capture="17"]`
204
+ - Use: Compact public pricing action
205
+
206
+ ### Selected public tab
207
+
208
+ **Selected pill tab**
209
+ - Background: `oklch(0.995 0 34)`
210
+ - Text: `oklch(0.1 0 34)`
211
+ - Border: `1px solid oklch(0.1 0 34)`
212
+ - Radius: `3.35544e+07px`
213
+ - Padding: `8px 32px`
214
+ - Font: `14px / 450 / Inter`
215
+ - Selected: `home::[data-omd-capture="19"]` is `aria-selected="true"`
216
+ - Use: Public home tab; this does not establish a general tab system
217
+
218
+ ### Public form field
219
+
220
+ **Email input**
221
+ - Background: `oklab(0.1 0 0 / 0.026)`
222
+ - Text: `oklch(0.1 0 34)`
223
+ - Border: `1px solid oklch(0.1 0 34 / 0.146418)`
224
+ - Radius: `6px`
225
+ - Padding: `8px`
226
+ - Font: `14px / 450 / Inter`
227
+ - Error: an error capture is recorded at `home::[data-omd-interaction-capture="form-error-5-0"]`; no changed error color is asserted
228
+ - Use: Public home email input at `home::[data-omd-capture="74"]`
229
+
230
+ ### Public overlays
231
+
232
+ **Navigation menu expanded**
233
+ - Background: `oklch(1 0 34)`
234
+ - Text: `oklch(0.394455 0 34)`
235
+ - Border: `1px solid oklch(0.1 0 34 / 0.144163)`
236
+ - Radius: `6px`
237
+ - Padding: `4px`
238
+ - Font: `16px / 450 / Inter`
239
+ - Expanded: menu-open capture at `home::[data-omd-interaction-capture="menu-0-0"]`
240
+ - Use: Public navigation menu, not authenticated application navigation
241
+
242
+ **Public dialog — open**
243
+ - Background: `oklch(0.995 0 34)`
244
+ - Text: `oklch(0.1 0 34)`
245
+ - Border: `1px solid oklch(0.1 0 34 / 0.0812725)`
246
+ - Radius: `8px`
247
+ - Dialog-open: captured at `home::[data-omd-interaction-capture="dialog-1-0"]`
248
+ - Use: Public dialog; no padding or shadow value is asserted because it was not measured in the representative claim
209
249
 
210
250
  ## 5. Layout Principles
211
251
 
212
- ### Spacing System
213
- - Base unit: 8px
214
- - Scale: 1px, 4px, 6px, 8px, 12px, 16px, 20px, 24px, 32px, 40px, 48px, 90px, 96px, 128px
215
- - Notable large jumps: 48px → 90px → 96px → 128px for major section spacing
216
-
217
- ### Grid & Container
218
- - Centered content with generous max-width
219
- - Full-width dark sections with constrained inner content
220
- - Feature grids: icon-based grids with consistent card sizes
221
- - Logo grids for "Trusted by" sections
222
- - Footer: multi-column on dark background
223
-
224
- ### Breakpoints
225
- | Name | Width | Key Changes |
226
- |------|-------|-------------|
227
- | Mobile | <600px | Single column, stacked layout |
228
- | Desktop | >600px | Multi-column grids, expanded layout |
229
-
230
- *Note: Supabase uses a notably minimal breakpoint system — primarily a single 600px breakpoint, suggesting a mobile-first approach with progressive enhancement.*
231
-
232
- ### Whitespace Philosophy
233
- - **Dramatic section spacing**: 90px–128px between major sections creates a cinematic pacing — each section is its own scene in the dark void.
234
- - **Dense content blocks**: Within sections, spacing is tight (16px–24px), creating concentrated information clusters.
235
- - **Border-defined space**: Instead of whitespace + shadows for separation, Supabase uses thin borders on dark backgrounds — separation through line, not gap.
236
-
237
- ### Border Radius Scale
238
- - Standard (6px): Ghost buttons, small elements
239
- - Comfortable (8px): Cards, containers
240
- - Medium (11px–12px): Mid-size panels
241
- - Large (16px): Feature cards, major containers
242
- - Pill (9999px): Primary buttons, tab indicators
252
+ The packet is three desktop captures at 1440×900. It records 4px, 8px, 12px, 16px, 24px, and 32px as recurring public-route spacing values, with 8px most frequent. These observations support compact controls and more generous public-section rhythm, but they do not establish mobile breakpoints, authenticated-dashboard density, or a published Supabase grid.
243
253
 
244
254
  ## 6. Depth & Elevation
245
255
 
246
- | Level | Treatment | Use |
247
- |-------|-----------|-----|
248
- | Flat (Level 0) | No shadow, border `#2e2e2e` | Default state, most surfaces |
249
- | Subtle Border (Level 1) | Border `#363636` or `#393939` | Interactive elements, hover |
250
- | Focus (Level 2) | `rgba(0, 0, 0, 0.1) 0px 4px 12px` | Focus states only |
251
- | Green Accent (Level 3) | Border `rgba(62, 207, 142, 0.3)` | Brand-highlighted elements |
252
-
253
- **Shadow Philosophy**: Supabase deliberately avoids shadows. In a dark-mode-native design, shadows are nearly invisible and serve no purpose. Instead, depth is communicated through a sophisticated border hierarchy — from `#242424` (barely visible) through `#2e2e2e` (standard) to `#393939` (prominent). The green accent border (`rgba(62, 207, 142, 0.3)`) at 30% opacity is the "elevated" state — the brand color itself becomes the depth signal.
256
+ The captured public menu has two small neutral shadows (`rgba(0, 0, 0, 0.1) 0px 4px 6px -1px` and `rgba(0, 0, 0, 0.1) 0px 2px 4px -2px`); the compact action, selected pill tab, and representative input report no shadow. That is evidence for these public overlay/control instances only, not a reusable elevation scale.
254
257
 
255
258
  ## 7. Do's and Don'ts
256
259
 
257
260
  ### Do
258
- - Use near-black backgrounds (`#0f0f0f`, `#171717`) — depth comes from the gray border hierarchy
259
- - Apply Supabase green (`#3ecf8e`, `#00c573`) sparingly it's an identity marker, not a decoration
260
- - Use Circular at weight 400 for nearly everything 500 only for buttons and nav
261
- - Set hero text to 1.00 line-height the zero-leading is the typographic signature
262
- - Create depth through border color differences (`#242424` `#2e2e2e` `#363636`)
263
- - Use pill shape (9999px) exclusively for primary CTAs and tabs
264
- - Employ HSL-based colors with alpha for translucent layering effects
265
- - Use Source Code Pro uppercase labels for developer-context markers
261
+
262
+ - Use `#72e3ad` only where a selector-backed public action relationship is appropriate.
263
+ - Preserve Inter, Manrope, and Source Code Pro as separate loaded families when the target has legitimate access to them.
264
+ - Keep raw Oklch/Oklab values as raw computed evidence instead of inventing a hex token scale.
265
+ - Retain selector and state provenance when reusing an observed public component pattern.
266
266
 
267
267
  ### Don't
268
- - Don't add box-shadows — they're invisible on dark backgrounds and break the border-defined depth system
269
- - Don't use bold (700) text weight — the system uses 400 and 500 only
270
- - Don't apply green to backgrounds or large surfaces — it's for borders, links, and small accents
271
- - Don't use warm colors (crimson, orange) as primary design elements — they exist as semantic tokens for states
272
- - Don't increase hero line-height above 1.00 — the density is intentional
273
- - Don't use large border radius (16px+) on buttons — pills (9999px) or standard (6px), nothing in between
274
- - Don't lighten the background above `#171717` for primary surfaces — the darkness is structural
275
- - Don't forget the translucent borders — `rgba` border colors are the layering mechanism
276
268
 
277
- ## 8. Responsive Behavior
269
+ - Do not recreate the obsolete dark/Circular system from the prior snapshot.
270
+ - Do not convert `ui-sans-serif`, `Inter Fallback`, or declared-only KaTeX faces into Supabase UI typography.
271
+ - Do not move marketing/pricing/menu/dialog values into an authenticated dashboard, native application, or documentation chrome without evidence from that surface.
272
+ - Do not invent unobserved component variants, semantic status colors, responsive rules, or interaction behavior.
278
273
 
279
- ### Breakpoints
280
- | Name | Width | Key Changes |
281
- |------|-------|-------------|
282
- | Mobile | <600px | Single column, stacked features, condensed nav |
283
- | Desktop | >600px | Multi-column grids, full nav, expanded sections |
274
+ ## 8. Responsive Behavior
284
275
 
285
- ### Collapsing Strategy
286
- - Hero: 72px → scales down proportionally
287
- - Feature grids: multi-column → single column stacked
288
- - Logo row: horizontal → wrapped grid
289
- - Navigation: full → hamburger
290
- - Section spacing: 90–128px → 48–64px
291
- - Buttons: inline → full-width stacked
276
+ No responsive viewport was supplied. The three captures are all 1440×900, so no breakpoint, mobile navigation, stacking, or touch-target behavior is documented here.
292
277
 
293
278
  ## 9. Agent Prompt Guide
294
279
 
295
- ### Quick Color Reference
296
- - Background: `#0f0f0f` (button), `#171717` (page)
297
- - Text: `#fafafa` (primary), `#b4b4b4` (secondary), `#898989` (muted)
298
- - Brand green: `#3ecf8e` (brand), `#00c573` (links)
299
- - Borders: `#242424` (subtle), `#2e2e2e` (standard), `#363636` (prominent)
300
- - Green border: `rgba(62, 207, 142, 0.3)` (accent)
301
-
302
- ### Example Component Prompts
303
- - "Create a hero section on #171717 background. Headline at 72px Circular weight 400, line-height 1.00, #fafafa text. Sub-text at 16px Circular weight 400, line-height 1.50, #b4b4b4. Pill CTA button (#0f0f0f bg, #fafafa text, 9999px radius, 8px 32px padding, 1px solid #fafafa border)."
304
- - "Design a feature card: #171717 background, 1px solid #2e2e2e border, 16px radius. Title at 24px Circular weight 400, letter-spacing -0.16px. Body at 14px weight 400, #898989 text."
305
- - "Build navigation bar: #171717 background. Circular 14px weight 500 for links, #fafafa text. Supabase logo with green icon left-aligned. Green pill CTA 'Start your project' right-aligned."
306
- - "Create a technical label: Source Code Pro 12px, uppercase, letter-spacing 1.2px, #898989 text."
307
- - "Design a framework logo grid: 6-column layout on dark, grayscale logos at 60% opacity, 1px solid #2e2e2e border between sections."
308
-
309
- ### Iteration Guide
310
- 1. Start with #171717 background — everything is dark-mode-native
311
- 2. Green is the brand identity marker — use it for links, logo, and accent borders only
312
- 3. Depth comes from borders (#242424 → #2e2e2e → #363636), not shadows
313
- 4. Weight 400 is the default for everything — 500 only for interactive elements
314
- 5. Hero line-height of 1.00 is the signature typographic move
315
- 6. Pill (9999px) for primary actions, 6px for secondary, 8-16px for cards
316
- 7. HSL with alpha channels creates the sophisticated translucent layering
280
+ Use this reference as a public Supabase-web direction, not as a dashboard clone: prefer the observed mint action, light raw-computed surfaces, Inter UI rhythm, and Manrope display hierarchy. Keep the public-route selector boundary visible in implementation notes. Do not add a dark terminal canvas, Circular, generic product-console widgets, or fonts that the target cannot load.
317
281
 
318
282
  ## 10. Voice & Tone
319
283
 
320
- Supabase's voice is **Postgres-pragmatic and OSS-confident.** "The Postgres Development Platform" capability-driven, dev-first. Strong open-source positioning ("the open source Firebase alternative") with green primary `#3ecf8e` matching Postgres heritage.
321
-
322
- | Context | Tone |
323
- |---|---|
324
- | CTA | Verb. "Start your project", "Get started", "Sign up" |
325
- | Marketing | Postgres-credibility. Real SQL in marketing copy |
326
- | Documentation | SQL-first, code-block-heavy |
327
- | Error | Specific. "Foreign key constraint failed: table X column Y" |
328
-
329
- **Voice samples**
330
- - Tagline: *"The Postgres Development Platform"* <!-- verified: supabase.com homepage 2026-05 -->
331
-
332
- **Forbidden phrases.** "Revolutionary BaaS". Generic Firebase-comparison framing.
284
+ Supabases official architecture and contribution pages use direct, technically specific language: Postgres stays explicit, open source is an operating choice, and the community invitation is practicalcontribute code, documentation, or help. Prefer short capability-led CTAs such as “Start your project” and “Build in a weekend, scale to millions,” both visible on official public pages.
333
285
 
334
286
  ## 11. Brand Narrative
335
287
 
336
- Supabase was founded **2020** by **Paul Copplestone (CEO)** + **Ant Wilson (CTO, joined January 2020)** ([Y Combinator — Supabase](https://www.ycombinator.com/companies/supabase), [Frederick AI — Founder Story Paul Copplestone](https://www.frederick.ai/blog/paul-copplestone-supabase)). **Y Combinator Summer 2020 (S20)** batch founding coincided with the start of the COVID-19 pandemic; raised **$100K pre-seed from angels** before YC. Open-source Firebase alternative built on **Postgres → Realtime → Auth → Storage**. Funding ladder: **$30M Series A (Sept 2021)** → **$80M Series B (May 2022)** → **$2B valuation (April 2025)** → **$5B valuation October 2025** (Series E, just **4 months after $2B** — one of the fastest valuation jumps in OSS-developer-tooling) ([TechCrunch Supabase $5B four months after $2B](https://techcrunch.com/2025/10/03/supabase-nabs-5b-valuation-four-months-after-hitting-2b/), [SuperbCrew Supabase $100M Series E](https://www.superbcrew.com/supabase-raises-100-million-in-series-e-funding-round/)). The brand voice tracks the OSS-engineer positioning: Postgres-credible, open-by-default, never marketing-fluff. Primary green references Postgres elephant heritage with a modern lift Tier 1 measurement on `/pricing` shows the canonical Primary CTA fill is `rgb(114, 227, 173)` = **`#72e3ad` Supabase Mint Green** (a **lighter shade** than the §2 doc's `#3ecf8e` deeper green, possibly a 2025 brand refresh).
288
+ Supabase presents a Postgres-centered platform rather than an abstraction over it: its architecture documentation says each project contains several tools around a single Postgres instance, and explains that the company chose open-source tools that are scalable and approachable. Its company page frames the present organization as a large open-source community, while the contribution page describes a mission of helping developers succeed through work in the open. This is product and culture context, not evidence that public marketing values describe every product surface.
337
289
 
338
290
  ## 12. Principles
339
291
 
340
- 1. **Postgres is the foundation.** *UI implication:* surfaces lead with Postgres-native features.
341
- 2. **Open-source heritage.** *UI implication:* self-host first-class.
342
- 3. **Pill (9999px) primary, 6px secondary, 8-16px cards.** *UI implication:* mixed radius with strict roles.
343
- 4. **HSL with alpha channels.** *UI implication:* translucent layering using alpha, not opacity.
344
- 5. **Green `#3ecf8e` for primary.** *UI implication:* preserve Postgres-heritage green.
292
+ 1. **Keep Postgres legible.** *UI implication:* describe database capability directly rather than masking it behind generic backend language.
293
+ 2. **Work in the open.** *UI implication:* make contribution, documentation, and community paths concrete.
294
+ 3. **Make the platform approachable.** *UI implication:* public information architecture should let users begin small and find deeper technical detail when needed.
345
295
 
346
296
  ## 13. Personas
347
297
 
348
- *Personas are fictional archetypes informed by Supabase user segments (full-stack developers, indie SaaS founders, AI app builders), not individual people.*
349
-
350
- **Henrik Sondergaard, 33, Copenhagen.** Full-stack engineer. Supabase + Next.js for client SaaS projects.
298
+ *Stakeholder groups below are source-backed categories, not fictional people.*
351
299
 
352
- **Sofia Russo, 28, Milan.** Indie founder shipping micro-SaaS. Supabase Auth + Postgres + Storage in one stack.
353
-
354
- **Marcus Chen, 35, San Francisco.** AI app builder. Supabase Edge Functions + Vector for RAG infrastructure.
300
+ - **Developers new to Postgres:** the architecture guidance says they can start small and grow into the platform.
301
+ - **Postgres veterans:** the same guidance identifies users who want full Postgres access and familiarity.
302
+ - **Open-source contributors and helpers:** the contribution page invites people to contribute code, improve documentation, and help developers across community channels.
355
303
 
356
304
  ## 14. States
357
305
 
358
- | State | Treatment |
359
- |---|---|
360
- | **Empty (no projects)** | "Start your project" CTA |
361
- | **Empty (no tables)** | "Create your first table" with SQL editor |
362
- | **Loading (query)** | Per-row count + execution time |
363
- | **Loading (function deploy)** | Step-by-step deploy log |
364
- | **Error (SQL)** | Inline below editor + line:column |
365
- | **Error (RLS)** | Specific policy + table |
366
- | **Success (query)** | Result table + execution stats |
367
- | **Success (deploy)** | Endpoint URL + invocation example |
368
- | **Skeleton (table list)** | Translucent green-tinted placeholders |
369
- | **Disabled (free tier)** | Upgrade link |
370
- | **Loading (long migration)** | Persistent progress |
306
+ Only the public form-error state is captured: `home::[data-omd-interaction-capture="form-error-5-0"]` preserves the input’s raw background, border, radius, padding, and Inter text values. The packet also captures public menu-open, dialog-open, and selected-tab contexts. It does not supply empty, loading, success, disabled, or product-console state treatments, so none is invented.
371
307
 
372
308
  ## 15. Motion & Easing
373
309
 
374
- | Token | Value | Use |
375
- |---|---|---|
376
- | `motion-instant` | 0ms | Selection |
377
- | `motion-fast` | 150ms | Hover |
378
- | `motion-standard` | 250ms | Modal, panel |
379
-
380
- Standard cubic-bezier; no bounce. `prefers-reduced-motion: reduce` removes hover transitions.
310
+ The public control class names expose `duration-200` and transition utilities, but the packet does not contain a measured easing curve or a motion scale. Preserve that boundary; do not promote an inferred motion-token system.
381
311
 
382
312
  ---
383
-
384
- **Verified:** 2026-05-08 (omd:migrate run 56 Apple-tier)
385
- **Tier 1 sources:** supabase.com home + /pricing (live DOM via playwright Primary **`#72e3ad`** Supabase Mint Green + `#171717` Near-Black text 6px / 38-42px / 8×16 / 14-16px·400; Outline `#fdfdfd` Soft White 6px; Banner pill 9999px; nav 6px / 14px·500).
386
- **Tier 2 sources:** styles.refero.design / getdesign.md no record.
387
- **Tier 2 (Philosophy/founders/funding):** YC (S20), LinkedIn (Copplestone), Frederick AI (Copplestone story), TechCrunch (2025-10 $5B "4 months after $2B"), SuperbCrew, Supabase company page.
388
- **Style ref:** `stripe`.
389
- **Conflicts unresolved:** Mint Green HEX — §2 doc `#3ecf8e` (darker mid-green) vs live `#72e3ad` (lighter mint) — likely 3-shade palette w/ 2025 brand refresh; both retained, live wins for Primary. **Earlier mistake reverted:** prior footer captured nav-only — canonical Primary is `#72e3ad` Mint Green missed entirely.
313
+ **Verified:** 2026-07-13
314
+ **Tier 1 sources:** https://supabase.com/, https://supabase.com/features, https://supabase.com/pricing, https://supabase.com/brand-assets, https://supabase.com/docs/guides/getting-started/architecture, https://supabase.com/contribute/about
315
+ **Tier 2 sources:** https://getdesign.md/supabase (one editorial Supabase record; no token provenance used); Refero query attempted at https://styles.refero.design/?q=Supabase and was unavailable to built-in open, with no indexed Supabase record returned by built-in search.
316
+ **Resolution note:** Replaced the legacy dark/Circular snapshot with selector-backed 2026-07-13 public-route evidence. Marketing, features, pricing, unauthenticated overlays, documentation assets, and authenticated product UI remain separate domains.
317
+ **Conflicts unresolved:** none