light · minimal · dense · clean · editorial · fintech

Coinbase

Institutional-grade calm — pure white canvas, a single Coinbase Blue, and Coinbase Display set at weight 400 instead of 700.

By webdesignhot · www.coinbase.com
$ npx design-md add coinbase
Learn more about the CLI
Compare to…
try on →
1440 × 900
mobile · 390 × 844
Tokens design.md/v1.5
  • bg #ffffff
  • bg-dark #0a0b0d
  • surface-soft #f7f7f7
  • surface-strong #eef0f3
  • surface-card #ffffff
  • surface-dark-elevated #16181c
  • text AAA · 19.7 #0a0b0d
  • text-body #5b616e
  • text-muted #7c828a
  • text-subtle #a8acb3
  • brand AA · 5.8 #0052ff
  • brand-active #003ecc
  • brand-disabled #a8b8cc
  • on-brand #ffffff
  • on-dark #ffffff
  • on-dark-soft #a8acb3
  • border — · 1.3 #dee1e6
  • border-soft #eef0f3
  • semantic-up #05b169
  • semantic-down #cf202f
  • accent-yellow #f4b000
  • focus-ring rgba(0,82,255,0.30)
Typography
Ship faster than ever.
display-mega "Coinbase Display" 80px w400 -2px
Ship faster than ever.
display-xl "Coinbase Display" 64px w400 -1.6px
Ship faster than ever.
display-lg "Coinbase Display" 52px w400 -1.3px
Ship faster than ever.
display-md "Coinbase Display" 44px w400 -1px
Ship faster than ever.
display-sm "Coinbase Sans" 36px w400 -0.5px
The quick brown fox jumps over the lazy dog.
title-lg "Coinbase Sans" 32px w400 -0.4px
The quick brown fox jumps over the lazy dog.
title-md "Coinbase Sans" 18px w600 0
Ship faster than ever.
number-display "Coinbase Mono" 18px w500 0
The quick brown fox jumps over the lazy dog.
title-sm "Coinbase Sans" 16px w600 0
The quick brown fox jumps over the lazy dog.
body-md "Coinbase Sans" 16px w400 0
The quick brown fox jumps over the lazy dog.
body-strong "Coinbase Sans" 16px w700 0
The quick brown fox jumps over the lazy dog.
button "Coinbase Sans" 16px w600 0
The quick brown fox jumps over the lazy dog.
body-sm "Coinbase Sans" 14px w400 0
The quick brown fox jumps over the lazy dog.
nav-link "Coinbase Sans" 14px w500 0
OUR DESIGN SYSTEM
caption "Coinbase Sans" 13px w400 0
OUR DESIGN SYSTEM
caption-strong "Coinbase Sans" 12px w600 0
npx design-md add linear
code-micro "Coinbase Mono" 12px w400 0
Spacing
Radius
  • none 0px
  • xs 4px
  • sm 8px
  • md 12px
  • lg 16px
  • xl 24px
  • pill 100px
  • full 9999px
Components
Text link →
Card preview A complete kit — everything your product needs. Hero, pricing, FAQ, dashboard, docs — every layout your product needs.
New Stable v1.0
Export 4 formats · paste-ready
Tailwind

theme.extend block for tailwind.config.js

tailwind.config.js
CSS variables

:root { --bg, --text, --brand, … } you can paste anywhere

design.css
DTCG JSON

W3C Design Tokens Community Group format

design.tokens.json
Figma Variables

Importable into Figma → Variables → Import

figma-variables.json
The file
---
name: Coinbase
tagline: Institutional-grade calm — pure white canvas, a single Coinbase Blue, and Coinbase Display set at weight 400 instead of 700.
author: webdesignhot
source_url: https://www.coinbase.com
spec: design.md/v1.5
quality: curated
featured: false
categories: [fintech]
tags: [light, minimal, dense, clean, editorial, fintech]
preview_swatch: ['#ffffff', '#0052ff', '#0a0b0d']
related: [stripe, binance, kraken]
description: 'Coinbase''s marketing surfaces read like a quietly-confident financial-services brand that happens to trade crypto. The base canvas is pure white; Coinbase Blue (`#0052ff`) is the single brand voltage, used scarcely on primary CTAs, signature glyphs, and inline accent moments. Type runs Coinbase''s licensed Coinbase Display (display) and Coinbase Sans (body) at modest weights — display sits at weight 400 not 700, signalling editorial calm rather than fintech-bombastic. Page rhythm rotates between bright white sections, soft gray elevation bands, and full-bleed dark editorial heroes (`#0a0b0d`) carrying product-UI mockup cards. Iconography is geometric and minimal; depth comes from card-on-card layering, never decorative shadows.'

colors:
  bg: '#ffffff'                # canvas — pure white default page
  bg-dark: '#0a0b0d'           # surface-dark — full-bleed editorial heroes, footer
  surface-soft: '#f7f7f7'      # bright neutral elevation band
  surface-strong: '#eef0f3'    # secondary button bg, soft card surface
  surface-card: '#ffffff'      # default card surface (white-on-white via border)
  surface-dark-elevated: '#16181c'  # elevated cards inside dark heroes
  text: '#0a0b0d'              # ink — primary headlines, strong body
  text-body: '#5b616e'         # body — running paragraph text
  text-muted: '#7c828a'        # captions, table headers
  text-subtle: '#a8acb3'       # disabled, on-dark-soft, lowest hierarchy
  brand: '#0052ff'             # Coinbase Blue — single brand voltage
  brand-active: '#003ecc'      # primary-active — pressed/hover-darker
  brand-disabled: '#a8b8cc'    # primary-disabled — desaturated blue
  on-brand: '#ffffff'          # white-on-blue CTAs
  on-dark: '#ffffff'           # white text on dark surfaces
  on-dark-soft: '#a8acb3'      # muted text on dark surfaces
  border: '#dee1e6'            # hairline — default 1px border
  border-soft: '#eef0f3'       # hairline-soft — softer divider
  semantic-up: '#05b169'       # price-up green
  semantic-down: '#cf202f'     # price-down red
  accent-yellow: '#f4b000'     # rare accent — used on educational badges
  focus-ring: 'rgba(0,82,255,0.30)'

typography:
  display:
    family: '"Coinbase Display", -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif'
    weights: [400]
    opentype-features: ['ss01']
  body:
    family: '"Coinbase Sans", -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif'
    weights: [400, 500, 600, 700]
  mono:
    family: '"Coinbase Mono", "JetBrains Mono", "IBM Plex Mono", monospace'
    weights: [400, 500]
    opentype-features: ['tnum', 'zero']
  scale:
    display-mega:  { size: 80, weight: 400, lineHeight: 1.00, tracking: '-2px',     family: display }
    display-xl:    { size: 64, weight: 400, lineHeight: 1.00, tracking: '-1.6px',   family: display }
    display-lg:    { size: 52, weight: 400, lineHeight: 1.00, tracking: '-1.3px',   family: display }
    display-md:    { size: 44, weight: 400, lineHeight: 1.09, tracking: '-1px',     family: display }
    display-sm:    { size: 36, weight: 400, lineHeight: 1.11, tracking: '-0.5px',   family: body }
    title-lg:      { size: 32, weight: 400, lineHeight: 1.13, tracking: '-0.4px',   family: body }
    title-md:      { size: 18, weight: 600, lineHeight: 1.33, tracking: '0',        family: body }
    title-sm:      { size: 16, weight: 600, lineHeight: 1.25, tracking: '0',        family: body }
    body-md:       { size: 16, weight: 400, lineHeight: 1.50, tracking: '0',        family: body }
    body-strong:   { size: 16, weight: 700, lineHeight: 1.50, tracking: '0',        family: body }
    body-sm:       { size: 14, weight: 400, lineHeight: 1.50, tracking: '0',        family: body }
    caption:       { size: 13, weight: 400, lineHeight: 1.50, tracking: '0',        family: body }
    caption-strong: { size: 12, weight: 600, lineHeight: 1.50, tracking: '0',        family: body }
    number-display: { size: 18, weight: 500, lineHeight: 1.40, tracking: '0',        family: mono, opentype: 'tnum, zero' }
    button:        { size: 16, weight: 600, lineHeight: 1.15, tracking: '0',        family: body }
    nav-link:      { size: 14, weight: 500, lineHeight: 1.40, tracking: '0',        family: body }
    code-micro:    { size: 12, weight: 400, lineHeight: 1.40, tracking: '0',        family: mono }

