DESIGN.md · Analysis

Supabase

supabase.com · 30 Aug 2026 · 47 colors · Manrope, Inter

Supabase

The Postgres Development Platform — a backend-as-a-service that empowers developers to build production-grade applications with a managed Postgres database, Authentication, instant APIs, Realtime, Edge Functions, Storage, and Vector embeddings.

Colors

surface#ffffff
surface-dim#f8f8f8
surface-bright#ffffff
surface-container-lowest#fafafa
surface-container-low#f5f5f5
surface-container#efefef
surface-container-high#e8e8e8
surface-container-highest#e0e0e0
on-surface#0b0e0d
on-surface-variant#525252
inverse-surface#1c1c1c
inverse-on-surface#f5f5f5
outline#a0a0a0
outline-variant#d0d0d0
surface-tint#3ecf8e
primary#3ecf8e
on-primary#ffffff
primary-container#c8f7e8
on-primary-container#0b3d2e
inverse-primary#72e3ad
secondary#6b35dc
on-secondary#ffffff
secondary-container#eaddff
on-secondary-container#21005d
tertiary#bda4ff
on-tertiary#ffffff
tertiary-container#ede7ff
on-tertiary-container#3d0099
error#fa2733
on-error#ffffff
error-container#fce4e6
on-error-container#5d0a0f
primary-fixed#c8f7e8
primary-fixed-dim#72e3ad
on-primary-fixed#002018
on-primary-fixed-variant#0b3d2e
secondary-fixed#eaddff
secondary-fixed-dim#b8a3ff
on-secondary-fixed#21005d
on-secondary-fixed-variant#4a2a7f
tertiary-fixed#ede7ff
tertiary-fixed-dim#d0bcff
on-tertiary-fixed#1f0066
on-tertiary-fixed-variant#5a3fa0
background#ffffff
on-background#0b0e0d
surface-variant#f0f0f0

Typography

display
fontFamily: Manrope · fontSize: 60px · fontWeight: 700 · lineHeight: 68px · letterSpacing: -0.04em
headline-lg
fontFamily: Manrope · fontSize: 46px · fontWeight: 500 · lineHeight: 54px · letterSpacing: -0.02em
headline-md
fontFamily: Manrope · fontSize: 32px · fontWeight: 600 · lineHeight: 40px · letterSpacing: -0.01em
title-lg
fontFamily: Inter · fontSize: 20px · fontWeight: 600 · lineHeight: 28px · letterSpacing: 0em
body-lg
fontFamily: Inter · fontSize: 18px · fontWeight: 400 · lineHeight: 28px · letterSpacing: 0em
body-md
fontFamily: Inter · fontSize: 16px · fontWeight: 400 · lineHeight: 24px · letterSpacing: 0em
label-md
fontFamily: Inter · fontSize: 14px · fontWeight: 500 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: Inter · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.02em

Design guidance

Overview

