light · structured · sans · fintech · enterprise

DESIGN.md inspired by Chase

Trust-institutional banking UI — white canvas, near-black ink, bright-blue primary + green secondary CTAs in Open Sans.

By webdesignhot · www.chase.com
$ npx @webdesignhot/design-md add chase
Learn more about the CLI
Compare to…
try on →
theme
1440 × 900
mobile · 390 × 844
Tokens webdesignhot/0.1
  • bg #ffffff
  • surface #ffffff
  • surface-soft #f5f7fa
  • surface-tint #eef4ff
  • text AAA · 17.9 #101820
  • text-muted #5a6470
  • text-faint AA · 4.8 #6b7280
  • text-on-brand #ffffff
  • text-on-green #ffffff
  • brand AA · 5.3 #0060f0
  • brand-hover #0048bf
  • brand-deep #003594
  • secondary #128842
  • secondary-hover #0e6e35
  • link #0060f0
  • link-hover #0048bf
  • border — · 1.4 #d4d9e0
  • border-strong — · 2.6 #9aa3af
  • border-on-dark rgba(255,255,255,0.24)
  • scrim rgba(16,24,32,0.55)
  • shadow-soft rgba(16,24,32,0.06)
  • shadow-medium rgba(16,24,32,0.12)
  • shadow-deep rgba(16,24,32,0.20)
  • on-brand #ffffff
  • success #128842
  • warning #9a5b00
  • danger #c4001a
  • info #0060f0
Typography
Ship faster than ever.
display-hero "Open Sans" 80px w700 -0.03em
Ship faster than ever.
display-lg "Open Sans" 56px w700 -0.02em
Ship faster than ever.
h1 "Open Sans" 40px w700 -0.018em
Ship faster than ever.
h1-hero "Open Sans" 32px w700 -0.012em
Built for teams that ship.
h2 "Open Sans" 32px w600 -0.012em
A complete kit
h3 "Open Sans" 24px w600 -0.005em
The quick brown fox jumps over the lazy dog.
h4 "Open Sans" 20px w600 0
The quick brown fox jumps over the lazy dog.
body-lg "Open Sans" 18px w400 0
The quick brown fox jumps over the lazy dog.
body "Open Sans" 16px w400 0
OUR DESIGN SYSTEM
button-label "Open Sans" 16px w600 0
The quick brown fox jumps over the lazy dog.
nav-link "Open Sans" 16px w600 0
The quick brown fox jumps over the lazy dog.
body-sm "Open Sans" 14px w400 0
OUR DESIGN SYSTEM
label "Open Sans" 13px w500 0
OUR DESIGN SYSTEM
caption "Open Sans" 12px w500 0.02em
The quick brown fox jumps over the lazy dog.
legal-micro "Open Sans" 11px w400 0
Spacing
  • step-0 0px
  • step-1 4px
  • step-2 8px
  • step-3 12px
  • step-4 16px
  • step-5 24px
  • step-6 32px
  • step-7 48px
  • step-8 64px
  • step-9 96px
Radius
  • micro 2px
  • sm 4px
  • brand 5px
  • md 8px
  • lg 12px
  • xl 16px
  • pill 9999px
Components
Text link →
Card preview A complete kit — everything your product needs. Hero, pricing, FAQ, dashboard, docs — every layout your product needs.
New Stable v1.0
Design roles 6/8 mapped · webdesignhot/0.1

Maps the 8 canonical role names to this entry's actual tokens. Use these to plug the design into role-aware tools — shadcn/ui themes, role-aware Tailwind plugins, atelier-lint — without hard-coding token names.

  • background bg
  • foreground text
  • primary brand
  • primary-foreground on-brand
  • accent
  • muted text-muted
  • border border
  • ring
Lineage & influences

