DESIGN.md · Analysis

Spade

spade.com · 10 Jul 2026 · 47 colors · naNSuperX, naNSuperX Fallback, ui-sans-serif, system-ui, sans-serif, polar, polar Fallback, ui-sans-serif, system-ui, sans-serif

Spade

Spade is a data & AI platform for modern finance that transforms messy transaction data into structured, verified records. The design system reflects a clean, data-forward aesthetic with nature-inspired accents and technical precision.

Colors

surface#ffffff
surface-dim#f4faed
surface-bright#ffffff
surface-container-lowest#f0fae6
surface-container-low#f4faed
surface-container#e9ecef
surface-container-high#d8e5ca
surface-container-highest#d1d5dc
on-surface#090f05
on-surface-variant#6a7282
inverse-surface#18280e
inverse-on-surface#f4faed
outline#99a1af
outline-variant#d1d5dc
surface-tint#3f7308
primary#3f7308
on-primary#ffffff
primary-container#b2eb76
on-primary-container#18280e
inverse-primary#b2eb76
secondary#4fa68f
on-secondary#ffffff
secondary-container#baebc2
on-secondary-container#093328
tertiary#aa9a33
on-tertiary#ffffff
tertiary-container#ebe46a
on-tertiary-container#333109
error#e40014
on-error#ffffff
error-container#fb2c36
on-error-container#ffffff
primary-fixed#b2eb76
primary-fixed-dim#3f7308
on-primary-fixed#18280e
on-primary-fixed-variant#4a5b38
secondary-fixed#baebc2
secondary-fixed-dim#4fa68f
on-secondary-fixed#093328
on-secondary-fixed-variant#2d5a4f
tertiary-fixed#ebe46a
tertiary-fixed-dim#aa9a33
on-tertiary-fixed#333109
on-tertiary-fixed-variant#6b6020
background#ffffff
on-background#090f05
surface-variant#d8e5ca

Typography

display
fontFamily: naNSuperX, naNSuperX Fallback, ui-sans-serif, system-ui, sans-serif · fontSize: 84px · fontWeight: 560 · lineHeight: 92px · letterSpacing: -0.04em
headline-lg
fontFamily: naNSuperX, naNSuperX Fallback, ui-sans-serif, system-ui, sans-serif · fontSize: 48px · fontWeight: 560 · lineHeight: 56px · letterSpacing: -0.02em
headline-md
fontFamily: naNSuperX, naNSuperX Fallback, ui-sans-serif, system-ui, sans-serif · fontSize: 32px · fontWeight: 560 · lineHeight: 40px · letterSpacing: -0.01em
title-lg
fontFamily: polar, polar Fallback, ui-sans-serif, system-ui, sans-serif · fontSize: 20px · fontWeight: 600 · lineHeight: 28px · letterSpacing: 0em
body-lg
fontFamily: polar, polar Fallback, ui-sans-serif, system-ui, sans-serif · fontSize: 18px · fontWeight: 400 · lineHeight: 28px · letterSpacing: 0em
body-md
fontFamily: polar, polar Fallback, ui-sans-serif, system-ui, sans-serif · fontSize: 16px · fontWeight: 400 · lineHeight: 24px · letterSpacing: 0em
label-md
fontFamily: polar, polar Fallback, ui-sans-serif, system-ui, sans-serif · fontSize: 14px · fontWeight: 600 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: polarMono, polarMono Fallback, ui-monospace, monospace · fontSize: 12px · fontWeight: 520 · lineHeight: 16px · letterSpacing: 0.05em

Design guidance

Overview

