Carrie Harman Creative

Visual storytelling for organisations that care.

Carrie Harman Creative

Visual storytelling for organisations that care.

designer working on dark mode UI on laptop in low light

Dark mode design is no longer “optional”—but it’s easy to get wrong

Dark mode has moved beyond a trendy toggle. For many people, it’s a default setting used for comfort, accessibility, and battery savings on certain screens. Yet dark-mode rollouts often create new problems: muddy contrast, neon-looking brand colors, disappearing dividers, and charts that become unreadable overnight.

This roundup collects practical, field-tested tips and resources for designing dark mode experiences that feel intentional—not like a last-minute inversion filter. You’ll find actionable checks, token strategies, and real-world examples you can apply whether you’re designing a marketing site, SaaS dashboard, or mobile app.

1) Start with the “dark surfaces” rule: not pure black, not pure white

One of the most common dark-mode mistakes is using #000000 backgrounds. On modern displays, pure black can create harsh contrast, visible banding, and eye fatigue—especially when paired with bright text.

  • Use near-black surfaces (e.g., #0F1115, #12141A) and layer elevation with subtle steps (e.g., +2–4% lightness per layer).

  • Reserve true black for OLED power-saving modes or specific media contexts—not general UI surfaces.

  • Try two background tiers: a base background plus a slightly lighter “card” surface for structure.

Real-world example: Many developer tools and code editors use near-black palettes (rather than pure black) because it reduces glare during long sessions.

2) Design with tokens: one palette, multiple themes

If your dark mode is built on raw hex values sprinkled throughout components, you’ll fight inconsistencies forever. The fix: design tokens that express intent.

  • Semantic tokens: text/primary, text/secondary, surface/raised, border/subtle—mapped to different colors per theme.

  • Functional tokens: success, warning, danger, info—each with background, border, text roles.

  • Avoid “darken by 40%” logic. Different colors behave differently in low-luminance contexts.

Actionable tip: If you’re in Figma, set up variables for semantic roles, then publish a library. In code, connect tokens to CSS variables (e.g., –surface-1) and switch with [data-theme=”dark”].

3) Check contrast—but also check “perceived contrast”

WCAG contrast ratios are essential, but dark mode introduces a second issue: perceived contrast can feel stronger than the numbers suggest. Bright text on dark backgrounds may meet contrast requirements yet still be uncomfortable at scale.

  • Prefer slightly off-white text (e.g., #E6E7EB instead of #FFFFFF) for body copy.

  • Reduce large text brightness less aggressively than small text to keep hierarchy clear.

  • Use contrast tools and then do a “squint test” to evaluate hierarchy and glare.

Data point to anchor your decisions: Dark mode is part of a broader accessibility and comfort conversation in digital products, and general-audience reporting has tracked how major platforms and OS updates have pushed it into everyday usage. For a mainstream overview of how widely dark mode has spread across devices and apps, see BBC coverage of technology and digital product trends.

4) Don’t “invert”—rebuild your hierarchy with luminance

Successful dark mode is less about flipping colors and more about re-establishing hierarchy using luminance, opacity, and spacing.

  • Replace light-mode shadows with subtle borders, overlays, or lighter surfaces (shadows often disappear on dark backgrounds).

  • Use opacity intentionally: secondary text at ~70–80% opacity; disabled states at ~40–50% (then validate contrast).

  • Leverage spacing and typography more, so you aren’t relying solely on contrast to signal structure.

Real-world example: In dark dashboards, tables often need row striping using very subtle surface shifts (e.g., 2–3% lightness steps) instead of lines.

5) Treat brand colors as “ingredients,” not paint

That electric brand blue that looks perfect on white can become a laser beam on charcoal. Dark mode often requires a tuned “dark theme” brand palette—still recognizable, but adjusted for luminance and saturation.

  • Create a dark-mode brand ramp: 2–3 accessible tints for text/icons, plus a softer background tint for banners or selected states.

  • Watch saturation: highly saturated colors can visually vibrate on dark surfaces.

  • Keep neutrals consistent so brand colors stand out only where meaningful (CTAs, links, highlights).

Actionable tip: If your CTA uses a vivid brand color, test a slightly less saturated version in dark mode and increase padding/size instead of brightness to preserve emphasis.

6) Define “elevation” in dark mode with overlays

