Dark mode has gone from an accessibility feature to a default setting for a majority of mobile users. Apple's iOS and macOS default to dark mode for many users; Android dark mode adoption has grown steadily; and Gmail's dark mode is now standard across the Google ecosystem. Estimates from Litmus email client analytics consistently show 70-80% of email being opened in dark mode environments when accounting for all mobile Apple Mail users — the single largest email client segment — plus Android Gmail, Outlook mobile, and others.

The deliverability angle on dark mode is underappreciated: dark mode rendering decisions made by email clients can produce the exact HTML patterns that spam filters flag as suspicious. Light-coloured text on a white background that was designed for dark mode fallback reads as near-white-on-white to spam filter content analysis — the same colour-proximity pattern that hidden-content spam detection rules target. Dark mode is not just a design problem. It is a code quality and deliverability problem that affects every email programme that has not deliberately addressed it.

75%+
Of Apple Mail opens occur in dark mode — the largest single email client segment globally
Three strategies
Email clients use full inversion, selective inversion, or no dark mode — each requires different HTML handling
Hidden text trap
Dark mode fallback techniques using light text on white backgrounds trigger spam filter hidden-content rules
prefers-color-scheme
The CSS media query that controls dark mode email styling — supported in Apple Mail, Gmail, some Outlook versions

Dark Mode Adoption in 2026: Most of Your Audience Uses It

