← Back to all designs

Uber

An inspired interpretation of Uber's design language — a transportation-and-delivery super-app brand whose web surface is a black-and-white duet, framed by a custom geometric display sans, accented by a single signature pill shape (radius 999px) on every interactive element, and decorated only by editorial 4:3 illustrations of riders, drivers, and city objects.

Homepage Example

Welcome to Uber

A modern, elegant design system built for the digital age. Clean lines, thoughtful spacing, and purposeful color choices define every interaction.

Get Started Learn More

Pixel Perfect

Every element is carefully crafted to ensure consistency across all platforms and devices.

Design Tokens

A comprehensive token system that makes scaling and maintaining your design effortless.

Built for Teams

Collaborate seamlessly with designers and developers using a shared design language.

Color Palette (13)

primary#000000
on-primary#ffffff
ink#000000
body#5e5e5e
mute#afafaf
hairline-mid#4b4b4b
canvas#ffffff
canvas-soft#efefef
canvas-softer#f3f3f3
surface-pressed#e2e2e2
link#0000ee
on-dark#ffffff
black-elevated#282828

Typography (13)

Uber
display-xxl52px · weight 700
Uber
display-xl36px · weight 700
Uber
display-lg32px · weight 700
Uber
display-md24px · weight 700
Uber
display-sm20px · weight 700
Uber
body-lg18px · weight 500
Uber
body-md16px · weight 400
Uber
body-md-strong16px · weight 500
Uber
body-sm14px · weight 400
Uber
body-sm-strong14px · weight 500
Uber
caption12px · weight 400
Uber
button-large18px · weight 500
Uber
button-md16px · weight 500

Components (39)

nav-bar
nav-bar
nav-link
nav-link
button-primary
button-primary
button-secondary
button-secondary
button-subtle
button-subtle
button-floating
button-floating
button-large-rounded
button-large-rounded
button-tab-translucent
button-tab-translucent
text-input
text-input
text-input-on-soft
text-input-on-soft
card-content
card-content
card-elevated
card-elevated
card-soft-tinted
card-soft-tinted
promo-card-illustrated
promo-card-illustrated
promo-card-on-dark
promo-card-on-dark
request-form-card
request-form-card
request-form-input-row
request-form-input-row
category-button
category-button
faq-row
faq-row
app-download-pill
app-download-pill
hero-band-light
hero-band-light
hero-band-dark
hero-band-dark
showcase-image-card
showcase-image-card
link-blue
link-blue
link-on-dark
link-on-dark
link-mute
link-mute
link-mute-soft
link-mute-soft
icon-button-circular
icon-button-circular
footer
footer
ex-pricing-tier
ex-pricing-tier
ex-pricing-tier-featured
ex-pricing-tier-featured
ex-product-selector
ex-product-selector
ex-cart-drawer
ex-cart-drawer
ex-app-shell-row
ex-app-shell-row
ex-data-table-cell
ex-data-table-cell
ex-auth-form-card
ex-auth-form-card
ex-modal-card
ex-modal-card
ex-empty-state-card
ex-empty-state-card
ex-toast
ex-toast

Border Radius

none (0px)
md (8px)
lg (12px)
xl (16px)
pill (999px)
pill-tab (36px)
full (9999px)

Design Philosophy

Overview

Uber is a transportation-and-delivery super-app — ride, eats, freight, the whole urban logistics layer — and the brand's web surface signals that scale through restraint: no third colour, no accent palette, no illustration that fights the headline. The page is structurally a black-and-white duet, where black `{colors.primary}` is the conversion anchor (every CTA pill, every nav login button, the footer fill) and `{colors.canvas}` white carries everything else. The only consistent decoration is a body of editorial 4:3 illustrations — riders, drivers, parking lots, cars-on-highway — that ground the marketing without leaking accent colour into the system.

Type is the second decisive voice. Two custom faces carry every page: `UberMove` at weight 700 for headlines (32 – 52 px display sizes with tight 1.22 – 1.25 line-height, never letter-spaced), and `UberMoveText` at weights 400 / 500 for body, button, and link. The pairing reads as engineering-grade — no italic, no decorative weight, no tracking flourish. Headlines are sentence-case; eyebrows are uppercase only when used as the section eyebrow ("WHY BECOME"); buttons are sentence-case.

The single shape signature is the pill. Every interactive element rounds to `{rounded.pill}` 999 px — primary CTA, secondary CTA, subtle gray pill, white floating pill, category chip, app-download badge. Cards and surfaces round to `{rounded.xl}` 16 px; the larger "Go Get 2026" annual-showcase card uses the same 16 px shape, just at scale. The tab-toggle on the hero ride-request form uses an off-shape `{rounded.pill-tab}` 36 px — barely-pill, deliberately tighter than the canonical 999 px pill.