Supabase is a backend-as-a-service platform that democratizes database-driven development by wrapping Postgres in a modern, developer-friendly interface. The design aesthetic is 'Functional Minimalism with Accent Vitality'—a clean, light-dominant interface punctuated by a vibrant emerald-green accent (#3ecf8e) that signals action, progress, and the energy of rapid development. The brand serves developers and technical founders who value speed, transparency, and open-source principles. The UI evokes clarity and confidence: every interaction feels direct and purposeful, never cluttered. Voice: direct, encouraging, technical without jargon. Example: 'Start your project with a Postgres database. Add Authentication, Data APIs, Edge Functions, Realtime Data, Storage, and Vector embeddings.'

Colors

The color system is anchored in a light, neutral foundation (surface: #ffffff, on-surface: #0b0e0d) that maximizes readability and reduces cognitive load. Primary (#3ecf8e) is a saturated, cool-toned emerald used exclusively for call-to-action buttons, active states, and brand-critical interactions—it appears on 'Start your project' CTAs and the header logo. Secondary (#6b35dc) is a deep purple reserved for secondary actions and accent highlights; tertiary (#bda4ff) is a lighter purple for supporting UI elements and badges. The surface stack progresses from #ffffff (base) through #f5f5f5 (container-low) to #e0e0e0 (container-highest), providing subtle visual separation without harsh contrast. Outline (#a0a0a0) and outline-variant (#d0d0d0) define borders and dividers. Error (#fa2733) is a

Typography

The type system pairs Manrope (headlines, display) with Inter (body, labels), creating a modern, technical personality. Manrope's geometric, open letterforms convey precision and forward momentum; Inter's neutral, highly legible design ensures clarity at all scales. Display (60px, 700 weight, -0.04em tracking) anchors hero sections; headline-lg (46px, 500 weight) is used for main page titles like 'Build in a weekend / Scale to millions'; body-md (16px, 400 weight) is the default for paragraph text and descriptions. Label-md (14px, 500 weight) is applied to buttons and UI labels with 0.01em tracking for subtle emphasis. All headlines use negative letter-spacing (-0.02em to -0.04em) to tighten the visual weight and reinforce the 'technical precision' brand voice. On small labels over busy ba

Layout

The layout uses a 12-column grid with a max-width of 1280px, creating a fluid, responsive structure that adapts from mobile (single column) to desktop (multi-column). The gutter is 24px, providing consistent breathing room between sections. Hero sections use lg spacing (40px) for vertical separation between the headline, subheading, and CTA buttons. Feature cards are arranged in a 3-column grid on desktop, collapsing to 1–2 columns on tablet and mobile. Container padding is md (24px) on desktop, sm (12px) on mobile. White-space is generous: section breaks use lg spacing (40px), card padding is md (24px), and internal element spacing is sm (12px). This rhythm creates a calm, uncluttered reading experience that guides the eye naturally from hero to features to CTAs.

Elevation & Depth

Depth is conveyed through subtle shadows and border treatments rather than dramatic layering. Base cards use elevation-sm (0 1px 2px rgba(0, 0, 0, 0.06)) to define boundaries without visual weight. On hover, cards elevate to elevation-md (0 4px 12px rgba(0, 0, 0, 0.1)), signaling interactivity. Modals and overlays use elevation-lg (0 16px 40px rgba(0, 0, 0, 0.12)). All cards have a 1px solid border in outline-variant (#d0d0d0) to reinforce structure. Buttons do not cast shadows in their default state; on hover, primary buttons receive a subtle glow: box-shadow: 0 4px 12px rgba(62, 207, 142, 0.

Shapes

The shape philosophy is 'Geometric Clarity'—rounded corners are used sparingly and consistently to soften technical interfaces without sacrificing precision. Buttons and inputs use rounded-DEFAULT (6px), a subtle curve that feels modern and approachable. Cards and larger containers use rounded-md (8px) for slightly more visual softness. Badges and pills use rounded-full (9999px) for maximum roundness, signaling secondary or supplementary information. No sharp corners (0px radius) are used on interactive elements; this reinforces the brand's friendly, developer-first positioning. The 6px defaul

Components

Action Elements Buttons are the primary interaction mechanism. The primary button uses backgroundColor: {colors.primary} (#3ecf8e), textColor: white, padding: 8px 16px, height: 40px, rounded: 6px, and label-md typography (14px, 500 weight). On hover, the background shifts to #2eb87d with a subtle glow (box-shadow: 0 4px 12px rgba(62, 207, 142, 0.15)). Secondary buttons have a transparent background with a 1px outline-variant border, textColor: on-surface, and the same padding and height. Tertiary/ghost buttons omit the border entirely. All buttons use a 200ms transition on background-color and box-shadow for smooth feedback.

Containers & Surfaces Cards are the primary container for grouped content. Standard cards use backgroundColor: white, rounded: 8px, padding: 24px, and a 1px b

Do's and Don'ts

**Do**

  • Do use primary (#3ecf8e) exclusively for CTAs, active states, and brand-critical interactions—never for decorative elements.
  • Do maintain the lg spacing (40px) between major sections to create visual breathing room and guide the reader's eye.
  • Do pair Manrope headlines with Inter body text to reinforce the technical-yet-approachable brand voice.
  • Do apply negative letter-spacing (-0.02em to -0.04em) on all headlines to tighten visual weight and convey precision.
  • Do use the surface stack (surface, surface-container-low, surface-container-high) to create depth without harsh contrast shifts.

**Don't**

  • Don't use secondary (#6b35dc) or tertiary (#bda4ff) as primary action colors—they dilute the emerald accent's impact.
  • Don't apply shadows stronger than elevation-lg (0 16px 40px rgba(0, 0, 0, 0.12)) on standard UI elements; this creates visual noise.
  • Don't use rounded corners larger than 8px on cards or containers—it conflicts with the 'geometric clarity' philosophy.
  • Don't mix Manrope and Inter within a single headline; choose one typeface per text block to maintain visual hierarchy.
  • Don't reduce padding below sm (12px) on interactive elements; this compromises touch targets and readability on mobile.