Skip to main content

Design System

Marlowe Keynes — Visual Token Reference v2.0

Theme Preview

Compare all design tokens across dark and light themes. Toggle between side-by-side view or individual themes.

Dark Mode
Background
Card
Foreground
Muted FG
Primary
Primary Muted
Accent
Border
Destructive
Neon Green
Neon Amber
Neon Red

Sample text in foreground

Muted caption text for secondary info

Interactive link in primary color

Decorative icon/label in primary-muted

Light Mode
Background
Card
Foreground
Muted FG
Primary
Primary Muted
Accent
Border
Destructive
Neon Green
Neon Amber
Neon Red

Sample text in foreground

Muted caption text for secondary info

Interactive link in primary color

Decorative icon/label in primary-muted

Color Architecture

The Marlowe Keynes UI follows the 60-30-10 rule: 60% dark base surfaces, 30% text and decorative elements, 10% interactive accent colors. Every color pair has been audited against WCAG AA contrast requirements (4.5:1 for normal text, 3:1 for large text and UI components).

60

Base Surfaces — 60%

Dark navy backgrounds that form the canvas

BackgroundN/A — base
Page canvas (60%)
--backgroundbg-background
CardN/A — base
Card surfaces
--cardbg-card
PopoverN/A — base
Dropdown/popover surfaces
--popoverbg-popover
SecondaryN/A — base
Secondary surfaces
--secondarybg-secondary
MutedN/A — base
Muted/disabled surfaces
--mutedbg-muted
SidebarN/A — base
Sidebar background
--sidebarbg-sidebar
30

Text & Decorative — 30%

Foreground text, muted labels, borders, and decorative icons

Foreground16.75:1
Primary body text
--foregroundtext-foreground
Muted Foreground7.27:1
Secondary/caption text
--muted-foregroundtext-muted-foreground
Primary Muted5.60:1
Decorative icons & labels
--primary-mutedtext-primary-muted
Border3.53:1
Dividers & card edges
--borderborder-border
Card Foreground15.61:1
Text inside cards
--card-foregroundtext-card-foreground
10

Interactive Accent — 10%

Reserved for buttons, links, hover states, and active indicators

Primary (Neon Green)13.30:1
Interactive links, active nav, buttons
--primarytext-primary
Accent (Neon Orange)6.88:1
CTA buttons ONLY
--accentbg-accent
Neon Green13.30:1
Hover/active states
--neon-greentext-neon
Neon Amber6.88:1
Warning indicators
--neon-amber
Neon Red4.40:1
Destructive/alert states
--neon-red
Destructive4.40:1
Error states
--destructivebg-destructive

Accent Color Rules

CTA buttons, active nav items, links
Hover/focus states on interactive elements
Decorative icons, passive badges
Stat numbers, labels, section headers

Neon Palette

Robinhood-meets-Bloomberg institutional color system. Three semantic neon tokens for interactive feedback.

Neon Green

Success, active, primary interactive

oklch(0.85 0.25 145)
Neon Amber

Warning, CTA highlight, attention

oklch(0.72 0.22 50)
Neon Red

Error, destructive, critical alert

oklch(0.60 0.22 25)

Component Playground

Interactive demos of reusable components. Hover, click, and interact to see them in action.

ToolCard — Animated Reveal

Hover over a card to see the content panel rotate in. On mobile, tap once to reveal, tap again to navigate. Each card has a curated gradient preset and supports compact mode for dropdowns.

Full Size

Compare

Compare

Side-by-side management comparison across companies

Open
Valuation Lab

Valuation Lab

DCF, multiples, and scenario analysis

Open
SEC Filings

SEC Filings

Deep dive into proxy statements and 10-K filings

Open
Governance

Governance

Board independence, audit quality, and risk oversight

Open

Compact (Dropdown)

Compare

Compare

Side-by-side management comparison across companies

Open
Valuation Lab

Valuation Lab

DCF, multiples, and scenario analysis

Open
SEC Filings

