oh-my-design-cli 1.8.6 → 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.
- package/.claude/hooks/lib/preferences-parser.cjs +1 -0
- package/.claude/hooks/lib/preferences-writer.cjs +1 -0
- package/.claude/hooks/post-edit-watch.cjs +1 -0
- package/.claude/hooks/session-end-foldin.cjs +1 -0
- package/.claude/hooks/session-state-loader.cjs +1 -0
- package/.claude/hooks/skill-activation.cjs +1 -0
- package/.claude/settings.json +10 -1
- package/.github/assets/logo-bg.png +0 -0
- package/AGENTS.md +20 -1
- package/CHANGELOG.md +482 -0
- package/MIGRATION.md +103 -0
- package/README.ja.md +56 -19
- package/README.ko.md +47 -30
- package/README.md +48 -30
- package/README.zh-TW.md +59 -22
- package/agents/AGENT.md +8 -7
- package/agents/omd-codex-image.md +1 -1
- package/agents/omd-critic.md +6 -7
- package/agents/omd-designer-review.md +1 -1
- package/agents/omd-final-qa.md +1 -1
- package/agents/omd-humanizer.md +38 -0
- package/agents/omd-kr-writer.md +3 -4
- package/agents/omd-locale-adapter.md +12 -16
- package/agents/omd-master.md +24 -19
- package/agents/omd-microcopy.md +1 -1
- package/agents/omd-orchestrator.md +7 -8
- package/agents/omd-slop-auditor.md +31 -0
- package/agents/omd-ux-researcher.md +1 -1
- package/data/reference-fingerprints.json +2761 -85
- package/dist/bin/oh-my-design.js +16 -8
- package/dist/bin/oh-my-design.js.map +1 -1
- package/dist/chunk-UJIHCEYF.js +99 -0
- package/dist/chunk-UJIHCEYF.js.map +1 -0
- package/dist/doctor-LDWSFM3I.js +763 -0
- package/dist/doctor-LDWSFM3I.js.map +1 -0
- package/dist/install-skills-ZZFNJ2II.js +1120 -0
- package/dist/install-skills-ZZFNJ2II.js.map +1 -0
- package/docs/CLI_QUICKSTART.md +157 -0
- package/package.json +25 -4
- package/scripts/postinstall.cjs +5 -4
- package/skills/claude-design/SKILL.md +38 -14
- package/skills/claude-design/references/claude-design-flow.md +11 -11
- package/skills/claude-design/references/codebase-analysis.md +5 -4
- package/skills/omd-final-qa/SKILL.md +1 -1
- package/skills/omd-harness/SKILL.md +51 -50
- package/skills/omd-humanize/SKILL.md +116 -0
- package/skills/omd-humanize/agents/openai.yaml +4 -0
- package/skills/omd-humanize/references/locale-playbooks.md +102 -0
- package/skills/omd-humanize/references/sources.md +11 -0
- package/skills/omd-init/SKILL.md +18 -12
- package/skills/omd-locale-adapter/SKILL.md +58 -91
- package/skills/omd-orchestrator/SKILL.md +11 -5
- package/skills/omd-reference-capture/SKILL.md +80 -26
- package/skills/omd-reference-capture/scripts/PLAYWRIGHT-LICENSE.txt +202 -0
- package/skills/omd-reference-capture/scripts/PLAYWRIGHT-NOTICE.txt +5 -0
- package/skills/omd-reference-capture/scripts/THIRD_PARTY_NOTICES.md +3 -0
- package/skills/omd-reference-capture/scripts/capture-reference-evidence.mjs +159906 -0
- package/skills/omd-slop-audit/SKILL.md +110 -0
- package/skills/omd-slop-audit/agents/openai.yaml +4 -0
- package/skills/omd-slop-audit/references/pattern-catalog.md +96 -0
- package/skills/omd-slop-audit/references/sources.md +24 -0
- package/web/references/104/DESIGN.md +354 -0
- package/web/references/11st/DESIGN.md +197 -316
- package/web/references/29cm/DESIGN.md +297 -393
- package/web/references/42dot/DESIGN.md +390 -0
- package/web/references/8percent/DESIGN.md +438 -0
- package/web/references/ably/DESIGN.md +267 -572
- package/web/references/acer/DESIGN.md +329 -0
- package/web/references/airbnb/DESIGN.md +219 -557
- package/web/references/airbridge/DESIGN.md +451 -0
- package/web/references/alipay/DESIGN.md +179 -420
- package/web/references/apple/DESIGN.md +224 -498
- package/web/references/asleep/DESIGN.md +402 -0
- package/web/references/au/DESIGN.md +334 -0
- package/web/references/autopedia/DESIGN.md +382 -0
- package/web/references/aws-cloudscape/DESIGN.md +241 -0
- package/web/references/baemin/DESIGN.md +332 -491
- package/web/references/banksalad/DESIGN.md +269 -180
- package/web/references/barogo/DESIGN.md +416 -0
- package/web/references/beusable/DESIGN.md +464 -0
- package/web/references/bigin/DESIGN.md +454 -0
- package/web/references/bilibili/DESIGN.md +206 -374
- package/web/references/bmw/DESIGN.md +162 -276
- package/web/references/brandi/DESIGN.md +184 -325
- package/web/references/buzzvil/DESIGN.md +457 -0
- package/web/references/cafe24/DESIGN.md +472 -0
- package/web/references/catchtable/DESIGN.md +219 -264
- package/web/references/cgv/DESIGN.md +317 -0
- package/web/references/channeltalk/DESIGN.md +210 -336
- package/web/references/china-airlines/DESIGN.md +291 -0
- package/web/references/cjonstyle/DESIGN.md +453 -0
- package/web/references/class101/DESIGN.md +168 -387
- package/web/references/classum/DESIGN.md +228 -203
- package/web/references/claude/DESIGN.md +242 -479
- package/web/references/clay/DESIGN.md +179 -377
- package/web/references/clickhouse/DESIGN.md +254 -343
- package/web/references/codeit/DESIGN.md +470 -0
- package/web/references/cohere/DESIGN.md +214 -324
- package/web/references/coinone/DESIGN.md +199 -179
- package/web/references/corca/DESIGN.md +414 -0
- package/web/references/coupang/DESIGN.md +205 -475
- package/web/references/cursor/DESIGN.md +240 -381
- package/web/references/dabang/DESIGN.md +248 -213
- package/web/references/dable/DESIGN.md +431 -0
- package/web/references/datarize/DESIGN.md +338 -0
- package/web/references/dealicious/DESIGN.md +402 -0
- package/web/references/drdiary/DESIGN.md +404 -0
- package/web/references/elastic/DESIGN.md +238 -0
- package/web/references/elevenlabs/DESIGN.md +183 -321
- package/web/references/elice/DESIGN.md +445 -0
- package/web/references/eslite/DESIGN.md +257 -0
- package/web/references/evaair/DESIGN.md +338 -0
- package/web/references/expo/DESIGN.md +238 -331
- package/web/references/familymart-tw/DESIGN.md +254 -0
- package/web/references/ferrari/DESIGN.md +160 -377
- package/web/references/figma/DESIGN.md +197 -451
- package/web/references/fitpet/DESIGN.md +445 -0
- package/web/references/flex/DESIGN.md +170 -253
- package/web/references/framer/DESIGN.md +197 -340
- package/web/references/freee/DESIGN.md +211 -533
- package/web/references/friendliai/DESIGN.md +431 -0
- package/web/references/frip/DESIGN.md +440 -0
- package/web/references/furiosaai/DESIGN.md +450 -0
- package/web/references/gangnamunni/DESIGN.md +154 -591
- package/web/references/gaudiolab/DESIGN.md +414 -0
- package/web/references/google/DESIGN.md +290 -398
- package/web/references/goorm/DESIGN.md +470 -0
- package/web/references/greencar/DESIGN.md +420 -0
- package/web/references/hackle/DESIGN.md +472 -0
- package/web/references/hashicorp/DESIGN.md +273 -318
- package/web/references/heydealer/DESIGN.md +429 -0
- package/web/references/humanscape/DESIGN.md +433 -0
- package/web/references/hwahae/DESIGN.md +453 -0
- package/web/references/hyundai/DESIGN.md +158 -368
- package/web/references/hyundaicard/DESIGN.md +171 -121
- package/web/references/ibm/DESIGN.md +227 -378
- package/web/references/idus/DESIGN.md +450 -0
- package/web/references/igaworks/DESIGN.md +437 -0
- package/web/references/inflearn/DESIGN.md +221 -366
- package/web/references/intuit/DESIGN.md +244 -0
- package/web/references/jandi/DESIGN.md +191 -291
- package/web/references/jobplanet/DESIGN.md +415 -0
- package/web/references/kakao/DESIGN.md +287 -475
- package/web/references/kakaobank/DESIGN.md +220 -521
- package/web/references/kakaogames/DESIGN.md +220 -0
- package/web/references/kakaopay/DESIGN.md +207 -526
- package/web/references/karrot/DESIGN.md +227 -251
- package/web/references/kb-kookmin/DESIGN.md +308 -0
- package/web/references/kbank/DESIGN.md +220 -175
- package/web/references/kcd/DESIGN.md +432 -0
- package/web/references/kmong/DESIGN.md +281 -356
- package/web/references/krds/DESIGN.md +245 -19
- package/web/references/kream/DESIGN.md +224 -359
- package/web/references/kurly/DESIGN.md +211 -533
- package/web/references/kyobobook/DESIGN.md +445 -0
- package/web/references/lablup/DESIGN.md +474 -0
- package/web/references/lamborghini/DESIGN.md +198 -360
- package/web/references/lemonbase/DESIGN.md +452 -0
- package/web/references/lguplus/DESIGN.md +259 -0
- package/web/references/likelion/DESIGN.md +283 -0
- package/web/references/line/DESIGN.md +396 -355
- package/web/references/linear.app/DESIGN.md +209 -562
- package/web/references/lotteon/DESIGN.md +386 -0
- package/web/references/lovable/DESIGN.md +255 -349
- package/web/references/makinarocks/DESIGN.md +242 -0
- package/web/references/maum-ai/DESIGN.md +423 -0
- package/web/references/medibloc/DESIGN.md +425 -0
- package/web/references/megabox/DESIGN.md +232 -0
- package/web/references/mercari/DESIGN.md +217 -434
- package/web/references/microsoft/DESIGN.md +234 -388
- package/web/references/mildang/DESIGN.md +411 -0
- package/web/references/millie/DESIGN.md +183 -504
- package/web/references/minimax/DESIGN.md +264 -322
- package/web/references/miricanvas/DESIGN.md +182 -355
- package/web/references/miro/DESIGN.md +234 -232
- package/web/references/mistral.ai/DESIGN.md +231 -314
- package/web/references/mixi/DESIGN.md +234 -0
- package/web/references/moin/DESIGN.md +445 -0
- package/web/references/mongodb/DESIGN.md +219 -316
- package/web/references/moreh/DESIGN.md +437 -0
- package/web/references/musinsa/DESIGN.md +184 -510
- package/web/references/mynavi/DESIGN.md +242 -0
- package/web/references/myrealtrip/DESIGN.md +169 -406
- package/web/references/naver/DESIGN.md +328 -499
- package/web/references/naverwebtoon/DESIGN.md +172 -395
- package/web/references/neosapience/DESIGN.md +441 -0
- package/web/references/nhn/DESIGN.md +169 -346
- package/web/references/nhncloud/DESIGN.md +185 -123
- package/web/references/nota/DESIGN.md +451 -0
- package/web/references/notion/DESIGN.md +271 -475
- package/web/references/nrise/DESIGN.md +417 -0
- package/web/references/ohouse/DESIGN.md +210 -549
- package/web/references/oliveyoung/DESIGN.md +217 -326
- package/web/references/ollama/DESIGN.md +241 -308
- package/web/references/onestore/DESIGN.md +248 -0
- package/web/references/palantir/DESIGN.md +256 -0
- package/web/references/panasonic/DESIGN.md +276 -0
- package/web/references/patternfly/DESIGN.md +259 -0
- package/web/references/payhere/DESIGN.md +438 -0
- package/web/references/pega/DESIGN.md +262 -0
- package/web/references/peoplefund/DESIGN.md +431 -0
- package/web/references/petfriends/DESIGN.md +428 -0
- package/web/references/pinkfong/DESIGN.md +199 -367
- package/web/references/pinterest/DESIGN.md +258 -308
- package/web/references/portone/DESIGN.md +446 -0
- package/web/references/poya/DESIGN.md +286 -0
- package/web/references/pozalabs/DESIGN.md +438 -0
- package/web/references/protopie/DESIGN.md +419 -0
- package/web/references/qraft/DESIGN.md +448 -0
- package/web/references/queenit/DESIGN.md +432 -0
- package/web/references/quotabook/DESIGN.md +449 -0
- package/web/references/rebellions/DESIGN.md +449 -0
- package/web/references/recruit/DESIGN.md +247 -0
- package/web/references/remember/DESIGN.md +202 -396
- package/web/references/resend/DESIGN.md +274 -348
- package/web/references/returnzero/DESIGN.md +460 -0
- package/web/references/sakura-internet/DESIGN.md +269 -0
- package/web/references/samsung/DESIGN.md +157 -359
- package/web/references/sandoll/DESIGN.md +445 -0
- package/web/references/sanity/DESIGN.md +241 -375
- package/web/references/saramin/DESIGN.md +465 -0
- package/web/references/scatterlab/DESIGN.md +412 -0
- package/web/references/selectstar/DESIGN.md +439 -0
- package/web/references/servicenow/DESIGN.md +289 -0
- package/web/references/shiftee/DESIGN.md +468 -0
- package/web/references/shinhanbank/DESIGN.md +161 -341
- package/web/references/shinhancard/DESIGN.md +208 -319
- package/web/references/sionic/DESIGN.md +454 -0
- package/web/references/sktelecom/DESIGN.md +310 -0
- package/web/references/socar/DESIGN.md +125 -32
- package/web/references/softbank/DESIGN.md +231 -0
- package/web/references/solapi/DESIGN.md +483 -0
- package/web/references/sony/DESIGN.md +234 -0
- package/web/references/soop/DESIGN.md +261 -0
- package/web/references/spacex/DESIGN.md +184 -323
- package/web/references/spotify/DESIGN.md +253 -394
- package/web/references/squeezebits/DESIGN.md +441 -0
- package/web/references/stayfolio/DESIGN.md +422 -0
- package/web/references/stripe/DESIGN.md +212 -491
- package/web/references/supabase/DESIGN.md +244 -316
- package/web/references/supertone/DESIGN.md +413 -0
- package/web/references/tabling/DESIGN.md +415 -0
- package/web/references/taishinbank/DESIGN.md +243 -0
- package/web/references/teamlab/DESIGN.md +240 -0
- package/web/references/teamsparta/DESIGN.md +472 -0
- package/web/references/tellingme/DESIGN.md +392 -0
- package/web/references/tesla/DESIGN.md +244 -427
- package/web/references/thsr/DESIGN.md +284 -0
- package/web/references/thumbtack/DESIGN.md +302 -0
- package/web/references/together.ai/DESIGN.md +257 -304
- package/web/references/toss/DESIGN.md +251 -593
- package/web/references/toss-securities/DESIGN.md +255 -178
- package/web/references/tossbank/DESIGN.md +195 -491
- package/web/references/toyota/DESIGN.md +238 -0
- package/web/references/tving/DESIGN.md +197 -245
- package/web/references/typed/DESIGN.md +413 -0
- package/web/references/uber/DESIGN.md +256 -333
- package/web/references/udn/DESIGN.md +250 -0
- package/web/references/upbit/DESIGN.md +145 -256
- package/web/references/upstage/DESIGN.md +211 -204
- package/web/references/uswds/DESIGN.md +287 -0
- package/web/references/vercel/DESIGN.md +236 -440
- package/web/references/vuno/DESIGN.md +413 -0
- package/web/references/wanted/DESIGN.md +215 -487
- package/web/references/weverse/DESIGN.md +437 -0
- package/web/references/wise/DESIGN.md +223 -231
- package/web/references/wisetracker/DESIGN.md +462 -0
- package/web/references/wooribank/DESIGN.md +245 -0
- package/web/references/yanolja/DESIGN.md +250 -419
- package/web/references/yeogiotte/DESIGN.md +235 -418
- package/web/references/zapier/DESIGN.md +256 -377
- package/web/references/zendesk/DESIGN.md +288 -0
- package/web/references/zigzag/DESIGN.md +200 -621
- package/dist/install-skills-7UUDOLG2.js +0 -734
- 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: "#
|
|
7
|
+
primary_color: "#72e3ad"
|
|
8
8
|
logo:
|
|
9
9
|
type: simpleicons
|
|
10
10
|
slug: supabase
|
|
11
|
-
verified: "2026-
|
|
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:
|
|
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:
|
|
21
|
-
extracted: "2026-
|
|
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: "#
|
|
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: {
|
|
39
|
-
display
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
-
#
|
|
128
|
+
# Supabase — Design Reference
|
|
63
129
|
|
|
64
130
|
## 1. Visual Theme & Atmosphere
|
|
65
131
|
|
|
66
|
-
Supabase
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
140
|
+
## 2. Color Palette & Roles
|
|
73
141
|
|
|
74
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
###
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
|
134
|
-
|
|
135
|
-
|
|
|
136
|
-
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
|
141
|
-
|
|
142
|
-
|
|
|
143
|
-
|
|
|
144
|
-
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
-
|
|
160
|
-
-
|
|
161
|
-
-
|
|
162
|
-
-
|
|
163
|
-
-
|
|
164
|
-
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
-
|
|
170
|
-
-
|
|
171
|
-
- Border: `1px solid
|
|
172
|
-
-
|
|
173
|
-
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
-
|
|
177
|
-
-
|
|
178
|
-
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
-
|
|
185
|
-
- Border: `1px solid
|
|
186
|
-
- Radius:
|
|
187
|
-
-
|
|
188
|
-
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
-
|
|
198
|
-
-
|
|
199
|
-
-
|
|
200
|
-
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
-
|
|
208
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
259
|
-
-
|
|
260
|
-
-
|
|
261
|
-
-
|
|
262
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
+
Supabase’s official architecture and contribution pages use direct, technically specific language: Postgres stays explicit, open source is an operating choice, and the community invitation is practical—contribute 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
|
|
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
|
|
341
|
-
2. **
|
|
342
|
-
3. **
|
|
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
|
-
*
|
|
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
|
-
**
|
|
353
|
-
|
|
354
|
-
**
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
**
|
|
385
|
-
**Tier
|
|
386
|
-
**
|
|
387
|
-
**
|
|
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
|