Supabase Design System
Dark · Generated 12/04/2026 · 21 colors · 24 type tokens · 22 spacing steps · 7 motion tokens
v1.0.0
Color Palette
Background Colors — 11 tokens
Pure Black
#000000
App Shell
#0F0F0F
Canvas Dark
#121212
Page Background
#171717
Surface Hover
#1F1F1F
Card Background
#242424
Brand Tint Subtle
#002918
Brand Tint
#006239
Elevated Surface
#2E2E2E
Mid Tone
#898989
Brand Primary
#3ECF8E
Text Colors — 5 tokens
Text Disabled
#4D4D4D
Text Secondary
#B4B4B4
Text Primary
#FAFAFA
Text Pure White
#FFFFFF
Brand Text
#00C573
Border Colors — 4 tokens
Border Subtle
#292929
Border Muted
#363636
Border Default
#393939
Brand Border
rgba(62,207,142,0.3)
Fill Color — 1 token
Fill Base
#212121
Typography
Base Font · Inter / Circular
Circular
The quick brown fox jumps over the lazy dog
Regular · 400 Medium · 500
Mono Font · Source Code Pro
Source Code Pro
const { data } = await supabase.from('users').select('*')
Regular · 400 Medium · 500
Heading
Display Hero · 72px · Medium · line-height: 72px · letter-spacing: −0.16px
Build in a weekend, scale to millions.
Heading XL · 36px · Medium · line-height: 43.2px
The open source Firebase alternative
Heading Large · 24px · Medium · line-height: 32px
Start your project with a Postgres database, Authentication, instant APIs, Edge Functions, Realtime, Storage, and Vector embeddings.
Body Large · 18px · Regular · line-height: 28px
Every Supabase project is a full Postgres database, trusted by millions of developers.
Body Default · 16px · Regular · line-height: 24px
Last updated 2 minutes ago · 12,480 rows affected
Body Small · 14px · Regular · line-height: 19.25px
POSTGRES · REALTIME · STORAGE
Caption / Label · 12px · Medium · line-height: 16px · letter-spacing: 1.2px
Line Heights — 11 tokens
Tight
14px
Snug
16px
Normal
19.25px
Relaxed
20px
Loose
24px
Spacious
28px
Open
32px
Airy
40px
Heading Airy
43.2px
Heading XL
45px
Display
72px
Letter Spacing — 2 tokens
Supabase Platform
Tight Tracking
−0.16px · headings, display text
POSTGRES · REALTIME
Wide Tracking
1.2px · uppercase labels, micro copy
Spacing
Spacing Scale
22 tokens — 1px → 230.5px
1
2
4
6
8
10
12
16
20
24
32
40
48
54.5
61.2
64
90
96
112
119
128
230.5
Borders
Border Radii
Small
6px
Medium
8px
Large
11px
X-Large
12px
2X-Large
16px
Pill / Full
9999px
Border Width
Hairline
1px · ×991
The single border width used throughout the system. Applied universally — cards, inputs, dividers, table rows — via --border-width-hairline: 1px.
Shadows / Elevation
Shadow Tokens
3 tokens
Flat
×16
All layers fully transparent — no visible shadow; relies on border for definition
Raised
×1
rgba(0,0,0,.1) 4px 6px −1px · rgba(0,0,0,.1) 2px 4px −2px · cards, dropdowns
Floating
×1
rgba(0,0,0,.1) 10px 15px −3px · rgba(0,0,0,.1) 4px 6px −4px · modals, panels
Z-Index
LayerValueUsage
Background-10Background decorations, canvas layers
Base1Base content layer
Navigation10Sticky headers, navigation
Popover20Dropdowns, popovers, tooltips
Overlay30Overlays, sidebars, drawers
Dialog40Modals, top-level dialogs, toasts
Breakpoints
📱
Mobile Threshold
600px
Single breakpoint — layouts adapt at 600px viewport width (XS / mobile threshold)
Opacity
Opacity Tokens
5 tokens — 0.1 → 0.8
Ghost
10% · ×12
Faint
20% · ×52
Dim
50% · ×33
Muted
70% · ×2
Strong
80% · ×2
Accessibility — Contrast Ratios
WCAG 2.1 thresholds: AA ≥ 4.5:1 (normal text) · AA Large ≥ 3:1 (large/bold) · AAA ≥ 7:1
Text ColorBackground ColorRatioWCAG Rating
Text PrimaryPage Background17.18:1AAA
Text PrimaryPure Black20.12:1AAA
Text PrimaryMid Tone3.35:1AA Large
Text PrimaryCanvas Dark17.95:1AAA
Text SecondaryPage Background8.65:1AAA
Text SecondaryPure Black10.13:1AAA
Text SecondaryMid Tone1.69:1Fail
Text SecondaryElevated Surface6.55:1AA
Text SecondaryCanvas Dark9.04:1AAA
Text DisabledElevated Surface1.61:1Fail
Text DisabledPure Black2.48:1Fail
Text DisabledMid Tone2.42:1Fail
Text DisabledPage Background2.12:1Fail
Text Pure WhiteElevated Surface13.58:1AAA
Text Pure WhitePure Black21:1AAA
Text Pure WhiteMid Tone3.5:1AA Large
Text Pure WhitePage Background17.93:1AAA
Brand TextElevated Surface5.97:1AA
Brand TextPure Black9.23:1AAA
Brand TextMid Tone1.54:1Fail
Brand TextPage Background7.88:1AAA
Brand TextCanvas Dark8.24:1AAA
CSS Variables Reference
Background Colors 11 tokens
Pure Black--color-black#000000
App Shell--color-dark-gray-9#0F0F0F
Canvas Dark--color-dark-gray-4#121212
Page Background--color-dark-gray-3#171717
Surface Hover--color-dark-gray-8#1F1F1F
Card Background--color-dark-gray-6#242424
Brand Tint Subtle--color-dark-cyan-2#002918
Brand Tint--color-dark-cyan#006239
Elevated Surface--color-dark-gray#2E2E2E
Mid Tone--color-mid-gray#898989
Brand Primary--color-cyan#3ECF8E
Text & Border Colors 9 tokens
Text Disabled--color-dark-gray-2#4D4D4D
Text Secondary--color-light-gray#B4B4B4
Text Primary--color-white#FAFAFA
Text Pure White--color-white-2#FFFFFF
Brand Text--color-cyan-3#00C573
Border Subtle--color-dark-gray-10#292929
Border Muted--color-dark-gray-7#363636
Border Default--color-dark-gray-5#393939
Brand Border--color-cyan-2rgba(62,207,142,.3)
Fill Base--color-dark-gray-11#212121
Typography 24 tokens
Base Font--font-family-baseInter / Circular
Mono Font--font-family-2Source Code Pro
Regular--font-weight-regular400
Medium--font-weight-medium500
Caption / Label--font-size-2xs12px
Body Small--font-size-xs14px
Body Default--font-size-sm16px
Body Large--font-size-base18px
Heading Large--font-size-lg24px
Heading XL--font-size-xl36px
Display Hero--font-size-2xl72px
Tight Tracking--letter-spacing-tight−0.16px
Wide Tracking--letter-spacing-normal1.2px
Spacing 22 tokens
Space 1--space-11px
Space 2--space-22px
Space 3--space-34px
Space 4--space-46px
Space SM--space-58px
Space 6--space-610px
Space Gutter--space-812px
Space MD--space-1016px
Space 12--space-1220px
Space LG--space-1624px
Space XL--space-2032px
Section Gap--space-2440px
Block Gap--space-3248px
Layout 40--space-4054.5px
Layout 48--space-4861.2px
Page Padding--space-6464px
Section Inset--space-8090px
Section Padding--space-9696px
Layout 128--space-128112px
Layout 160--space-160119px
Layout 192--space-192128px
Hero Spacing--space-256230.5px
Borders & Radius 7 tokens
Hairline--border-width-hairline1px
Small--radius-sm6px
Medium--radius-md8px
Large--radius-lg11px
X-Large--radius-xl12px
2X-Large--radius-2xl16px
Pill / Full--radius-full9999px
Motion, Opacity & Layers 18 tokens
Micro-interaction--duration-instant75ms
Hover / Focus--duration-fast150ms
Panel Open--duration-normal200ms
Drawer / Modal--duration-slow300ms
Page Transition--duration-slower750ms
Skeleton Load--duration-duration-61s
Ease Out--easing-ease-outease-out
Breakpoint XS--breakpoint-xs600px
Ghost--opacity-1010%
Faint--opacity-2020%
Dim--opacity-5050%
Muted--opacity-7070%
Strong--opacity-8080%
Background Layer--z-1-10
Base Layer--z-21
Navigation--z-310
Popover--z-420
Overlay--z-530
Dialog--z-640
Design System Preview · Supabase (Dark) · Generated 12/04/2026 · 21 color tokens · 7 font-size · 2 font-family · 2 font-weight · 11 line-height · 2 letter-spacing · 22 spacing · 6 radius · 1 border-width · 3 shadow · 6 duration · 1 easing · 6 z-index · 1 breakpoint · 5 opacity