Color System

This document describes our framework's color token system. All colors are drawn from a single shared palette and applied via bg-* className values. Each color scale spans 9 weights from 100 to 900, and semantic tokens (primary, danger, success, etc.) represent the product's behavior-driven colors on top of that palette.

Usage

There are two naming conventions in play:

  • Weight 500 — referenced directly by color name: bg-red, bg-blue, bg-purple
  • Every other weight — color name + weight: bg-blue-100, bg-teal-700
  • Semantic tokens — named by function: bg-primary, bg-danger, bg-success

Core Palette

Each color family forms a full 9-step scale. 100 is the lightest, 900 is the darkest. Weight 500 represents the base (brand) tone and gets the shorthand className.

Blue

blue-100
blue-200
blue-300
blue-400
blue-500
blue-600
blue-700
blue-800
blue-900

Purple

purple-100
purple-200
purple-300
purple-400
purple-500
purple-600
purple-700
purple-800
purple-900

Indigo — Brand & Action Accents

indigo-100
indigo-200
indigo-300
indigo-400
indigo-500
indigo-600
indigo-700
indigo-800
indigo-900

background tones. This family represents the brand's primary action accents.

Teal

teal-100
teal-200
teal-300
teal-400
teal-500
teal-600
teal-700
teal-800
teal-900

Green

green-100
green-200
green-300
green-400
green-500
green-600
green-700
green-800
green-900

Yellow

yellow-100
yellow-200
yellow-300
yellow-400
yellow-500
yellow-600
yellow-700
yellow-800
yellow-900

Orange

orange-100
orange-200
orange-300
orange-400
orange-500
orange-600
orange-700
orange-800
orange-900

Red

red-100
red-200
red-300
red-400
red-500
red-600
red-700
red-800
red-900

Pink

pink-100
pink-200
pink-300
pink-400
pink-500
pink-600
pink-700
pink-800
pink-900

Slate / Gray

slate-100
slate-200
slate-300
slate-400
slate-500
slate-600
slate-700
slate-800
slate-900

Semantic tokens

Semantic tokens refer to a function, not a specific hex value. In component code, use bg-primary instead of writing bg-blue-600 directly — this allows for theme changes across the entire palette without having to rewrite components. Below are the --primary --danger --success --info --warning default values

primary
danger
success
warning
info

FrontAlign