Skip to content

Colors

All colors are defined as CSS custom properties in two layers: primitive tokens (raw palette values) and semantic tokens (contextual mappings that change between light and dark mode).

Source files:

  • packages/shared/tokens/primitives.css — raw palette
  • packages/shared/tokens/semantic.css — light/dark semantic mappings
  • packages/shared/styles/theme.css — Tailwind v4 @theme inline bindings

Brand Primary — Blue

The blue palette is Prosper’s primary brand color, anchored at --color-blue-600 (#2b00ff).

TokenValuePreview
--color-blue-50#ecf3ff
--color-blue-100#d9e7ff
--color-blue-200#bbd3ff
--color-blue-300#8ab8ff
--color-blue-400#4059ff
--color-blue-500#3220ff
--color-blue-600#2b00ff
--color-blue-700#2100d2
--color-blue-800#1a1ba5
--color-blue-900#0d0d0e
--color-blue-950#070708

Neutral — Gray

TokenValuePreview
--color-gray-50#f9fafb
--color-gray-100#f3f4f6
--color-gray-200#e5e7eb
--color-gray-300#d1d5db
--color-gray-400#9ca1a9
--color-gray-500#6e747b
--color-gray-600#4e535a
--color-gray-700#3c4047
--color-gray-800#1f2937
--color-gray-900#13181d
--color-gray-950#030712

Status Colors

Red (Destructive)

TokenValuePreview
--color-red-50#fef2f2
--color-red-100#fee2e2
--color-red-500#ef4444
--color-red-600#dc2626
--color-red-700#b91c1c

Green (Success)

TokenValuePreview
--color-green-50#f0fdf4
--color-green-100#dcfce7
--color-green-500#22c55e
--color-green-600#16a34a
--color-green-700#15803d

Yellow (Warning)

TokenValuePreview
--color-yellow-50#fefce8
--color-yellow-100#fef9c3
--color-yellow-500#eab308
--color-yellow-600#ca8a04
--color-yellow-700#a16207

Semantic Color Mappings

These tokens map primitives to contextual roles. They change between light and dark mode.

Backgrounds

Semantic TokenLightDark
--backgroundwhitegray-900
--background-secondarygray-50gray-800
--background-tertiarygray-100gray-700
--background-inversegray-900white

Foregrounds / Text

Semantic TokenLightDark
--foregroundgray-900gray-50
--foreground-secondarygray-700gray-200
--foreground-tertiarygray-500gray-400
--foreground-mutedgray-400gray-500

Brand

Semantic TokenLightDark
--primaryblue-600blue-500
--primary-hoverblue-700blue-400
--primary-activeblue-800blue-300
--primary-foregroundwhitegray-900

Surfaces

Semantic TokenLightDark
--cardwhitegray-800
--card-foregroundgray-900gray-50
--popoverwhitegray-800
--mutedgray-100gray-800
--muted-foregroundgray-600gray-400
--accentgray-100gray-800
--secondarygray-100gray-800

Borders

Semantic TokenLightDark
--bordergray-200gray-700
--border-secondarygray-300gray-600
--ringblue-600blue-500

Status

Semantic TokenLightDark
--successgreen-600green-500
--warningyellow-600yellow-500
--destructivered-600red-500

Tailwind Usage

Semantic tokens are exposed to Tailwind via @theme inline in theme.css:

@theme inline {
--color-primary: var(--primary);
--color-primary-foreground: var(--primary-foreground);
--color-background: var(--background);
--color-foreground: var(--foreground);
/* ... etc. */
}

Use them with standard Tailwind utilities:

<div className="bg-primary text-primary-foreground" />
<div className="bg-card text-card-foreground border-border" />
<span className="text-muted-foreground" />