Skip to content

Discover Design System

Two oranges, one job each: tangerine CTAs and a mustard hero over navy-purple ink, all in DiscoverSans. Tokens for React, Next.js, Claude and Cursor.

Primary color
#ea6a28
Typeface
DiscoverSans-Semibold
Shape
Soft
Base radius
20px
Colors
12
Type tokens
13
Components
16
Spacing values
7

About Discover DESIGN.md

Curated by Dov Azencot, updated May 19, 2026. Source discover.com (opens in a new tab).

Discover's marketing site spends two oranges where most card brands hold one in reserve. The primary CTA pill — the Log In button at the top-right of the nav and the apply-now CTAs scattered through the page — is rendered in saturated tangerine #ea6a28; meanwhile the wide rotating hero banner sits on a warmer mustard-gold #fcb116, and the cashback-rewards illustration mid-page uses the same mustard tone as its background block with a rendered Discover card floating across it. The split is deliberate: the saturated tangerine carries actions, the warmer mustard carries ambient brand warmth. Where Chase paints its hero in cobalt and Capital One leans on red, Discover trusts the orange-family voice to do both the action work and the editorial backdrop work without ever needing a third color.

The DESIGN.md file packages the system into a machine-readable spec for React tooling. Inside: 12 colors tokens drawn from the 14 raw values rendered on the captured page, organized into a brand-voltage tier (tangerine for actions, mustard for ambient warmth), a structural tier dominated by a single navy-purple ink #23233f at 645 occurrences that carries every heading, body paragraph, and border on the page, plus a secondary teal #2477ab that colors the utility strip above the primary nav; 14 typography tokens running DiscoverSans across every step — display at 48px / weight 400, sub-section headings at 19px / weight 700, body at 15px / weight 400 — with a brief Source Sans 12.8px italic appearance reserved for legal-disclaimer footnotes; a 4-step radius scale of 20 / 25 / 80 / 135px (no small-step tier — everything is generous); and 16 components definitions covering the tangerine CTA pill, the mustard rotating hero, the cashback illustration block, the credit-card-calculator promotional band, and the 5-column feature footer.

Feed this file to Claude or Cursor and it reproduces Discover's specific moves: two-orange voltage split between action and ambient, navy-purple ink instead of charcoal or pure black, DiscoverSans across every tier with bold-700 reserved for sub-section h3s only, fully-rounded card chrome at 25px (not 8 or 12), and a secondary teal utility strip above the primary nav. The one move worth borrowing for any consumer-finance brand: the willingness to spend the brand color on a 25px-radius promotional-band background rather than holding it back for the CTA — Discover gives the page chromatic warmth above the action, instead of saving every drop for the click target.

What makes it distinct

5 highlights

  1. Two-orange voltageTangerine #ea6a28 carries the CTA pill while mustard-gold #fcb116 colors the rotating promotional hero and the cashback-card illustration, splitting orange between action and ambient warmth
  2. Navy-purple ink as the canvas voiceDiscoverSans #23233f at 645 captured occurrences carries every heading, body paragraph, and border on the page; never pure black
  3. DiscoverSans-Semibold across every tierDisplay at 48px / weight 400 lives next to bold-700 sub-section headlines, splitting display authority between size and weight
  4. Fully-rounded card chrome25px corner radius (4 of 8 captured radii) gives every promotional tile and cashback illustration a friendly bank-app silhouette, never sharp
  5. Top-strip teal #2477abA secondary blue that carries the help-and-account utility band above the primary nav, distinct from any of the orange or navy brand voltages

Live at discover.com

Discover in production, as captured. Scroll the window to see the whole page.

Discover's website at discover.com

12 colors

Discover's system runs on #ea6a28 as its primary voltage, used in 1 of 16 components. Type is set in DiscoverSans-Semibold across 13 tokens from 10.5px to 48px, weights 400–700. Shape language is soft — components average 16px corner radius, with no sharp interactive edges.

Brand & Accent

Sparing, CTA-only voltage · 2

Surface

Page and card backgrounds · 3

Text

Headlines, body, captions · 5