radius:
  none: 0
  xs: 4
  sm: 8
  md: 12
  lg: 16
  xl: 24
  pill: 100
  full: 9999

spacing:
  base: 4
  scale: { xxs: 4, xs: 8, sm: 12, base: 16, md: 20, lg: 24, xl: 32, xxl: 48, section: 96 }

layout:
  page-width: 1200
  prose-width: 720
  header-height: 64

components:
  button-primary:        { bg: brand, text: on-brand, padding: '12px 20px', height: 44, radius: pill, font: button }
  button-pill-cta:       { bg: brand, text: on-brand, padding: '16px 32px', height: 56, radius: pill, font: button }
  button-secondary-light: { bg: surface-strong, text: text, padding: '12px 20px', height: 44, radius: pill }
  button-secondary-dark: { bg: surface-dark-elevated, text: on-dark, padding: '12px 20px', height: 44, radius: pill }
  button-outline-on-dark: { bg: transparent, text: on-dark, border: '1px solid on-dark', padding: '11px 19px', height: 44, radius: pill }
  button-tertiary-text:  { bg: transparent, text: brand, font: button }
  hero-band-light:       { bg: bg, text: text, padding: section, font: display-mega }
  hero-band-dark:        { bg: bg-dark, text: on-dark, padding: section, font: display-mega }
  product-ui-card-dark:  { bg: surface-dark-elevated, text: on-dark, radius: xl, padding: lg }
  product-ui-card-light: { bg: bg, border: '1px solid border', radius: xl, padding: lg }
  card-feature:          { bg: surface-soft, radius: lg, padding: lg }
  card-asset-row:        { bg: bg, border: '1px solid border-soft', radius: sm, padding: '16px 24px' }
  badge-pill:            { bg: surface-strong, text: text, radius: pill, padding: '6px 12px' }
  input-text:            { bg: bg, border: '1px solid border', radius: sm, padding: '12px 16px', height: 44 }
  top-nav-light:         { bg: bg, text: text, height: 64, font: nav-link }
  top-nav-dark:          { bg: bg-dark, text: on-dark, height: 64, font: nav-link }
  footer-dark:           { bg: bg-dark, text: on-dark-soft, padding: '64px 0', font: body-sm }

motion:
  ease-standard: 'cubic-bezier(0.4, 0, 0.2, 1)'
  ease-emphasized: 'cubic-bezier(0.2, 0, 0, 1)'
  duration-fast: 120
  duration-standard: 200
  duration-slow: 320
  reduced-motion: 'respects prefers-reduced-motion: reduce — hover lifts and asset-row fades collapse to opacity-only'

breakpoints:
  mobile: 640
  tablet: 1024
  desktop: 1280
  wide: 1536

shadows:
  ambient: 'rgba(0,0,0,0.04) 0 1px 2px'
  standard: 'rgba(0,0,0,0.06) 0 4px 12px'
  elevated: 'rgba(0,0,0,0.08) 0 16px 32px -8px'
  ring: '0 0 0 3px rgba(0,82,255,0.30)'

accessibility:
  contrast-text-on-bg: 17.9
  contrast-text-on-brand: 5.6
  contrast-body-on-bg: 7.4
  focus-ring: '3px solid rgba(0,82,255,0.30)'
  reduced-motion-honored: true

dark-mode: dual
---

## 1. Visual Theme & Atmosphere

Coinbase reads like an institutional bank that quietly happens to trade crypto. The base canvas is **pure white** (`#ffffff`) — not paper-cream, not off-white — and that pure white commits to financial-services calm rather than crypto-native exuberance. Onto that floor the system places a single brand voltage: **Coinbase Blue** (`#0052ff`), used scarcely on primary CTAs, signature glyphs, and inline accent moments. The blue is saturated but never neon; sits adjacent to navy without becoming corporate.

Type is the system's clearest editorial signal. Coinbase Display sits at **weight 400 not 700** — the headlines feel light, calm, almost magazine-like. An 80px `display-mega` at weight 400 with -2px tracking reads as confident editorial, not fintech-bombastic. Coinbase Sans handles body and tighter title roles at 400–700; Coinbase Mono shows up only on tabular numerical data (price tickers, ledger rows).

Page rhythm rotates three surface modes:
1. **White editorial sections** — the default. Hero, feature grids, product breakdowns.
2. **Soft gray elevation bands** (`#f7f7f7`) — used to separate dense feature blocks from running editorial.
3. **Full-bleed dark heroes** (`#0a0b0d`) — used at the top of product narratives, carrying product-UI mockup cards rendered in `#16181c`. The footer also uses this dark mode.

Decorative shadows are absent. Cards stack with a single 1px hairline (`#dee1e6`) or a one-step surface jump from `#ffffff` to `#f7f7f7`. The system trusts contrast and white space rather than depth tricks. Iconography is geometric and minimal — hairline weight, 24×24 grid.

**Key Characteristics:**
- Pure white canvas (`#ffffff`) — institutional calm, never paper-cream
- Single brand voltage: Coinbase Blue `#0052ff` for primary CTAs and signature glyphs
- Coinbase Display set at weight 400 (not 700) — editorial confidence, not fintech-bombastic
- Three surface modes: white default, soft-gray elevation band, full-bleed dark editorial hero
- Pill-shaped primary CTAs (100px radius) — friendly without becoming playful
- Product-UI mockup cards rendered inside dark heroes (`#16181c` on `#0a0b0d`)
- Geometric, hairline-weight iconography on a 24×24 grid
- Footer goes dark on every page — closes the surface in `#0a0b0d`

## 2. Color Palette & Roles

### Primary
- **Canvas** (`#ffffff`): Pure white default page floor.
- **Surface Dark** (`#0a0b0d`): Full-bleed editorial hero ground; footer surface.
- **Ink** (`#0a0b0d`): Primary headline and strong body text.
- **Brand** (`#0052ff`): The single Coinbase Blue. Primary CTAs, inline accent links, signature brand glyphs.

### Brand & Dark
- **Coinbase Blue** (`#0052ff`): Used scarcely on dark surfaces (white text on a blue pill is the "Get started" gesture). Used densely on light surfaces only on the primary CTA itself.
- **Brand Active** (`#003ecc`): Pressed/hover-darker variant.
- **Brand Disabled** (`#a8b8cc`): Desaturated blue used on disabled CTAs.
- **Surface Dark Elevated** (`#16181c`): The +1 step on dark — product-UI mockup cards inside dark heroes, secondary buttons on dark.

### Accent
- **Accent Yellow** (`#f4b000`): Rare accent used on educational/learn badges and a single "earn rewards" indicator. Treat as a single-vertical accent, not a system token.