Dark mode email is not a niche concern. According to Litmus email client share data, Apple Mail on iPhone represents approximately 55-60% of all email opens — and the majority of iPhone users have dark mode enabled either always or based on time of day (iOS's Automatic dark mode, which switches at sunset). Apple Mail on Mac adds another 5-8%. Android Gmail dark mode, Outlook mobile dark mode, and Samsung Mail dark mode collectively add another 10-15% of opens in dark mode environments.

The practical implication: for most email programmes, the majority of recipients are viewing email in dark mode at least some of the time. An email that only looks correct in light mode is an email that looks broken for most of its audience. This was a tolerable tradeoff when dark mode was a minority preference in 2020; it is a design and deliverability failure in 2026 when it is the default for the majority.

How Email Clients Handle Dark Mode: Three Different Approaches

The challenge of coding dark mode email is that different email clients implement dark mode in incompatible ways. There is no universal standard. The three strategies email clients use:

Strategy 1 — Full Colour Inversion (Apple Mail on some settings): The email client inverts all colours in the email. A white background (#ffffff) becomes black (#000000). Black text (#000000) becomes white. A dark blue header becomes a light orange. The mathematical operation is roughly: new colour = #ffffff minus original colour. This approach makes light-mode emails readable in dark mode without any developer effort, but can produce unexpected colour combinations — brand colours that work in light mode may look completely different after inversion.

Strategy 2 — Selective/Partial Inversion (Gmail, Outlook on some versions): The email client inverts or adjusts only the background colours, not the foreground text colours. This prevents some of the colour combination problems of full inversion but creates a different issue: light-coloured text that was designed for a dark background in the email template may now appear against a dark background that the email client has created — or light-coloured text against a white background that has been preserved unchanged appears invisible because white text on white is invisible.

Strategy 3 — CSS prefers-color-scheme support (Apple Mail, Gmail, some Outlook): The email client honours the CSS media query @media (prefers-color-scheme: dark) in the email's <style> block, applying the developer-specified dark mode styles. This is the correct approach — it gives the developer explicit control over dark mode appearance — but requires the developer to write the dark mode styles explicitly.

The Dark Mode Deliverability Trap: Hidden Text, Wrong Colours

Here is the specific dark mode deliverability problem that affects emails coded with naive dark mode handling. A common approach to "supporting" dark mode without full explicit dark mode coding is to set text colours that will be visible in dark mode at the cost of being invisible in light mode — specifically, setting a light grey or near-white text colour on elements intended for dark backgrounds:

/* WRONG approach — creates deliverability problem */
.preheader-text {
  color: #f0f0f0;  /* Light grey text — visible on dark background */
  background-color: #ffffff;  /* White background in light mode */
  font-size: 1px;   /* Or other hiding technique */
}
/* In light mode: near-white text on white background = invisible
   Spam filter analysis: colour #f0f0f0 on background #ffffff = 
   delta of only 15 units out of 255 = hidden text pattern trigger */

The spam filter sees: light-coloured text on a near-matching light background. This is the exact pattern of the hidden-text spam technique where spammers embed keyword-heavy invisible text in emails to influence content-based filters. SpamAssassin rules HTML_TEXT_INVISIBLE and HTML_TINY_FONT detect these patterns and apply scoring penalties. A legitimate dark mode coding approach that uses near-white text colour on white backgrounds for any reason — whether for preheader hiding, fallback text, or crude dark mode adaptation — can trigger these rules and increase spam filter scores.

The solution is to never use colour-proximity text hiding. Use CSS display:none or visibility:hidden for hidden elements. Use explicitly dark-mode-aware CSS that is conditioned on the prefers-color-scheme media query rather than attempting to create elements that are invisible in one mode and visible in another through colour manipulation alone.

Apple Mail and Full Colour Inversion

Apple Mail applies a "smart inversion" algorithm to email in dark mode — it inverts most colours but attempts to preserve images (to prevent photographic images from being colour-inverted into nightmarish negatives). The effect on HTML email depends on how the email is coded:

/* Apple Mail dark mode: what gets inverted and what doesn't */

/* Background colours on table cells: INVERTED */
/* White background → dark grey/black background */
/* Light brand colours → darker inverted equivalents */

/* Text colours: INVERTED */
/* Black text → near-white text (good) */
/* White text → near-black text (may become invisible on inverted bg) */

/* Images: generally PRESERVED */
/* But images with transparent PNG backgrounds get the transparency 
   background inverted — white transparent areas become dark */

/* How to prevent inversion on specific elements: */
/* Apple Mail honours a vendor-specific CSS property: */
.brand-logo {
  color-scheme: only light;
  /* Prevents inversion of this element */
}

/* For entire email: */
:root {
  color-scheme: light only;
  /* Prevents all dark mode inversion — use only if explicit 
     dark mode styles are provided as alternative */
}

The practical Apple Mail dark mode strategy for most emails: do not fight the inversion entirely, but protect specific elements (logos, product images, brand-critical colours) using color-scheme: only light. Let text content invert naturally — black text on white background inverting to near-white text on near-black background is generally readable and requires no intervention. The elements worth protecting are those where colour is part of the brand identity or where inversion produces an unreadable result (green CTA button inverting to red reads as an error state).

Outlook Dark Mode: The Most Unpredictable

Outlook dark mode is inconsistent across Outlook versions and platforms — Outlook for Windows, Outlook for Mac, Outlook mobile (iOS and Android), and Outlook.com (the web client) each implement dark mode differently. This makes Outlook dark mode the hardest to code for and the most important to test explicitly.

Outlook for Windows applies selective background inversion — it changes the email's background colour to a dark theme but does not always invert text colours, which can produce dark text on a dark background (invisible) in emails that were not coded with dark mode awareness. The Microsoft 365 version of Outlook for Windows has improved dark mode rendering compared to older standalone Outlook versions, but the behaviour still differs from Apple Mail and Gmail dark mode in specific ways that require testing.

/* Outlook-specific dark mode targeting using MSO conditional comments */
/* These only work in Outlook for Windows rendering engine */



/* For Outlook.com (web client), use standard CSS media query: */
@media (prefers-color-scheme: dark) {
  /* These styles apply in Outlook.com dark mode */
  .email-body { background-color: #1a1a1a !important; }
  .body-text { color: #e0e0e0 !important; }
}

Gmail Dark Mode: Background Inversion with Content Preservation

Gmail's dark mode applies selective inversion primarily to background colours, with less aggressive handling of text colours. Gmail also honours the CSS prefers-color-scheme media query in supported versions — which means properly coded dark mode CSS works in Gmail mobile and increasingly in Gmail web.

Gmail's dark mode behaviour in 2026 is more predictable than Outlook's because Google has been developing a consistent dark mode strategy across their email products. The Gmail mobile app (Android and iOS) applies dark mode when the device is in dark mode. Gmail web applies dark mode when the browser/OS is in dark mode and the user has dark mode enabled in Gmail settings. Both honour @media (prefers-color-scheme: dark) CSS.

/* Gmail-compatible dark mode CSS */
/* This goes in the <style> block in the <head> of the email */

/* Light mode styles (default): */
.email-wrapper {
  background-color: #ffffff;
  color: #333333;
}
.cta-button {
  background-color: #0a84ff;
  color: #ffffff;
}

/* Dark mode overrides: */
@media (prefers-color-scheme: dark) {
  .email-wrapper {
    background-color: #1c1c1e !important;
    color: #f2f2f7 !important;
  }
  /* Force dark backgrounds on table cells too */
  .email-wrapper td {
    background-color: #1c1c1e !important;
  }
  /* CTA button: adjust for dark mode visibility */
  .cta-button {
    background-color: #0a84ff !important;
    /* Blue CTA usually doesn't need colour change in dark mode */
    /* but ensure border is visible if background is lost */
    border: 2px solid #0a84ff !important;
  }
  /* Brand logo: prevent inversion of logo colours */
  .brand-logo img {
    filter: none !important;  /* Prevent browser dark mode filter */
  }
}

Coding Dark Mode Email That Works in All Three

The approach that provides the best dark mode experience across Apple Mail, Gmail, and Outlook without triggering spam filter issues:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="color-scheme" content="light dark">
  <meta name="supported-color-schemes" content="light dark">
  <style>
    /* Declare support for both colour schemes */
    :root {
      color-scheme: light dark;
      supported-color-schemes: light dark;
    }
    
    /* Base styles (light mode) */
    body, .email-body {
      background-color: #ffffff;
      margin: 0;
      padding: 0;
    }
    .email-content {
      background-color: #ffffff;
      color: #1a1a1a;
      font-family: -apple-system, Arial, sans-serif;
    }
    .email-footer {
      color: #767676;  /* Minimum 4.5:1 contrast on white */
    }
    
    /* Dark mode overrides */
    @media (prefers-color-scheme: dark) {
      body, .email-body {
        background-color: #1c1c1e !important;
      }
      .email-content {
        background-color: #2c2c2e !important;
        color: #f2f2f7 !important;
      }
      .email-footer {
        color: #aeaeb2 !important;
      }
      /* Protect images from full inversion */
      img {
        /* Use color-scheme on images to prevent inversion */
      }
    }
    
    /* Outlook conditional: force light mode in old Outlook desktop */
    /* (via MSO conditional comment in body) */
  </style>
</head>
<body>
  <!-- Outlook: force light background -->
  <!--[if mso]>
  <table width="100%" bgcolor="#ffffff"><tr><td>
  <![endif]-->
  
  <table role="presentation" width="600" class="email-content">
    <tr>
      <td>
        <!-- Email content here -->
      </td>
    </tr>
  </table>
  
  <!--[if mso]>
  </td></tr></table>
  <![endif]-->
</body>
</html>

The key decisions in this pattern: (1) Declare color-scheme support via both meta tag and :root CSS — this signals to Apple Mail that you have provided explicit dark mode styles, preventing it from applying its own automatic inversion. (2) Provide explicit dark mode background and text colours via @media (prefers-color-scheme: dark) — these apply in Apple Mail, Gmail mobile, and Outlook.com. (3) Use MSO conditional comments to force light background in Outlook desktop — which ignores the media query and needs the inline hack. (4) Avoid colour-proximity text hiding at all times — never set text colour close to background colour for any reason.

Testing Dark Mode Before You Send

Dark mode email testing requires checking across the specific clients and modes that your audience actually uses — not just "it looks fine in the preview." The testing approaches that actually catch dark mode problems:

Litmus or Email on Acid rendering tests: Both services render email screenshots across 100+ email client and dark mode combinations. A single test run shows how the email renders in Apple Mail dark mode, Gmail dark mode, Outlook dark mode, and all other significant clients. This is the broadest testing approach and should be the standard pre-send check for any email with significant dark mode audience exposure (which is essentially all email in 2026).

Device testing: For campaigns where mobile rendering is critical, test on actual devices with dark mode enabled — iPhone with iOS Mail, Android phone with Gmail, and iPad if the audience includes tablet users. Screenshots from rendering services do not always perfectly capture the rendering engine behaviour on specific device and OS version combinations. Device testing catches the edge cases that automated rendering services occasionally miss.

Spam score after dark mode CSS addition: After adding dark mode CSS, re-run the email through mail-tester.com or GlockApps content scoring. Dark mode CSS that uses any colour-proximity patterns may have inadvertently introduced spam filter triggers. Confirm the spam score has not increased after dark mode coding additions — if it has, review the new CSS for colour-proximity text patterns and fix them before deployment.

Dark mode email is now mainstream infrastructure work, not an advanced feature. The email programme that tests in light mode only, deploys without dark mode CSS, and relies on the email client's automatic colour inversion to handle the majority of its audience is producing a degraded experience for most of its recipients. The coding investment is modest — one additional @media block in the email template's CSS, tested once and then applied to all campaigns through the template system. The deliverability investment is the discipline to avoid colour-proximity text hiding techniques that dark mode naive implementations sometimes introduce. Both investments are small; the recipient experience difference is significant.

H
Henrik Larsen

Deliverability Manager at Cloud Server for Email. Specialising in email deliverability, infrastructure architecture, and high-volume sending operations.