CandyWrite
HomeBlogs
CandyWrite

An independent publishing platform for essays on technology, design, and creative work. Free to read, free to write.

Explore

  • Home
  • All Blogs
  • Topics
  • Tags
  • Writers
  • Most Read

About

  • About Us
  • Help & Support
  • Contact

Contact

  • hello@candywrite.com
  • support@candywrite.com

Get Updates

© 2026 CandyWrite. All rights reserved.

AboutHelpContactPrivacy PolicyTerms of Service
  1. Home
  2. Blogs
  3. Design
  4. Dark Mode Is a Colour System Problem, Not a Theme Toggle
Dark Mode Is a Colour System Problem, Not a Theme Toggle
Design

Dark Mode Is a Colour System Problem, Not a Theme Toggle

Inverting a palette produces muddy shadows, glaring surfaces, and unreadable states. Doing it properly means designing roles rather than values.

M

Written by

Muhammad Umer
  • 9 August 2026
  • 3 min read
  • 0 views
0

The common approach to dark mode is to take the light palette, flip the greys, and fix what looks wrong. It usually ships, and it usually has the same set of problems: elevation that reads as flat, brand colours that vibrate against dark backgrounds, disabled states indistinguishable from enabled ones, and shadows that do nothing because shadow on dark is nearly invisible.

Design roles, not colours

The fix is to stop thinking in colours and start thinking in roles: page background, raised surface, overlay surface, primary text, secondary text, border, interactive accent, and the state variants of each. A role has a meaning that holds in both themes, and each theme provides its own value. Once your components reference roles, a theme is a value table rather than a set of overrides.

The tell that a system is not doing this is a stylesheet full of theme-specific exceptions, each one added to patch a place where inversion produced a bad result.

Elevation without shadows

On light backgrounds, depth is communicated by shadow. On dark backgrounds shadow barely registers, so depth has to come from surface lightness: each level up is slightly lighter than the one below. Define these steps explicitly, keep them few, and resist the temptation to also add a shadow, which usually reads as a smudge.

Saturated colours need adjusting

A brand colour tuned for white backgrounds will typically be too saturated and too dark against a dark surface. It either disappears or glows uncomfortably. Most systems end up with a slightly desaturated, slightly lighter variant for dark mode, defined once as a role value rather than adjusted per component.

  • Pure white text on pure black is harsh; a near-white on a near-black is more comfortable for long reading.
  • Contrast requirements apply in both themes, and a pairing that passes in light frequently fails in dark.
  • Images and illustrations need consideration too, since a white-background asset becomes a bright rectangle.

Respect all three states

Users have three preferences, not two: light, dark, and follow the system. Products that only store an explicit choice break for the largest group, who never chose and expect the operating system to decide. Handle the unset state as first-class, and make sure the toggle can return to it.

If your dark theme was made by inverting the light one, your users can tell. It is the interface equivalent of a translated sentence that is technically correct.

The test that finds everything

Put both themes side by side on the same screen and look at states rather than layouts: hover, focus, disabled, error, selected, and loading. Theme bugs concentrate almost entirely in states, because states are where colour is doing semantic work rather than decorative work.

Design Systems

Enjoyed this article?

Show some love or pass it on to someone who'd like it.

About the author

M

Muhammad Umer

@umarrafique

View profile

I'm Muhammad Umer. I write about technology, business, and the forces shaping our world. I started writing because I had questions.

WebsiteTwitterGitHub

Join the conversation

Discussion0

Live updates

Join the conversation. Sign in to leave a response or reply to comments.

Sign InCreate Account
No responses yet. Be the first to share your thoughts!
On this page

Keep reading

Related articles

More essays on the same topics, picked for you.

View all blogs
Design

12 Aug 2026•3 min read

Design Systems Became Governance. Act Accordingly.

A component library is a convenience. A design system that enforces rules across human and machine-generated interfaces is infrastructure, and it needs owners with authority.

MMuhammad Umer
Design

7 Aug 2026•3 min read

Prototype in the Medium: Why Static Mockups Keep Lying to You

A design that only exists as a static frame hides motion, states, real data, and responsiveness, which is where most product decisions actually live.

MMuhammad Umer
Design

13 Aug 2026•3 min read

Calm Interfaces: Designing for Attention You Did Not Earn

The dominant design conversation has shifted from engagement to restraint. Reducing cognitive load is now the differentiator, and it is harder than adding features.

MMuhammad Umer
Design

10 Aug 2026•2 min read

Accessibility Is a Rendering Requirement, Not a Review Step

Audits find issues after they ship. Building accessibility into the primitives means most of those issues never get written, which is the only approach that scales.

MMuhammad Umer

Enjoyed this perspective?

Join 12,000+ readers getting our Saturday morning editorial dispatch with our top essays and reading recommendations.