**Key Characteristics:**

Colors

Brand & Accent

Surface

Text

Semantic

The brand does not maintain a separate error / success / warning palette in its public marketing surface. Validation cues come from the primary black or from the brand's editorial illustrations. The `#0000ee` link colour is the system's only chromatic — it's the browser-default link blue, appearing in body-copy inline links inside legal / footer text.

Typography

Font Family

Two custom faces carry the entire system:

1. **A custom geometric display sans** (extracted as `UberMove`) for every headline. Weight 700 only; no italic; no tracking variation. Sizes range from `display-sm` 20 px up to `display-xxl` 52 px on the hero. Line-heights tighten to 1.22 – 1.25 at display sizes for a poured-on-the-page look.

2. **A custom text sans** (extracted as `UberMoveText`) for body, button, link, and small headings. Weights 400 and 500 are the working pair. Used at 12 – 18 px; 24 px maximum for ride-request form labels. Tracking is always neutral.

The two faces share a family DNA but never overlap roles — the display face never carries a body paragraph; the text face never carries a hero headline.

Hierarchy

| Token | Size | Weight | Line Height | Use |

|---|---|---|---|---|

| `{typography.display-xxl}` | 52px | 700 | 64px | Hero headline ("Go anywhere with Uber", "Drive when you want"). |

| `{typography.display-xl}` | 36px | 700 | 44px | Page section headlines ("Plan for later", "Safety, simplified"). |

| `{typography.display-lg}` | 32px | 700 | 40px | Promo-card headlines. |

| `{typography.display-md}` | 24px | 700 | 32px | Card titles, illustrated-promo headlines. |

| `{typography.display-sm}` | 20px | 700 | 28px | Sub-card headings. |

| `{typography.body-lg}` | 18px | 500 | 24px | Lead paragraphs and larger body. |

| `{typography.body-md}` | 16px | 400 | 24px | Default paragraph body. |

| `{typography.body-md-strong}` | 16px | 500 | 20px | Bolded inline body and most button labels. |

| `{typography.body-sm}` | 14px | 400 | 20px | Captions, secondary metadata. |

| `{typography.body-sm-strong}` | 14px | 500 | 16px | Bold caption / chip labels. |

| `{typography.caption}` | 12px | 400 | 20px | Fine print, footer secondary lines. |

| `{typography.button-large}` | 18px | 500 | 24px | Large rounded buttons inside the ride-request form. |

| `{typography.button-md}` | 16px | 500 | 20px | Default button label. |

Principles

Note on Font Substitutes

The two faces are proprietary. Open-source substitutes:

Layout

Spacing System

Grid & Container

Whitespace Philosophy

Card-to-card spacing carries the rhythm — between two stacked promo cards there's roughly a full `{spacing.3xl}` 32 px gutter; inside a card the headline / paragraph / CTA stack is tight (`{spacing.sm}` 8 px between siblings). The black promo bands and the footer have no internal hairlines — content sits on flat ink with white text.

Responsive Strategy

#### Breakpoints

| Name | Width | Key Changes |

|---|---|---|

| Mobile | < 600px | Nav collapses to hamburger; promo cards stack; ride-request form becomes full-width. |

| Mobile-Large | 600–767px | Same as Mobile; chip rows enable horizontal scroll. |

| Tablet | 768–1119px | 2-up promo grid at upper widths; nav stays horizontal until ≥ 1120 px. |

| Desktop | 1120–1135px | Full nav row visible; promo cards 2-up. |

| Desktop-Large | ≥ 1136px | Container caps at ~1200 px; bands stay edge-to-edge while content centres. |

#### Touch Targets

The pill `button-primary` renders at ~44 px tall (10 px vertical padding + 24 px label line-height); the larger `button-large-rounded` at ~56 px. Both meet WCAG AAA at all breakpoints. Category chips inflate to ≥ 44 px tall through extra padding on touch viewports.

#### Collapsing Strategy

#### Image Behavior

Elevation & Depth

| Level | Treatment | Use |

|---|---|---|

| Level 0 — Flat | No shadow, no border. | Default — most cards and surfaces lean on hairline-of-canvas contrast. |

| Level 1 — Subtle Drop | `rgba(0, 0, 0, 0.12) 0px 4px 16px 0px` | Card-elevated frames around promo cards on light bands. |

| Level 2 — Card Drop | `rgba(0, 0, 0, 0.16) 0px 4px 16px 0px` | The ride-request form card on the hero; large content cards with embedded forms. |

| Level 3 — Pill Float | `rgba(0, 0, 0, 0.16) 0px 2px 8px 0px` | The floating white pill button (the one that floats over hero photography). |

