
Stripe — Developer-platform design built around money-moving forms.
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.
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.
# Stripe Design System — Design Style Reference
> **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.
_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._
## 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. Official reference: https://docs.stripe.com/stripe-apps/components */
: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._
If you're evaluating this 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.
Where next