Using color in email design without breaking it in dark mode

Using color in email design without breaking it in dark mode

Quick answer: Using color in email design well means choosing two or three brand colors plus a neutral, hitting at least a 4.5:1 contrast ratio for body text, and building so the palette survives when clients like Gmail on iOS and Outlook on Windows force-invert everything in dark mode. The pretty part is easy. The part where it still looks good in 40 different inboxes is the actual job – and you only confirm it by testing in real ones, not previews.

I built an email once – genuinely proud of it, the palette was this soft sage-and-cream thing with a deep plum CTA that just sang in the editor. Sent the test to myself. Opened it on my phone, which happened to be in dark mode, and the whole thing had turned into a photo negative. The cream went charcoal, the plum button looked like a bruise, and the client’s logo had vanished into the background entirely. Four hours of careful work, gone the second Gmail decided it knew better than me.

That’s the thing nobody tells you when you start using color in email design. You think the hard part is choosing colors. It’s not. The hard part is keeping them.

So this is the article I wish someone had handed me back then. We’ll cover the creative side – how to actually pick a palette that works and doesn’t read as cheap – and then the survival side, the contrast math, the dark mode chaos, the Outlook quirks, all of it. I’ve been doing cross-client email layout for years now, including the weird stuff (gradients, dark themes, the things ESPs love to mangle), so a lot of this comes out of getting burned and writing down what I learned.

Fair warning: I have opinions. Some of them are probably wrong. I’ll flag the ones I’m less sure about.

Why using color in email design does more heavy lifting than people think

Here’s something that gets repeated constantly in design circles, and the number’s a little slippery so I want to be honest about it: studies on first impressions of products tend to land somewhere in the 62-90% range when it comes to how much color drives that initial reaction. The Pantone Color Institute has a figure floating around that color influences up to roughly 85% of purchase decisions in certain product categories.

Are those numbers gospel? No. They get quoted loosely, the methodology varies, and “up to 85%” is doing a lot of work in that sentence. But directionally? Yeah. Color hits the brain before the words do. That part’s real.

And in email specifically, this matters more than on a website, because of where your email lives. It lives in a stacked list of grey-ish rectangles, all competing for half a second of attention before the thumb keeps scrolling. Your subject line does some work, sure. But the moment that email opens – even before it fully renders – color is the first signal the reader’s brain processes about whether this looks like something worth their time or something that belongs in the trash.

A quick tangent, because I don’t want to oversell this: color can’t save a bad email. If your offer is weak or your copy is mush, no palette on earth fixes that. Color is an amplifier, not a cure. I’ve watched people spend a week agonizing over the exact right shade of blue for a button while the headline above it said nothing. Get the message right first. Then make it look good. In that order.

But assuming the message is right – then yes, using color in email design strategically is one of the highest-leverage, lowest-effort things you can do to lift engagement. Cheap to change, big effect.

The color foundation – choosing a palette that won’t fight you

Okay. Let’s actually pick some colors.

The single biggest mistake I see – and this is the one that makes small-business emails look “cheap,” which is a word their owners use about their own emails all the time – is too many colors. People treat an email like a coloring book. Five hues, three of them clashing, a rainbow gradient header, neon CTA. It reads as chaotic and untrustworthy, and the worst part is the people sending it often can’t articulate why it feels off. It just does.

The two-to-three colors plus a neutral rule

Here’s the rule I keep coming back to: pick two or three colors, plus a neutral. That’s it. Your background, your foreground, your buttons, your dividers – they should all live inside that small family. White (or off-white) usually counts as the neutral. Everything else stays disciplined.

When you stay inside three-plus-neutral, the email feels designed. When you blow past it, it feels improvised. There’s no in-between, in my experience. A lot of people approach using color in email design as a chance to show off everything in their brand kit at once – resist that. The restraint is the skill.

A few of these palettes get pulled from broader culture – Paris Fashion Week, Pantone picks, that kind of thing – but you don’t have to chase trends to look intentional. Restraint reads as confidence. Always has.

Brand color versus functional color

