Design system breakdown
Stripe — Developer-platform design built around money-moving forms.

Fit guidance has no recorded field-level check date. Readiness audit: 2026-09-04; 2 of 5 signals unknown, 1 source-linked.
Stripe's public design surface evolved alongside the Dashboard, Stripe Apps, and the Stripe Docs experience. The publicly-documented component library appeared with Stripe Apps in 2022, codifying patterns Stripe had been refining internally for years on high-stakes financial flows.
A central design org owns the system; component changes ship through internal review with versioned releases for Stripe Apps. The Dashboard's own design system is internal, but its patterns inform what's published — and what's not.
The identity-bearing decisions, rendered. Names and values are illustrative — refer to the system’s official tokens reference for the canonical, current set.
color-action-primary
Stripe purple, primary CTA
color-text-default
Default body text
color-bg-page
Dashboard page surface
color-text-critical
Failed payment, destructive emphasis
font-family-product
Product UI typography
radius-control
Default input and button radius
The full picture — palette, type ramp, spacing grid, radius, elevation and motion, restated in our own structure from Stripe Design System’s public references. Factual values for study; the official docs remain canonical.
Editable editorial reference. 0/83 fields have an explicit source and 0 have a recorded check date. Context sources are not proof of every value; verify current values with the maintainer before implementation.
Inspect every field and its evidence (JSON)Blurple
Stripe brand and primary actions
--stripe-brand
Dark Navy
Headings and dark surfaces
--stripe-navy
Text
Body text (slate)
--stripe-text
White
Surfaces
--stripe-white
Light Surface
Section backgrounds
--stripe-light
Border
Hairlines
--stripe-border
Cyan Accent
Gradient accent
--stripe-cyan
Success Green
Success
--stripe-success
Error Red
Errors
--stripe-error
'sohne-var', 'Helvetica Neue', Arial, sans-serif
Weights: 400, 425, 500
'sohne-mono', Menlo, Consolas, monospace
Weights: 400
Base unit 4px
Card
Popover
Exactly what ships in stripe-design-design.md — plus the same token snapshot restated as CSS custom properties. Copy either, or feed the Markdown straight to an AI coding tool as styling context.
Restated from docs.stripe.com. The file lists its sources and method in a provenance block at the top.
# Stripe Design System — Design Style Reference
```yaml
# How this file was made. Sources are first-party; nothing here is
# read from a rendered page. Full breakdown at source_page below.
method: restated-from-official-docs
confidence: medium
verified_at: unknown
source_page: https://www.designsystems.one/design-systems/stripe-design
sources:
- https://docs.stripe.com/stripe-apps/components
- https://stripe.com/
```
> **Unofficial, community-authored reference.** Compiled by [designsystems.one](https://www.designsystems.one). Not affiliated with, endorsed by, or sponsored by Stripe. "Stripe Design System" and related marks belong to their respective owners. This document describes publicly observable style attributes in original words — it contains no copied documentation, logos, icon artwork, or original token files. Always defer to the official source for canonical, current values.
**System:** Stripe Design System
**Owner:** Stripe
**Official documentation:** https://docs.stripe.com/stripe-apps/components
**Visual character:** Fintech theater at 60fps: blurple-to-cyan gradients over deep navy, Sohne precision, and the internet's most imitated landing pages.
---
## Summary
Developer-platform design built around money-moving forms.
_Editorial confidence: medium. Most values are publicly documented; a few are best-effort readings of the live product. Stripe's full internal system (Sail) is private; values reflect publicly served surfaces and Stripe Apps guidance. Field-level evidence: 0/83 claims source-linked, 0/83 dated. Confidence is not verification; validate canonical values before implementation._
[Inspect every field and its evidence](https://www.designsystems.one/api/style-spec?system=stripe-design)
## Color tokens
| Color | Value | CSS variable | Role |
| --- | --- | --- | --- |
| Blurple | `#635bff` | `--stripe-brand` | Stripe brand and primary actions |
| Dark Navy | `#0a2540` | `--stripe-navy` | Headings and dark surfaces |
| Text | `#425466` | `--stripe-text` | Body text (slate) |
| White | `#ffffff` | `--stripe-white` | Surfaces |
| Light Surface | `#f6f9fc` | `--stripe-light` | Section backgrounds |
| Border | `#e6ebf1` | `--stripe-border` | Hairlines |
| Cyan Accent | `#00d4ff` | `--stripe-cyan` | Gradient accent |
| Success Green | `#24b47e` | `--stripe-success` | Success |
| Error Red | `#cd3d64` | `--stripe-error` | Errors |
## Typography
- **Body:** Sohne (custom) — weights 400, 425, 500 — `'sohne-var', 'Helvetica Neue', Arial, sans-serif`
- **Mono:** Sohne Mono — weights 400 — `'sohne-mono', Menlo, Consolas, monospace`
## Type scale
| Step | Size | Line height |
| --- | --- | --- |
| display | `56px` | `64px` |
| heading-1 | `34px` | `44px` |
| heading-2 | `24px` | `32px` |
| body | `15px` | `24px` |
| small | `13px` | `20px` |
## Spacing
Base unit: `4px`
Scale: `4px` · `8px` · `12px` · `16px` · `24px` · `32px` · `48px` · `64px`
## Corner radius
| Name | Value |
| --- | --- |
| small | `4px` |
| medium | `8px` |
| large | `16px` |
| pill | `9999px` |
## Elevation / shadows
| Name | Value |
| --- | --- |
| card | `0 2px 5px -1px rgba(50,50,93,0.25), 0 1px 3px -1px rgba(0,0,0,0.3)` |
| popover | `0 13px 27px -5px rgba(50,50,93,0.25), 0 8px 16px -8px rgba(0,0,0,0.3)` |
## Motion
| Name | Value |
| --- | --- |
| default | `150ms cubic-bezier(0.215, 0.61, 0.355, 1)` |
## Quick start (CSS)
```css
/* Stripe Design System — illustrative tokens, restated as CSS custom properties.
Unofficial reference by designsystems.one; values are indicative, not
canonical. Native dp/sp values are omitted, never silently converted.
Official reference: https://docs.stripe.com/stripe-apps/components
Reference scope: Stripe's full internal system (Sail) is private; values reflect publicly served surfaces and Stripe Apps guidance.
Field evidence: https://www.designsystems.one/api/style-spec?system=stripe-design */
:root {
/* Color */
--stripe-brand: #635bff; /* Stripe brand and primary actions */
--stripe-navy: #0a2540; /* Headings and dark surfaces */
--stripe-text: #425466; /* Body text (slate) */
--stripe-white: #ffffff; /* Surfaces */
--stripe-light: #f6f9fc; /* Section backgrounds */
--stripe-border: #e6ebf1; /* Hairlines */
--stripe-cyan: #00d4ff; /* Gradient accent */
--stripe-success: #24b47e; /* Success */
--stripe-error: #cd3d64; /* Errors */
/* Typography */
--font-body: 'sohne-var', 'Helvetica Neue', Arial, sans-serif;
--font-mono: 'sohne-mono', Menlo, Consolas, monospace;
/* Type scale */
--text-display: 56px; /* line-height 64px */
--text-heading-1: 34px; /* line-height 44px */
--text-heading-2: 24px; /* line-height 32px */
--text-body: 15px; /* line-height 24px */
--text-small: 13px; /* line-height 20px */
/* Spacing */
--space-1: 4px;
--space-2: 8px;
--space-3: 12px;
--space-4: 16px;
--space-5: 24px;
--space-6: 32px;
--space-7: 48px;
--space-8: 64px;
/* Radius */
--radius-small: 4px;
--radius-medium: 8px;
--radius-large: 16px;
--radius-pill: 9999px;
/* Elevation */
--shadow-card: 0 2px 5px -1px rgba(50,50,93,0.25), 0 1px 3px -1px rgba(0,0,0,0.3);
--shadow-popover: 0 13px 27px -5px rgba(50,50,93,0.25), 0 8px 16px -8px rgba(0,0,0,0.3);
/* Motion */
--motion-default: 150ms cubic-bezier(0.215, 0.61, 0.355, 1);
}
```
## Origin
Stripe's public design surface evolved alongside the Dashboard, Stripe Apps, and the Stripe Docs experience. The publicly-documented component library appeared with Stripe Apps in 2022, codifying patterns Stripe had been refining internally for years on high-stakes financial flows.
## Governance
A central design org owns the system; component changes ship through internal review with versioned releases for Stripe Apps. The Dashboard's own design system is internal, but its patterns inform what's published — and what's not.
## Known for
- Form patterns engineered for money-moving — inline validation, confirmation states, and irreversible-action affordances done unusually well.
- Documentation as a design surface — Stripe Docs is itself a reference example of long-form developer UX.
- Tableau-class data tables tuned for financial reconciliation, with sticky columns, async filters, and exportable views.
## Underrated
- The empty- and error-state catalog is among the most thorough in fintech — every flow assumes payments can fail.
- Stripe's typography stack (Sohne for product, source-serif for content) is documented with restraint rules most systems skip.
## Watch out for
- The Stripe Apps component library is intentionally constrained — it's a sandbox API, not a general-purpose UI kit.
- Patterns assume Stripe-flavored business logic (money, ledgers, refunds). Lifting them whole into adjacent products imports those assumptions.
## Components worth studying
- **AmountInput** — Currency-aware input with locale formatting and decimal-place enforcement.
- **DataTable (Dashboard)** — Sticky-column financial table with async filters, presets, and exportable views.
- **ConfirmDialog** — Reference irreversible-action confirmation — typed confirmation, delay, and consequence preview.
## When to choose Stripe Design System
Study Stripe's system if you're building fintech, billing, or any product where forms move real money. Don't expect a public component library to drop into your project — the reference is the published patterns and the Stripe Apps subset.
## Apply this style with an AI tool
Paste this into your AI coding assistant as a direction, then iterate:
> Design in the spirit of Stripe Design System by Stripe — Developer-platform design built around money-moving forms. Character: Fintech theater at 60fps: blurple-to-cyan gradients over deep navy, Sohne precision, and the internet's most imitated landing pages. Use a primary colour near #635bff, the typeface "Sohne (custom)" (or a close equivalent), corner radius around 4px, a spacing rhythm on a 4px base. Lean into what it's known for: Form patterns engineered for money-moving — inline validation, confirmation states, and irreversible-action affordances done unusually well. Match the intent, not the pixels; adapt it to my product rather than cloning it.
## Official references
- [Stripe Apps components](https://docs.stripe.com/stripe-apps/components)
- [Stripe Press — design](https://stripe.com/press)
- [Stripe Docs (as a reference)](https://docs.stripe.com/)
---
_Generated by [designsystems.one](https://www.designsystems.one/design-systems/stripe-design) — a catalogue of public design systems. Style facts are reported for reference and education; adapt them to your own product. Report issues or takedown requests via the site._
AmountInput
Currency-aware input with locale formatting and decimal-place enforcement.
DataTable (Dashboard)
Sticky-column financial table with async filters, presets, and exportable views.
ConfirmDialog
Reference irreversible-action confirmation — typed confirmation, delay, and consequence preview.