Spade is a fintech data platform that transforms unstructured transaction records into verified, actionable intelligence through AI-driven processing. The design system embodies "Data Clarity Minimalism"—a philosophy that prioritizes information hierarchy, technical precision, and nature-inspired color language to make complex financial data feel approachable and trustworthy. The aesthetic combines clean typography (naNSuperX for display, Polar for body) with a carefully curated palette rooted in forest and sage tones (#3f7308 moss primary, #18280e forest accents, #f4faed sage backgrounds), creating a visual identity that feels both authoritative and human. The brand voice is direct, confident, and data-literate: "Spade takes messy transaction data and turns it into structured, verified records." Every interface element serves the core mission of making financial data legible and actionable.

Colors

The color system is anchored by a moss-green primary (#3f7308) used exclusively for interactive elements, CTAs, and focus states—this is the signature accent that signals agency and trust in financial contexts. The surface stack progresses from pure white (#ffffff) through sage gradations (#f4faed, #f0fae6, #d8e5ca) to create visual depth without introducing darkness; this progression supports both light-mode clarity and subtle layering for card hierarchies. Secondary colors include lagoon (#4fa68f) for supporting actions and data highlights, and sun (#ebe46a) for tertiary emphasis or status indicators. The on-surface text is forest-dark (#090f05, not pure black) to reduce eye strain on bright backgrounds. Error states use red (#e40014) with high contrast against white. All surfaces mainta

Typography

The type system uses a two-font strategy: naNSuperX (a geometric, high-contrast display face) for headlines and hero content, and Polar (a humanist sans-serif) for body and UI text, with PolarMono for data labels and code-like content. Display (84px, weight 560) commands attention in hero sections with tight -0.04em letter-spacing; Headline-lg (48px, 560) breaks major sections; Headline-md (32px, 560) introduces subsections. Body-lg (18px, 400) and Body-md (16px, 400) maintain 1.5x line-height (24–28px) for comfortable reading in data-dense contexts. Label-md (14px, 600) and Label-sm (12px, 520 in mono) are used for UI labels, badges, and transaction metadata. Apply text-shadow 0 1px 2px rgba(9, 15, 5, 0.08) on small labels (label-sm) when placed over busy backgrounds or data visualization

Layout

The layout system uses a 12-column grid with a max-width of 1280px, maintaining a gutter of 24px between columns and 40px (lg spacing) for section separation. The page rhythm alternates between full-width hero sections (with 48px horizontal padding on desktop) and contained card grids (typically 2–3 columns on desktop, 1 on mobile). White-space is generous: lg spacing (40px) separates major sections, md spacing (24px) separates cards and components, and sm spacing (12px) separates inline elements. Container max-widths are set to 1024px for text-heavy sections and 872px for form-focused areas to optimize reading line-length. The spacing scale is semantic: use xs (4px) for micro-interactions and icon padding, sm (12px) for component internal padding, md (24px) for card padding and section ma

Elevation & Depth

Depth is achieved through a three-tier shadow system and subtle background layering, avoiding dark overlays. Level 1 (Base): flat white surface (#ffffff) with no shadow, used for primary content areas. Level 2 (Elevated Card): 0 3px 8px rgba(9, 15, 5, 0.15) with 1px border in outline-variant (#d1d5dc), used for standard cards and input fields; this shadow has a 3px blur and 8px spread to create a soft, diffused effect. Level 3 (Modal/Overlay): 0 8px 24px rgba(9, 15, 5, 0.12) with a 24px spread for maximum separation, used for modals and floating panels. Hover states elevate cards from Level 2

Shapes

The shape philosophy is "Technical Approachability"—rounded corners are minimal and functional, never decorative. The rounded scale uses 0.25rem (4px) for small elements like badges and icon buttons, 0.5rem (8px) as the DEFAULT for standard buttons and inputs (this is the most-used radius, balancing softness with technical precision), 0.75rem (12px) for cards and larger containers, and 1.5rem (24px) for hero sections and full-width containers. Full (9999px) is used only for pill-shaped badges and toggle buttons. The rationale: 4–8px radii feel modern and approachable without sacrificing the te

Components

Action Elements Buttons use a 48px height (including 12px vertical padding) with 24px horizontal padding to meet touch targets and maintain visual balance. Primary buttons (#3f7308 moss on white) use a 1px solid border in the same color to define the button edge crisply; on hover, the background darkens to primary-fixed-dim (#3f7308 at 80% opacity) with a 200ms transition. Secondary buttons are transparent with a 1px border in primary (#3f7308) and moss text; on hover, the background fills with surface-container-high (#d8e5ca). Ghost buttons have no border or background, only text in on-surface-variant (#6a7282); on hover, they gain a surface-container background. All buttons use label-md typography (14px, 600) and apply a 1px outline-offset on focus (outline: 2px solid primary, outlin

Do's and Don'ts

**Do**

  • Do use moss primary (#3f7308) exclusively for interactive elements, CTAs, and focus states—never for body text or large backgrounds.
  • Do maintain 48px minimum touch targets for all buttons and interactive elements; use 12px vertical and 24px horizontal padding as the standard.
  • Do apply the sage surface stack (#f4faed, #d8e5ca) for container backgrounds to create visual hierarchy without introducing darkness.
  • Do use naNSuperX for display and headline text (48px+) to convey authority; reserve Polar for body and UI text.
  • Do apply 0 3px 8px rgba(9, 15, 5, 0.15) shadow to cards and elevated surfaces; elevate to 0 8px 24px on hover or active states.
  • Do use 1px borders in outline-variant (#d1d5dc) to define card and input boundaries; never use borders thicker than 1px except for focus states.

**Don't**

  • Don't use primary (#3f7308) for body text, backgrounds, or large surface areas—it's reserved for interactive elements only.
  • Don't apply dark overlays, glassmorphism, or backdrop-filter effects; clarity and legibility are non-negotiable in a fintech context.
  • Don't use border-radius larger than 1.5rem (24px) except for pill-shaped badges; excessive rounding undermines technical credibility.
  • Don't mix font families within a single component; use naNSuperX for headlines and Polar for body—never combine them in a single text block.
  • Don't apply shadows larger than 0 8px 24px or use multiple layered shadows; the three-tier system is sufficient for all depth needs.
  • Don't use pure black (#000000) or pure white (#ffffff) for text or backgrounds; use forest (#090f05) for text and white (#ffffff) for surfaces to reduce eye strain.