Skip to content
ColorArchive
UI Design
Search intent: dark mode colors dark theme palette UI design

Dark Mode Color Palette Guide: Building Accessible, Beautiful Dark Interfaces

Dark mode design has unique requirements that differ fundamentally from light mode. This guide explains the key principles: surface layering with dark grays (not black), color temperature consistency, semantic token architecture, and how to handle elevation and depth without shadows.

Dark ModeUI DesignInterfaceAccessibility
Key points
True black (#000000) is almost never the right dark mode background — it creates extreme contrast that causes halation (blurry text perception) for many users. Dark gray (8–12% lightness) is correct.
Dark mode surfaces use layered grays with subtle lightness steps to create hierarchy — not shadows, which disappear at low lightness values.
Color saturation should be reduced in dark mode: the same hue at full saturation appears more intense on dark backgrounds and can feel garish or harsh.
Semantic color tokens (--surface-base, --surface-raised, --surface-overlay) are essential for a dark mode system that can be maintained and extended.

The Surface Layering System

In light mode, elevation and hierarchy are communicated through shadows. In dark mode, shadows become invisible at low lightness values, so hierarchy must instead be created through surface lightness steps. The base background is the darkest surface (typically 8–12% lightness). Elevated surfaces like cards and panels are 2–4% lighter. Interactive overlays like dropdowns and modals are another 2–4% lighter still. This creates a subtle but legible hierarchy that communicates depth without shadows.

Why True Black Fails

Pure black (#000000) as a dark mode background creates a contrast ratio with white text that is technically excellent but perceptually poor. The extreme contrast causes halation — a perceptual blurring effect where bright objects on very dark backgrounds appear to bleed at their edges. This makes text on true black backgrounds harder to read for many users, especially in low-light environments. The correct dark background is a very dark gray, not black.

Color Management in Dark Mode

Colors that work in light mode often need adjustment for dark mode. Saturated colors appear more intense on dark backgrounds and should be slightly desaturated. Light colors used for text or icons on light backgrounds may need to be darkened (since they'll appear against a dark surface). The correct approach is to define semantic tokens — --color-accent, --color-success, --color-warning — with separate light and dark mode values, rather than using raw color values that will be incorrect in one mode.

Practical next step

Move from the guide into a concrete palette lane

Guides explain the use case. Collections prove the taste. Packs handle the export and implementation layer.

Related guides