### Interactive
- **Link** = Brand `#0052ff`, no underline by default
- **Hover** — primary CTA → `#003ecc`; text links gain underline
- **Active / Pressed** — Brand Active `#003ecc` on CTAs
- **Disabled** — `#a8b8cc` background or `#a8acb3` text
- **Selected** — light `#0052ff` 8% tint background with `#0052ff` text

### Neutral Scale
`#ffffff` (Canvas) → `#f7f7f7` (Surface Soft) → `#eef0f3` (Surface Strong / Hairline Soft) → `#dee1e6` (Border) → `#a8acb3` (Text Subtle / On-Dark Soft) → `#7c828a` (Text Muted) → `#5b616e` (Body) → `#16181c` (Surface Dark Elevated) → `#0a0b0d` (Ink / Surface Dark).

### Surface & Borders
- **Surface Soft** (`#f7f7f7`): Bright neutral elevation band — sits between white sections to break dense feature blocks.
- **Surface Strong** (`#eef0f3`): Secondary button bg; soft card surface; hairline-soft tone.
- **Surface Card** (`#ffffff`): Default card surface — white-on-white separated by 1px border.
- **Border** (`#dee1e6`): Default 1px hairline.
- **Border Soft** (`#eef0f3`): Softer divider on dense lists.

### Shadow Colors
Coinbase uses neutral-tinted shadows at very low opacity (`rgba(0,0,0,0.04–0.08)`). No brand-tinted shadows. Most cards use no shadow — they rely on hairlines and surface contrast.

### Semantic
- **Up** (`#05b169`): Price-up green; portfolio gain text
- **Down** (`#cf202f`): Price-down red; portfolio loss text
- **Info** = Brand `#0052ff` (no separate info token)
- **Warning / Error** — `#cf202f` reused for danger states; warning typically uses an icon + text colour pair rather than a dedicated bg

## 3. Typography Rules

### Font Family
- **Display** — `Coinbase Display`, fallback `-apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif`
- **Body** — `Coinbase Sans`, same fallback chain
- **Mono** — `Coinbase Mono`, fallback `"JetBrains Mono", "IBM Plex Mono", monospace`
- **OpenType** — `tnum` and `zero` enabled on every numerical surface (price tickers, asset rows, ledger amounts). `ss01` may be enabled on Coinbase Display for the alternate "C" used in the wordmark hero.

### Hierarchy

| Role | Font | Size | Weight | Line Height | Letter Spacing | OT Features | Notes |
|------|------|-----:|-------:|------------:|---------------:|-------------|-------|
| display-mega   | Coinbase Display | 80 | 400 | 1.00 | -2px    | default        | Wordmark heroes, brand-anchor pages |
| display-xl     | Coinbase Display | 64 | 400 | 1.00 | -1.6px  | default        | Main marketing h1 |
| display-lg     | Coinbase Display | 52 | 400 | 1.00 | -1.3px  | default        | Long-scroll section heads |
| display-md     | Coinbase Display | 44 | 400 | 1.09 | -1px    | default        | Card heroes, feature-block titles |
| display-sm     | Coinbase Sans    | 36 | 400 | 1.11 | -0.5px  | default        | Sub-section titles (drops to Sans here) |
| title-lg       | Coinbase Sans    | 32 | 400 | 1.13 | -0.4px  | default        | Editorial sub-titles |
| title-md       | Coinbase Sans    | 18 | 600 | 1.33 | 0       | default        | Card titles, modal headers |
| title-sm       | Coinbase Sans    | 16 | 600 | 1.25 | 0       | default        | Inline emphasis, list headers |
| body-md        | Coinbase Sans    | 16 | 400 | 1.50 | 0       | default        | Default running text |
| body-strong    | Coinbase Sans    | 16 | 700 | 1.50 | 0       | default        | Inline emphasis in body |
| body-sm        | Coinbase Sans    | 14 | 400 | 1.50 | 0       | default        | Secondary body, footer copy |
| caption        | Coinbase Sans    | 13 | 400 | 1.50 | 0       | default        | Meta labels, table headers |
| caption-strong | Coinbase Sans    | 12 | 600 | 1.50 | 0       | default        | Eyebrow tags, status pills |
| number-display | Coinbase Mono    | 18 | 500 | 1.40 | 0       | tnum, zero     | Price tickers, asset amounts |
| button         | Coinbase Sans    | 16 | 600 | 1.15 | 0       | default        | All CTAs |
| nav-link       | Coinbase Sans    | 14 | 500 | 1.40 | 0       | default        | Top nav |
| code-micro     | Coinbase Mono    | 12 | 400 | 1.40 | 0       | tnum, zero     | API key hints, transaction-ID truncation |

### Principles
- **Display weight 400, not 700** — the most distinctive Coinbase typographic choice. Headlines feel calm, magazine-like, institutional. Going to 700 reads as fintech-bombastic and breaks the brand
- **Tight negative tracking on display** (-1 to -2px) — words lock together at large sizes
- **Two families, no third** — Coinbase Display for display-md and above, Coinbase Sans for everything else. Coinbase Mono only on numbers
- **`tnum` enabled** on every number so portfolio columns align cleanly
- **No shouty section titles** — uppercase appears only on caption-strong eyebrow tags, and even there sparingly
- **Substitutes**: Inter at weight 400 with -2% letter-spacing approximates Coinbase Display. JetBrains Mono with `tnum` for Coinbase Mono.

## 4. Component Stylings

### Buttons

**`button-primary`** — Primary CTA. Background `#0052ff`, white text, 12px × 20px padding, 44px height, 100px pill radius. Hover → `#003ecc`. Disabled `#a8b8cc`. The signature pill shape signals "friendly but institutional" — softer than a 6px corner, less playful than a 24px chip.

**`button-pill-cta`** — Oversized version for hero "Get started" moments. 16px × 32px padding, 56px height, same blue. Used at the top of marketing pages and at the bottom of product narratives.

**`button-secondary-light`** — On light surfaces. Background `#eef0f3`, ink text, 100px pill, same dimensions as primary. Pairs with primary in dual-CTA stacks.

**`button-secondary-dark`** — On dark heroes. Background `#16181c`, white text, 100px pill.

**`button-outline-on-dark`** — Ghost variant for dark heroes. Transparent background, 1px white border, white text, 100px pill, 11px × 19px padding.

**`button-tertiary-text`** — Inline text link button. Background transparent, blue text, no underline by default.

### Cards

**`product-ui-card-dark`** — Product UI mockup card sitting inside a dark hero. Background `#16181c`, 24px radius, 24px padding. Often holds a faux app screenshot — portfolio chart, send-receive flow, asset detail.

**`product-ui-card-light`** — White card for light sections. Background `#ffffff`, 1px `#dee1e6` border, 24px radius, 24px padding.

**`card-feature`** — Soft-elevation card for feature explainers. Background `#f7f7f7`, 16px radius, 24px padding. Often holds an icon + title + 1–2 line body.

**`card-asset-row`** — Dense asset list row (BTC / ETH / SOL prices). Background white, 1px `#eef0f3` border, 8px radius, 16px × 24px padding. Asset icon + symbol + name on left; price + 24h change on right.

### Badges / Tags / Pills

**`badge-pill`** — Status pill (e.g., "New", "Featured", "+12.4%"). Background `#eef0f3`, ink text, 100px radius, 6px × 12px padding. Caption-strong type.

**`badge-trending-up`** — Asset gain pill. Background `rgba(5,177,105,0.10)`, `#05b169` text, 100px radius.

**`badge-trending-down`** — Asset loss pill. Background `rgba(207,32,47,0.10)`, `#cf202f` text, 100px radius.

