foldout
Free + Pro 3-email series

Welcome — onboarding email series

A three-email welcome series built in MJML. Built for Outlook, Gmail and Apple Mail, and it holds up in dark mode.

  • MJML 4.15
  • Tables + VML
  • Dark mode
  • 600 px

How it renders

What actually happens in each client, and why the markup is built the way it is.

Outlook 2019

600 px · tables + VML
Welcome email rendered in a light inbox

browser rendering at 600 px — not a capture from this client

What matters here

Outlook renders mail through the Word engine. The layout is nested tables with conditional comments, so the structure holds and nothing collapses — but the dark theme is ignored and it stays light, which is intentional.

Built for

  • Outlook 2016
  • Outlook 2019
  • Outlook 365
  • Outlook.com
  • Gmail web
  • Gmail iOS
  • Apple Mail
  • Yahoo Mail
  • Thunderbird

Light and dark inbox

Welcome email rendered in a light inbox
light inbox · 600 px
Welcome email rendered in a dark inbox
dark inbox · 600 px

Dark mode is handled with prefers-color-scheme plus [data-ogsc] fallbacks for Outlook.com, which rewrites colours instead of reading media queries.

Desktop and mobile

Welcome email rendered in a light inbox
light inbox · 600 px
Welcome email at 360 pixels wide
narrow · 360 px

Client support

ClientLightDark
Outlook 2016 / 2019 / 365 (Windows)
Outlook.com
Gmail web
Gmail iOS and Android partial
Apple Mail
Yahoo Mail
Thunderbird

“partial” means the client applies its own colour inversion rather than reading the palette in the source. Nothing breaks — it simply is not identical to the design.

Pro

$29

No attribution, plus the source files and 12 months of updates and email support.

Compiled HTML
yes
MJML source
yes
Credit link in footer
not required
Extra emails in the series
4 more
Updates and support
12 months, email

Licence

Use it in unlimited personal and commercial projects, including client work.
Do not resell the template itself, alone or in a bundle.

Full licence terms →

Why this is harder than it looks

Outlook renders email with the Word engine. Anything that behaves in a browser falls apart there: flexbox does nothing, margins collapse unpredictably, and background images are ignored outright.

These emails are built on tables with conditional comments for Outlook, and they were checked in real clients rather than in an email service’s preview pane — which renders them very differently from the actual inbox.

What “partial” means in the table

Gmail on iOS and Android honours the dark theme by inverting colours itself rather than reading prefers-color-scheme. The result is readable and contrasty, but it is Gmail’s inversion, not the palette in the source. Nothing breaks; it simply is not identical.

What you will need to replace

Merge tags use the common {{variable}} syntax — {{first_name}}, {{cta_url}}, {{unsubscribe_url}}. Most providers accept it directly. The sender name, address block and unsubscribe link are placeholders and must be replaced: an unsubscribe link is a legal requirement in most markets.

What's in the archive

  • src/*.mjml · 3 files
  • src/_theme.mjml · shared styling
  • dist/*.html · compiled
  • index.html · preview page
  • README.md
  • LICENCE.txt

Version history

  • 1.0.0 2026-09-10

    First release

  • 12 KB
    heaviest email
  • 19
    MSO conditionals
  • 0
    flex or grid rules
  • 9
    clients targeted