Borders & Hairlines

Dividers, outlines, rules · 1

Other

Specialty colors · 1

13 type tokens

Set in DiscoverSans-Semibold across 13 tokens, from 10.5px to 48px, weights 400–700. Shown in its own stack: where the font isn't installed, the fallback the file names stands in.

  • display-xl48px · weight 400 · lh 56px · tracking -0.39984pxThe quick brown fox jumps over the lazy dog
  • display-md28px · weight 400 · lh 38.5pxThe quick brown fox jumps over the lazy dog
  • heading-md24px · weight 400 · lh 31pxThe quick brown fox jumps over the lazy dog
  • heading-sm19px · weight 700 · lh 30pxThe quick brown fox jumps over the lazy dog
  • heading-xs18px · weight 700 · lh 24pxThe quick brown fox jumps over the lazy dog
  • body-md15px · weight 400 · lh 20.625pxThe quick brown fox jumps over the lazy dog
  • body-sm14px · weight 400 · lh 20.65px · tracking -0.11662pxThe quick brown fox jumps over the lazy dog
  • body-xs13.125px · weight 400 · lh 18pxThe quick brown fox jumps over the lazy dog
  • label-md18px · weight 400 · lh 18pxThe quick brown fox jumps over the lazy dog
  • caption12px · weight 400 · lh 16.5pxThe quick brown fox jumps over the lazy dog
  • micro10.5px · weight 400 · lh 18pxThe quick brown fox jumps over the lazy dog
  • button-md19px · weight 700 · lh 20pxThe quick brown fox jumps over the lazy dog
  • legal-italic12.8px · weight 400 · lh 12.8pxThe quick brown fox jumps over the lazy dog

Radii and spacing

5 corner radii and 7 spacing values. Shape language: soft, on a 20px base radius.

Radii5

  • none0px
  • md20px
  • lg25px
  • xl80px
  • full135px

Spacing7

  • xs8px
  • sm9px
  • base10px
  • md13px
  • lg18px
  • xl20px
  • 2xl24px

16 components

Each rendered from its tokens (color, type, radius, padding) on Discover's own canvas.

  • Button Primary
    Button Primarybutton-primary
  • Button Secondary
    Button Secondarybutton-secondary
  • Utility Strip
    Utility Striputility-strip
  • Top Nav
    Top Navtop-nav
  • Nav Link
    Nav Linknav-link
  • Rotating Hero
    Rotating Herorotating-hero
  • Hero Heading
    Hero Headinghero-heading
  • Section Heading
    Section Headingsection-heading
  • Body Paragraph
    Body Paragraphbody-paragraph
  • Rewards Illustration
    Rewards Illustrationrewards-illustration
  • Calculator Band
    Calculator Bandcalculator-band
  • Card Tile
    Card Tilecard-tile
  • Feature Cell
    Feature Cellfeature-cell
  • Inline Link
    Inline Linkinline-link
  • Legal Footnote
    Legal Footnotelegal-footnote
  • Footer
    Footerfooter

The system, in use

Discover's tokens on the kind of product it builds.

Marketing heroThe homepage: its nav, a headline and the main call to action.
Open account

Money that moves as fast as you do

Send, save and spend with an account built for the way you live and work.

Open an accountSee how it works
A
Gross volume$84,210
Net balance$23,904
Payments1,284
Disputes3
Gross volumeLast 30 days
CheckoutPaying: the order summary beside the card form.
Secure checkout
Checkout$321.84
Wireless headphonesBlack · Qty 1$249.00Travel caseQty 1$49.00Tax$23.84
Total$321.84
Emailyou@example.comCard information1234 1234 1234 1234VISAMCAMEXExpiryMM / YYCVCCVCPay $321.84

Discover design system FAQ

Discover's tokens, its components and how to use this DESIGN.md in your project.

What are the color tokens in the Discover DESIGN.md?

Discover's DESIGN.md has 12 color tokens: primary (#ea6a28), primary-accent (#fcb116), link-blue (#2477ab), link-blue-deep (#3057b9), ink (#23233f), ink-secondary (#293033) and 6 more. Every value is a quoted hex you can copy.