This is the distinction most generic “best colors for email marketing” posts completely skip, and it’s the one that’ll actually level up your work.

Your palette has two jobs running at once:

  • Brand colors are your identity. They say “this is us” – the logo blue, the signature coral, whatever your brand stands on.
  • Functional colors are the working colors that do something. The link color. The CTA background. The “error” red, the “success” green. The subtle grey of a footer.

The mistake is letting these collide. If your brand color is a bright red and your CTA is also bright red, your reader’s eye has nowhere to land – everything’s shouting. Smart use of color in email design means deciding which color carries the brand and which color carries the action, and keeping them distinct enough that the action color always wins the fight for attention.

Building hierarchy with one dominant accent

Pick one dominant accent and use it where you want the eye to go first. Headline, primary CTA, a sale badge – whatever the single most important element is. That accent is a spotlight. The second you point it at three different things, it stops being a spotlight and becomes wallpaper.

A neat trick: use your dominant color sparingly. The less of it there is, the louder it gets. A button in a color that appears nowhere else on the page is impossible to miss.

A quick word on color psychology (without the woo)

You’ve read the listicles. Red equals urgency. Blue equals trust. Yellow equals optimism. Green equals calm or money. Purple equals luxury, because historically it was expensive to make, etc.

There’s a kernel of truth here. Red genuinely does raise arousal and gets used on “Buy Now” buttons for a reason – somewhere around three-quarters of people associate it with danger and speed, which translates to urgency. Blue genuinely does test well for trust, which is why every bank and SaaS company on earth defaults to it.

But – and this is where the listicles lose me – color meaning is heavily cultural and contextual. White means purity in some places and mourning in others. The “blue = trust” thing also means everyone’s drowning in blue, so sometimes the strategic move is to not be blue, specifically to stand out. Don’t treat color psychology as a formula. Treat it as a loose starting point you then test against your actual audience. The data beats the theory every time.

The part nobody warns you about – contrast and accessibility when using color in email design

Right, here’s where I get a little intense, because this is the section everyone skips and it genuinely drives me up the wall.

Your beautiful palette means nothing if people can’t read it. This is the unglamorous half of using color in email design, and it’s the half that separates work that looks professional from work that actually performs.

The contrast numbers worth memorizing

The standard you’re aiming for comes from WCAG 2.2, and the numbers are worth memorizing because they’re not negotiable:

Text typeAA (minimum)AAA (enhanced)
Normal body text4.5:17:1
Large text (18pt+, or 14pt bold)3:14.5:1

So body copy needs at least a 4.5:1 contrast ratio against its background. Large headings can get away with 3:1. If you want to be genuinely excellent, push for AAA wherever the design allows.

Now here’s the uncomfortable stat: depending on which survey you read, somewhere north of 80% of websites still fail the basic contrast requirement. Emails, in my experience, are worse – because designers fall in love with that delicate light-grey-text-on-white look they saw on a portfolio site. It looks elegant in a Figma mockup. It’s about a 2.5:1 ratio in reality, and it’s flatly unreadable on the phone screen your least tech-savvy subscriber is squinting at in the sun.

I’m being blunt about this because it matters: if your color palette isn’t accessible, it’s not a good palette. That’s the whole thing. Pretty-but-illegible is just illegible with extra steps.

A couple of practical points:

  • Don’t signal meaning with color alone. If your only cue that something’s a clickable button is that it’s blue, colorblind readers and certain dark mode renderings will lose it entirely. Back the color up with shape, a border, underline, label text – something non-color.
  • Test your actual hex values, not your vibes. Use a contrast checker. There are free web ones everywhere, and if you design in Figma the Contrast plugin will yell at you in real time, which is exactly what you want.
  • Roughly two-thirds of email opens happen on mobile, so check contrast at small sizes and in bright-light conditions, not just on your nice calibrated monitor.

Accessibility isn’t a compliance chore you bolt on at the end. In 2026 it’s turning into a competitive edge – the brands whose emails everyone can comfortably read are quietly winning trust the others are leaking.

Where using color in email design goes to die – dark mode and client rendering

