Module 5 / Building real palettes
Module 5 · Application

Building real palettes

From theory to practice — construct functional, accessible color systems.

0/3 lessons

Anatomy of a functional palette

Learn

A functional palette isn't just pretty colors — it's a system of roles. Whether you're designing an interface, a brand identity, an illustration, or a printed piece, you need: a primary (dominant identity color), a background/surface (the canvas), a foreground/text color (readable on the surface), an accent (emphasis and highlights), and semantic colors (status or meaning cues).

Each role needs multiple shades for variations — hover states, borders, subtle backgrounds, tonal depth. Generate these systematically from your base colors using HSL lightness steps rather than hand-picking unrelated values.

RolePurposeExample source
PrimaryIdentity, dominant colorBase hue at 50% L
SurfaceCanvas / backgroundNear-white or near-black
ForegroundText, key elementsHigh contrast on surface
AccentHighlights, emphasisComplement or analogous
SemanticStatus, meaning cuesConventional hues (green/amber/red/blue)
Practice
Loading…
Recall0/1
Recall

A minimal functional palette needs at least these five roles:

Generating shades systematically

Learn

Don't pick shades by feel. Start with your base color at 50% lightness (the purest expression of the hue), then step lightness in even increments to generate a scale: 95%, 90%, 80%, 70%, 60%, 50%, 40%, 30%, 20%, 10%. Keep hue and saturation constant.

This gives you a predictable ramp where each step has a known luminance relationship to its neighbors — essential for consistent hover states, borders, and layered surfaces.

Base: hsl(H, S%, 50%) Lighter: hsl(H, S%, 60%) → hsl(H, S%, 70%) → … → hsl(H, S%, 95%) Darker: hsl(H, S%, 40%) → hsl(H, S%, 30%) → … → hsl(H, S%, 10%) Keep H and S constant. Step L in 10% increments.
Practice
Loading…
Recall0/1
Recall

When generating a systematic shade scale, you should keep which HSL axes constant?

Adapting across light & dark contexts

Learn

Switching between light and dark contexts isn't just inverting colors. Surfaces flip (light → dark), foreground flips (dark → light), but your primary and accent hues stay the same — adjust their lightness to maintain contrast on the new surface.

A common mistake: using pure black (`#000`) for dark backgrounds. Use a dark grey (`#121212` to `#1a1a2e`) instead — it reduces eye strain, preserves depth cues from shadows, and provides a more comfortable viewing experience.

Re-validate every contrast ratio when switching contexts. Relationships that work on a light surface may fail on a dark one.

Light context

Surface
~95–100% L
Foreground
~10–20% L
Primary
Base hue, 40–50% L
Borders/dividers
~85–90% L

Dark context

Surface
~5–12% L
Foreground
~85–95% L
Primary
Same hue, 55–65% L
Borders/dividers
~15–25% L
Practice
Loading…
Recall0/2
Recall

For dark backgrounds, you should generally avoid…

Recall

When adapting a palette from light to dark context, your primary color should…