What is Discover's primary color hex code?

The color token `primary` is #ea6a28, used by 1 component. The surface behind it is `canvas` (#ffffff).

How do I use Discover's colors in Tailwind CSS?

Map the tokens to your CSS variables: `primary` (#ea6a28) to `--primary`, `canvas` (#ffffff) to `--background`, `link-blue` (#2477ab) to `--foreground`. shadcn/ui's Tailwind setup maps them to classes such as `bg-primary` and `text-foreground`, so they then use Discover's palette.

What is Discover's primary brand color?

Discover runs two oranges rather than one. The primary CTA — Log In, Apply Now, View Card — fills with saturated tangerine #ea6a28 at 20px radius, white text inside. The wide rotating hero banner and the cashback-rewards block mid-page use a warmer mustard-gold #fcb116 as their background fill — same chromatic family, lower saturation, higher luminance. The split lets the page carry brand warmth on the editorial bands while reserving the most saturated tone for the one decision the visitor should make. The body sits on near-white #f8f8f8 with navy-purple #23233f ink — never pure black.

Use Discover in your project

One machine-readable file. Drop it into Claude Code, Cursor, VS Code or any AI tool that reads DESIGN.md.

Download DESIGN.md
  1. Download the DESIGN.md

    One machine-readable file: every color, type, radius, spacing, and component token of Discover.

  2. Feed it to your AI tool

    Drop it into Claude, Cursor, or GitHub Copilot. The agent writes React components and Tailwind classes that match Discover's visual language.

  3. Reference the tokens directly

    Or paste the values into your Tailwind config, CSS variables, or component library: every color, size and radius is a quoted, ready-to-copy value.

Read the full DESIGN.md overview, rationale, do’s and don’ts

Overview

Discover's marketing site spends two oranges where most card brands hold one in reserve. Two-orange voltage. The primary CTA — the Log In pill at the top-right of the nav, the Apply Now buttons scattered through the body, the View Card affordances — is rendered in saturated tangerine {colors.primary} (#ea6a28) at 20px radius. The wide rotating hero banner at the top of the page and the cashback-rewards illustration block mid-page use a warmer mustard-gold {colors.primary-accent} (#fcb116) as their background fill — same chromatic family, lower saturation, higher luminance. The split lets the page carry editorial warmth on its promotional bands while reserving the most saturated tone for the one decision the visitor should make. Where Chase paints its hero in cobalt and Capital One leans on red, Discover trusts the orange-family voice to do both the action work and the editorial backdrop without ever needing a third color.

Ink is navy-purple, not black. {colors.ink} (#23233f) carries 645 captured occurrences — 326 as text, 319 as border — making it the load-bearing structural color of the system. The slight chroma toward warm purple sits between a true neutral and a cool indigo; it gives the page warmth without competing with the orange voltage. Pure black ({colors.shadow} — #000000) shows up only twice in the captured page. This is the inverse of fintech-canonical text discipline at Stripe (which holds body text on a deep navy) and Square (which holds it on true black) — Discover lets the text itself carry chromatic warmth instead of relying on accent colors to add it back.

A secondary blue tier handles utility work. {colors.link-blue} (#2477ab) at 116 occurrences runs across the inline-link tier, the utility strip above the primary nav, and the footer category links — a cooler accent that signals "navigation" rather than "action." A deeper {colors.link-blue-deep} (#3057b9) appears as the hover state on inline links. The two blues stay out of the action tier; orange always wins for clickable CTAs.

Key Characteristics:

  • Two-orange voltage — tangerine {colors.primary} carries CTAs and apply-now actions; mustard {colors.primary-accent} carries the rotating hero and cashback-rewards illustration. Action vs. ambient warmth.
  • Navy-purple ink {colors.ink} (#23233f) at 645 occurrences carries every heading, body paragraph, and border on the page. Never pure black.
  • DiscoverSans across every tier — display at 48px / weight 400, sub-section h3 at 19px / weight 700, body at 15px / weight 400. The weight split is the move.
  • Generous radius scale — 20 / 25 / 80 / 135px, no small-step tier. The smallest rounded surface is the CTA pill at 20px.
  • Secondary blue {colors.link-blue} (#2477ab) handles inline links, the utility strip above the primary nav, and the footer category labels — a navigation color, never an action color.
  • 16 face DiscoverSans family wired into CSS as --DiscoverSans-Thin through --DiscoverSans-ExtraboldItalic — Discover ships a full optical-size foundry-style family.
  • Source Sans 12.8px italic appears only inside the legal-disclaimer footnote — the one place the proprietary family is not used.
  • 10px base spacing module with cluster at 8 / 13 / 18 / 24px and 25px on outer card padding.

Colors

Brand

  • Tangerine Primary ({colors.primary} — #ea6a28): frequency 3. Used as background (2), border (1). The action voltage — fills the primary CTA pill (Log In, Apply Now, View Card), wired as the explicit backgroundColor on every primary button. The only saturated tangerine in the system; reserved for clickable CTAs.
  • Mustard Accent ({colors.primary-accent} — #fcb116): frequency 4 as background. The ambient brand warmth — fills the wide rotating hero banner at the top of the page, the cashback-rewards illustration block mid-page, the credit-card calculator promotional band. Same chromatic family as the tangerine, lower saturation. Reserved for editorial backdrop, never for CTAs.

Link

  • Link Blue ({colors.link-blue} — #2477ab): frequency 116 — 58 as text, 58 as border. The secondary blue tier — runs across inline links in body copy, the utility strip above the primary nav, the footer category labels. A cooler accent that signals navigation rather than action. The dominant link color in the system.
  • Link Blue Deep ({colors.link-blue-deep} — #3057b9): frequency 4. The hover / press state on inline links — a step darker and slightly more saturated than the resting link blue.

Text

  • Ink ({colors.ink} — #23233f): frequency 645 — 326 as text, 319 as border. The dominant structural color of the system. Navy-purple, not black — the slight chroma toward warm purple gives the page warmth without competing with the orange brand voltage. Carries every heading, body paragraph, and primary border on the page.
  • Ink Secondary ({colors.ink-secondary} — #293033): frequency 4 — 2 as text, 2 as border. A second-tier neutral used for smaller utility text and disclaimer subheads — slightly darker, slightly less purple.
  • Ink on Orange ({colors.ink-on-orange} — #ffffff): frequency 15. White text used on the tangerine CTA pill and on imagery overlays. The only place white appears as a text color in the captured page.

Surface

  • Canvas ({colors.canvas} — #ffffff): frequency 15 — 10 as background, 3 as text, 2 as border. The body floor and card-tile fill. Pure white.
  • Surface-1 ({colors.surface-1} — #f8f8f8): the very-pale neutral used for the utility strip above the primary nav, the legal-footnote band, and the footer canvas. Wired as a slight tint off the canvas so the utility strip reads as a separate band without forcing a border.
  • Surface Divider ({colors.surface-divider} — #e9e9ec): frequency 2 as background. The mid-tone neutral used for section dividers and the FAQ-collapse interior fill.

Hairline

  • Hairline ({colors.hairline} — #dbdbdb): frequency 1 as border. A pale neutral hairline used on card outlines. Far less dominant than the navy-purple ink, which carries most of the structural border work.

Shadow

  • Shadow ({colors.shadow} — #000000): frequency 2 — 1 as text, 1 as border. Pure black appears only twice in the entire captured page, both as decorative micro-elements in illustration. The system does not use shadows for elevation.

Typography

Font Family

The system runs DiscoverSans for everything — a commissioned proprietary sans wired into 16 separate face files exposed as CSS variables (--DiscoverSans-Thin through --DiscoverSans-ExtraboldItalic, including italic variants for every weight). The family ships with foundry-style optical sizing: Thin, Light, Book, Medium, Semibold, Bold, Extrabold across both roman and italic, giving Discover a full editorial range. Fallbacks walk to sans-serif. Source Sans 12.8px italic appears only inside the legal-disclaimer footnote at the bottom of the page — the one place the proprietary family is not used.

Hierarchy

TokenSizeWeightLine HeightLetter SpacingUse
{typography.display-xl}48px40056px-0.40pxHero h2 ("Making Your Finances Work Harder For You")
{typography.display-md}28px40038.5px0Calculator-band display, rotating-hero callouts
{typography.heading-md}24px40031px0Section h2 ("How can we help?")
{typography.heading-sm}19px70030px0Sub-section h3s (DiscoverSans-Bold)
{typography.heading-xs}18px70024px0Small section h3 labels (DiscoverSans-Bold)
{typography.body-md}15px40020.625px0Default running text, card body, paragraph copy
{typography.body-sm}14px40020.65px-0.11pxLead h2 paragraphs, dense text rows
{typography.body-xs}13.125px40018px0Top-nav links, footer category labels
{typography.label-md}18px40018px0Block titles inside cards
{typography.caption}12px40016.5px0Metadata, fine print
{typography.micro}10.5px40018px0Footer copyright, micro-disclosures
{typography.button-md}19px70020px0Primary CTA pill label (DiscoverSans-Bold)
{typography.legal-italic}12.8px40012.8px0Legal-disclaimer footnote only (Source Sans Italic)

Principles

The weight system splits work between display and h3. Display sits at 48px in Semibold weight 400 — the editorial-magazine treatment with -0.40px tracking; sub-section h3s sit at 19px in Bold weight 700 — the dense-headline treatment that pulls the eye through a long-scroll page of feature blocks. Where Stripe holds every tier at weight 300 and Cloudflare holds at weight 500, Discover runs both — 400 on the loud display and 700 on the dense sub-section. The result reads more "consumer-finance editorial" than "fintech minimal."

Note on Font Substitutes

DiscoverSans is a commissioned proprietary family. Inter at the same weights is the closest open-source substitute; Source Sans 3 (already used in the legal footnote) is closer in feel and is the lighter cousin of the same humanist style. For the bold tier (h3s at weight 700), Inter Bold transfers cleanly. The weight split — display at 400, h3 at 700 — is the move to preserve regardless of which family you swap in.

Layout

Spacing System

  • Base unit: 10px — the dominant gap module, with secondary clusters at 8 / 13 / 18 / 24px.
  • Tokens: {spacing.xs} 8px · {spacing.sm} 9px · {spacing.base} 10px · {spacing.md} 13px · {spacing.lg} 18px · {spacing.xl} 20px · {spacing.2xl} 24px.
  • Section padding (vertical): ~80px between major bands on the body; the rotating-hero and rewards-illustration blocks sit edge-to-edge with their orange fills.
  • Card internal padding: {spacing.xl} (20px) for {component.card-tile}; {spacing.2xl} (24px) for {component.rewards-illustration} and {component.calculator-band}.
  • Top-nav padding: {spacing.md} (13px) vertical, {spacing.lg} (18px) horizontal.

Grid & Container

  • Max content width: ~1100px on display headlines and editorial blocks, ~1280px on the cashback-illustration and footer bands.
  • Rotating hero: full-bleed mustard {colors.primary-accent} block with photographic content overlay; 24x20 padding, 20px outer radius.
  • 3-up promotional row: three side-by-side card tiles (Find cash back rewards / Earn rewards on every purchase / Rates to fit your needs) on a white canvas, each at 25px radius.
  • Rewards illustration: 2-column block pairing a 50/50 mustard fill on the left with a rendered Discover card floating over it on the right.
  • Calculator promotional band: full-width mustard band reading "Credit Card Calculators" with a tangerine CTA pill centered beneath.
  • Footer: 5-column site-map block with category headings in navy-purple and links in {colors.link-blue} on the {colors.surface-1} canvas.

Rhythm

The page alternates between promotional bands (full-bleed mustard with display copy) and editorial bands (white-canvas card grids with body copy). The rotating hero is promotional, the 3-up cashback row is editorial, the rewards illustration is promotional, the "Making Your Finances Work Harder" block is editorial, and so on. Mustard signals "promotional brand moment," white signals "editorial information." The page never lets two promotional bands stack — the editorial bands carry the visual breath.

Elevation

The system has essentially no shadow tier. Pure black {colors.shadow} (#000000) appears only twice in the entire captured page, both as decorative micro-elements in illustration rather than as ambient shadow ink. Depth comes from {colors.ink} (#23233f) 1px borders on card tiles (319 captured border occurrences) and from the surface-color contrast between {colors.canvas} (pure white) and {colors.surface-1} (#f8f8f8) on the utility strip and footer.

  • Flat (no shadow): rotating hero, body bands, card tiles, calculator band, footer — 100% of surfaces.
  • Card outline: {colors.ink} (#23233f) at 1px on card-tile borders carries the depth work.
  • Surface contrast: the {colors.surface-1} (#f8f8f8) utility strip and footer canvas read as separate bands against the pure-white body without needing a border or shadow.

Shapes

The radius scale is generously rounded — the smallest surface is at 20px, and the system skips the 4–12px tier that most fintech brands use:

  • {rounded.none} 0px — only on full-bleed editorial bands and image overlays.
  • {rounded.md} 20px (2 occurrences) — the primary CTA pill {component.button-primary}. Fully rounded at the button height; reads as a soft-edge pill.
  • {rounded.lg} 25px (4 occurrences) — card tiles, the cashback-rewards illustration block, the 3-up promotional row. The dominant card radius.
  • {rounded.xl} 80px (1 occurrence) — the rotating-hero outer corner masking.
  • {rounded.full} 135px (1 occurrence) — large promotional banner masking on the calculator-band illustration.

There is no 4 / 8 / 12px tier. The smallest rounded surface is 20px. The result is a friendly bank-app silhouette across every card and CTA — distinct from Stripe's 4px tight radius or Mastercard's 8px standard.

Components

button-primary — The signature CTA. Tangerine {colors.primary} fill, white text, {rounded.md} (20px), 9px padding, 38px height, weight 700. The Log In pill at the top-right of the nav and the Apply Now / View Card buttons throughout the body. The only saturated-tangerine background-fill instance in the system.

button-secondary — White canvas fill, {colors.link-blue} text, 1px link-blue border, {rounded.md} 20px radius. The "Learn more" / "Continue" alternative used inside cards.

utility-strip — Pale neutral {colors.surface-1} (#f8f8f8) fill, {colors.link-blue} text, 8x24 padding, 32px height. The thin utility band above the primary nav holding the customer-service phone, login, account-management links. Sits as a separate band against the white nav without needing a border.

top-nav — White {colors.canvas} surface, 60px height, navy-purple text. Discover wordmark flush left, primary nav links (Credit Cards / Banking / Loans / Investing / About) center, right-aligned Log In tangerine CTA. The wordmark is the only place the brand voltage appears as a background fill in the nav band.

nav-link — Transparent background, navy-purple text in {typography.body-xs} (13.125px / 400), 0x10 padding.

rotating-hero — Full-bleed mustard {colors.primary-accent} (#fcb116) block holding the rotating promotional carousel, 24x20 padding, 20px outer radius. Holds a display headline, lead paragraph, and centered CTA pill.

hero-heading — Navy-purple text on the white canvas, {typography.display-xl} (48px / 400, -0.40px tracking). The editorial-magazine display tier. Padding offset 0x0x0x10 — the headline indents 10px from the left grid line.

section-heading — Navy-purple text, {typography.heading-md} (24px / 400). The "How can we help?" / "We've got your financial needs covered" tier.

body-paragraph — Default navy-purple running text at {typography.body-md} (15px / 400).

rewards-illustration — Mustard {colors.primary-accent} fill, navy-purple text, {rounded.lg} 25px radius, 24px padding. The "Find great cash back rewards" block pairs a mustard fill on the left with a rendered Discover card on the right at 50/50.

calculator-band — Mustard fill, navy-purple text, edge-to-edge with no radius, 24px padding. The "Credit Card Calculators" promotional band — full-width canvas reading the headline above a tangerine CTA.

card-tile — White canvas fill, navy-purple text, 1px hairline {colors.hairline} border, {rounded.lg} 25px radius, 20px padding. The default content card used in the 3-up promotional row and footer feature cells.

feature-cell — White canvas, navy-purple text, 20px padding, no border. The 5-column footer feature row holds a small heading and 3-4 link rows per cell.

inline-link — Inline text in {colors.link-blue} (#2477ab) at {typography.body-md}. Links in body copy and FAQ entries. The link voltage; never tangerine.

legal-footnote — Pale neutral {colors.surface-1} fill, navy-purple text, {typography.legal-italic} (12.8px Source Sans Italic), 24px padding. The legal-disclaimer band at the bottom of the body, just above the footer. The one place the proprietary DiscoverSans family is not used.

footer — Pale neutral {colors.surface-1} (#f8f8f8) canvas, link-blue category labels, 24px padding. Multi-column site map with category headings in navy-purple and links in the secondary link-blue tier.

Do's and Don'ts

Do spend two oranges, not one. Reserve {colors.primary} (tangerine #ea6a28) for the CTA pill and {colors.primary-accent} (mustard #fcb116) for the rotating hero and cashback-illustration bands. Painting both surfaces in the saturated tangerine collapses the action-vs-ambient distinction the page depends on.

Do use {colors.ink} (#23233f) — never pure {colors.shadow} (#000000) — for body text and card borders. The navy-purple chroma adds warmth without competing with the orange voltage; pure black would read cold and would clash with the warm orange editorial bands.

Do keep card radius at {rounded.lg} (25px) or larger. The system is deliberately generous — even the smallest surface (the CTA pill) sits at 20px. Adding a 4–12px middle tier softens the friendly bank-app silhouette.

Do reserve {colors.link-blue} (#2477ab) for inline links, utility-strip text, and footer category labels — never for the primary CTA. The system splits the action voltage (tangerine) from the navigation voltage (link blue); using blue on a CTA breaks the cross-page convention.

Don't use {colors.primary-accent} (mustard #fcb116) as a button background. The mustard reads as ambient brand warmth, not as a clickable surface — the page consistently overlays a separate tangerine CTA on top of mustard fields rather than letting the mustard itself act as the affordance.

Don't introduce a small-step radius tier (4 / 8 / 12px). The system skips this entirely — the smallest rounded surface in the captured page is 20px. Dropping below would shift the silhouette from "consumer bank app" to "fintech tool" and break the visual rhythm of the page.

Don't render {typography.heading-sm} (h3 sub-sections) at weight 400. The weight split — display at 400, h3 at 700 — is the page's vertical-hierarchy device. Flattening the h3 to display weight loses the dense-headline pull that carries the long-scroll feature blocks.

Don't reach for pure white {colors.canvas} inside the legal-footnote band. The footnote sits on {colors.surface-1} (#f8f8f8) and is rendered in Source Sans Italic — the surface tint and italic typeface together signal "secondary editorial / legal context," and dropping the tint loses the band's affordance.

Known Gaps

  • Hover and focus states: the captured page renders resting-state values only; focus rings, active press, and disabled tints on the primary CTA are not exposed in the marketing surface.
  • Form input states: the page captures no form-input components — the apply-now flow lives behind the CTA and is not represented here. Discover ships full form chrome in the application portal that is not in scope.
  • Dark mode: the marketing surface is light-only. No --theme-* dark variants are exposed in the captured CSS.
  • Motion: the rotating-hero carousel animates on a timed loop; transition timing, easing, and stagger live in the runtime JavaScript and are not captured as CSS tokens.
  • Product surfaces: this DESIGN.md captures the marketing site only. The Discover online-banking portal, the credit-card-account dashboard, and the loan-application flows carry their own token systems that are not represented here.
  • Card-art catalog: the rotating-hero and rewards-illustration blocks render specific Discover card art (it gets it Card, Cashback Debit, Student Card, etc.) — the card-art SVG palette and styling are not included as tokens in this spec.
  • Multi-italic legal tier: the captured page exposes only Source Sans 400 italic at 12.8px for legal copy, but the --Source-Sans-400-normal CSS variable is also declared — its roman variant is reserved for legal-copy roman text but doesn't render on the homepage.

More systems like this

Afterpay, Barclays, Betterment and 47 more in Banking & Payments: each brand's colors, type and components in one file your AI agent builds from.

Build it with Pro

The DESIGN.md files are free. Pro adds 6,000+ blocks, premium templates and the MCP server, so your AI editor builds in your system for you.

4.9/5 out of 5 · 150+ reviewsfrom 150+ founders and developers.

Billed once a year in USD. Cancel anytime.

Individual

For personal projects & open source

$32instead of $49/mo

$389 billed yearly

  • How many people can use the license.Seats: 1 seat
  • Client work, SaaS products and anything you charge for.Commercial use: Personal & open source only
  • Page sections in 56 categories, from heroes and pricing tables to dashboards and settings, on every framework and UI library, in your theme.Blocks: All 6,181 blocks
  • Complete Next.js sites for startups, SaaS, agencies and portfolios, every page designed, ready to ship.Templates: All 14 templates
  • Your AI agent searches, previews and installs any component, block, icon or DESIGN.md from a prompt: 22 tools in Claude Code, Cursor, VS Code and 35 more clients.MCP server: 38 AI clients
  • Buttons with motion and states of their own, from an arrow that slides in to a burst of confetti.Animated buttons: All 35 buttons
  • Typewriters, scrambles, counters and more, for headlines, labels and numbers.Text effects: All 97 effects
  • Animated backgrounds for heroes, sections and cards, from a soft aurora to a flock that flees the cursor. Most are pure CSS.Backgrounds: All 100 backgrounds
  • WebGPU shaders, from a slow aurora to a black hole, each drawing only while it's on screen.Shaders: All 100 shaders
  • One design and one theme on all four: the components, blocks and effects are built for each framework.Frameworks: React, Vue, Svelte, Solid
  • React on Base UI, Radix UI, React Aria or Ark UI: install the version for the library your project already uses. Vue, Svelte and Solid run on Ark UI.UI libraries: Base UI, Radix, Aria, Ark
  • From a button to a date picker, a color picker or a guided tour: accessible, typed in TypeScript, each with live demos.Components: All 174 components
  • Real-world patterns built from the components, in 53 galleries: forms, tables, menus, dialogs and more.Examples: All 1,103 examples
  • Area, bar, line, pie, radar and radial charts on TanStack Charts, on every framework. React also gets the Recharts originals.Charts: All 70 charts
  • Debounce, local storage, media queries and more: each hook is one typed file you own.React hooks: All 35 hooks
  • From 222 libraries, Lucide, Heroicons, Tabler and Material Symbols among them, as SVG or a React component in one command.Icons: 294k+ icons
  • Stripe, Linear, Apple and 497 more: a brand's colors, typography and components in one file your AI agent builds from.DESIGN.md files: All 500 brands
  • Restyle every component and block at once: 8 styles, 7 grays, 18 colors and 5 radii, shared as a shadcn preset code.Theme builder: 8 styles × 18 colors
  • Priority requests are answered first.Support: Standard

Team

Most popular

For freelancers, agencies & startups

$66instead of $99/mo

$789 billed yearly · ≈ $13/dev/mo

Everything in Individual, plus

  • How many people can use the license.Seats: Up to 5 seats
  • Client work, SaaS products and anything you charge for.Commercial use: Included
  • Priority requests are answered first.Support: Priority

Organization

For companies with larger teams

$132instead of $199/mo

$1,589 billed yearly

Everything in Team, plus

  • How many people can use the license.Seats: Unlimited seats
  • Secure checkout via Stripe
  • Code lives in your repo
  • Keep what you've shipped if you cancel
  • License terms

4.9 out of 5 from 150+ developers

Your system, built for you

Every block, template and icon, installed by your AI agent in your design system. The DESIGN.md files stay free.

Get Pro
  • Cancel anytime
  • Keep what you've shipped