Spendwell Complete Design System
Spendwell is a corporate card and spend management platform. TWK Lausanne typography, solar-yellow CTAs, blue primary accents. This reference covers the marketing site and the product dashboard.
Marketing Website
-- Next.js + Tailwind + Radix UI on Vercel
Overview
Spendwell is a corporate card and spend management platform used by 50,000+ businesses. The marketing site uses TWK Lausanne typography, blue primary, and solar-yellow CTA accents.
Colors
Primary & CTA
Neutrals
Typography
TWK Lausanne (WELTKERN) primary, Burgess (Colophon Foundry) serif for editorial.
Email Capture Form
Hero Section
The finance platform that saves you time and money
Corporate cards, expense management, bill payments, accounting, and more -- all on one platform.
Pricing Cards
- Unlimited cards
- 1.5% cashback
- Receipt matching
- Basic integrations
- Everything in Spendwell, plus:
- Custom approval workflows
- Advanced spend policies
- Multi-entity support
- Everything in Plus, plus:
- Dedicated account manager
- SSO & SCIM
- SLA guarantees
Testimonials
App / Dashboard
Product portal -- Inter + Slate neutrals + Green primary
Overview
The Spendwell product dashboard is a data-rich financial application using slate neutrals, fintech-standard green primary, and Inter for maximum legibility.
Colors & Status
Primary & Secondary
Status
Slate Neutrals
Typography
Inter for UI text, SF Mono/Fira Code for financial figures.
Form Controls
Inputs
Toggles
Filter Chips
Data Tables
Financial data tables with sortable columns, filter toolbar, monospace amounts, and hover states.
| Date | Merchant | Cardholder | Status | Amount |
|---|---|---|---|---|
| Mar 28, 2026 | Amazon Web Services | Sarah Chen | Approved | $2,340.00 |
| Mar 27, 2026 | Delta Airlines | James Park | Pending | $892.50 |
| Mar 27, 2026 | WeWork | Maria Lopez | Approved | $450.00 |
| Mar 26, 2026 | Uber Eats | Alex Kim | Declined | $67.80 |
Metric Cards
Approval Workflow
Expense Cards
Dark Theme
Dark mode with slate-900 backgrounds. Status colors remain consistent.
CSS Tokens Reference
Complete token set for both website and app
All CSS Variables
Copy-paste ready. Website tokens and app tokens combined in one block.
/* =============================================
Spendwell DESIGN SYSTEM — COMPLETE TOKENS
============================================= */
:root {
/* ---- WEBSITE ---- */
/* Primary Blue */
--Spendwell-blue: #0066FF;
--Spendwell-blue-dark: #0052CC;
--Spendwell-blue-light: #E6F0FF;
/* Solar CTA */
--Spendwell-solar: #F5C518;
--Spendwell-solar-hover: #E6B800;
--Spendwell-solar-light: #FFF9E0;
/* Gray Scale (Website) */
--gray-50: #F9FAFB;
--gray-100: #F3F4F6;
--gray-200: #E5E7EB;
--gray-300: #D1D5DB;
--gray-400: #9CA3AF;
--gray-500: #6B7280;
--gray-600: #4B5563;
--gray-700: #374151;
--gray-800: #1F2937;
--gray-900: #111827;
/* Website Typography */
--font-primary: 'TWK Lausanne', system-ui, sans-serif;
--font-serif: 'Burgess', Georgia, serif;
--text-headline-l: 4rem;
--text-headline-m: 3rem;
--text-headline-s: 2.25rem;
--text-headline-xs: 1.5rem;
--text-body-m: 1.125rem;
--text-body-s: 1rem;
--text-body-xs: 0.875rem;
/* ---- APP / DASHBOARD ---- */
/* Primary Green (OKLCH) */
--app-green: #1DB954;
--app-green-dark: #17A347;
--app-green-light: #E8F8EE;
/* Secondary Blue */
--app-blue: #2B6CB0;
--app-blue-light: #EBF4FF;
/* Status Colors */
--status-success: #22C55E;
--status-success-bg: #F0FDF4;
--status-warning: #EAB308;
--status-warning-bg: #FEFCE8;
--status-error: #EF4444;
--status-error-bg: #FEF2F2;
--status-info: #3B82F6;
--status-info-bg: #EFF6FF;
--status-pending: #F97316;
--status-pending-bg: #FFF7ED;
/* Slate Scale (App) */
--slate-50: #F8FAFC;
--slate-100: #F1F5F9;
--slate-200: #E2E8F0;
--slate-300: #CBD5E1;
--slate-400: #94A3B8;
--slate-500: #64748B;
--slate-600: #475569;
--slate-700: #334155;
--slate-800: #1E293B;
--slate-900: #0F172A;
/* Dark Theme */
--dark-bg: #0F172A;
--dark-surface: #1E293B;
--dark-border: #334155;
/* App Typography */
--font-app: 'Inter', system-ui, sans-serif;
--font-mono: 'SF Mono', 'Fira Code', monospace;
/* ---- SHARED ---- */
/* Spacing Scale */
--space-1: 0.25rem; /* 4px */
--space-2: 0.5rem; /* 8px */
--space-3: 0.75rem; /* 12px */
--space-4: 1rem; /* 16px */
--space-6: 1.5rem; /* 24px */
--space-8: 2rem; /* 32px */
--space-12: 3rem; /* 48px */
--space-16: 4rem; /* 64px */
--space-24: 6rem; /* 96px */
/* Transitions */
--transition-fast: 150ms ease;
--transition-base: 200ms ease;
--transition-slow: 300ms ease;
}Tailwind Mapping
The paired JSON export now includes a tailwind section with theme extensions and component recipes. Use these mappings instead of default Tailwind tokens when recreating this system.
// tailwind.config.js
import designSystem from './design-system.json';
export default {
theme: {
extend: designSystem.tailwind.website.theme.extend,
},
};
// Swap to designSystem.tailwind.app.theme.extend for app/portal surfaces.
| Scope | Primary | Body Font | Radius | Shadow | Breakpoint |
|---|---|---|---|---|---|
| Website | — | — | — | — | — |
| App / Portal | — | — | — | — | — |
| Scope | Recipe | Class Pattern | Notes |
|---|---|---|---|
| Website | buttonPrimary | inline-flex items-center justify-center gap-2 rounded-md bg-brand-primary text-text-inverse shadow-sm px-4 py-2 font-semibold transition-colors | Primary action button using exported brand, radius, and shadow tokens. |
| Website | surfaceCard | rounded-md bg-surface-base text-text-primary border border-border-subtle shadow-sm p-6 | Default surface/card treatment for high-visibility content areas. |
| Website | inputField | rounded-md border border-border-subtle bg-surface-base text-text-primary px-3 py-2 focus:outline-none focus:ring-2 focus:ring-focus-ring | Base text input treatment aligned to the exported radius, border, and focus tokens. |
| App / Portal | buttonPrimary | inline-flex items-center justify-center gap-2 rounded-md bg-brand-primary text-text-inverse shadow-sm px-4 py-2 font-semibold transition-colors | Primary action button using exported brand, radius, and shadow tokens. |
| App / Portal | surfaceCard | rounded-md bg-surface-base text-text-primary border border-border-subtle shadow-sm p-6 | Default surface/card treatment for high-visibility content areas. |
| App / Portal | inputField | rounded-md border border-border-subtle bg-surface-base text-text-primary px-3 py-2 focus:outline-none focus:ring-2 focus:ring-focus-ring | Base text input treatment aligned to the exported radius, border, and focus tokens. |