SEC Filings

Deep dive into proxy statements and 10-K filings

Open
Governance

Governance

Board independence, audit quality, and risk oversight

Open

Usage

import { ToolCard } from "@/components/ToolCard";
import { GitCompare } from "lucide-react";

<ToolCard
  tool={{
    name: "Compare",
    href: "/compare",
    icon: GitCompare,
    description: "Side-by-side management comparison",
    gradient: "blue",
  }}
  compact={false}
/>

Animation Showcase

Live demos of the three core animation patterns. Adjust speed with the sliders to find the right feel.

Rotate-In Reveal

Tool card content panel

0.6s

Compare Tool

Side-by-side management team comparison with scoring.

Normal
0.1s1.5s

CSS

.tool-card {
  transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
}
.tool-card:hover .tool-card__content {
  transform: translate(-50%, -50%) rotate(0deg);
  opacity: 1;
}

Banter Shuffle

Loading indicator puzzle

1.5s
Normal
0.3s3.0s

CSS

.banter-loader__box {
  animation: banter-loader 1.5s ease infinite;
  /* 9 boxes with staggered delays:
     box1: 0s, box2: -0.167s, box3: -0.333s... */
}

Staggered Fade-In

Content entrance by weight

0.4s
H1 — Headline — delay: 0.00s
H2 — Subtitle — delay: 0.12s
CTA Button — delay: 0.24s
Body Text — delay: 0.36s
Normal
0.1s1.2s

CSS

@keyframes fadeSlideUp {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}
/* Stagger by weight: heaviest first, largest motion */
.headline { animation-delay: 0s; }
.subtitle { animation-delay: 0.12s; }
.cta      { animation-delay: 0.24s; }
.body     { animation-delay: 0.36s; }

Typography Pairing

Four typefaces, each with a distinct role. Never mix roles — headlines stay in Libre Bodoni, data stays in JetBrains Mono.

Libre Bodoni

Headlines & hero text

--font-displayfont-headline
Know who runs the company

JetBrains Mono

Financial data, scores, tickers

--font-datafont-data
AAPL · 87 · $192.45

Inter

Body text, UI labels, navigation

--font-sansfont-sans
Deep analysis of executive teams, compensation structures, and governance.

Cormorant Garamond

Accent serif (quotes, callouts)

--font-seriffont-serif
"Tim Cook's total compensation reflects strong pay-for-performance alignment."

Zero CLS Utility Classes

Predefined minimum heights that reserve space for async content. Apply these to containers that load data asynchronously to prevent Cumulative Layout Shift.

ClassMin HeightUsagePreview
cls-hero500pxHero section above the fold
500px
cls-chart350pxChart containers (Recharts, etc.)
350px
cls-card200pxStandard data cards
200px
cls-stat-card120pxCompact stat/KPI cards
120px
cls-table400pxData tables with pagination
400px
cls-data-grid300pxGrid layouts of data cards
300px
cls-analysis-panel600pxFull analysis results panel
600px
cls-comparison500pxSide-by-side comparison views
500px

Performance Budgets

Core Web Vitals thresholds enforced via automated Lighthouse CI. These budgets run on every checkpoint to catch regressions before they ship.

LCP< 2.5s

Largest Contentful Paint — hero section render time

CLS< 0.1

Cumulative Layout Shift — layout stability score

FID< 100ms

First Input Delay — time to interactive responsiveness

TTFB< 800ms

Time to First Byte — server response time

INP< 200ms

Interaction to Next Paint — responsiveness to user input

TBT< 300ms

Total Blocking Time — main thread blocking duration

WCAG AA Audit Results

All 35 color pairs pass WCAG AA contrast requirements. Audit covers both dark and light mode.

Pairs Audited
35

Dark mode: 25 · Light mode: 10

Pass Rate
100%

0 failures after color adjustments

Lowest Ratio
3.29:1

Border on card (threshold: 3:1)

Marlowe Keynes Design System v2.0 — Last audited March 2026