Guide on how to design a dark theme.

Dark Mode That Is Not Just Inverted

I’ve spent the last nine years cleaning up the digital equivalent of a landfill, and if there is one thing that makes my eyes twitch, it’s seeing a client try to “dark mode” a site by simply inverting the colors. It’s lazy, it’s jarring, and it’s exactly why your readability goes to hell the moment the sun goes down. Most people think learning how to design a dark theme is just a matter of swapping white backgrounds for black ones, but they forget that color theory doesn’t just flip—it shifts. If you aren’t auditing the contrast ratios and the way your typography interacts with those deep shadows, you aren’t designing; you’re just making things harder to read.

I’m not here to give you a theoretical lecture or a list of expensive plugins that promise to do the work for you. Instead, I’m going to show you how I actually approach this when I’m staring down a blank canvas. We’re going to talk about depth, elevation, and why you should probably stop using pure black if you want your users to actually stay on your page. This is about making intentional decisions, not just following a trend.

Table of Contents

Choosing a Color Palette for Dark Interfaces That Actually Works

Choosing a Color Palette for Dark Interfaces That Actually Works

Stop treating dark mode like a simple inversion filter. I’ve inherited more than a few sites where some developer just took a light theme and cranked the brightness down until everything looked like a muddy, charcoal mess. If you want a color palette for dark interfaces that doesn’t make your users squint, you have to stop using pure black (#000000). Pure black creates a jarring contrast against white text that’s physically painful to look at. Instead, I lean into very deep greys or navy tones. This subtle shift is the secret to reducing eye strain with dark themes, allowing the content to breathe rather than fighting against a void.

Once you’ve moved away from that harsh black, you need to figure out how to show depth without using drop shadows that look ridiculous on a dark background. This is where surface elevation in dark design becomes your best friend. Instead of shadows, I use lighter shades of grey to indicate that an element—like a card or a modal—is sitting “closer” to the user. It’s a logical way to establish a sense of layers. If you ignore this, your layout will end up looking like a flat, unreadable pancake, and no amount of fancy typography will save it.

Dark Mode vs Light Mode Ux Decoding the Original Intent

Dark Mode vs Light Mode Ux Decoding the Original Intent

When I’m auditing a site, I don’t just look at whether the colors look “cool” in the dark; I look at why the designer chose one mode over the other in the first place. Most people treat dark mode like a cosmetic skin, a simple toggle that flips the hex codes. That’s a mistake. You have to understand the original intent behind the light version to get the dark version right. If the light mode was built for high-energy, content-heavy reading, forcing a dark theme without adjusting the visual hierarchy in dark UI is going to feel like a total mismatch.

You can’t just invert the colors and call it a day. If you do, you’re going to fail every basic check for accessibility standards for dark mode. In light mode, we use shadows to show depth, but shadows don’t exist on a black canvas. Instead, you have to master surface elevation in dark design—using lighter shades of grey to signal that an element is “closer” to the user. If you ignore the fundamental UX shift between these two modes, you aren’t designing; you’re just making a mess that’s hard to look at.

Stop treating dark mode like a simple color inversion

  • Ditch the pure black. If you use #000000 for your background, you’re creating a high-contrast nightmare that makes text vibrate and causes eye strain. Use a very dark grey instead; it gives the UI depth and lets you actually use shadows to show hierarchy.
  • Check your elevation with surface colors. In light mode, we use shadows to show something is “above” the page. In dark mode, shadows are useless. You have to use lighter shades of grey to signal that a card or a modal is sitting on top of the base layer.
  • Desaturate your brand colors. Those bright, punchy blues and reds that look great on a white background will absolutely scream at a user when you flip them onto a dark canvas. Dial back the saturation so they don’t feel like they’re glowing through the screen.
  • Audit your typography weight. Light text on a dark background tends to look “thicker” to the human eye because of light bleed. If you just copy-paste your light mode CSS, your headers are going to look bloated and messy. I usually drop a font weight by one notch to compensate.
  • Test your accessibility, specifically for contrast. Just because it “looks cool” doesn’t mean it’s readable. I’ve inherited more than a few “aesthetic” dark themes that were completely unusable for anyone with even minor visual impairments because the grey-on-grey contrast was non-existent.

Stop Flipping the Switch and Start Thinking

Stop Flipping the Switch and Start Thinking.

Look, designing a dark theme isn’t just about taking your existing light mode palette and sliding the brightness down until everything looks like a charcoal smudge. We’ve talked about why you can’t just invert colors, the necessity of auditing your original UX intent, and why your color palette needs to prioritize legibility over “vibes.” If you ignore the hierarchy and try to force a one-size-fits-all dark mode onto a site that wasn’t built for it, you’re just creating another bloated, unreadable mess for me to fix later. You have to respect the decisions you’re making at the foundational level, or you’ll end up with a site that looks cool in a mockup but fails the second a real human tries to read it in a dimly lit room.

At the end of the day, good design is about intention, not just aesthetics. When you sit down to build these dark interfaces, remember that you aren’t just choosing colors; you are shaping how people experience information in different environments. Don’t let a theme or a page builder dictate your constraints. Take control of the decisions, test them against real-world usability, and build something that actually respects the user’s eyes. Now, go forth and build something that doesn’t make me want to delete your entire CSS folder.

About Rasheeda Volkov

A theme is a set of decisions somebody else made. I read them before installing.

Author photo