Alright. The big one. The reason half of you clicked this article.

Let me say the hard truth up front, because it’ll save you a lot of wasted effort chasing magic snippets on Stack Overflow: you cannot force an email to stay in light mode. There is no reliable code that prevents dark mode inversion. None. Dark mode is applied by the recipient’s email client, on their device, after your email is delivered. It happens at a layer you don’t control. Anyone selling you a one-line fix is selling you something that works in one client and breaks in three others.

So the goal isn’t to prevent dark mode. The goal is to design something that holds up no matter which way the client mangles it.

The three inversion behaviors

Email clients fall into roughly three camps in how they handle dark mode. Here’s the lay of the land as it stands now:

BehaviorWhat happensClients that do this
No changeYour email renders exactly as designed. Glorious.Apple Mail (macOS & iOS)
Partial inversionLight backgrounds get darkened, but it tries to preserve text and images. Can cause dark-text-on-dark mismatches.Outlook.com, Outlook mobile, Gmail on Android (web), some iOS Mail builds
Full inversionFlips nearly everything – backgrounds, text, sometimes images. Your email becomes a photographic negative.Gmail app on iOS, classic Outlook on Windows (when you haven’t declared color-scheme support)

The maddening part is that this isn’t stable. Clients change these behaviors with app updates. What I’m describing is accurate as of now, but treat any dark mode chart – including this one – as a snapshot, not a permanent law.

The tricks that actually help