Chase sits in the lineage of major-institution corporate web design — the trust-first tradition descending from Swiss / International Typographic Style: one humanist sans (Open Sans) carrying the whole hierarchy, near-black ink on plain white, generous whitespace as the organizing device, and a single brand color reserved almost entirely for action. It reads less like a startup marketing site and more like a well-set annual report translated to the web, which is exactly right for a bank whose product is confidence. What makes the system specifically Chase is the octagon-blue identity (#0060f0) concentrated into the primary action and the two-CTA dialogue that pairs a blue primary (Sign in) with a green secondary (Open an account). The brand deliberately rejects trend-driven consumer-fintech patterns — no glassmorphism, no gradient meshes, no oversized playful radii, no dark-mode-first aesthetic — and rejects the dense data-grid look of developer tools in favor of calm legibility for a general public making financial decisions.

Export 4 formats · paste-ready
Tailwind

theme.extend block for tailwind.config.js

tailwind.config.js
CSS variables

:root { --bg, --text, --brand, … } you can paste anywhere

design.css
DTCG JSON

W3C Design Tokens Community Group format

design.tokens.json
Figma Variables

Importable into Figma → Variables → Import

figma-variables.json
The file
---
name: Chase
tagline: 'Trust-institutional banking UI — white canvas, near-black ink, bright-blue primary + green secondary CTAs in Open Sans.'
updated_at: 2026-05-28T22:15:06.661Z
published_at: 2026-05-28T22:15:06.661Z
author: webdesignhot
source_url: https://www.chase.com
spec: webdesignhot/0.1
quality: curated
featured: false
categories: [saas]
tags: [light, structured, sans, fintech, enterprise]
preview_swatch: ['#ffffff', '#0060f0', '#128842']
related: []
description: 'Chase reads like a major US bank built its public site to look exactly as trustworthy as its balance sheet — a clean white canvas (`#ffffff`), near-black ink (`#101820`), and a single confident bright blue (`#0060f0`) carrying every primary action. The identity is anchored by the Chase octagon mark, and the chrome is deliberately quiet: lots of whitespace, generous body line-height, and Open Sans throughout from headlines to fine print. The chromatic system runs on a two-CTA dialogue — a bright-blue primary (Sign in, radius 5px) paired with a green secondary (Open an account, `#128842`, radius 4px) — so the page always offers an authenticated path and an acquisition path side by side. Headlines are set in Open Sans 700 (the hero h1 lands at 32px), body copy at 16px with comfortable 1.55 line-height, and the whole register is institutional-but-approachable: confident, plainspoken, never trendy. Corners are modest (2–16px), shadows are soft and functional rather than decorative, and the page leans on borders and spacing — not drama — to organize a large amount of financial information into something a first-time visitor can scan without anxiety.'


# Canonical 8-role aliases (bg / text / brand / border / accent / muted / surface / danger).
# Maps role names to this entry's actual token names so role-aware
# downstream tools resolve `theme.background` → entry's `bg`, etc.
# Auto-generated by scripts/add-aliases.mjs — do not edit manually;
# regenerate after changing color token names.
aliases:
  background: bg
  foreground: text
  primary: brand
  primary-foreground: on-brand
  muted: text-muted
  border: border
colors:
  bg: '#ffffff'
  surface: '#ffffff'
  surface-soft: '#f5f7fa'        # subtle gray panel for grouped cards / alternating sections
  surface-tint: '#eef4ff'        # faint blue wash behind promotional/info modules
  text: '#101820'                # near-black ink — headlines + body
  text-muted: '#5a6470'          # secondary copy, captions, helper text
  text-faint: '#6b7280'          # disclaimers, legal fine print, disabled labels
  text-on-brand: '#ffffff'       # white reverse on blue primary
  text-on-green: '#ffffff'       # white reverse on green secondary
  brand: '#0060f0'               # primary blue — Sign-in CTA, links, focus, octagon energy
  brand-hover: '#0048bf'         # darkened blue for hover/active on primary
  brand-deep: '#003594'          # navy-blue for headers, footer band, emphasis
  secondary: '#128842'           # secondary green — Open-account CTA
  secondary-hover: '#0e6e35'     # darkened green for hover/active on secondary
  link: '#0060f0'                # inline link blue (same as brand)
  link-hover: '#0048bf'          # link hover (darken + underline)
  border: '#d4d9e0'              # default 1px hairline border (cool gray)
  border-strong: '#9aa3af'       # stronger divider / input outline on focus-adjacent
  border-on-dark: 'rgba(255,255,255,0.24)'  # hairlines on navy footer band
  scrim: 'rgba(16,24,32,0.55)'   # modal / overlay backdrop
  shadow-soft: 'rgba(16,24,32,0.06)'   # resting card lift
  shadow-medium: 'rgba(16,24,32,0.12)' # hover / dropdown elevation
  shadow-deep: 'rgba(16,24,32,0.20)'   # modal / dialog elevation
  on-brand: '#ffffff'
  success: '#128842'             # success green reuses secondary
  warning: '#9a5b00'             # amber-brown advisory text on white
  danger: '#c4001a'              # error red — form validation, alerts
  info: '#0060f0'                # info banners reuse brand blue

typography:
  display:
    family: '"Open Sans", system-ui, -apple-system, sans-serif'
    weights: [500, 600, 700]
    opentype-features: []
  body:
    family: '"Open Sans", system-ui, -apple-system, sans-serif'
    weights: [400, 500, 600]
  mono:
    family: 'ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace'
    weights: [400, 500]
  scale:
    display-hero:    { size: 80, weight: 700, lineHeight: 1.0,  tracking: '-0.03em',  family: display, notes: 'campaign splash only; production hero h1 is 32px' }
    display-lg:      { size: 56, weight: 700, lineHeight: 1.05, tracking: '-0.02em',  family: display, notes: 'rare oversized marketing headline' }
    h1:              { size: 40, weight: 700, lineHeight: 1.1,  tracking: '-0.018em', family: display, notes: 'large page title; live hero h1 measures 32px' }
    h1-hero:         { size: 32, weight: 700, lineHeight: 1.15, tracking: '-0.012em', family: display, notes: 'PRODUCTION hero h1 — Open Sans 32px/700' }
    h2:              { size: 32, weight: 600, lineHeight: 1.2,  tracking: '-0.012em', family: display }
    h3:              { size: 24, weight: 600, lineHeight: 1.25, tracking: '-0.005em', family: display }
    h4:              { size: 20, weight: 600, lineHeight: 1.3,  tracking: '0',        family: body }
    body-lg:         { size: 18, weight: 400, lineHeight: 1.55, tracking: '0',        family: body, notes: 'lead paragraph under headlines' }
    body:            { size: 16, weight: 400, lineHeight: 1.55, tracking: '0',        family: body, notes: 'load-bearing body size' }
    body-sm:         { size: 14, weight: 400, lineHeight: 1.5,  tracking: '0',        family: body }
    button-label:    { size: 16, weight: 600, lineHeight: 1.0,  tracking: '0',        family: body, notes: 'CTA text — semibold for weight on solid fills' }
    nav-link:        { size: 16, weight: 600, lineHeight: 1.0,  tracking: '0',        family: body }
    label:           { size: 13, weight: 500, lineHeight: 1.4,  tracking: '0',        family: body }
    caption:         { size: 12, weight: 500, lineHeight: 1.4,  tracking: '0.02em',   family: body }
    legal-micro:     { size: 11, weight: 400, lineHeight: 1.45, tracking: '0',        family: body, notes: 'footnote disclosures, member-FDIC fine print' }

radius:
  micro: 2          # tiny chrome details, checkbox/inline marks
  sm: 4             # secondary green CTA (Open an account), inputs, small chips
  brand: 5          # primary blue CTA (Sign in) — Chase's signature button radius
  md: 8             # default control radius, dropdown items
  lg: 12            # cards, panels
  xl: 16            # large feature tiles, modal corners
  pill: 9999        # toggle pills, avatar/badge circles, status dots

spacing:
  base: 4
  scale: [0, 4, 8, 12, 16, 24, 32, 48, 64, 96]

layout:
  page-width: 1280
  prose-width: 720
  header-height: 64
  card-gutter: 24
  section-vertical: 64

components:
  button-primary:
    bg: '#0060f0'
    color: '#ffffff'
    radius: 5
    padding: '10px 16px'
    border: 'none'
    height: 44
    font: button-label
    use: 'Primary action — bright-blue solid pill-corner button. Authenticated/conversion path ("Sign in", "Continue").'
  button-secondary:
    bg: '#128842'
    color: '#ffffff'
    radius: 4
    padding: '10px 16px'
    border: 'none'
    height: 44
    font: button-label
    use: 'Secondary action — green solid. Acquisition path ("Open an account"). Sits beside the blue primary.'
  button-outline:
    bg: '#ffffff'
    color: '#0060f0'
    radius: 5
    padding: '10px 16px'
    border: '1px solid #0060f0'
    height: 44
    font: button-label
    use: 'Tertiary / low-commitment action paired with a solid CTA ("Learn more", "Explore options").'
  button-ghost:
    bg: 'transparent'
    color: '#0060f0'
    radius: 5
    padding: '10px 12px'
    border: 'none'
    height: 40
    font: button-label
    use: 'Text-style action inside dense modules; underline on hover, no fill at rest.'
  card:
    bg: '#ffffff'
    color: '#101820'
    radius: 12
    padding: '24px'
    border: '1px solid #d4d9e0'
    use: 'Default product/offer card on white or soft-gray section. Hairline border + soft resting shadow.'
  card-promo:
    bg: '#eef4ff'
    color: '#101820'
    radius: 16
    padding: '32px'
    border: 'none'
    use: 'Promotional/informational tile on faint blue wash — bonus offers, account highlights.'
  input:
    bg: '#ffffff'
    color: '#101820'
    radius: 8
    padding: '10px 12px'
    border: '1px solid #d4d9e0'
    height: 48
    use: 'Form field. 48px tall for comfortable touch; blue focus ring on activation.'
  badge:
    bg: '#eef4ff'
    color: '#003594'
    radius: 9999
    padding: '4px 10px'
    border: 'none'
    font: caption
    use: 'Status/category chip — soft-blue fill, navy text. "New", "Limited time".'
  badge-success:
    bg: '#e6f4ec'
    color: '#0e6e35'
    radius: 9999
    padding: '4px 10px'
    border: 'none'
    font: caption
    use: 'Positive status pill — eligible, approved, available.'
  nav-bar:
    bg: '#ffffff'
    color: '#101820'
    radius: 0
    padding: '0 24px'
    border: '0 0 1px 0 solid #d4d9e0'
    height: 64
    use: 'Top utility/product nav — white bar, octagon logo left, primary links center, sign-in CTA right.'
  footer:
    bg: '#003594'
    color: '#ffffff'
    radius: 0
    padding: '48px 24px 32px'
    use: 'Deep navy footer band — multi-column link grid, legal disclosures, member-FDIC line, social icons.'

motion:
  ease-standard: 'cubic-bezier(0.4, 0, 0.2, 1)'
  ease-emphasized: 'cubic-bezier(0.2, 0, 0, 1)'
  duration-fast: 150
  duration-standard: 240
  duration-slow: 320
  button-hover: 'background darkens (blue → #0048bf, green → #0e6e35) over 150ms; no transform lift'
  card-hover: 'shadow-soft → shadow-medium over 240ms; optional 1px translateY(-2px) on interactive cards'
  dropdown-open: 'fade + 4px translateY over 240ms ease-emphasized'
  focus-ring: 'instant — no transition on focus outline for clarity'
  reduced-motion: 'respects prefers-reduced-motion: reduce — translate/scale removed, color + opacity transitions kept'

breakpoints:
  mobile: 640
  tablet: 1024
  desktop: 1280
  wide: 1536

shadows:
  resting: 'rgba(16,24,32,0.06) 0 1px 3px 0, rgba(16,24,32,0.04) 0 1px 2px 0'  # resting cards
  raised: 'rgba(16,24,32,0.12) 0 6px 16px -2px'   # hover cards, dropdowns
  overlay: 'rgba(16,24,32,0.20) 0 16px 40px -8px' # modals, dialogs
  ring: '0 0 0 3px rgba(0,96,240,0.45)'           # blue focus ring
  philosophy: 'Chase uses shadow functionally, not decoratively — soft, cool-toned (ink-tinted), low-opacity. Elevation signals interactivity (a card you can click) or layering (a menu above content), never ornament. Borders carry most structural delineation; shadow only appears at hover or on floating layers.'

accessibility:
  contrast-text-on-bg: 17.89          # #101820 on #ffffff — AAA
  contrast-on-brand: 5.34             # #ffffff on #0060f0 — AA body, AAA large
  contrast-on-green: 4.54             # #ffffff on #128842 — AA large; pair with >=18.66px/14pt bold for body
  contrast-link: 5.34                 # #0060f0 link on #ffffff — AA body
  contrast-muted: 6.01                # #5a6470 on #ffffff — AA body, AAA large
  contrast-faint: 4.83                # #6b7280 on #ffffff — AA body (use only for non-essential fine print)
  focus-ring: '3px solid rgba(0,96,240,0.45) with 2px outline-offset (blue ring)'
  reduced-motion-honored: true
  touch-target-min: 44
  keyboard-nav: 'Tab cycles: skip-link → logo → primary nav → utility/sign-in CTA → hero CTAs (blue primary then green secondary) → body modules → footer columns. Visible focus on every stop.'
  aria-patterns: 'octagon logo is a link with aria-label="Chase home"; dropdown nav uses aria-expanded + aria-controls; CTA pairs are distinct buttons not toggles; status badges use aria-label when color is the only signal'
  screen-reader: 'decorative octagon/icon glyphs are aria-hidden; legal disclosure footnotes linked via aria-describedby from the claims they qualify; member-FDIC line announced as static text'

lineage:
  summary: 'Chase sits in the lineage of major-institution corporate web design — the trust-first tradition descending from Swiss / International Typographic Style: one humanist sans (Open Sans) carrying the whole hierarchy, near-black ink on plain white, generous whitespace as the organizing device, and a single brand color reserved almost entirely for action. It reads less like a startup marketing site and more like a well-set annual report translated to the web, which is exactly right for a bank whose product is confidence. What makes the system specifically Chase is the octagon-blue identity (#0060f0) concentrated into the primary action and the two-CTA dialogue that pairs a blue primary (Sign in) with a green secondary (Open an account). The brand deliberately rejects trend-driven consumer-fintech patterns — no glassmorphism, no gradient meshes, no oversized playful radii, no dark-mode-first aesthetic — and rejects the dense data-grid look of developer tools in favor of calm legibility for a general public making financial decisions.'
  influences:
    - name: Open Sans (Steve Matteson / Google Fonts)
      role: The humanist sans that defines the type voice across the entire system
      url: https://fonts.google.com/specimen/Open+Sans
    - name: Swiss / International Typographic Style
      role: Grid discipline, sans-serif hierarchy, and whitespace-as-structure that the layout descends from
      url: https://en.wikipedia.org/wiki/International_Typographic_Style
    - name: Material Design
      role: The functional-elevation model — shadow as an interactivity / layering signal, not ornament
      url: https://m3.material.io
    - name: U.S. Web Design System (USWDS)
      role: Institutional, accessibility-first patterns for high-trust public-facing sites
      url: https://designsystem.digital.gov
    - name: Web Content Accessibility Guidelines (WCAG)
      role: The AA / AAA contrast targets the palette is built to clear
      url: https://www.w3.org/WAI/standards-guidelines/wcag/

dark-mode: null   # Public marketing site is light-only — white canvas is core to the trust-institutional register. Authenticated app surfaces are out of scope.
---

## 1. Visual Theme & Atmosphere

Chase's public site reads like a major US bank decided its website should look exactly as trustworthy as its balance sheet. The canvas is plain, confident **white** (`#ffffff`) — no warm tint, no texture, no gradient wash — and against it sits near-black ink (`#101820`) for everything you read. The effect is clarity over personality: a first-time visitor lands on a wall of financial choices (checking, credit cards, mortgages, investing) and the design's entire job is to make that wall scannable without anxiety. It does this with whitespace, hairline borders, and a single bright blue, rather than with color, drama, or motion.

The identity anchor is the **Chase octagon** — the blue eight-sided mark that has signaled the bank since the 1960s — and the site borrows its energy as one dominant brand blue: `#0060f0`. That blue is disciplined. It carries the primary call to action ("Sign in"), inline links, and the focus ring, and it appears almost nowhere else as a large fill. The result is that blue always means "this is the thing to click," which is precisely the legibility a bank wants when a customer is hunting for the sign-in button under stress.

The most distinctive structural gesture is the **two-CTA dialogue**. Chase nearly always presents two solid buttons side by side: a bright-blue primary (Sign in, with a soft 5px radius) and a green secondary (Open an account, `#128842`, 4px radius). One button is the authenticated path for existing customers; the other is the acquisition path for new ones. This pairing repeats from the header into hero modules and product cards, so the page reliably offers both "I already bank here" and "I want to" without making the visitor choose a single funnel. The green is the only other saturated color on the page, and its job is narrow: account acquisition.

Typography is **Open Sans** end to end — headlines, body, buttons, and fine print all share the one humanist sans. Headlines run at weight 700 (the production hero h1 lands at a restrained 32px rather than a giant splash), body copy sits at 16px with a generous 1.55 line-height, and disclosures drop to 11–12px. There is no second display face, no serif accent, no script. The contrast in the hierarchy comes entirely from size and weight, which keeps the page feeling like one calm institutional voice rather than a marketing collage.

The overall atmosphere is **institutional-but-approachable**. Corners are modest (2–16px — present enough to feel modern, never so round they read as playful). Shadows are soft, cool, and functional — they signal "this card is clickable" or "this menu floats above," never decoration. Sections are separated by air and the occasional faint-gray or pale-blue panel, not by heavy rules. Everything communicates the same thing the brand wants you to feel about your money there: steady, legible, in good hands.

**Key Characteristics:**
- Plain white canvas (`#ffffff`) — no tint, no texture; clarity over warmth
- Near-black ink (`#101820`) for all reading text, giving AAA contrast on white
- One dominant brand blue (`#0060f0`) reserved for primary CTA, links, and focus
- Signature two-CTA dialogue: blue primary ("Sign in") beside green secondary ("Open an account")
- Green (`#128842`) used narrowly for the acquisition path — the only other saturated fill
- Open Sans across the entire system — no second typeface, hierarchy via size/weight
- Modest corner radii (2–16px); 5px on the blue primary, 4px on the green secondary
- Soft, cool, low-opacity shadows used functionally — interactivity and layering, not ornament
- Borders + whitespace carry structure; the page organizes dense financial info without crowding
- Deep navy footer band (`#003594`) closing the page with disclosures and member-FDIC fine print

## 2. Color Palette & Roles

### Primary / Brand
- **Brand Blue** (`#0060f0`) [→ `brand`]: the dominant action color — primary CTA fill ("Sign in", "Continue"), inline links, focus ring. The page's "click here" signal.
- **Brand Blue Hover** (`#0048bf`) [→ `brand-hover`]: darkened blue for hover/active on the primary button and link hover.
- **Brand Deep / Navy** (`#003594`) [→ `brand-deep`]: navy for the footer band, emphasis headings, and badge text — the steady, authoritative end of the blue range.

### Secondary
- **Secondary Green** (`#128842`) [→ `secondary`]: the acquisition CTA fill ("Open an account"). The only other saturated fill on the page; never used for navigation or links.
- **Secondary Green Hover** (`#0e6e35`) [→ `secondary-hover`]: darkened green for hover/active on the green CTA.

### Interactive
- **Link** (`#0060f0`) [→ `link`]: inline text links — same hue as brand, underlined on hover.
- **Link Hover** (`#0048bf`) [→ `link-hover`]: link hover state, darken plus underline.

### Neutral / Text
- **Ink** (`#101820`) [→ `text`]: near-black for headlines and body copy. AAA on white.
- **Muted** (`#5a6470`) [→ `text-muted`]: secondary copy, captions, helper text. AA on white.
- **Faint** (`#6b7280`) [→ `text-faint`]: disclaimers and disabled labels. Use only for non-essential fine print.
- **On-Brand White** (`#ffffff`) [→ `text-on-brand`]: white reverse on blue primary and on the green secondary.

### Surface & Background
- **Canvas** (`#ffffff`) [→ `bg` / `surface`]: page background and default card surface.
- **Soft Gray Panel** (`#f5f7fa`) [→ `surface-soft`]: subtle gray for grouped cards and alternating section bands.
- **Blue Tint** (`#eef4ff`) [→ `surface-tint`]: faint blue wash behind promotional/informational modules and soft-blue badges.

### Borders
- **Border** (`#d4d9e0`) [→ `border`]: default 1px cool-gray hairline on cards, inputs, and dividers.
- **Border Strong** (`#9aa3af`) [→ `border-strong`]: heavier divider / input outline near focus.
- **Border on Dark** (`rgba(255,255,255,0.24)`) [→ `border-on-dark`]: hairlines inside the navy footer band.

### Shadow Colors
Chase shadows are ink-tinted and cool (`rgba(16,24,32, …)`), kept at very low opacity (6–20%). The resting state is barely-there (6% at 3px blur); hover lifts to 12%; modals reach 20%. Shadows never warm the page — they only suggest depth on layers a user can interact with.

### Semantic
- **Success** (`#128842`) [→ `success`]: reuses the secondary green — eligible, approved, available.
- **Warning** (`#9a5b00`) [→ `warning`]: amber-brown advisory text on white (passes body contrast).
- **Danger** (`#c4001a`) [→ `danger`]: error red for form validation and alert banners.
- **Info** (`#0060f0`) [→ `info`]: informational banners reuse brand blue.

### Gradient System
Chase uses essentially no programmatic gradients in the core UI. Any sense of depth comes from (1) the faint blue tint (`#eef4ff`) layered behind promo modules and (2) soft ink-tinted card shadows. Flat fills are the rule — gradients would undercut the plainspoken, trustworthy register.

## 3. Typography Rules

### Font Family
- **Primary**: `Open Sans` — a humanist sans used for every headline, body paragraph, button, nav link, and disclosure. One face, top to bottom.
- **Fallback stack**: `system-ui, -apple-system, sans-serif` — graceful native fallback that preserves the humanist, neutral tone before Open Sans loads.
- **Mono** (rare): `ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace` — reserved for account/reference numbers and code-like values.

### Hierarchy

| Role | Size | Weight | Line Height | Letter Spacing | Notes |
|------|------|--------|-------------|----------------|-------|
| Display hero | 80 | 700 | 1.0 | -0.03em | Campaign splash only — not the production hero |
| Display large | 56 | 700 | 1.05 | -0.02em | Rare oversized marketing headline |
| H1 | 40 | 700 | 1.1 | -0.018em | Large page title |
| H1 (production hero) | 32 | 700 | 1.15 | -0.012em | The live hero h1 — Open Sans 32px/700 |
| H2 (section) | 32 | 600 | 1.2 | -0.012em | Section titles |
| H3 (card title) | 24 | 600 | 1.25 | -0.005em | Card and module headings |
| H4 (subhead) | 20 | 600 | 1.3 | 0 | Sub-section labels |
| Body large (lead) | 18 | 400 | 1.55 | 0 | Lead paragraph under a headline |
| Body | 16 | 400 | 1.55 | 0 | Load-bearing body size |
| Body small | 14 | 400 | 1.5 | 0 | Secondary copy, dense lists |
| Button label | 16 | 600 | 1.0 | 0 | CTA text — semibold for weight on solid fills |
| Nav link | 16 | 600 | 1.0 | 0 | Top-nav primary links |
| Label | 13 | 500 | 1.4 | 0 | Form labels, eyebrows |
| Caption | 12 | 500 | 1.4 | 0.02em | Badge text, timestamps, helper notes |
| Legal micro | 11 | 400 | 1.45 | 0 | Footnote disclosures, member-FDIC fine print |

### Principles
- **One font, full stack.** Open Sans handles display through fine print. Hierarchy comes from size and weight, never from a second face. Adding a serif or display accent breaks the institutional calm.
- **Body is 16px at 1.55 line-height.** The generous leading is deliberate — financial copy is dense and the loose lines keep long disclosures readable. Don't tighten below ~1.5.
- **Headlines are 700, body is 400, controls are 600.** Three weights do all the work. Button and nav labels sit at semibold (600) so they hold weight on solid fills without shouting.
- **Slight negative tracking on large headlines only** (-0.012em to -0.03em). Body and small sizes run at 0 — no tightening that would hurt legibility at reading scale.
- **The production hero is restrained.** Despite an 80px display token existing, the live hero h1 is 32px/700 — Chase favors a measured headline over a giant splash, reinforcing the steady tone.
- **Fine print is honest, not hidden.** Legal micro is 11px/400 at 1.45 line-height — small but readable; never gray it below the `#6b7280` faint stop.
- **No uppercase headlines.** Sentence case throughout; uppercase is limited to short labels/eyebrows if used at all.

### Note on Font Substitutes
Open Sans is open-source (Google Fonts) and free to self-host, so substitution is rarely necessary. If a project must swap it:
- **Source Sans 3** or **Noto Sans** are the closest humanist matches.
- **Inter** works as a generic stand-in — expect a slightly larger x-height and more geometric letterforms; nudge body line-height up to ~1.6 to compensate.
- Whatever the substitute, keep three weights (400 / 600 / 700), the 16px/1.55 body, and the modest negative tracking on large headings only.

## 4. Component Stylings

### Buttons

**`button-primary`** — Primary, bright-blue solid
- Background: Brand Blue (`#0060f0`)
- Text: White (`#ffffff`)
- Border: none
- Radius: 5px (Chase's signature primary radius)
- Padding: 10px 16px
- Height: ~44px
- Font: Open Sans 16/600
- Hover: background darkens to `#0048bf` over 150ms; no transform
- Active: same fill, optional 1px inset feel
- Use: the authenticated/conversion action ("Sign in", "Continue", "Log in")

**`button-secondary`** — Secondary, green solid
- Background: Secondary Green (`#128842`)
- Text: White (`#ffffff`)
- Border: none
- Radius: 4px
- Padding: 10px 16px
- Height: ~44px
- Font: Open Sans 16/600
- Hover: background darkens to `#0e6e35` over 150ms
- Use: the acquisition action ("Open an account") — sits beside the blue primary
- Note: white-on-green is AA at large only; the 16/600 label and 44px target keep it legible, but never use this green for body-size text

**`button-outline`** — Tertiary, blue outline
- Background: White (`#ffffff`)
- Text: Brand Blue (`#0060f0`)
- Border: 1px solid Brand Blue
- Radius: 5px
- Padding: 10px 16px
- Font: Open Sans 16/600
- Hover: faint blue tint fill (`#eef4ff`)
- Use: low-commitment action paired with a solid CTA ("Learn more", "Explore options")

**`button-ghost`** — Text-style action
- Background: transparent
- Text: Brand Blue (`#0060f0`)
- Border: none
- Radius: 5px (for focus ring shape)
- Padding: 10px 12px
- Hover: underline appears; no fill
- Use: in-module text actions inside dense lists where a solid button would be too heavy

### Cards & Containers

**`card`** — Default product/offer card
- Background: White (`#ffffff`)
- Text: Ink (`#101820`)
- Border: 1px solid Border (`#d4d9e0`)
- Radius: 12px
- Padding: 24px
- Shadow: resting (`rgba(16,24,32,0.06) 0 1px 3px`)
- Hover (when interactive): shadow lifts to raised (`12%`), optional `translateY(-2px)`
- Use: product summaries, offer tiles, content modules on white or soft-gray sections

**`card-promo`** — Promotional/informational tile
- Background: Blue Tint (`#eef4ff`)
- Text: Ink (`#101820`)
- Border: none
- Radius: 16px
- Padding: 32px
- Use: bonus offers, account highlights, "limited time" modules — the tint sets it apart from plain content without a heavy border

### Badges / Tags / Pills

**`badge`** — Status/category chip
- Background: Blue Tint (`#eef4ff`)
- Text: Navy (`#003594`)
- Radius: 9999px (pill)
- Padding: 4px 10px
- Font: Open Sans 12/500
- Use: "New", "Limited time", category labels

**`badge-success`** — Positive status pill
- Background: pale green (`#e6f4ec`)
- Text: Green hover stop (`#0e6e35`)
- Radius: 9999px
- Padding: 4px 10px
- Use: eligible / approved / available indicators

### Inputs & Forms

**`input`** — Standard form field
- Background: White (`#ffffff`)
- Text: Ink (`#101820`)
- Border: 1px solid Border (`#d4d9e0`)
- Radius: 8px
- Padding: 10px 12px
- Height: 48px (comfortable touch)
- Focus: 3px blue ring (`rgba(0,96,240,0.45)`) with 2px offset; border strengthens
- Label: 13px/500 above the field; helper text 14px muted below
- Error: border + helper text switch to Danger (`#c4001a`); icon optional
- Use: sign-in fields, account-open forms, search

### Navigation

**`nav-bar`** — Top product/utility nav
- Background: White (`#ffffff`)
- Height: 64px
- Border: 1px bottom hairline (`#d4d9e0`)
- Content: Chase octagon logo left, primary product links center (Open Sans 16/600), blue "Sign in" primary CTA at right; "Open an account" green secondary often beside it
- Dropdowns: white panels with raised shadow, 4px fade-in, hairline border
- Link style: ink text, no underline at rest; blue underline or blue text on hover/active

**Mobile Nav**
- Collapses to: octagon logo + hamburger + sign-in. Full-screen overlay stacks primary links vertically; the blue/green CTA pair pins near the top of the overlay.

### Footer

- Background: Deep Navy (`#003594`)
- Text: White
- Padding: 48px top / 24px sides / 32px bottom
- Structure: multi-column link grid (banking, cards, lending, investing, about), legal disclosures row, member-FDIC and Equal Housing Lender lines, social icons
- Dividers: `rgba(255,255,255,0.24)` hairlines
- Link style: white, 14px; underline on hover

## 5. Layout Principles

### Spacing System
- **Base unit**: 4px
- **Scale**: 0 / 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 96
- **Section vertical padding**: ~64px between major sections on desktop; ~32–48px on mobile
- **Card internal padding**: 24px (default), 32px (promo tiles); ~16px on mobile
- **Card gutter**: 24px between cards in a grid

### Grid & Container
- **Max content width**: ~1280px centered, with ~24px horizontal gutter at small sizes growing symmetrically on wide screens
- **Prose width**: ~720px for long-form reading (disclosures, articles)
- **Column pattern**: 12-column implied. Common layouts are 2-up (headline + supporting copy), 3-up product card rows, and full-width hero bands. Product grids reflow 3-up → 2-up → 1-up as width drops.
- **Header**: fixed 64px white bar with bottom hairline

### Whitespace Philosophy
Chase uses whitespace as the primary organizing tool. A page that lists checking, savings, cards, and loans could feel like a dense directory; instead, generous section padding and 1.55 body leading let each module breathe. The rule of thumb: when content gets dense (a comparison table, a fee schedule), add air and a soft-gray band rather than borders or color to separate it. Empty space here signals "take your time" — the right tone for financial decisions.

### Section Cadence
A typical homepage scroll:
1. White nav bar (octagon logo + links + blue/green CTA pair)
2. Hero band — 32px/700 headline, lead paragraph, the two-CTA dialogue
3. Product card row (3-up cards on white)
4. Soft-gray or blue-tint promo band (offer / bonus module)
5. Secondary product row or feature module
6. Trust/reassurance band (security, FDIC, support)
7. Deep navy footer with disclosures and member-FDIC line

## 6. Shapes & Radius Scale

| Radius | Tier | Use |
|--------|------|-----|
| 2px | Micro | Tiny chrome details, inline marks, checkboxes |
| 4px | Standard | Secondary green CTA ("Open an account"), small chips |
| 5px | Brand | Primary blue CTA ("Sign in") — Chase's signature button radius |
| 8px | Comfortable | Default controls, inputs, dropdown items |
| 12px | Relaxed | Cards and panels |
| 16px | Featured | Large feature tiles, promo cards, modal corners |
| 9999px | Pill | Status badges, toggle pills, avatar/badge circles, status dots |

The scale is deliberately modest and tight. The two solid CTAs sit one point apart on purpose — 5px on the blue primary, 4px on the green secondary — a subtle differentiation you feel more than see, reinforcing that they are two distinct actions, not a toggle. Beyond buttons, radii climb gently (8 → 12 → 16) for nested surfaces and resolve to full-pill only on small chips and circular elements. Nothing on the page is sharp-cornered, and nothing is so round it reads as playful — the corners say "modern bank," not "consumer app."

## 7. Depth & Elevation

| Level | Treatment | Use |
|-------|-----------|-----|
| 0 | No shadow, 1px border | Default — most content sits flat on white with a hairline border |
| 1 | `rgba(16,24,32,0.06) 0 1px 3px 0, rgba(16,24,32,0.04) 0 1px 2px 0` | Resting interactive cards — a faint cushion |
| 2 | `rgba(16,24,32,0.12) 0 6px 16px -2px` | Hover cards, open dropdowns — clearly lifted |
| 3 | `rgba(16,24,32,0.20) 0 16px 40px -8px` | Modals, dialogs — floating above a dimmed scrim |

### Shadow Philosophy
Chase treats shadow as a **signal of interactivity and layering, not decoration**. At rest, most surfaces use a 1px cool-gray border rather than a shadow; structure comes from borders and spacing. Shadow appears in three situations only: (1) a card the user can click gets a faint resting cushion; (2) hovering a card or opening a menu lifts it to Level 2; (3) a modal floats at Level 3 above a 55%-opacity ink scrim. All shadows are ink-tinted and cool, kept at 6–20% opacity, so they read as quiet depth rather than drama. The page never uses warm, colored, or hard-edged shadows.

### Decorative Depth
- **Blue-tint promo bands** (`#eef4ff`): the faint wash creates a sense of a layered panel without a border or shadow
- **Soft-gray section bands** (`#f5f7fa`): alternate-band shading separates dense modules using tone, not lines
- **Card resting cushion**: the barely-there Level 1 shadow tells the eye which surfaces are tappable

## 8. Interaction & Motion

### Easing Curves
- **Standard**: `cubic-bezier(0.4, 0, 0.2, 1)` — most color, background, and opacity transitions
- **Emphasized**: `cubic-bezier(0.2, 0, 0, 1)` — dropdown and menu reveals

### Duration Buckets
- **Fast** (150ms): button hover background darken, link underline
- **Standard** (240ms): card shadow lift, dropdown fade-in
- **Slow** (320ms): larger panel/overlay transitions, accordion expand

### Per-Component Motion

**Primary / secondary buttons**
- Hover: background darkens (blue → `#0048bf`, green → `#0e6e35`) over 150ms
- No transform lift — buttons stay grounded; the color shift is the whole feedback
- Active: instant, no bounce

**Cards**
- Hover (interactive only): shadow Level 1 → Level 2 over 240ms; optional `translateY(-2px)`
- Non-interactive cards do not animate on hover

**Dropdown / nav menus**
- Open: fade + 4px `translateY` over 240ms ease-emphasized
- Close: instant or quick fade

**Inputs**
- Focus: blue ring appears instantly (no transition) for unambiguous feedback; border strengthens

**Links**
- Hover: color darkens and underline appears over 150ms

### Page Transitions
Standard multi-page navigation — no SPA route animation. New pages load fresh; the white canvas and fixed nav keep continuity. Modals fade in over the scrim at 240ms.

### Reduced Motion Strategy
`@media (prefers-reduced-motion: reduce)`:
- Card `translateY` lift removed — shadow change alone conveys hover
- Dropdown `translateY` removed — fade only
- Focus ring already instant — unchanged
- Color/opacity transitions preserved (they don't cause vestibular discomfort)

## 9. Accessibility & A11y

### Contrast Pairs

| Pair | Ratio | WCAG Level |
|------|-------|------------|
| `#101820` ink on `#ffffff` canvas | 17.89:1 | AAA |
| `#ffffff` on `#0060f0` brand blue | 5.34:1 | AA body, AAA large |
| `#ffffff` on `#128842` green | 4.54:1 | AA large — pair with ≥14pt bold / 18.66px |
| `#0060f0` link on `#ffffff` | 5.34:1 | AA body |
| `#5a6470` muted on `#ffffff` | 6.01:1 | AA body, AAA large |
| `#6b7280` faint on `#ffffff` | 4.83:1 | AA body — non-essential fine print only |

### Focus Indicators
- 3px blue ring (`rgba(0,96,240,0.45)`) with 2px outline-offset on every focusable element
- The ring uses the brand blue rather than the browser default, but is clearly visible on white
- Applied to: nav links, both CTA buttons, inputs, footer links, card links

### ARIA Patterns
- The octagon logo is a link with `aria-label="Chase home"`; the glyph itself is `aria-hidden`
- Dropdown nav uses `aria-expanded` + `aria-controls` on the trigger; menu is `role="menu"`
- The blue/green CTA pair are two distinct `<button>`/`<a>` elements — not a toggle group; each has clear text
- Status badges that rely on color (success green, info blue) carry an `aria-label` so the state is announced
- Error fields use `aria-invalid="true"` + `aria-describedby` pointing to the error text

### Keyboard Navigation
- Tab order: skip-link → logo → primary nav → utility/sign-in CTA → hero CTAs (blue primary, then green secondary) → body modules → footer columns
- Skip-link "Skip to main content" at the very top
- Dropdowns: Enter/Space opens, arrow keys move, Escape closes and returns focus to trigger
- Modals: focus-trapped; Escape dismisses

### Screen Reader Hints
- Decorative octagon and icon glyphs are `aria-hidden="true"`
- Legal disclosure footnotes are linked from the claims they qualify via `aria-describedby` so APR/fee asterisks are announced in context
- The member-FDIC and Equal Housing Lender lines are announced as static informational text
- Product imagery uses meaningful `alt`; purely decorative imagery uses `alt=""`

### Reduced Motion Handling
Detailed in §8 — the system respects `prefers-reduced-motion: reduce`, removing translate/scale while keeping color and opacity transitions.

## 10. Responsive Behavior

### Breakpoints

| Name | Width | Key Changes |
|------|-------|-------------|
| Mobile | ≤640px | Nav collapses to logo + hamburger + sign-in; primary links behind overlay; product cards stack 1-up; hero headline drops toward ~24–28px; CTA pair stacks vertically (blue above green) full-width |
| Tablet | 641–1024px | Nav shows a reduced link set; product cards arrange 2-up; hero headline ~28–32px |
| Desktop | 1025–1280px | Full nav with primary links centered; product cards 3-up; hero at 32px with side-by-side CTA pair |
| Wide | ≥1536px | Content max-width caps ~1280px; gutters grow symmetrically; section bands span full width with centered content |

### Touch Targets
All interactive elements meet or exceed 44×44px. Both CTA buttons are ~44px tall; inputs are 48px; the mobile hamburger and sign-in are ≥44px. No tap target drops below 44px at any breakpoint.

### Per-Component Collapsing
- **Nav**: full link bar → hamburger overlay. The sign-in CTA stays visible in the collapsed bar; "Open an account" moves into the overlay.
- **CTA pair**: side-by-side (blue then green) on desktop → stacked full-width (blue on top) on mobile. Order is preserved so the primary action stays first.
- **Product grid**: 3-up → 2-up → 1-up.
- **Footer**: multi-column grid → stacked accordion sections on mobile.
- **Spacing**: section padding compresses from ~64px to ~32px on mobile.

### Image Behavior
Product and lifestyle imagery scales within its card, cropped to the card's radius. Lazy loading is standard (`loading="lazy"`) with a neutral placeholder that holds the white canvas during load — no warm tint, no skeleton shimmer beyond a faint gray block.

## 11. Content & Voice

### Tone
The voice is **institutional-but-approachable** — a major bank speaking plainly to a broad audience. It is confident, clear, and reassuring, never trendy, never slangy, never anxious. Sentences are short and concrete; the brand explains money matters without jargon and without overpromising.

### Microcopy Patterns
- **Button verbs**: "Sign in", "Open an account", "Continue", "Learn more", "Get started", "Apply now", "Explore" — direct, action-first
- **Headline structure**: plainspoken benefit statements ("Banking made easy", "Find the card for you") rather than clever wordplay
- **Body copy**: concrete, second-person ("you"), with disclosures handled honestly rather than buried
- **Error messages**: specific and calm ("Enter a valid username", "Your password doesn't match our records. Try again.") — never blaming, never cute
- **Success confirmations**: brief and clear ("Your account is open", "You're signed in")

### Empty States
Empty modules read as informative, not playful: "No transactions yet" or "Nothing to show here" — the brand stays in character and avoids jokey copy.

### CTA Verb Conventions
Chase favors direct, transactional imperatives:
- Sign in
- Open an account
- Continue
- Apply now
- Get started
- Learn more
- Explore

It avoids:
- Overly casual invitations ("Let's go!", "Jump in!")
- Hype verbs ("Unlock", "Supercharge")
- Excitement punctuation in CTAs (no exclamation points on buttons)

## 12. Dark Mode & Theming

**The public marketing site is light-only — no dark variant.** The white canvas is core to the trust-institutional register; inverting it would undercut the plain, legible tone the brand depends on. Authenticated app surfaces are out of scope for this entry.

### Theming Notes for Derivatives
If you must adapt this system to a dark mode for a derivative product:
- Swap `#ffffff` canvas → `#0e1420` (deep cool near-navy, keeping the cool cast)
- Swap `#101820` ink → `#f3f5f8` (near-white text)
- Swap `#f5f7fa` soft panel → `#161d2b`; `#eef4ff` tint → `#13233f`
- Brand blue `#0060f0` lightens to ~`#3d86ff` for adequate contrast on dark
- Secondary green `#128842` lightens to ~`#2bbd6a` on dark
- Borders shift from `#d4d9e0` to `rgba(255,255,255,0.14)`
- Re-verify all contrast pairs against the new dark canvas — do not assume the light ratios carry over

## 13. Lineage & Influences

Chase's design language sits squarely in the lineage of **major-institution corporate web design** — the disciplined, trust-first tradition that descends from Swiss/International Typographic Style by way of decades of bank and enterprise sites. Its core moves are textbook: one humanist sans (Open Sans) carrying the whole hierarchy, a near-black ink on plain white, generous whitespace as the organizing device, and a single brand color reserved almost entirely for action. The result reads less like a startup's marketing site and more like a well-set annual report translated to the web — and that is exactly the point for a bank whose product is confidence.

What makes the system specifically *Chase* is the **octagon-blue identity** and the **two-CTA dialogue**. The blue (`#0060f0`) borrows the energy of the iconic octagon mark and concentrates it into the primary action, while the green secondary (`#128842`) gives the acquisition path its own clear lane. The brand deliberately **rejects** the trend-driven patterns of consumer fintech — no glassmorphism, no gradient meshes, no oversized playful radii, no dark-mode-first aesthetic. It also rejects the dense, data-grid look of developer tools; the priority is calm legibility for a general public making financial decisions, not feature density.

### Named Influences
- Open Sans (Steve Matteson / Google Fonts) — the humanist sans that defines the type voice — https://fonts.google.com/specimen/Open+Sans
- Swiss / International Typographic Style — grid discipline, sans-serif hierarchy, whitespace as structure — https://en.wikipedia.org/wiki/International_Typographic_Style
- Material Design — the functional-elevation model (shadow as interactivity/layering signal) that the depth system echoes — https://m3.material.io
- U.S. Web Design System (USWDS) — institutional, accessibility-first patterns for high-trust public sites — https://designsystem.digital.gov
- Web Content Accessibility Guidelines (WCAG) — the AA/AAA contrast targets the palette is built to clear — https://www.w3.org/WAI/standards-guidelines/wcag/
- Chase brand / octagon identity context — the blue mark that anchors the palette — https://www.chase.com

## 14. Do's and Don'ts

### Do
- Use plain white (`#ffffff`) as the page canvas — no tint, no texture
- Set all text in near-black ink (`#101820`) for AAA contrast on white
- Reserve brand blue (`#0060f0`) for primary CTAs, links, and the focus ring
- Pair a blue primary ("Sign in") with a green secondary ("Open an account") in heroes and headers
- Keep the primary blue button at 5px radius and the green secondary at 4px — the one-point difference is intentional
- Set everything in Open Sans — headlines (700), controls (600), body (400)
- Run body at 16px / 1.55 line-height for comfortable reading of dense financial copy
- Use 1px cool-gray borders (`#d4d9e0`) and whitespace to organize content
- Apply shadows only to interactive or floating layers, kept cool and low-opacity
- Use the soft-gray (`#f5f7fa`) and blue-tint (`#eef4ff`) bands to separate dense modules
- Keep disclosures honest and readable — 11px/400 minimum, never below the faint stop
- Close the page on the deep navy footer band (`#003594`) with member-FDIC fine print

### Don't
- Don't tint the canvas warm or add background texture — it reads less trustworthy
- Don't use green for navigation, links, or anything but the acquisition CTA and success states
- Don't put white body-size text on the green — it's AA at large only; keep it to 16/600 button labels and up
- Don't introduce a second typeface — no serif accent, no display font
- Don't use oversized playful radii — corners stay 2–16px; nothing rounder than a small pill chip
- Don't use warm, colored, or hard-edged shadows — depth is cool, soft, and functional only
- Don't make the two CTAs a toggle — they are two distinct, simultaneously-available actions
- Don't crowd the page with color; blue and green are the only saturated fills
- Don't drop body line-height below ~1.5 to fit more content — add a band or whitespace instead
- Don't bury disclosures in micro-gray below `#6b7280` — fine print stays legible
- Don't add exclamation points or hype verbs to CTAs — the voice is plain and confident
- Don't ship a dark mode for the public marketing site — the white canvas is core to the register

## 15. Agent Prompt Guide

### Quick Color Reference
- Background: White (`#ffffff`) — plain canvas, no tint
- Heading + body text: Ink (`#101820`) — near-black
- Primary CTA / links / focus: Brand Blue (`#0060f0`)
- Primary CTA hover: Brand Blue Hover (`#0048bf`)
- Secondary CTA: Green (`#128842`) — "Open an account" only
- Secondary CTA hover: Green Hover (`#0e6e35`)
- Navy / footer / emphasis: Deep Navy (`#003594`)
- Muted text: (`#5a6470`); faint fine print: (`#6b7280`)
- Border hairline: (`#d4d9e0`); soft panel: (`#f5f7fa`); blue tint: (`#eef4ff`)
- Error: (`#c4001a`); success: (`#128842`)

### Example Component Prompts
- "Create a banking hero band on a white background: a 32px / Open Sans 700 headline in near-black `#101820`, an 18px lead paragraph below in `#101820`, and two buttons side by side — a bright-blue `#0060f0` primary labeled 'Sign in' at 5px radius with white text, and a green `#128842` secondary labeled 'Open an account' at 4px radius with white text. Both ~44px tall, Open Sans 16/600 labels."
- "Design a product card: white fill, 1px `#d4d9e0` border, 12px radius, 24px padding, a 24px/600 ink title, 16px/400 body copy, and a blue outline button ('Learn more', `#0060f0` text and border, 5px radius). Add a faint resting shadow `rgba(16,24,32,0.06) 0 1px 3px` and lift to `0 6px 16px -2px` on hover."
- "Build a top navigation bar: 64px white bar with a 1px bottom hairline `#d4d9e0`, the Chase octagon logo at left, primary links centered in Open Sans 16/600 ink, and at the right a blue 'Sign in' primary beside a green 'Open an account' secondary."
- "Create a promotional tile: faint blue `#eef4ff` background, no border, 16px radius, 32px padding, a navy `#003594` pill badge reading 'Limited time', a 24px/600 ink headline, and a blue primary CTA."
- "Design a form field: white background, 1px `#d4d9e0` border, 8px radius, 48px tall, a 13px/500 label above and 14px muted helper text below. On focus show a 3px blue ring `rgba(0,96,240,0.45)` with 2px offset. On error switch border and helper text to `#c4001a`."
- "Create a deep-navy footer band (`#003594`, white text): a multi-column link grid, `rgba(255,255,255,0.24)` hairline dividers, and a bottom row with member-FDIC and Equal Housing Lender fine print at 11px."

### Iteration Guide
1. Start from white — if a screen feels off, make sure the canvas is `#ffffff` with no tint; this single change pulls the mood toward Chase.
2. Refine one component at a time; reference both the color name and hex from this guide.
3. Keep blue scarce — if more than the primary CTA, links, and focus use blue at large scale, pull something back to ink or a border.
4. Use the two-CTA pairing deliberately — blue primary for the authenticated/conversion path, green for account acquisition; never both blue.
5. Reach for whitespace and a soft-gray or blue-tint band before reaching for a border or color to separate sections.
6. Hold the type to Open Sans at three weights (700 / 600 / 400) and body at 16/1.55 — resist adding a second face.
7. Keep radii modest (5px blue button, 4px green button, 8–16px surfaces) and shadows cool and functional.
8. Say the feel out loud — "steady", "plainspoken", "trust-institutional" — and cut anything that reads as trendy, playful, or hyped.

---

*Theme-toggle audit: score=0, signals=[none]*
Prose

1. Visual Theme & Atmosphere

Chase’s public site reads like a major US bank decided its website should look exactly as trustworthy as its balance sheet. The canvas is plain, confident white (#ffffff) — no warm tint, no texture, no gradient wash — and against it sits near-black ink (#101820) for everything you read. The effect is clarity over personality: a first-time visitor lands on a wall of financial choices (checking, credit cards, mortgages, investing) and the design’s entire job is to make that wall scannable without anxiety. It does this with whitespace, hairline borders, and a single bright blue, rather than with color, drama, or motion.

The identity anchor is the Chase octagon — the blue eight-sided mark that has signaled the bank since the 1960s — and the site borrows its energy as one dominant brand blue: #0060f0. That blue is disciplined. It carries the primary call to action (“Sign in”), inline links, and the focus ring, and it appears almost nowhere else as a large fill. The result is that blue always means “this is the thing to click,” which is precisely the legibility a bank wants when a customer is hunting for the sign-in button under stress.

The most distinctive structural gesture is the two-CTA dialogue. Chase nearly always presents two solid buttons side by side: a bright-blue primary (Sign in, with a soft 5px radius) and a green secondary (Open an account, #128842, 4px radius). One button is the authenticated path for existing customers; the other is the acquisition path for new ones. This pairing repeats from the header into hero modules and product cards, so the page reliably offers both “I already bank here” and “I want to” without making the visitor choose a single funnel. The green is the only other saturated color on the page, and its job is narrow: account acquisition.

Typography is Open Sans end to end — headlines, body, buttons, and fine print all share the one humanist sans. Headlines run at weight 700 (the production hero h1 lands at a restrained 32px rather than a giant splash), body copy sits at 16px with a generous 1.55 line-height, and disclosures drop to 11–12px. There is no second display face, no serif accent, no script. The contrast in the hierarchy comes entirely from size and weight, which keeps the page feeling like one calm institutional voice rather than a marketing collage.

The overall atmosphere is institutional-but-approachable. Corners are modest (2–16px — present enough to feel modern, never so round they read as playful). Shadows are soft, cool, and functional — they signal “this card is clickable” or “this menu floats above,” never decoration. Sections are separated by air and the occasional faint-gray or pale-blue panel, not by heavy rules. Everything communicates the same thing the brand wants you to feel about your money there: steady, legible, in good hands.

Key Characteristics:

  • Plain white canvas (#ffffff) — no tint, no texture; clarity over warmth
  • Near-black ink (#101820) for all reading text, giving AAA contrast on white
  • One dominant brand blue (#0060f0) reserved for primary CTA, links, and focus
  • Signature two-CTA dialogue: blue primary (“Sign in”) beside green secondary (“Open an account”)
  • Green (#128842) used narrowly for the acquisition path — the only other saturated fill
  • Open Sans across the entire system — no second typeface, hierarchy via size/weight
  • Modest corner radii (2–16px); 5px on the blue primary, 4px on the green secondary
  • Soft, cool, low-opacity shadows used functionally — interactivity and layering, not ornament
  • Borders + whitespace carry structure; the page organizes dense financial info without crowding
  • Deep navy footer band (#003594) closing the page with disclosures and member-FDIC fine print

2. Color Palette & Roles

Primary / Brand

  • Brand Blue (#0060f0) [→ brand]: the dominant action color — primary CTA fill (“Sign in”, “Continue”), inline links, focus ring. The page’s “click here” signal.
  • Brand Blue Hover (#0048bf) [→ brand-hover]: darkened blue for hover/active on the primary button and link hover.
  • Brand Deep / Navy (#003594) [→ brand-deep]: navy for the footer band, emphasis headings, and badge text — the steady, authoritative end of the blue range.

Secondary

  • Secondary Green (#128842) [→ secondary]: the acquisition CTA fill (“Open an account”). The only other saturated fill on the page; never used for navigation or links.
  • Secondary Green Hover (#0e6e35) [→ secondary-hover]: darkened green for hover/active on the green CTA.

Interactive

  • Link (#0060f0) [→ link]: inline text links — same hue as brand, underlined on hover.
  • Link Hover (#0048bf) [→ link-hover]: link hover state, darken plus underline.

Neutral / Text

  • Ink (#101820) [→ text]: near-black for headlines and body copy. AAA on white.
  • Muted (#5a6470) [→ text-muted]: secondary copy, captions, helper text. AA on white.
  • Faint (#6b7280) [→ text-faint]: disclaimers and disabled labels. Use only for non-essential fine print.
  • On-Brand White (#ffffff) [→ text-on-brand]: white reverse on blue primary and on the green secondary.

Surface & Background

  • Canvas (#ffffff) [→ bg / surface]: page background and default card surface.
  • Soft Gray Panel (#f5f7fa) [→ surface-soft]: subtle gray for grouped cards and alternating section bands.
  • Blue Tint (#eef4ff) [→ surface-tint]: faint blue wash behind promotional/informational modules and soft-blue badges.

Borders

  • Border (#d4d9e0) [→ border]: default 1px cool-gray hairline on cards, inputs, and dividers.
  • Border Strong (#9aa3af) [→ border-strong]: heavier divider / input outline near focus.
  • Border on Dark (rgba(255,255,255,0.24)) [→ border-on-dark]: hairlines inside the navy footer band.

Shadow Colors

Chase shadows are ink-tinted and cool (rgba(16,24,32, …)), kept at very low opacity (6–20%). The resting state is barely-there (6% at 3px blur); hover lifts to 12%; modals reach 20%. Shadows never warm the page — they only suggest depth on layers a user can interact with.

Semantic

  • Success (#128842) [→ success]: reuses the secondary green — eligible, approved, available.
  • Warning (#9a5b00) [→ warning]: amber-brown advisory text on white (passes body contrast).
  • Danger (#c4001a) [→ danger]: error red for form validation and alert banners.
  • Info (#0060f0) [→ info]: informational banners reuse brand blue.

Gradient System

Chase uses essentially no programmatic gradients in the core UI. Any sense of depth comes from (1) the faint blue tint (#eef4ff) layered behind promo modules and (2) soft ink-tinted card shadows. Flat fills are the rule — gradients would undercut the plainspoken, trustworthy register.

3. Typography Rules

Font Family

  • Primary: Open Sans — a humanist sans used for every headline, body paragraph, button, nav link, and disclosure. One face, top to bottom.
  • Fallback stack: system-ui, -apple-system, sans-serif — graceful native fallback that preserves the humanist, neutral tone before Open Sans loads.
  • Mono (rare): ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace — reserved for account/reference numbers and code-like values.

Hierarchy

RoleSizeWeightLine HeightLetter SpacingNotes
Display hero807001.0-0.03emCampaign splash only — not the production hero
Display large567001.05-0.02emRare oversized marketing headline
H1407001.1-0.018emLarge page title
H1 (production hero)327001.15-0.012emThe live hero h1 — Open Sans 32px/700
H2 (section)326001.2-0.012emSection titles
H3 (card title)246001.25-0.005emCard and module headings
H4 (subhead)206001.30Sub-section labels
Body large (lead)184001.550Lead paragraph under a headline
Body164001.550Load-bearing body size
Body small144001.50Secondary copy, dense lists
Button label166001.00CTA text — semibold for weight on solid fills
Nav link166001.00Top-nav primary links
Label135001.40Form labels, eyebrows
Caption125001.40.02emBadge text, timestamps, helper notes
Legal micro114001.450Footnote disclosures, member-FDIC fine print

Principles

  • One font, full stack. Open Sans handles display through fine print. Hierarchy comes from size and weight, never from a second face. Adding a serif or display accent breaks the institutional calm.
  • Body is 16px at 1.55 line-height. The generous leading is deliberate — financial copy is dense and the loose lines keep long disclosures readable. Don’t tighten below ~1.5.
  • Headlines are 700, body is 400, controls are 600. Three weights do all the work. Button and nav labels sit at semibold (600) so they hold weight on solid fills without shouting.
  • Slight negative tracking on large headlines only (-0.012em to -0.03em). Body and small sizes run at 0 — no tightening that would hurt legibility at reading scale.
  • The production hero is restrained. Despite an 80px display token existing, the live hero h1 is 32px/700 — Chase favors a measured headline over a giant splash, reinforcing the steady tone.
  • Fine print is honest, not hidden. Legal micro is 11px/400 at 1.45 line-height — small but readable; never gray it below the #6b7280 faint stop.
  • No uppercase headlines. Sentence case throughout; uppercase is limited to short labels/eyebrows if used at all.

Note on Font Substitutes

Open Sans is open-source (Google Fonts) and free to self-host, so substitution is rarely necessary. If a project must swap it:

  • Source Sans 3 or Noto Sans are the closest humanist matches.
  • Inter works as a generic stand-in — expect a slightly larger x-height and more geometric letterforms; nudge body line-height up to ~1.6 to compensate.
  • Whatever the substitute, keep three weights (400 / 600 / 700), the 16px/1.55 body, and the modest negative tracking on large headings only.

4. Component Stylings

Buttons

button-primary — Primary, bright-blue solid

  • Background: Brand Blue (#0060f0)
  • Text: White (#ffffff)
  • Border: none
  • Radius: 5px (Chase’s signature primary radius)
  • Padding: 10px 16px
  • Height: ~44px
  • Font: Open Sans 16/600
  • Hover: background darkens to #0048bf over 150ms; no transform
  • Active: same fill, optional 1px inset feel
  • Use: the authenticated/conversion action (“Sign in”, “Continue”, “Log in”)

button-secondary — Secondary, green solid

  • Background: Secondary Green (#128842)
  • Text: White (#ffffff)
  • Border: none
  • Radius: 4px
  • Padding: 10px 16px
  • Height: ~44px
  • Font: Open Sans 16/600
  • Hover: background darkens to #0e6e35 over 150ms
  • Use: the acquisition action (“Open an account”) — sits beside the blue primary
  • Note: white-on-green is AA at large only; the 16/600 label and 44px target keep it legible, but never use this green for body-size text

button-outline — Tertiary, blue outline

  • Background: White (#ffffff)
  • Text: Brand Blue (#0060f0)
  • Border: 1px solid Brand Blue
  • Radius: 5px
  • Padding: 10px 16px
  • Font: Open Sans 16/600
  • Hover: faint blue tint fill (#eef4ff)
  • Use: low-commitment action paired with a solid CTA (“Learn more”, “Explore options”)

button-ghost — Text-style action

  • Background: transparent
  • Text: Brand Blue (#0060f0)
  • Border: none
  • Radius: 5px (for focus ring shape)
  • Padding: 10px 12px
  • Hover: underline appears; no fill
  • Use: in-module text actions inside dense lists where a solid button would be too heavy

Cards & Containers

card — Default product/offer card

  • Background: White (#ffffff)
  • Text: Ink (#101820)
  • Border: 1px solid Border (#d4d9e0)
  • Radius: 12px
  • Padding: 24px
  • Shadow: resting (rgba(16,24,32,0.06) 0 1px 3px)
  • Hover (when interactive): shadow lifts to raised (12%), optional translateY(-2px)
  • Use: product summaries, offer tiles, content modules on white or soft-gray sections

card-promo — Promotional/informational tile

  • Background: Blue Tint (#eef4ff)
  • Text: Ink (#101820)
  • Border: none
  • Radius: 16px
  • Padding: 32px
  • Use: bonus offers, account highlights, “limited time” modules — the tint sets it apart from plain content without a heavy border

Badges / Tags / Pills

badge — Status/category chip

  • Background: Blue Tint (#eef4ff)
  • Text: Navy (#003594)
  • Radius: 9999px (pill)
  • Padding: 4px 10px
  • Font: Open Sans 12/500
  • Use: “New”, “Limited time”, category labels

badge-success — Positive status pill

  • Background: pale green (#e6f4ec)
  • Text: Green hover stop (#0e6e35)
  • Radius: 9999px
  • Padding: 4px 10px
  • Use: eligible / approved / available indicators

Inputs & Forms

input — Standard form field

  • Background: White (#ffffff)
  • Text: Ink (#101820)
  • Border: 1px solid Border (#d4d9e0)
  • Radius: 8px
  • Padding: 10px 12px
  • Height: 48px (comfortable touch)
  • Focus: 3px blue ring (rgba(0,96,240,0.45)) with 2px offset; border strengthens
  • Label: 13px/500 above the field; helper text 14px muted below
  • Error: border + helper text switch to Danger (#c4001a); icon optional
  • Use: sign-in fields, account-open forms, search

nav-bar — Top product/utility nav

  • Background: White (#ffffff)
  • Height: 64px
  • Border: 1px bottom hairline (#d4d9e0)
  • Content: Chase octagon logo left, primary product links center (Open Sans 16/600), blue “Sign in” primary CTA at right; “Open an account” green secondary often beside it
  • Dropdowns: white panels with raised shadow, 4px fade-in, hairline border
  • Link style: ink text, no underline at rest; blue underline or blue text on hover/active

Mobile Nav

  • Collapses to: octagon logo + hamburger + sign-in. Full-screen overlay stacks primary links vertically; the blue/green CTA pair pins near the top of the overlay.
  • Background: Deep Navy (#003594)
  • Text: White
  • Padding: 48px top / 24px sides / 32px bottom
  • Structure: multi-column link grid (banking, cards, lending, investing, about), legal disclosures row, member-FDIC and Equal Housing Lender lines, social icons
  • Dividers: rgba(255,255,255,0.24) hairlines
  • Link style: white, 14px; underline on hover

5. Layout Principles

Spacing System

  • Base unit: 4px
  • Scale: 0 / 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 96
  • Section vertical padding: ~64px between major sections on desktop; ~32–48px on mobile
  • Card internal padding: 24px (default), 32px (promo tiles); ~16px on mobile
  • Card gutter: 24px between cards in a grid

Grid & Container

  • Max content width: ~1280px centered, with ~24px horizontal gutter at small sizes growing symmetrically on wide screens
  • Prose width: ~720px for long-form reading (disclosures, articles)
  • Column pattern: 12-column implied. Common layouts are 2-up (headline + supporting copy), 3-up product card rows, and full-width hero bands. Product grids reflow 3-up → 2-up → 1-up as width drops.
  • Header: fixed 64px white bar with bottom hairline

Whitespace Philosophy

Chase uses whitespace as the primary organizing tool. A page that lists checking, savings, cards, and loans could feel like a dense directory; instead, generous section padding and 1.55 body leading let each module breathe. The rule of thumb: when content gets dense (a comparison table, a fee schedule), add air and a soft-gray band rather than borders or color to separate it. Empty space here signals “take your time” — the right tone for financial decisions.

Section Cadence

A typical homepage scroll:

  1. White nav bar (octagon logo + links + blue/green CTA pair)
  2. Hero band — 32px/700 headline, lead paragraph, the two-CTA dialogue
  3. Product card row (3-up cards on white)
  4. Soft-gray or blue-tint promo band (offer / bonus module)
  5. Secondary product row or feature module
  6. Trust/reassurance band (security, FDIC, support)
  7. Deep navy footer with disclosures and member-FDIC line

6. Shapes & Radius Scale

RadiusTierUse
2pxMicroTiny chrome details, inline marks, checkboxes
4pxStandardSecondary green CTA (“Open an account”), small chips
5pxBrandPrimary blue CTA (“Sign in”) — Chase’s signature button radius
8pxComfortableDefault controls, inputs, dropdown items
12pxRelaxedCards and panels
16pxFeaturedLarge feature tiles, promo cards, modal corners
9999pxPillStatus badges, toggle pills, avatar/badge circles, status dots

The scale is deliberately modest and tight. The two solid CTAs sit one point apart on purpose — 5px on the blue primary, 4px on the green secondary — a subtle differentiation you feel more than see, reinforcing that they are two distinct actions, not a toggle. Beyond buttons, radii climb gently (8 → 12 → 16) for nested surfaces and resolve to full-pill only on small chips and circular elements. Nothing on the page is sharp-cornered, and nothing is so round it reads as playful — the corners say “modern bank,” not “consumer app.”

7. Depth & Elevation

LevelTreatmentUse
0No shadow, 1px borderDefault — most content sits flat on white with a hairline border
1rgba(16,24,32,0.06) 0 1px 3px 0, rgba(16,24,32,0.04) 0 1px 2px 0Resting interactive cards — a faint cushion
2rgba(16,24,32,0.12) 0 6px 16px -2pxHover cards, open dropdowns — clearly lifted
3rgba(16,24,32,0.20) 0 16px 40px -8pxModals, dialogs — floating above a dimmed scrim

Shadow Philosophy

Chase treats shadow as a signal of interactivity and layering, not decoration. At rest, most surfaces use a 1px cool-gray border rather than a shadow; structure comes from borders and spacing. Shadow appears in three situations only: (1) a card the user can click gets a faint resting cushion; (2) hovering a card or opening a menu lifts it to Level 2; (3) a modal floats at Level 3 above a 55%-opacity ink scrim. All shadows are ink-tinted and cool, kept at 6–20% opacity, so they read as quiet depth rather than drama. The page never uses warm, colored, or hard-edged shadows.

Decorative Depth

  • Blue-tint promo bands (#eef4ff): the faint wash creates a sense of a layered panel without a border or shadow
  • Soft-gray section bands (#f5f7fa): alternate-band shading separates dense modules using tone, not lines
  • Card resting cushion: the barely-there Level 1 shadow tells the eye which surfaces are tappable

8. Interaction & Motion

Easing Curves

  • Standard: cubic-bezier(0.4, 0, 0.2, 1) — most color, background, and opacity transitions
  • Emphasized: cubic-bezier(0.2, 0, 0, 1) — dropdown and menu reveals

Duration Buckets

  • Fast (150ms): button hover background darken, link underline
  • Standard (240ms): card shadow lift, dropdown fade-in
  • Slow (320ms): larger panel/overlay transitions, accordion expand

Per-Component Motion

Primary / secondary buttons

  • Hover: background darkens (blue → #0048bf, green → #0e6e35) over 150ms
  • No transform lift — buttons stay grounded; the color shift is the whole feedback
  • Active: instant, no bounce

Cards

  • Hover (interactive only): shadow Level 1 → Level 2 over 240ms; optional translateY(-2px)
  • Non-interactive cards do not animate on hover

Dropdown / nav menus

  • Open: fade + 4px translateY over 240ms ease-emphasized
  • Close: instant or quick fade

Inputs

  • Focus: blue ring appears instantly (no transition) for unambiguous feedback; border strengthens

Links

  • Hover: color darkens and underline appears over 150ms

Page Transitions

Standard multi-page navigation — no SPA route animation. New pages load fresh; the white canvas and fixed nav keep continuity. Modals fade in over the scrim at 240ms.

Reduced Motion Strategy

@media (prefers-reduced-motion: reduce):

  • Card translateY lift removed — shadow change alone conveys hover
  • Dropdown translateY removed — fade only
  • Focus ring already instant — unchanged
  • Color/opacity transitions preserved (they don’t cause vestibular discomfort)

9. Accessibility & A11y

Contrast Pairs

PairRatioWCAG Level
#101820 ink on #ffffff canvas17.89:1AAA
#ffffff on #0060f0 brand blue5.34:1AA body, AAA large
#ffffff on #128842 green4.54:1AA large — pair with ≥14pt bold / 18.66px
#0060f0 link on #ffffff5.34:1AA body
#5a6470 muted on #ffffff6.01:1AA body, AAA large
#6b7280 faint on #ffffff4.83:1AA body — non-essential fine print only

Focus Indicators

  • 3px blue ring (rgba(0,96,240,0.45)) with 2px outline-offset on every focusable element
  • The ring uses the brand blue rather than the browser default, but is clearly visible on white
  • Applied to: nav links, both CTA buttons, inputs, footer links, card links

ARIA Patterns

  • The octagon logo is a link with aria-label="Chase home"; the glyph itself is aria-hidden
  • Dropdown nav uses aria-expanded + aria-controls on the trigger; menu is role="menu"
  • The blue/green CTA pair are two distinct <button>/<a> elements — not a toggle group; each has clear text
  • Status badges that rely on color (success green, info blue) carry an aria-label so the state is announced
  • Error fields use aria-invalid="true" + aria-describedby pointing to the error text

Keyboard Navigation

  • Tab order: skip-link → logo → primary nav → utility/sign-in CTA → hero CTAs (blue primary, then green secondary) → body modules → footer columns
  • Skip-link “Skip to main content” at the very top
  • Dropdowns: Enter/Space opens, arrow keys move, Escape closes and returns focus to trigger
  • Modals: focus-trapped; Escape dismisses

Screen Reader Hints

  • Decorative octagon and icon glyphs are aria-hidden="true"
  • Legal disclosure footnotes are linked from the claims they qualify via aria-describedby so APR/fee asterisks are announced in context
  • The member-FDIC and Equal Housing Lender lines are announced as static informational text
  • Product imagery uses meaningful alt; purely decorative imagery uses alt=""

Reduced Motion Handling

Detailed in §8 — the system respects prefers-reduced-motion: reduce, removing translate/scale while keeping color and opacity transitions.

10. Responsive Behavior

Breakpoints

NameWidthKey Changes
Mobile≤640pxNav collapses to logo + hamburger + sign-in; primary links behind overlay; product cards stack 1-up; hero headline drops toward ~24–28px; CTA pair stacks vertically (blue above green) full-width
Tablet641–1024pxNav shows a reduced link set; product cards arrange 2-up; hero headline ~28–32px
Desktop1025–1280pxFull nav with primary links centered; product cards 3-up; hero at 32px with side-by-side CTA pair
Wide≥1536pxContent max-width caps ~1280px; gutters grow symmetrically; section bands span full width with centered content

Touch Targets

All interactive elements meet or exceed 44×44px. Both CTA buttons are ~44px tall; inputs are 48px; the mobile hamburger and sign-in are ≥44px. No tap target drops below 44px at any breakpoint.

Per-Component Collapsing

  • Nav: full link bar → hamburger overlay. The sign-in CTA stays visible in the collapsed bar; “Open an account” moves into the overlay.
  • CTA pair: side-by-side (blue then green) on desktop → stacked full-width (blue on top) on mobile. Order is preserved so the primary action stays first.
  • Product grid: 3-up → 2-up → 1-up.
  • Footer: multi-column grid → stacked accordion sections on mobile.
  • Spacing: section padding compresses from ~64px to ~32px on mobile.

Image Behavior

Product and lifestyle imagery scales within its card, cropped to the card’s radius. Lazy loading is standard (loading="lazy") with a neutral placeholder that holds the white canvas during load — no warm tint, no skeleton shimmer beyond a faint gray block.

11. Content & Voice

Tone

The voice is institutional-but-approachable — a major bank speaking plainly to a broad audience. It is confident, clear, and reassuring, never trendy, never slangy, never anxious. Sentences are short and concrete; the brand explains money matters without jargon and without overpromising.

Microcopy Patterns

  • Button verbs: “Sign in”, “Open an account”, “Continue”, “Learn more”, “Get started”, “Apply now”, “Explore” — direct, action-first
  • Headline structure: plainspoken benefit statements (“Banking made easy”, “Find the card for you”) rather than clever wordplay
  • Body copy: concrete, second-person (“you”), with disclosures handled honestly rather than buried
  • Error messages: specific and calm (“Enter a valid username”, “Your password doesn’t match our records. Try again.”) — never blaming, never cute
  • Success confirmations: brief and clear (“Your account is open”, “You’re signed in”)

Empty States

Empty modules read as informative, not playful: “No transactions yet” or “Nothing to show here” — the brand stays in character and avoids jokey copy.

CTA Verb Conventions

Chase favors direct, transactional imperatives:

  • Sign in
  • Open an account
  • Continue
  • Apply now
  • Get started
  • Learn more
  • Explore

It avoids:

  • Overly casual invitations (“Let’s go!”, “Jump in!”)
  • Hype verbs (“Unlock”, “Supercharge”)
  • Excitement punctuation in CTAs (no exclamation points on buttons)

12. Dark Mode & Theming

The public marketing site is light-only — no dark variant. The white canvas is core to the trust-institutional register; inverting it would undercut the plain, legible tone the brand depends on. Authenticated app surfaces are out of scope for this entry.

Theming Notes for Derivatives

If you must adapt this system to a dark mode for a derivative product:

  • Swap #ffffff canvas → #0e1420 (deep cool near-navy, keeping the cool cast)
  • Swap #101820 ink → #f3f5f8 (near-white text)
  • Swap #f5f7fa soft panel → #161d2b; #eef4ff tint → #13233f
  • Brand blue #0060f0 lightens to ~#3d86ff for adequate contrast on dark
  • Secondary green #128842 lightens to ~#2bbd6a on dark
  • Borders shift from #d4d9e0 to rgba(255,255,255,0.14)
  • Re-verify all contrast pairs against the new dark canvas — do not assume the light ratios carry over

13. Lineage & Influences

Chase’s design language sits squarely in the lineage of major-institution corporate web design — the disciplined, trust-first tradition that descends from Swiss/International Typographic Style by way of decades of bank and enterprise sites. Its core moves are textbook: one humanist sans (Open Sans) carrying the whole hierarchy, a near-black ink on plain white, generous whitespace as the organizing device, and a single brand color reserved almost entirely for action. The result reads less like a startup’s marketing site and more like a well-set annual report translated to the web — and that is exactly the point for a bank whose product is confidence.

What makes the system specifically Chase is the octagon-blue identity and the two-CTA dialogue. The blue (#0060f0) borrows the energy of the iconic octagon mark and concentrates it into the primary action, while the green secondary (#128842) gives the acquisition path its own clear lane. The brand deliberately rejects the trend-driven patterns of consumer fintech — no glassmorphism, no gradient meshes, no oversized playful radii, no dark-mode-first aesthetic. It also rejects the dense, data-grid look of developer tools; the priority is calm legibility for a general public making financial decisions, not feature density.

Named Influences

14. Do’s and Don’ts

Do

  • Use plain white (#ffffff) as the page canvas — no tint, no texture
  • Set all text in near-black ink (#101820) for AAA contrast on white
  • Reserve brand blue (#0060f0) for primary CTAs, links, and the focus ring
  • Pair a blue primary (“Sign in”) with a green secondary (“Open an account”) in heroes and headers
  • Keep the primary blue button at 5px radius and the green secondary at 4px — the one-point difference is intentional
  • Set everything in Open Sans — headlines (700), controls (600), body (400)
  • Run body at 16px / 1.55 line-height for comfortable reading of dense financial copy
  • Use 1px cool-gray borders (#d4d9e0) and whitespace to organize content
  • Apply shadows only to interactive or floating layers, kept cool and low-opacity
  • Use the soft-gray (#f5f7fa) and blue-tint (#eef4ff) bands to separate dense modules
  • Keep disclosures honest and readable — 11px/400 minimum, never below the faint stop
  • Close the page on the deep navy footer band (#003594) with member-FDIC fine print

Don’t

  • Don’t tint the canvas warm or add background texture — it reads less trustworthy
  • Don’t use green for navigation, links, or anything but the acquisition CTA and success states
  • Don’t put white body-size text on the green — it’s AA at large only; keep it to 16/600 button labels and up
  • Don’t introduce a second typeface — no serif accent, no display font
  • Don’t use oversized playful radii — corners stay 2–16px; nothing rounder than a small pill chip
  • Don’t use warm, colored, or hard-edged shadows — depth is cool, soft, and functional only
  • Don’t make the two CTAs a toggle — they are two distinct, simultaneously-available actions
  • Don’t crowd the page with color; blue and green are the only saturated fills
  • Don’t drop body line-height below ~1.5 to fit more content — add a band or whitespace instead
  • Don’t bury disclosures in micro-gray below #6b7280 — fine print stays legible
  • Don’t add exclamation points or hype verbs to CTAs — the voice is plain and confident
  • Don’t ship a dark mode for the public marketing site — the white canvas is core to the register

15. Agent Prompt Guide

Quick Color Reference

  • Background: White (#ffffff) — plain canvas, no tint
  • Heading + body text: Ink (#101820) — near-black
  • Primary CTA / links / focus: Brand Blue (#0060f0)
  • Primary CTA hover: Brand Blue Hover (#0048bf)
  • Secondary CTA: Green (#128842) — “Open an account” only
  • Secondary CTA hover: Green Hover (#0e6e35)
  • Navy / footer / emphasis: Deep Navy (#003594)
  • Muted text: (#5a6470); faint fine print: (#6b7280)
  • Border hairline: (#d4d9e0); soft panel: (#f5f7fa); blue tint: (#eef4ff)
  • Error: (#c4001a); success: (#128842)

Example Component Prompts

  • “Create a banking hero band on a white background: a 32px / Open Sans 700 headline in near-black #101820, an 18px lead paragraph below in #101820, and two buttons side by side — a bright-blue #0060f0 primary labeled ‘Sign in’ at 5px radius with white text, and a green #128842 secondary labeled ‘Open an account’ at 4px radius with white text. Both ~44px tall, Open Sans 16/600 labels.”
  • “Design a product card: white fill, 1px #d4d9e0 border, 12px radius, 24px padding, a 24px/600 ink title, 16px/400 body copy, and a blue outline button (‘Learn more’, #0060f0 text and border, 5px radius). Add a faint resting shadow rgba(16,24,32,0.06) 0 1px 3px and lift to 0 6px 16px -2px on hover.”
  • “Build a top navigation bar: 64px white bar with a 1px bottom hairline #d4d9e0, the Chase octagon logo at left, primary links centered in Open Sans 16/600 ink, and at the right a blue ‘Sign in’ primary beside a green ‘Open an account’ secondary.”
  • “Create a promotional tile: faint blue #eef4ff background, no border, 16px radius, 32px padding, a navy #003594 pill badge reading ‘Limited time’, a 24px/600 ink headline, and a blue primary CTA.”
  • “Design a form field: white background, 1px #d4d9e0 border, 8px radius, 48px tall, a 13px/500 label above and 14px muted helper text below. On focus show a 3px blue ring rgba(0,96,240,0.45) with 2px offset. On error switch border and helper text to #c4001a.”
  • “Create a deep-navy footer band (#003594, white text): a multi-column link grid, rgba(255,255,255,0.24) hairline dividers, and a bottom row with member-FDIC and Equal Housing Lender fine print at 11px.”

Iteration Guide

  1. Start from white — if a screen feels off, make sure the canvas is #ffffff with no tint; this single change pulls the mood toward Chase.
  2. Refine one component at a time; reference both the color name and hex from this guide.
  3. Keep blue scarce — if more than the primary CTA, links, and focus use blue at large scale, pull something back to ink or a border.
  4. Use the two-CTA pairing deliberately — blue primary for the authenticated/conversion path, green for account acquisition; never both blue.
  5. Reach for whitespace and a soft-gray or blue-tint band before reaching for a border or color to separate sections.
  6. Hold the type to Open Sans at three weights (700 / 600 / 400) and body at 16/1.55 — resist adding a second face.
  7. Keep radii modest (5px blue button, 4px green button, 8–16px surfaces) and shadows cool and functional.
  8. Say the feel out loud — “steady”, “plainspoken”, “trust-institutional” — and cut anything that reads as trendy, playful, or hyped.

Theme-toggle audit: score=0, signals=[none]

Ship with this

Drop chase into your project, then ship the actual sections in an afternoon.

1 · install design
npx @webdesignhot/design-md add chase
2 · ship landing page
npx agentkit init --design chase
How AgentKit reads DESIGN.md