← all systems stripe
edit →

Design System Inspired by Stripe

1. Visual Theme & Atmosphere

Stripe’s website is the gold standard of fintech design — a system that manages to feel simultaneously technical and luxurious, precise and warm. The page opens on a clean white canvas (#ffffff) with deep navy headings (#061b31) and a signature purple (#533afd) that functions as both brand anchor and interactive accent. This isn’t the cold, clinical purple of enterprise software; it’s a rich, saturated violet that reads as confident and premium. The overall impression is of a financial institution redesigned by a world-class type foundry.

The custom sohne-var variable font is the defining element of Stripe’s visual identity. Every text element enables the OpenType "ss01" stylistic set, which modifies character shapes for a distinctly geometric, modern feel. At display sizes (48px-56px), sohne-var runs at weight 300 — an extraordinarily light weight for headlines that creates an ethereal, almost whispered authority. This is the opposite of the “bold hero headline” convention; Stripe’s headlines feel like they don’t need to shout. The negative letter-spacing (-1.4px at 56px, -0.96px at 48px) tightens the text into dense, engineered blocks. At smaller sizes, the system also uses weight 300 with proportionally reduced tracking, and tabular numerals via "tnum" for financial data display.

What truly distinguishes Stripe is its shadow system. Rather than the flat or single-layer approach of most sites, Stripe uses multi-layer, blue-tinted shadows: the signature rgba(50,50,93,0.25) combined with rgba(0,0,0,0.1) creates shadows with a cool, almost atmospheric depth — like elements are floating in a twilight sky. The blue-gray undertone of the primary shadow color (50,50,93) ties directly to the navy-purple brand palette, making even elevation feel on-brand.

Key Characteristics:

2. Color Palette & Roles

Primary

Brand & Dark

Accent Colors

Interactive

Neutral Scale

Surface & Borders

Shadow Colors

3. Typography Rules

Font Family

Hierarchy

RoleFontSizeWeightLine HeightLetter SpacingFeaturesNotes
Display Herosohne-var56px (3.50rem)3001.03 (tight)-1.4pxss01Maximum size, whisper-weight authority
Display Largesohne-var48px (3.00rem)3001.15 (tight)-0.96pxss01Secondary hero headlines
Section Headingsohne-var32px (2.00rem)3001.10 (tight)-0.64pxss01Feature section titles
Sub-heading Largesohne-var26px (1.63rem)3001.12 (tight)-0.26pxss01Card headings, sub-sections
Sub-headingsohne-var22px (1.38rem)3001.10 (tight)-0.22pxss01Smaller section heads
Body Largesohne-var18px (1.13rem)3001.40normalss01Feature descriptions, intro text
Bodysohne-var16px (1.00rem)300-4001.40normalss01Standard reading text
Buttonsohne-var16px (1.00rem)4001.00 (tight)normalss01Primary button text
Button Smallsohne-var14px (0.88rem)4001.00 (tight)normalss01Secondary/compact buttons
Linksohne-var14px (0.88rem)4001.00 (tight)normalss01Navigation links
Captionsohne-var13px (0.81rem)400normalnormalss01Small labels, metadata
Caption Smallsohne-var12px (0.75rem)300-4001.33-1.45normalss01Fine print, timestamps
Caption Tabularsohne-var12px (0.75rem)300-4001.33-0.36pxtnumFinancial data, numbers
Microsohne-var10px (0.63rem)3001.15 (tight)0.1pxss01Tiny labels, axis markers
Micro Tabularsohne-var10px (0.63rem)3001.15 (tight)-0.3pxtnumChart data, small numbers
Nanosohne-var8px (0.50rem)3001.07 (tight)normalss01Smallest labels
Code BodySourceCodePro12px (0.75rem)5002.00 (relaxed)normalCode blocks, syntax
Code BoldSourceCodePro12px (0.75rem)7002.00 (relaxed)normalBold code, keywords
Code LabelSourceCodePro12px (0.75rem)5002.00 (relaxed)normaluppercaseTechnical labels
Code MicroSourceCodePro9px (0.56rem)5001.00 (tight)normalss01Tiny code annotations

Principles

4. Component Stylings

Buttons

Primary Purple

Ghost / Outlined

Transparent Info

Neutral Ghost

Cards & Containers

Badges / Tags / Pills

Neutral Pill

Success Badge

Inputs & Forms

Decorative Elements

Dashed Borders

Gradient Accents

5. Layout Principles

Spacing System

Grid & Container

Whitespace Philosophy

Border Radius Scale

6. Depth & Elevation

LevelTreatmentUse
Flat (Level 0)No shadowPage background, inline text
Ambient (Level 1)rgba(23,23,23,0.06) 0px 3px 6pxSubtle card lift, hover hints
Standard (Level 2)rgba(23,23,23,0.08) 0px 15px 35pxStandard cards, content panels
Elevated (Level 3)rgba(50,50,93,0.25) 0px 30px 45px -30px, rgba(0,0,0,0.1) 0px 18px 36px -18pxFeatured cards, dropdowns, popovers
Deep (Level 4)rgba(3,3,39,0.25) 0px 14px 21px -14px, rgba(0,0,0,0.1) 0px 8px 17px -8pxModals, floating panels
Ring (Accessibility)2px solid #533afd outlineKeyboard focus ring

Shadow Philosophy: Stripe’s shadow system is built on a principle of chromatic depth. Where most design systems use neutral gray or black shadows, Stripe’s primary shadow color (rgba(50,50,93,0.25)) is a deep blue-gray that echoes the brand’s navy palette. This creates shadows that don’t just add depth — they add brand atmosphere. The multi-layer approach pairs this blue-tinted shadow with a pure black secondary layer (rgba(0,0,0,0.1)) at a different offset, creating a parallax-like depth where the branded shadow sits farther from the element and the neutral shadow sits closer. The negative spread values (-30px, -18px) ensure shadows don’t extend beyond the element’s footprint horizontally, keeping elevation vertical and controlled.

Decorative Depth

7. Do’s and Don’ts

Do

Don’t

8. Responsive Behavior

Breakpoints

NameWidthKey Changes
Mobile<640pxSingle column, reduced heading sizes, stacked cards
Tablet640-1024px2-column grids, moderate padding
Desktop1024-1280pxFull layout, 3-column feature grids
Large Desktop>1280pxCentered content with generous margins

Touch Targets

Collapsing Strategy

Image Behavior

9. Agent Prompt Guide

Quick Color Reference

Example Component Prompts

Iteration Guide

  1. Always enable font-feature-settings: "ss01" on sohne-var text — this is the brand’s typographic DNA
  2. Weight 300 is the default; use 400 only for buttons/links/navigation
  3. Shadow formula: rgba(50,50,93,0.25) 0px Y1 B1 -S1, rgba(0,0,0,0.1) 0px Y2 B2 -S2 where Y1/B1 are larger (far shadow) and Y2/B2 are smaller (near shadow)
  4. Heading color is #061b31 (deep navy), body is #64748d (slate), labels are #273951 (dark slate)
  5. Border-radius stays in the 4px-8px range — never use pill shapes or large rounding
  6. Use "tnum" for any numbers in tables, charts, or financial displays
  7. Dark sections use #1c1e54 — not black, not gray, but a deep branded indigo
  8. SourceCodePro for code at 12px/500 with 2.00 line-height (very generous for readability)