Material-like elevation can be reimagined in dark mode using overlays (lighter translucent layers) rather than drop shadows.

  • Overlay approach: surface 1 = base; surface 2 = base + 4% white overlay; surface 3 = base + 8% overlay.

  • Use borders sparingly to avoid a “boxed-in” feel—choose one strategy (overlay or border) as your primary separation cue.

Real-world example: Modals in dark mode often look best with a slightly lighter modal surface plus a stronger background scrim (so the modal reads as a distinct layer).

7) Make data visualization a first-class citizen

Charts are where dark mode often fails. Lines disappear, gridlines overpower, and color palettes lose meaning.

  • Re-tune gridlines: use low-contrast gridlines (e.g., 10–15% opacity) so data remains the focus.

  • Increase stroke weights slightly for line charts on dark surfaces.

  • Use color + shape: add markers, dashes, or labels so color is not the only differentiator.

  • Test colorblind-safe palettes for both themes. Some palettes that work on light backgrounds break down on dark ones.

Actionable tip: Build a dedicated “chart token set” (axis, grid, series-1..n, annotation) that swaps with theme—don’t reuse UI tokens blindly.

8) Revisit imagery and icons: they may need alternate assets

Dark mode can reveal awkward edges in icons and images: dark logos vanish, PNG shadows look dirty, and photos feel overly high-contrast.

  • Provide alternate logos (light-on-dark and dark-on-light versions).

  • Use SVG icons tied to semantic tokens so strokes/fills adapt cleanly.

  • Audit hero imagery: consider a slightly lighter or lower-contrast version for dark theme so the page doesn’t feel like a spotlight in a dark room.

Real-world example: If your brand mark uses thin dark strokes, it may require a simplified “dark theme lockup” with thicker strokes or a light keyline.

9) Build clear interaction states (hover, focus, pressed) without glow overload

In dark mode, it’s tempting to rely on glows for everything. Used carefully, glow can be delightful; overused, it becomes noisy.

  • Focus states: ensure keyboard focus is highly visible using a 2px outline that meets contrast and doesn’t blur into the background.

  • Hover states: use subtle surface lifts (overlay) or underline links rather than brightening everything.

  • Pressed states: slightly darken or reduce overlay to simulate “down” rather than adding more brightness.

Actionable tip: Create a small state matrix for buttons and links (default/hover/active/disabled/focus) for both themes before you design complex screens.

10) Make form fields and dividers readable without heavy borders

Forms in dark mode can look like floating labels with no structure. But thick borders can make the UI feel busy.

  • Use subtle container fills for inputs (a slightly raised surface) instead of only borders.

  • Increase vertical spacing between form groups to reduce reliance on dividers.

  • Label contrast matters: ensure labels are not so dim that they read as disabled.

Real-world example: Search bars often read better with a light surface tint and a clear placeholder color, rather than an outline alone.

11) Test in real environments: sunlight, bedtime, low brightness

Dark mode isn’t experienced in a design tool at 100% brightness. It’s used on trains, in bed, in cafés, and in bright outdoor light.

  • Test at 30–50% brightness to see if your secondary text becomes illegible.

  • Test in bright ambient light to ensure key UI elements don’t vanish on a dim screen.

  • Test on multiple displays: OLED vs LCD can change perceived blacks and contrast.

Actionable tip: Create a simple checklist for QA that includes theme switching, brightness levels, and at least one mobile device test.

12) Roll out incrementally with a “theme readiness” audit

If you’re adding dark mode to an existing product, you don’t have to redesign everything at once. A theme readiness audit helps you sequence work.

  • Inventory components: buttons, inputs, tables, modals, nav, charts, notifications.

  • Identify “theme blockers”: hard-coded colors, raster icons, charts without tokenized palettes, third-party widgets that don’t theme.

  • Ship in layers: start with global surfaces + typography + primary components, then address complex views like analytics pages.

Real-world example: Many teams ship dark mode first for core navigation and reading views, then follow with admin/settings areas once token coverage is complete.

Conclusion: Dark mode is a design system project, not a paint job

The most satisfying dark mode experiences feel calm, readable, and deliberate—because they’re built on semantic tokens, carefully tuned contrast, and UI hierarchy that doesn’t rely on harsh brightness. Treat your dark theme like a first-class design system variant: audit your components, adjust brand colors thoughtfully, and test in real contexts.

If you take just one next step, make it this: define semantic color tokens and map them to both themes. That single move removes guesswork and makes every future screen easier to build (and far more consistent).

Designing for Dark Mode Without Guesswork: 12 Practical Tips, Tools & Real Examples

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top