You can’t win every client, but you can stack the odds. Here’s what genuinely moves the needle:

  • Declare the color-scheme meta tag. Add <meta name="color-scheme" content="light dark"> and the matching <meta name="supported-color-schemes" content="light dark">. This tells supporting clients you’ve thought about both modes, which often stops the aggressive auto-inversion.
  • Use the prefers-color-scheme media query for clients that respect it. The catch: full support among email clients is basically Apple Mail. Gmail’s apps barely touch it. So it’s worth doing, but don’t build your whole strategy on it.
  • Use !important on your dark mode color declarations. Email clients fight dirty with specificity, and !important is often the only way to win the cascade.
  • Target Outlook’s dark mode attribute. Outlook adds a data-ogsc attribute to elements when it applies dark mode (and data-ogsb for backgrounds). You can hook into it: [data-ogsc] .my-container { background-color: #1a1a1a !important; }
  • The Gmail trick: Gmail tends to leave genuinely dark backgrounds alone. So for elements you don’t want Gmail to mess with, set the background to a real dark color rather than white or light grey. It sounds backwards, but designing certain blocks dark-first can be the most robust path.

The disappearing logo problem

This one’s classic. You’ve got a logo that’s dark text or dark linework on a transparent PNG. Looks great on white. In dark mode the background goes dark and your logo just… evaporates. Or worse, it keeps a faint white halo from the anti-aliasing and looks like it’s haunted.

Fixes: give the logo a solid container background that doesn’t invert, add a thin light stroke around dark elements, or supply a version with a subtle light glow. Some developers serve a separate dark-mode logo via the media query, which works beautifully in Apple Mail and does nothing in Gmail – so pair it with one of the container tricks as a fallback. The one I reach for most is the solid container, because it’s the dumbest and most reliable – a logo sitting on its own little white (or branded) rounded rectangle survives basically everywhere, and you stop relying on the client to be clever. Boring beats fragile.

Why “just test it” is the real answer

I know, I know. Everyone’s tired of being told to test. But there is no substitute here, because – to repeat myself – the rendering is decided on the recipient’s device and varies between clients and even app versions. A browser dark mode toggle lies to you. A platform’s built-in “dark mode preview” is a close approximation at best; the providers themselves admit it can differ from real inboxes.

So you send real test emails to real accounts – a Gmail address opened in the iOS app, an Outlook account on Windows, an Apple Mail inbox – and you look. Or you use a preview-testing service that renders across the full client matrix.

Which brings me to a thing I have to mention, because it changed the whole landscape for small teams. Litmus has been the industry-standard preview tool for years. But in August 2025, Litmus blew up its pricing – quietly, with basically no announcement. They killed the affordable tiers entirely. The old $99 Basic plan? Gone. The old ~$199 Plus plan jumped to $500 a month (that’s a 151% hike, for the record), and the cheapest Litmus plan now starts at $500/month. For a freelancer or a small shop testing the occasional campaign, that’s just not a number that makes sense anymore. So if someone recommends Litmus to you without mentioning the price, know what you’re walking into. There are cheaper preview tools that cover a very similar client matrix for a fraction of that – worth shopping around before you commit.

CTA color – the one block where color is a conversion lever

If you change nothing else after reading this whole guide on using color in email design, change how you treat your CTA color.

Your call-to-action button is the most important pixel in the whole email. It’s where the money is. And the single most repeated piece of CTA advice – “use red, red converts!” – is, honestly, kind of nonsense as stated.

Red doesn’t convert because it’s red. It converts (when it does) because it contrasts with the rest of the email. A red button on a page full of red branding disappears. A green button on that same red page screams. The lesson isn’t “use color X.” The lesson is: your CTA color should be the highest-contrast, most distinct color in the entire email, reserved for that one job.

Make it big, too – at least 44 pixels tall, because that’s the minimum comfortable tap target for a thumb, and most of your readers are on a phone.

One technical note that catches people out: a CSS-styled button with a background color will often render as plain text in classic Outlook on Windows, because of the ancient Word-based rendering engine (more on that nightmare below). To keep your button – color and all – intact there, you need a “bulletproof button,” which uses a bit of VML markup as a fallback specifically for Outlook. It’s a whole technique on its own; if you’re hand-coding emails, look it up and bookmark it. Your CTA color is worthless if Outlook strips the button it’s attached to.

Backgrounds, gradients, and the things that quietly fail

Backgrounds are where a lot of color ambition goes to quietly die.

Background colors and images that don’t load are an Outlook special. Outlook on Windows doesn’t reliably honor CSS background-image (or even background-color in some contexts) the way every other client does. The fix is VML – that same Microsoft markup language – to paint backgrounds in Outlook specifically. And critically: always put a solid color fallback underneath any background image. If the image fails to load – blocked, slow connection, whatever – you don’t want white text landing on a white void. The solid color saves you.

Then there’s gradients, which are having a real moment.

The gradient problem

The 2026 design trend is all about gradients – but not the harsh rainbow blends of a decade ago. We’re talking soft, cinematic, mesh-style, ambient-glow gradients. They look gorgeous. And modern clients render CSS gradients just fine.

Classic Outlook on Windows does not. At all.

So a gradient in email is a layered bet: CSS gradient for the clients that support it, and a flat solid-color fallback (often achieved with a background image or VML) for Outlook. You design the gradient to degrade gracefully into a single color that still looks intentional. If the flat version looks broken, your gradient strategy is broken.

Which is a decent moment to talk about the Outlook situation overall, because it’s actually shifting.

For years, “Outlook” on Windows meant the classic desktop app running Microsoft’s Word 2007 rendering engine. Yes – Word. The word processor. Tech old enough to vote. It’s why background images break, why gradients fail, why margins behave like a drunk toddler, why you’ve spent half your career wrapping things in tables and conditional comments.

But Microsoft has been rolling out the new Outlook for Windows, which uses a web-based rendering engine much closer to Outlook.com – meaning modern CSS, including gradients, has a real shot. The transition to the new Outlook started reaching business users back in January 2025, and Microsoft has signaled it’s winding down the classic Word-engine versions. This is genuinely good news for anyone using color in email design, because it means the single worst rendering engine in the ecosystem is on its way out.

I’d temper the excitement, though. “On its way out” is not “gone.” Plenty of users, especially in conservative corporate environments, will be on the classic engine for a while yet. Keep your Outlook fallbacks until the data says you can drop them – check your own audience’s client breakdown before you go gradient-wild.

Let me hit the trends quickly, because trends are inspiration, not instruction, and I don’t want you redesigning your whole brand around a fashion-week palette.

Pantone’s 2026 Color of the Year is Cloud Dancer – a soft, airy off-white. The mood it’s chasing is “reset,” calm, clarity, a quiet luxury vibe as a reaction to a very overstimulated world. It’s a bit of a controversial pick (it’s basically a sophisticated white), but the underlying signal is real: minimalist, breathable, spacious design is in.

Beyond that, a few things showing up across email and broader digital design:

  • Warm neutrals are sticking around. The Mocha Mousse / espresso / warm-limestone family from 2025 is carrying over, just richer and deeper. Deep brown is being talked about as “the new black” – high contrast but warmer.
  • Pastel backgrounds for nostalgia. Soft pastels are being used to lean into a 90s/Y2K, friendly, approachable feel – and they’re a nice break from plain white in the inbox.
  • Neon as a micro-accent. Not highlighter chaos – controlled little pops. A glowing CTA outline, a tiny badge, a focus state. Especially in SaaS and tech-leaning brands.
  • “Mood mode” dark design. Dark mode treated as an intentional, designed brand palette rather than a panic-inverted afterthought.

My honest take? Use these as a mood board, not a mandate. Your subscriber opening your email at 7am on the bus is not thinking about Pantone. They’re thinking “is this worth my time.” A trend-perfect palette that fails contrast or breaks in dark mode is worse than a slightly dated palette that works flawlessly. The whole point of using color in email design is to serve the message, not to win a design award. Function first. Always.

The next five years – where email color is heading

I’m going to stick my neck out here. Some of this I’m confident about, some is a guess, and I’ll tell you which is which.

Dark mode becomes the default design constraint, not an edge case. (Confident.) Right now plenty of teams still treat “design it for dark mode” as an extra step. Within a few years that flips – you’ll design light and dark in parallel from the start, the way responsive design stopped being optional around 2015. Tooling will assume it.

Outlook stops being the villain. (Cautiously confident.) As the new web-engine Outlook fully replaces the Word-based classic, a lot of the dark arts of email coding – the VML, the conditional comments, the gradient fallbacks – start to fade. Not overnight. But the trajectory is clear, and email development gets meaningfully less painful.

The bets I feel less sure about

prefers-color-scheme support broadens. (Hopeful guess.) If Gmail and the rest catch up to where Apple Mail already is on the dark mode media query, a huge amount of the current hackery becomes unnecessary. I wouldn’t bet the farm on Google moving fast here, though – they have a long history of doing email rendering exactly how they feel like.

Accessibility shifts from nice-to-have to expected, possibly required. (Confident.) Between tightening regulations in various regions and rising user expectations, accessible contrast stops being the thing thoughtful designers do and becomes the baseline everyone’s held to. Good for everyone, honestly.

AI-influenced palettes get weirder. (Genuine uncertainty.) There’s a push toward iridescent, metallic, “computational” color relationships – colors that feel generated rather than chosen. Interesting aesthetically. The risk is the uncanny-valley effect, where AI-default palettes start to feel generic precisely because they’re everywhere. I think the brands that win will be the ones whose color choices feel human and specific against a sea of algorithmically-pretty sameness. But I could be completely wrong on this one – ask me again in two years.

A repeatable color workflow you can steal

Enough theory. Here’s the actual process I run, start to finish, every time:

  1. Pick the palette. Two or three colors plus a neutral. Pull from the brand if it exists; build one if it doesn’t.
  2. Assign functional roles. Decide now which color is brand, which is the CTA/action color, which is the link color, which is the neutral background. Write it down.
  3. Check contrast. Run every text-on-background pairing through a contrast checker. Body text clears 4.5:1 or you change it. No exceptions, no “it looks fine to me.”
  4. Design for both light and dark. Build the light version, then deliberately preview/design the dark version. Add color-scheme meta tags. Decide which blocks go dark-first to survive Gmail.
  5. Build with fallbacks. Solid colors under every background image. VML for Outlook backgrounds and buttons. Flat fallback under every gradient.
  6. Test in real inboxes. Send to actual Gmail-on-iOS, Outlook-on-Windows, and Apple Mail accounts and look with your own eyes – or run it through a preview tool across the full matrix.
  7. Ship, then check your client data. After a send, look at which clients your audience actually uses. Let that tell you where to spend your effort next time.

Steal it. Adapt it. The order matters more than the specifics.

FAQ

How many colors should I use in an email?

Two or three colors plus a neutral (usually white or off-white). That keeps the design looking intentional rather than chaotic. More than that and emails start reading as “cheap” or improvised. Reserve one of those colors as your dominant accent for the most important element – typically the CTA.

What’s the best color for a CTA button?

There isn’t one universal best color – the best CTA color is whichever one contrasts most with the rest of your email. A button works because it stands out, not because of the specific hue. Make it the highest-contrast, most distinct color on the page, reserve it only for the action, and size it at least 44px tall for mobile thumbs.

Why do my email colors change in dark mode?

Because email clients apply dark mode on the recipient’s device after delivery, and many of them invert your colors. Some clients (Gmail’s iOS app, classic Outlook on Windows) do full inversion that flips nearly everything; others (Outlook.com, Gmail on Android) do partial inversion. Apple Mail generally leaves your design alone. You can’t control which behavior a reader’s client uses.

Can I stop my email from going into dark mode?

No. There’s no reliable code that prevents dark mode – it’s controlled by the recipient’s email client and device settings, not by you as the sender. Instead of fighting it, design your email so it holds up in both light and dark: declare color-scheme meta tags, use !important on dark styles, target Outlook’s data-ogsc attribute, and test in real inboxes.

What contrast ratio do email colors need to pass accessibility?

Under WCAG 2.2, normal body text needs a minimum contrast ratio of 4.5:1 against its background (AA level), and large text needs 3:1. For enhanced (AAA) accessibility, push to 7:1 for normal text and 4.5:1 for large. Check your actual hex values with a contrast checker rather than eyeballing it.

Why isn’t my background color showing in Outlook?

Classic Outlook on Windows uses Microsoft’s old Word-based rendering engine, which doesn’t reliably honor CSS background-color or background-image. The fix is to use VML markup to paint backgrounds for Outlook specifically, and to always place a solid color fallback underneath any background image so text stays readable if the image fails.

Do gradients work in email?

In modern clients, yes – CSS gradients render fine in Apple Mail, the new Outlook for Windows, and most others. But classic Outlook on Windows doesn’t support CSS gradients at all. So you build gradients with a flat solid-color fallback (often via background image or VML) that still looks intentional when the gradient doesn’t render.

Pantone’s 2026 Color of the Year is Cloud Dancer, a soft off-white signaling calm and minimalism. Alongside it: warm neutrals (the Mocha Mousse / deep-brown family carrying over from 2025), nostalgic pastels, neon used as small controlled micro-accents, soft cinematic gradients, and “mood mode” intentionally designed dark palettes. Treat these as inspiration, not rules – function and readability beat trend-chasing every time.

Before you hit send

Look – all of this, the palette theory, the contrast math, the dark mode tricks, the Outlook archaeology – none of it counts until you’ve seen the thing in an actual inbox. I’ve been burned too many times trusting a preview that lied to me. Build it, code the fallbacks, and then go look at it on a real phone in a real dark mode before a single subscriber does.

Get that habit and using color in email design stops being a gamble and starts being a craft you actually control.

If you’re staring at an email right now that’s falling apart in dark mode or looking cheap and you can’t figure out why, that’s exactly the kind of thing I untangle for a living. Send it over.

Published byPavel Ivanov
HTML Email Developer with deep expertise in building production-ready, cross-client templates for global audiences. Skilled at solving edge-case rendering issues (e.g., Gmail on iOS dark mode, legacy Outlook) and implementing robust fallbacks for gradients, background images, and custom layouts. Strong QA mindset with extensive Litmus/EoA testing practice and a clean, maintainable code style. Reliable partner for marketing teams: fast iterations, clear communication, and consistent delivery across multi-language campaigns (incl. 19+ locales).
Previous post
Email typography best practices
Next post
Email call to action design: CTAs that render everywhere
Leave a Reply
Your email address will not be published. Required fields are marked *