### Inputs / Forms

**`input-text`** — Standard text input. Background white, 1px `#dee1e6` border, 8px radius, 12px × 16px padding, 44px height. Focus → 3px blue ring (`rgba(0,82,255,0.30)`) + border tightens to `#0052ff`.

**`input-amount`** — Crypto-amount input on send / buy flows. Larger 56px height, mono number-display type, currency selector inline on right.

### Navigation

**`top-nav-light`** — 64px tall, `#ffffff` background, 1px bottom hairline `#dee1e6`. Coinbase wordmark left, primary nav (Personal, Business, Developers, Company), right cluster (Sign in, Get started CTA).

**`top-nav-dark`** — `#0a0b0d` background, white menu items. Used on the small subset of dark-mode marketing chapters.

### Decorative

**`hero-band-light`** — Default white hero. Padding 96px vertical. Display-xl headline, body-md sub, dual CTA pair (primary + tertiary text).

**`hero-band-dark`** — Full-bleed dark hero. Background `#0a0b0d`, white display-mega headline, white sub-text. Used to anchor product narratives.

**`footer-dark`** — Dark footer that closes every page. Background `#0a0b0d`, `#a8acb3` link colour, 64px vertical padding. Multi-column link list (Personal, Business, Developers, Resources, Legal, Company).

## 5. Layout Principles

### Spacing System
- **Base unit**: 4px.
- **Tokens**: 4 / 8 / 12 / 16 / 20 / 24 / 32 / 48 / 96.
- **Section padding (vertical)**: 96px on marketing — generous airy rhythm.
- **Card internal padding**: 24px.
- **Gutters**: 24px between cards in 3-up grids.

### Grid & Container
- **Max content width**: ~1200px centred on marketing pages.
- **Editorial body**: 12-column grid with 24px gutters.
- **Asset list**: stacked rows, 100% width, ~720px max in narrative chapters.
- **Dual hero**: text on left 6 cols, product-UI mockup card on right 6 cols.

### Whitespace Philosophy
Coinbase is **airier than Binance**. Long-scroll marketing pages breathe — 96px section padding, 24px card gutters, 1.5 body line-height. The system trusts white space rather than dense color contrast.

### Section Cadence
White → dark hero → white → soft-gray elevation band → white → soft-gray → dark footer. The dark heroes punctuate the page with editorial gravity; the soft-gray bands break dense feature blocks without pulling attention.

## 6. Shapes & Radius

- **None** 0 — full-bleed band edges
- **xs** 4 — micro chips (rare)
- **sm** 8 — input fields, asset row cards
- **md** 12 — feature cards
- **lg** 16 — feature cards (alt)
- **xl** 24 — product-UI mockup cards (the signature radius for the most-photographed surface)
- **pill** 100 — every CTA, every status badge — Coinbase's friendliness signal
- **full** 9999 — circular avatars and asset icons

The pill at 100px (not 9999) is Coinbase's signature — a rectangle with very rounded ends rather than a perfect stadium. At small button sizes the 100px and 9999 are visually identical, but at large CTAs the 100px keeps a hint of straight horizontal edge that reads as "considered" rather than "blob."

## 7. Depth & Elevation

| Level | Treatment | Use |
|-------|-----------|-----|
| 0 Flat | No shadow, no border | Body sections, hero bands, footer |
| 1 Hairline | 1px `#dee1e6` | Inputs, asset rows, white-on-white cards |
| 2 Surface step | `#ffffff` → `#f7f7f7` ground | Soft-gray elevation bands separating dense features |
| 3 Card surface | `#16181c` on dark heroes (product-UI cards) | Product-UI mockup cards |
| 4 Subtle drop | `rgba(0,0,0,0.06) 0 4px 12px` | Floating UI affordances (modal triggers, tooltip anchors) |
| 5 Modal | `rgba(0,0,0,0.08) 0 16px 32px -8px` + scrim | Modal dialogs |
| Focus ring | `0 0 0 3px rgba(0,82,255,0.30)` | All keyboard focus |

**Shadow Philosophy**: Neutral-tinted, very low opacity. Coinbase rejects brand-tinted shadows — they would feel decorative on an institutional brand. Most cards use no shadow at all; depth comes from hairlines and surface steps. The sole brand-tinted shadow is the focus ring.

## 8. Interaction & Motion

- **Easing standard** — `cubic-bezier(0.4, 0, 0.2, 1)` for hover transitions and modal fades
- **Easing emphasized** — `cubic-bezier(0.2, 0, 0, 1)` for portfolio chart redraws and price-update flashes
- **Durations** — fast 120ms (hover), standard 200ms (modal), slow 320ms (page transition)
- **Hover** — primary CTA darkens to `#003ecc`. Asset rows gain a `#f7f7f7` background tint. Text links gain underline
- **Price flash** — gain → 400ms `rgba(5,177,105,0.10)` background fade; loss → `rgba(207,32,47,0.10)`
- **Card hover** — product-UI cards on light surfaces gain a subtle `rgba(0,0,0,0.06) 0 4px 12px` shadow on hover; on dark surfaces gain a +1 step background to `#1a1d22`
- **Page transition** — none on marketing; product surfaces use a fade-in at 200ms with no slide
- **Reduced motion** — `prefers-reduced-motion: reduce` collapses transitions to opacity-only; price flashes still fire but with no fade

## 9. Accessibility & A11y

- **Contrast**: Ink `#0a0b0d` on white = 17.9:1 (AAA). Body `#5b616e` on white = 7.4:1 (AAA). White on Coinbase Blue = 5.6:1 (AA at body, AA-Large at display). Up green / down red on white pass AA.
- **Focus indicator**: 3px solid `rgba(0,82,255,0.30)` ring on every interactive element. Border tightens to `#0052ff` on inputs.
- **ARIA patterns**: Asset list uses `role="list"` with `role="listitem"` rows. Send/buy flow modals use `role="dialog"` with focus trap. Currency selector uses combobox pattern.
- **Keyboard nav**: Top nav supports left/right arrow between menu items. Asset list rows are focusable; Enter activates the asset detail link. Skip-to-content link in the document head.
- **Screen reader hints**: Asset icons are `aria-hidden`; symbol + name carry the semantic label. Price-direction colour is supplemented with "+" / "-" prefix and screen-reader text "{N}% increase" / "decrease".
- **Reduced motion**: Honoured — see §8.

## 10. Responsive Behavior

| Breakpoint | Width | Key Changes |
|------------|------:|-------------|
| Mobile     | < 640  | Top nav → hamburger; hero display-mega 80 → 44px; product-UI mockup cards stack below text; asset rows full-width; CTAs full-width |
| Tablet     | 640–1024 | Top nav stays horizontal but condensed; mockup cards 50% width; feature grids 2-up |
| Desktop    | 1024–1280 | Full nav + secondary menu; mockup cards 6/12 cols beside text; feature grids 3-up |
| Wide       | > 1280 | More breathing room around the 1200px container; mockup card aspect ratios stretch wider |

**Touch Targets**: Primary CTAs render at minimum 44 × 44px. Asset row tap area extends across full row width. Tap-to-open modals avoid hover-only interactions.

**Collapsing Strategy**: Top nav → hamburger at mobile; menu opens as a full-screen sheet. Product-UI mockup cards stack below the text block on mobile (text first, then mockup). Asset list collapses to a single column with the right-side price inset below the asset symbol. Footer columns stack to single column with collapsible sub-sections.

**Image Behavior**: Product-UI mockup cards are responsive PNG/SVG — they shrink proportionally without art direction. Hero illustrations crop to centre on mobile.