Decorative Depth

Shapes

Border Radius Scale

| Token | Value | Use |

|---|---|---|

| `{rounded.none}` | 0px | Full-bleed hero bands, footer fill, raw image edges. |

| `{rounded.md}` | 8px | Form-input fields inside the ride-request card. |

| `{rounded.lg}` | 12px | Smaller secondary card chrome. |

| `{rounded.xl}` | 16px | Canonical card radius — promo cards, content cards, ride-request form card, annual-showcase card, large rounded buttons. |

| `{rounded.pill}` | 999px | The brand's signature interactive shape — every pill button, category chip, app-download pill, icon button. |

| `{rounded.pill-tab}` | 36px | The translucent-white tab-toggle pill on the hero (Ride / Drive). |

| `{rounded.full}` | 9999px | Identical effect to `{rounded.pill}` for circular icon containers. |

Photography Geometry

Components

Buttons

**`button-primary`** — the canonical black pill, the brand's conversion target.

**`button-secondary`** — the white pill paired with the black primary.

**`button-subtle`** — the gray secondary pill used for tertiary actions inside cards (e.g., "Learn more" / "Use Reserve").

**`button-floating`** — the white pill with a subtle drop-shadow that floats over a dark or photographic surface.

**`button-large-rounded`** — the bigger black call-to-action used inside the ride-request flow ("Yes, help me").

**`button-tab-translucent`** — the tab-toggle on the hero ride-request form (Ride / Drive).

Cards & Containers

**`card-content`** — the canonical content card.

**`card-elevated`** — the content card with Level 1 subtle drop.

**`card-soft-tinted`** — the gray-tinted card used as a sub-region inside the page (e.g., "Plan for later" callout).

**`promo-card-illustrated`** — the 2-column promo card with illustration on one side and copy on the other.

**`promo-card-on-dark`** — the polarity-flipped promo card in black.

**`request-form-card`** — the hero ride-request form chrome.

**`request-form-input-row`** — the per-field row inside the request-form card.

**`showcase-image-card`** — the giant "GO•GET 2026" annual showcase card.

Inputs & Forms

**`text-input`** — the canonical text input.

**`text-input-on-soft`** — the nested input on a white card (slightly lighter fill).

Navigation

**`nav-bar`** — the sticky top nav.

**`nav-link`** — the link row inside `nav-bar`.

**`footer`** — the deep-black footer band.

Signature Components

**`hero-band-light`** — the white hero with the ride-request card.

**`hero-band-dark`** — the rare black hero (used on Uber Eats and Drive landing).

**`category-button`** — the horizontal-scroll category row ("Reserve / Rentals / Teens / Group rides").

**`faq-row`** — the FAQ accordion item.

**`app-download-pill`** — the "Download the Rider app" / "Download the Driver app" pill.

**`icon-button-circular`** — the round icon container used in the nav and inside the ride-request card.

Links

**`link-blue`** — the system-default browser-blue link inside legal / footer fine print.

**`link-on-dark`** — the white link inside dark bands.

**`link-mute`** — the muted gray link inside footer columns.

**`link-mute-soft`** — the lightest gray link, used for low-priority secondary text on dark surfaces.

Examples (illustrative)

> Auto-derived kit-mirror demonstration surfaces (`scripts/derive-examples-block.mjs`). Each `ex-*` entry references brand-native primitives so downstream consumers (`/preview-design`, `/generate-kit`) re-skin the same 10 surfaces consistently. `TO_FILL` markers indicate missing primitives — resolve in the LLM judgment pass.

**`ex-pricing-tier`** — Default Pricing tier card. Re-uses feature-card chrome with brand canvas-soft surface.

**`ex-pricing-tier-featured`** — Featured/highlighted tier — polarity-flipped surface (dark fill + light text in light mode, light fill + dark text in dark mode).

**`ex-product-selector`** — What's Included summary card — re-purposed for SaaS / B2B verticals (NOT a literal product gallery).

**`ex-cart-drawer`** — Subscription summary — re-purposed for SaaS / B2B (line items per add-on, not literal cart).

**`ex-app-shell-row`** — Sidebar nav row inside the App Shell example. Active state uses brand primary as the indicator.

**`ex-data-table-cell`** — Default data-table th + td chrome. Header uses mono-caps eyebrow typography; body uses body-sm.

**`ex-auth-form-card`** — Sign-in / sign-up card. Re-uses feature-card chrome with text-input primitives inside.

**`ex-modal-card`** — Modal dialog surface — same chrome as feature-card with elevated shadow.

**`ex-empty-state-card`** — Empty-state illustration frame.

**`ex-toast`** — Toast notification surface — feature-card shape + medium shadow.

Do's and Don'ts

Do

Don't