Foundations

Color

Two-axis color system — the base and portfolio brands × light and dark modes. Axis-aware tokens show a 2×2 grid: base·light, base·dark, portfolio·light, portfolio·dark.

base · lightbase · darkportfolio · lightportfolio · dark

Neutral scale

The raw warm-gray palette. Every semantic token resolves to a value in this scale.

BLBDPLPD
--neutral-50
BLBDPLPD
--neutral-100
BLBDPLPD
--neutral-200
BLBDPLPD
--neutral-300
BLBDPLPD
--neutral-400
BLBDPLPD
--neutral-500
BLBDPLPD
--neutral-600
BLBDPLPD
--neutral-700
BLBDPLPD
--neutral-800
BLBDPLPD
--neutral-900

Surface

Background layers — from page background to elevated containers and inverse surfaces.

BLBDPLPD
--surface-primary
BLBDPLPD
--surface-secondary
BLBDPLPD
--surface-tertiary
BLBDPLPD
--surface-inverse

Text

Three levels of text hierarchy plus an inverse for use on colored backgrounds.

BLBDPLPD
--text-primary
BLBDPLPD
--text-secondary
BLBDPLPD
--text-inverse

Accent

Interactive and highlight color. Switches between charcoal (default) and teal (bold expression).

BLBDPLPD
--accent-default
BLBDPLPD
--accent-hover
BLBDPLPD
--accent-foreground

Border

Dividers, focus rings, and the navigation curtain used during page transitions.

BLBDPLPD
--border-default
BLBDPLPD
--border-strong
BLBDPLPD
--border-focus
BLBDPLPD
--curtain

Feedback

Status communication — error, success, warning, and info states. Each has background, foreground, and border variants.

BLBDPLPD
--feedback-error
BLBDPLPD
--feedback-error-background
BLBDPLPD
--feedback-error-foreground
BLBDPLPD
--feedback-error-border
BLBDPLPD
--feedback-success-background
BLBDPLPD
--feedback-success-foreground
BLBDPLPD
--feedback-success-border
BLBDPLPD
--feedback-warning-background
BLBDPLPD
--feedback-warning-foreground
BLBDPLPD
--feedback-warning-border
BLBDPLPD
--feedback-info-background
BLBDPLPD
--feedback-info-foreground
BLBDPLPD
--feedback-info-border

Skeleton

Loading state pulse — animates from base to highlight.

BLBDPLPD
--skeleton-base
BLBDPLPD
--skeleton-highlight