## 11. Content & Voice

- **Tone** — calm, declarative, institutional. Avoids hyperbole and crypto-native jargon. "Earn rewards on your crypto" not "Stack sats fam"
- **Microcopy** — verbs are simple and action-anchored: "Get started", "Sign in", "Send", "Receive", "Buy", "Sell". The "Get started" CTA appears on virtually every marketing chapter
- **CTA verbs** — "Get started" (top of page, post-feature), "Sign in" (auth), "Buy crypto" (vertical-specific), "Learn more" (educational chapters)
- **Empty states** — short and supportive. The "no portfolio activity" state shows a single line "Your transactions will appear here" with no illustration
- **Error messages** — clear and remediable. "Insufficient balance — add funds to continue" not "Transaction failed"
- **Number formatting** — always `tnum`, locale-aware separators, currency symbol prefixed. Crypto amounts show 4–8 decimal places truncated by significant figures
- **Educational chapters** — the "Learn" surfaces use slightly warmer tone with the rare `#f4b000` accent yellow on "earn rewards" badges

## 12. Dark Mode & Theming

Coinbase is **dual-theme by intent** — like Binance, the choice is functional rather than user preference. White marketing surfaces with full-bleed dark heroes punctuating product narratives. The footer is always dark. The shared tokens (Coinbase Blue, semantic up/down, focus ring) thread through both modes unchanged.

A user-facing dark mode for the **product app** exists but is out of scope for this marketing-surface document. The marketing-mode dark surfaces use:
- `bg-dark` `#0a0b0d` (canvas)
- `surface-dark-elevated` `#16181c` (product-UI mockup cards)
- `on-dark` `#ffffff` (text)
- `on-dark-soft` `#a8acb3` (muted text)
- Border on dark = `rgba(255,255,255,0.08)`

## 13. Lineage & Influences

Coinbase's design language inherits from **institutional finance** (Schwab, Fidelity, BlackRock) more than from crypto-native peers. The pure white canvas, single-blue accent, and weight-400 display headlines are direct references to financial-services calm — the kind of brand a regulator or pension fund manager wouldn't second-guess. The choice to set Coinbase Display at weight 400 (against the fintech industry's love affair with 700-weight bombastic display) is the boldest decision in the system: it intentionally rejects the trading-floor aesthetic that Binance and FTX (RIP) committed to.

What it borrows: pill-shaped CTAs with the 100px radius signal "consumer-friendly but institutional" — a register Stripe and Wise also occupy. The dark-hero punctuation pattern is shared with Stripe and Linear marketing surfaces. What it rejects: gradients, glassmorphism, atmospheric depth, illustration-heavy heroes, and crypto-native iconography (rocket emojis, neon palettes, cyberpunk grids).

Influences:
- **Stripe** — Pill CTAs, dark-hero punctuation, single-brand-blue discipline. https://stripe.com
- **Schwab / Fidelity** — Institutional-finance calm, white canvas restraint. https://www.schwab.com
- **Linear** — Editorial dark heroes carrying product UI mockups. https://linear.app
- **Coinbase Display** custom typeface — built in-house to replace the previous Inter/Roboto-style stack with a calmer, magazine-influenced display.

## 14. Do's and Don'ts

### Do
- Keep Coinbase Display at weight 400 — the calm display weight is the brand
- Reserve `#0052ff` for primary CTAs and signature glyphs only — its scarcity is what makes it carry brand
- Use the 100px pill radius on every CTA — this is the friendliness signal
- Layer product-UI mockup cards on dark heroes (`#16181c` on `#0a0b0d`) — the signature presentation
- Use `tnum` on every number for column-aligned ledgers and price tickers
- Anchor sections at 96px vertical padding — the airy rhythm is institutional
- Close every page with a dark footer (`#0a0b0d`)
- Use semantic up/down only as text or pill colour, never as button background

### Don't
- Don't bolden display headlines to 700 — that breaks the brand into fintech-bombastic
- Don't introduce a second brand colour or use `#0052ff` decoratively
- Don't use rectangle CTAs (6–8px radius) — pills are mandatory
- Don't use brand-tinted shadows — depth comes from hairlines and surface steps
- Don't use crypto-native iconography (rocket emojis, neon glyphs)
- Don't use Coinbase Mono for prose — only for tabular numbers
- Don't soften the white canvas to cream — Coinbase commits to pure white
- Don't replace pill CTAs with chips on dense product surfaces — keep one CTA shape system-wide

## 15. Agent Prompt Guide

### Quick Color Reference
- Brand: Coinbase Blue `#0052ff`
- Brand pressed: `#003ecc`
- Canvas: `#ffffff`
- Surface dark: `#0a0b0d`
- Surface dark elevated: `#16181c`
- Text ink: `#0a0b0d`
- Body: `#5b616e`
- Border: `#dee1e6`
- Up: `#05b169`
- Down: `#cf202f`

### Example Component Prompts
- "Create a Coinbase hero band: pure white `#ffffff` background, 80px Coinbase Display weight 400 headline with -2px tracking in `#0a0b0d`, body-md sub in `#5b616e`, primary pill CTA `#0052ff` 100px radius 12×20 padding, tertiary text-link CTA in `#0052ff` to the right."
- "Design a dark editorial hero with product-UI mockup card: `#0a0b0d` bg, 96px section padding. Left column: 64px Coinbase Display weight 400 white headline with -1.6px tracking, body-md sub in `#a8acb3`, dual CTA (primary `#0052ff` pill + outline-on-dark white-bordered pill). Right column: product-UI mockup card on `#16181c` background, 24px radius, 24px padding, holding a faux portfolio chart."
- "Build an asset list row: white bg, 1px `#eef0f3` border, 8px radius, 16×24 padding. 32×32 asset icon + symbol + name on left; right side: number-display 18/500 Coinbase Mono price + trending pill (`rgba(5,177,105,0.10)` bg, `#05b169` text, 100px radius)."
- "Compose a feature card grid: 3-up on desktop with 24px gutters. Each card: `#f7f7f7` bg, 16px radius, 24px padding. 32px icon top, title-md `#0a0b0d`, body-md `#5b616e`."

### Iteration Guide
1. Start with white. Coinbase rejects paper-cream — pure `#ffffff` is the canvas
2. Use Coinbase Display at weight 400 for display-md and above; Coinbase Sans for everything else
3. Pill CTAs at 100px radius — never rectangle, never 9999 stadium
4. The dark hero (`#0a0b0d` carrying `#16181c` cards) is the dramatic punctuation — use it 1–2 times per page max
5. Numbers always `tnum` Coinbase Mono with locale separators
6. Hairlines (`#dee1e6`) and surface steps (`#ffffff` → `#f7f7f7`) provide depth — skip shadows
7. Brand blue `#0052ff` only on primary CTAs and signature glyphs — never decorative
Prose

1. Visual Theme & Atmosphere

Coinbase reads like an institutional bank that quietly happens to trade crypto. The base canvas is pure white (#ffffff) — not paper-cream, not off-white — and that pure white commits to financial-services calm rather than crypto-native exuberance. Onto that floor the system places a single brand voltage: Coinbase Blue (#0052ff), used scarcely on primary CTAs, signature glyphs, and inline accent moments. The blue is saturated but never neon; sits adjacent to navy without becoming corporate.

Type is the system’s clearest editorial signal. Coinbase Display sits at weight 400 not 700 — the headlines feel light, calm, almost magazine-like. An 80px display-mega at weight 400 with -2px tracking reads as confident editorial, not fintech-bombastic. Coinbase Sans handles body and tighter title roles at 400–700; Coinbase Mono shows up only on tabular numerical data (price tickers, ledger rows).

Page rhythm rotates three surface modes:

  1. White editorial sections — the default. Hero, feature grids, product breakdowns.
  2. Soft gray elevation bands (#f7f7f7) — used to separate dense feature blocks from running editorial.
  3. Full-bleed dark heroes (#0a0b0d) — used at the top of product narratives, carrying product-UI mockup cards rendered in #16181c. The footer also uses this dark mode.

Decorative shadows are absent. Cards stack with a single 1px hairline (#dee1e6) or a one-step surface jump from #ffffff to #f7f7f7. The system trusts contrast and white space rather than depth tricks. Iconography is geometric and minimal — hairline weight, 24×24 grid.

Key Characteristics:

  • Pure white canvas (#ffffff) — institutional calm, never paper-cream
  • Single brand voltage: Coinbase Blue #0052ff for primary CTAs and signature glyphs
  • Coinbase Display set at weight 400 (not 700) — editorial confidence, not fintech-bombastic
  • Three surface modes: white default, soft-gray elevation band, full-bleed dark editorial hero
  • Pill-shaped primary CTAs (100px radius) — friendly without becoming playful
  • Product-UI mockup cards rendered inside dark heroes (#16181c on #0a0b0d)
  • Geometric, hairline-weight iconography on a 24×24 grid
  • Footer goes dark on every page — closes the surface in #0a0b0d

2. Color Palette & Roles

Primary

  • Canvas (#ffffff): Pure white default page floor.
  • Surface Dark (#0a0b0d): Full-bleed editorial hero ground; footer surface.
  • Ink (#0a0b0d): Primary headline and strong body text.
  • Brand (#0052ff): The single Coinbase Blue. Primary CTAs, inline accent links, signature brand glyphs.

Brand & Dark

  • Coinbase Blue (#0052ff): Used scarcely on dark surfaces (white text on a blue pill is the “Get started” gesture). Used densely on light surfaces only on the primary CTA itself.
  • Brand Active (#003ecc): Pressed/hover-darker variant.
  • Brand Disabled (#a8b8cc): Desaturated blue used on disabled CTAs.
  • Surface Dark Elevated (#16181c): The +1 step on dark — product-UI mockup cards inside dark heroes, secondary buttons on dark.

Accent

  • Accent Yellow (#f4b000): Rare accent used on educational/learn badges and a single “earn rewards” indicator. Treat as a single-vertical accent, not a system token.

Interactive

  • Link = Brand #0052ff, no underline by default
  • Hover — primary CTA → #003ecc; text links gain underline
  • Active / Pressed — Brand Active #003ecc on CTAs
  • Disabled#a8b8cc background or #a8acb3 text
  • Selected — light #0052ff 8% tint background with #0052ff text

Neutral Scale

#ffffff (Canvas) → #f7f7f7 (Surface Soft) → #eef0f3 (Surface Strong / Hairline Soft) → #dee1e6 (Border) → #a8acb3 (Text Subtle / On-Dark Soft) → #7c828a (Text Muted) → #5b616e (Body) → #16181c (Surface Dark Elevated) → #0a0b0d (Ink / Surface Dark).

Surface & Borders

  • Surface Soft (#f7f7f7): Bright neutral elevation band — sits between white sections to break dense feature blocks.
  • Surface Strong (#eef0f3): Secondary button bg; soft card surface; hairline-soft tone.
  • Surface Card (#ffffff): Default card surface — white-on-white separated by 1px border.
  • Border (#dee1e6): Default 1px hairline.
  • Border Soft (#eef0f3): Softer divider on dense lists.

Shadow Colors

Coinbase uses neutral-tinted shadows at very low opacity (rgba(0,0,0,0.04–0.08)). No brand-tinted shadows. Most cards use no shadow — they rely on hairlines and surface contrast.

Semantic

  • Up (#05b169): Price-up green; portfolio gain text
  • Down (#cf202f): Price-down red; portfolio loss text
  • Info = Brand #0052ff (no separate info token)
  • Warning / Error#cf202f reused for danger states; warning typically uses an icon + text colour pair rather than a dedicated bg

3. Typography Rules

Font Family

  • DisplayCoinbase Display, fallback -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif
  • BodyCoinbase Sans, same fallback chain
  • MonoCoinbase Mono, fallback "JetBrains Mono", "IBM Plex Mono", monospace
  • OpenTypetnum and zero enabled on every numerical surface (price tickers, asset rows, ledger amounts). ss01 may be enabled on Coinbase Display for the alternate “C” used in the wordmark hero.

Hierarchy

RoleFontSizeWeightLine HeightLetter SpacingOT FeaturesNotes
display-megaCoinbase Display804001.00-2pxdefaultWordmark heroes, brand-anchor pages
display-xlCoinbase Display644001.00-1.6pxdefaultMain marketing h1
display-lgCoinbase Display524001.00-1.3pxdefaultLong-scroll section heads
display-mdCoinbase Display444001.09-1pxdefaultCard heroes, feature-block titles
display-smCoinbase Sans364001.11-0.5pxdefaultSub-section titles (drops to Sans here)
title-lgCoinbase Sans324001.13-0.4pxdefaultEditorial sub-titles
title-mdCoinbase Sans186001.330defaultCard titles, modal headers
title-smCoinbase Sans166001.250defaultInline emphasis, list headers
body-mdCoinbase Sans164001.500defaultDefault running text
body-strongCoinbase Sans167001.500defaultInline emphasis in body
body-smCoinbase Sans144001.500defaultSecondary body, footer copy
captionCoinbase Sans134001.500defaultMeta labels, table headers
caption-strongCoinbase Sans126001.500defaultEyebrow tags, status pills
number-displayCoinbase Mono185001.400tnum, zeroPrice tickers, asset amounts
buttonCoinbase Sans166001.150defaultAll CTAs
nav-linkCoinbase Sans145001.400defaultTop nav
code-microCoinbase Mono124001.400tnum, zeroAPI key hints, transaction-ID truncation

Principles

  • Display weight 400, not 700 — the most distinctive Coinbase typographic choice. Headlines feel calm, magazine-like, institutional. Going to 700 reads as fintech-bombastic and breaks the brand
  • Tight negative tracking on display (-1 to -2px) — words lock together at large sizes
  • Two families, no third — Coinbase Display for display-md and above, Coinbase Sans for everything else. Coinbase Mono only on numbers
  • tnum enabled on every number so portfolio columns align cleanly
  • No shouty section titles — uppercase appears only on caption-strong eyebrow tags, and even there sparingly
  • Substitutes: Inter at weight 400 with -2% letter-spacing approximates Coinbase Display. JetBrains Mono with tnum for Coinbase Mono.

4. Component Stylings

Buttons

button-primary — Primary CTA. Background #0052ff, white text, 12px × 20px padding, 44px height, 100px pill radius. Hover → #003ecc. Disabled #a8b8cc. The signature pill shape signals “friendly but institutional” — softer than a 6px corner, less playful than a 24px chip.

button-pill-cta — Oversized version for hero “Get started” moments. 16px × 32px padding, 56px height, same blue. Used at the top of marketing pages and at the bottom of product narratives.

button-secondary-light — On light surfaces. Background #eef0f3, ink text, 100px pill, same dimensions as primary. Pairs with primary in dual-CTA stacks.

button-secondary-dark — On dark heroes. Background #16181c, white text, 100px pill.

button-outline-on-dark — Ghost variant for dark heroes. Transparent background, 1px white border, white text, 100px pill, 11px × 19px padding.

button-tertiary-text — Inline text link button. Background transparent, blue text, no underline by default.

Cards

product-ui-card-dark — Product UI mockup card sitting inside a dark hero. Background #16181c, 24px radius, 24px padding. Often holds a faux app screenshot — portfolio chart, send-receive flow, asset detail.

product-ui-card-light — White card for light sections. Background #ffffff, 1px #dee1e6 border, 24px radius, 24px padding.

card-feature — Soft-elevation card for feature explainers. Background #f7f7f7, 16px radius, 24px padding. Often holds an icon + title + 1–2 line body.

card-asset-row — Dense asset list row (BTC / ETH / SOL prices). Background white, 1px #eef0f3 border, 8px radius, 16px × 24px padding. Asset icon + symbol + name on left; price + 24h change on right.

Badges / Tags / Pills

badge-pill — Status pill (e.g., “New”, “Featured”, “+12.4%”). Background #eef0f3, ink text, 100px radius, 6px × 12px padding. Caption-strong type.

badge-trending-up — Asset gain pill. Background rgba(5,177,105,0.10), #05b169 text, 100px radius.

badge-trending-down — Asset loss pill. Background rgba(207,32,47,0.10), #cf202f text, 100px radius.

Inputs / Forms

input-text — Standard text input. Background white, 1px #dee1e6 border, 8px radius, 12px × 16px padding, 44px height. Focus → 3px blue ring (rgba(0,82,255,0.30)) + border tightens to #0052ff.

input-amount — Crypto-amount input on send / buy flows. Larger 56px height, mono number-display type, currency selector inline on right.

top-nav-light — 64px tall, #ffffff background, 1px bottom hairline #dee1e6. Coinbase wordmark left, primary nav (Personal, Business, Developers, Company), right cluster (Sign in, Get started CTA).

top-nav-dark#0a0b0d background, white menu items. Used on the small subset of dark-mode marketing chapters.

Decorative

hero-band-light — Default white hero. Padding 96px vertical. Display-xl headline, body-md sub, dual CTA pair (primary + tertiary text).

hero-band-dark — Full-bleed dark hero. Background #0a0b0d, white display-mega headline, white sub-text. Used to anchor product narratives.

footer-dark — Dark footer that closes every page. Background #0a0b0d, #a8acb3 link colour, 64px vertical padding. Multi-column link list (Personal, Business, Developers, Resources, Legal, Company).

5. Layout Principles

Spacing System

  • Base unit: 4px.
  • Tokens: 4 / 8 / 12 / 16 / 20 / 24 / 32 / 48 / 96.
  • Section padding (vertical): 96px on marketing — generous airy rhythm.
  • Card internal padding: 24px.
  • Gutters: 24px between cards in 3-up grids.

Grid & Container

  • Max content width: ~1200px centred on marketing pages.
  • Editorial body: 12-column grid with 24px gutters.
  • Asset list: stacked rows, 100% width, ~720px max in narrative chapters.
  • Dual hero: text on left 6 cols, product-UI mockup card on right 6 cols.

Whitespace Philosophy

Coinbase is airier than Binance. Long-scroll marketing pages breathe — 96px section padding, 24px card gutters, 1.5 body line-height. The system trusts white space rather than dense color contrast.

Section Cadence

White → dark hero → white → soft-gray elevation band → white → soft-gray → dark footer. The dark heroes punctuate the page with editorial gravity; the soft-gray bands break dense feature blocks without pulling attention.

6. Shapes & Radius

  • None 0 — full-bleed band edges
  • xs 4 — micro chips (rare)
  • sm 8 — input fields, asset row cards
  • md 12 — feature cards
  • lg 16 — feature cards (alt)
  • xl 24 — product-UI mockup cards (the signature radius for the most-photographed surface)
  • pill 100 — every CTA, every status badge — Coinbase’s friendliness signal
  • full 9999 — circular avatars and asset icons

The pill at 100px (not 9999) is Coinbase’s signature — a rectangle with very rounded ends rather than a perfect stadium. At small button sizes the 100px and 9999 are visually identical, but at large CTAs the 100px keeps a hint of straight horizontal edge that reads as “considered” rather than “blob.”

7. Depth & Elevation

LevelTreatmentUse
0 FlatNo shadow, no borderBody sections, hero bands, footer
1 Hairline1px #dee1e6Inputs, asset rows, white-on-white cards
2 Surface step#ffffff#f7f7f7 groundSoft-gray elevation bands separating dense features
3 Card surface#16181c on dark heroes (product-UI cards)Product-UI mockup cards
4 Subtle droprgba(0,0,0,0.06) 0 4px 12pxFloating UI affordances (modal triggers, tooltip anchors)
5 Modalrgba(0,0,0,0.08) 0 16px 32px -8px + scrimModal dialogs
Focus ring0 0 0 3px rgba(0,82,255,0.30)All keyboard focus

Shadow Philosophy: Neutral-tinted, very low opacity. Coinbase rejects brand-tinted shadows — they would feel decorative on an institutional brand. Most cards use no shadow at all; depth comes from hairlines and surface steps. The sole brand-tinted shadow is the focus ring.

8. Interaction & Motion

  • Easing standardcubic-bezier(0.4, 0, 0.2, 1) for hover transitions and modal fades
  • Easing emphasizedcubic-bezier(0.2, 0, 0, 1) for portfolio chart redraws and price-update flashes
  • Durations — fast 120ms (hover), standard 200ms (modal), slow 320ms (page transition)
  • Hover — primary CTA darkens to #003ecc. Asset rows gain a #f7f7f7 background tint. Text links gain underline
  • Price flash — gain → 400ms rgba(5,177,105,0.10) background fade; loss → rgba(207,32,47,0.10)
  • Card hover — product-UI cards on light surfaces gain a subtle rgba(0,0,0,0.06) 0 4px 12px shadow on hover; on dark surfaces gain a +1 step background to #1a1d22
  • Page transition — none on marketing; product surfaces use a fade-in at 200ms with no slide
  • Reduced motionprefers-reduced-motion: reduce collapses transitions to opacity-only; price flashes still fire but with no fade

9. Accessibility & A11y

  • Contrast: Ink #0a0b0d on white = 17.9:1 (AAA). Body #5b616e on white = 7.4:1 (AAA). White on Coinbase Blue = 5.6:1 (AA at body, AA-Large at display). Up green / down red on white pass AA.
  • Focus indicator: 3px solid rgba(0,82,255,0.30) ring on every interactive element. Border tightens to #0052ff on inputs.
  • ARIA patterns: Asset list uses role="list" with role="listitem" rows. Send/buy flow modals use role="dialog" with focus trap. Currency selector uses combobox pattern.
  • Keyboard nav: Top nav supports left/right arrow between menu items. Asset list rows are focusable; Enter activates the asset detail link. Skip-to-content link in the document head.
  • Screen reader hints: Asset icons are aria-hidden; symbol + name carry the semantic label. Price-direction colour is supplemented with ”+” / ”-” prefix and screen-reader text “{N}% increase” / “decrease”.
  • Reduced motion: Honoured — see §8.

10. Responsive Behavior

BreakpointWidthKey Changes
Mobile< 640Top nav → hamburger; hero display-mega 80 → 44px; product-UI mockup cards stack below text; asset rows full-width; CTAs full-width
Tablet640–1024Top nav stays horizontal but condensed; mockup cards 50% width; feature grids 2-up
Desktop1024–1280Full nav + secondary menu; mockup cards 6/12 cols beside text; feature grids 3-up
Wide> 1280More breathing room around the 1200px container; mockup card aspect ratios stretch wider

Touch Targets: Primary CTAs render at minimum 44 × 44px. Asset row tap area extends across full row width. Tap-to-open modals avoid hover-only interactions.

Collapsing Strategy: Top nav → hamburger at mobile; menu opens as a full-screen sheet. Product-UI mockup cards stack below the text block on mobile (text first, then mockup). Asset list collapses to a single column with the right-side price inset below the asset symbol. Footer columns stack to single column with collapsible sub-sections.

Image Behavior: Product-UI mockup cards are responsive PNG/SVG — they shrink proportionally without art direction. Hero illustrations crop to centre on mobile.

11. Content & Voice

  • Tone — calm, declarative, institutional. Avoids hyperbole and crypto-native jargon. “Earn rewards on your crypto” not “Stack sats fam”
  • Microcopy — verbs are simple and action-anchored: “Get started”, “Sign in”, “Send”, “Receive”, “Buy”, “Sell”. The “Get started” CTA appears on virtually every marketing chapter
  • CTA verbs — “Get started” (top of page, post-feature), “Sign in” (auth), “Buy crypto” (vertical-specific), “Learn more” (educational chapters)
  • Empty states — short and supportive. The “no portfolio activity” state shows a single line “Your transactions will appear here” with no illustration
  • Error messages — clear and remediable. “Insufficient balance — add funds to continue” not “Transaction failed”
  • Number formatting — always tnum, locale-aware separators, currency symbol prefixed. Crypto amounts show 4–8 decimal places truncated by significant figures
  • Educational chapters — the “Learn” surfaces use slightly warmer tone with the rare #f4b000 accent yellow on “earn rewards” badges

12. Dark Mode & Theming

Coinbase is dual-theme by intent — like Binance, the choice is functional rather than user preference. White marketing surfaces with full-bleed dark heroes punctuating product narratives. The footer is always dark. The shared tokens (Coinbase Blue, semantic up/down, focus ring) thread through both modes unchanged.

A user-facing dark mode for the product app exists but is out of scope for this marketing-surface document. The marketing-mode dark surfaces use:

  • bg-dark #0a0b0d (canvas)
  • surface-dark-elevated #16181c (product-UI mockup cards)
  • on-dark #ffffff (text)
  • on-dark-soft #a8acb3 (muted text)
  • Border on dark = rgba(255,255,255,0.08)

13. Lineage & Influences

Coinbase’s design language inherits from institutional finance (Schwab, Fidelity, BlackRock) more than from crypto-native peers. The pure white canvas, single-blue accent, and weight-400 display headlines are direct references to financial-services calm — the kind of brand a regulator or pension fund manager wouldn’t second-guess. The choice to set Coinbase Display at weight 400 (against the fintech industry’s love affair with 700-weight bombastic display) is the boldest decision in the system: it intentionally rejects the trading-floor aesthetic that Binance and FTX (RIP) committed to.

What it borrows: pill-shaped CTAs with the 100px radius signal “consumer-friendly but institutional” — a register Stripe and Wise also occupy. The dark-hero punctuation pattern is shared with Stripe and Linear marketing surfaces. What it rejects: gradients, glassmorphism, atmospheric depth, illustration-heavy heroes, and crypto-native iconography (rocket emojis, neon palettes, cyberpunk grids).

Influences:

  • Stripe — Pill CTAs, dark-hero punctuation, single-brand-blue discipline. https://stripe.com
  • Schwab / Fidelity — Institutional-finance calm, white canvas restraint. https://www.schwab.com
  • Linear — Editorial dark heroes carrying product UI mockups. https://linear.app
  • Coinbase Display custom typeface — built in-house to replace the previous Inter/Roboto-style stack with a calmer, magazine-influenced display.

14. Do’s and Don’ts

Do

  • Keep Coinbase Display at weight 400 — the calm display weight is the brand
  • Reserve #0052ff for primary CTAs and signature glyphs only — its scarcity is what makes it carry brand
  • Use the 100px pill radius on every CTA — this is the friendliness signal
  • Layer product-UI mockup cards on dark heroes (#16181c on #0a0b0d) — the signature presentation
  • Use tnum on every number for column-aligned ledgers and price tickers
  • Anchor sections at 96px vertical padding — the airy rhythm is institutional
  • Close every page with a dark footer (#0a0b0d)
  • Use semantic up/down only as text or pill colour, never as button background

Don’t

  • Don’t bolden display headlines to 700 — that breaks the brand into fintech-bombastic
  • Don’t introduce a second brand colour or use #0052ff decoratively
  • Don’t use rectangle CTAs (6–8px radius) — pills are mandatory
  • Don’t use brand-tinted shadows — depth comes from hairlines and surface steps
  • Don’t use crypto-native iconography (rocket emojis, neon glyphs)
  • Don’t use Coinbase Mono for prose — only for tabular numbers
  • Don’t soften the white canvas to cream — Coinbase commits to pure white
  • Don’t replace pill CTAs with chips on dense product surfaces — keep one CTA shape system-wide

15. Agent Prompt Guide

Quick Color Reference

  • Brand: Coinbase Blue #0052ff
  • Brand pressed: #003ecc
  • Canvas: #ffffff
  • Surface dark: #0a0b0d
  • Surface dark elevated: #16181c
  • Text ink: #0a0b0d
  • Body: #5b616e
  • Border: #dee1e6
  • Up: #05b169
  • Down: #cf202f

Example Component Prompts

  • “Create a Coinbase hero band: pure white #ffffff background, 80px Coinbase Display weight 400 headline with -2px tracking in #0a0b0d, body-md sub in #5b616e, primary pill CTA #0052ff 100px radius 12×20 padding, tertiary text-link CTA in #0052ff to the right.”
  • “Design a dark editorial hero with product-UI mockup card: #0a0b0d bg, 96px section padding. Left column: 64px Coinbase Display weight 400 white headline with -1.6px tracking, body-md sub in #a8acb3, dual CTA (primary #0052ff pill + outline-on-dark white-bordered pill). Right column: product-UI mockup card on #16181c background, 24px radius, 24px padding, holding a faux portfolio chart.”
  • “Build an asset list row: white bg, 1px #eef0f3 border, 8px radius, 16×24 padding. 32×32 asset icon + symbol + name on left; right side: number-display 18/500 Coinbase Mono price + trending pill (rgba(5,177,105,0.10) bg, #05b169 text, 100px radius).”
  • “Compose a feature card grid: 3-up on desktop with 24px gutters. Each card: #f7f7f7 bg, 16px radius, 24px padding. 32px icon top, title-md #0a0b0d, body-md #5b616e.”

Iteration Guide

  1. Start with white. Coinbase rejects paper-cream — pure #ffffff is the canvas
  2. Use Coinbase Display at weight 400 for display-md and above; Coinbase Sans for everything else
  3. Pill CTAs at 100px radius — never rectangle, never 9999 stadium
  4. The dark hero (#0a0b0d carrying #16181c cards) is the dramatic punctuation — use it 1–2 times per page max
  5. Numbers always tnum Coinbase Mono with locale separators
  6. Hairlines (#dee1e6) and surface steps (#ffffff#f7f7f7) provide depth — skip shadows
  7. Brand blue #0052ff only on primary CTAs and signature glyphs — never decorative
Ship with this

Drop coinbase into your project, then ship the actual sections in an afternoon.

1 · install design
npx design-md add coinbase
2 · ship landing page
npx agentkit init --design coinbase
How AgentKit reads DESIGN.md
You might also like