Email Client Compatibility

April 1, 2026 · View on GitHub

Inky generates HTML that works across all major email clients. This table shows the rendering engine used by each client and any notable limitations.


Support Matrix

Desktop Clients

ClientRendering EngineGridMedia Queries<style> BlockBackground ImagesVML ButtonsNotes
Apple MailWebKitYesYesYesYesN/ABest-in-class rendering
Outlook 2007WordYesNoPartialNoYesMost restrictive. Use VML for advanced styling.
Outlook 2010WordYesNoPartialNoYesSame as 2007
Outlook 2013WordYesNoPartialNoYesSame as 2007
Outlook 2016WordYesNoPartialNoYesSame as 2007
Outlook 2019WordYesNoPartialNoYesSame as 2007
ThunderbirdGeckoYesYesYesYesN/AGenerally reliable

Webmail

ClientGridMedia Queries<style> BlockBackground ImagesNotes
Gmail (web)YesYesYes (since 2016)YesStrips unsupported CSS properties. Prefixes class names.
Outlook.comYesYesYesYesDifferent engine from Outlook desktop. Generally good.
Yahoo MailYesYesYesYesGood support. Some quirks with <style> specificity.
Office 365 (web)YesYesYesYesSimilar to Outlook.com
AOL MailYesYesYesYesSimilar to Yahoo Mail (same parent company)
ProtonMailYesNoPartialYesStrips some styles for security. Images blocked by default.
FastmailYesYesYesYesGood overall support

Mobile

ClientGridMedia Queries<style> BlockNotes
iOS MailYesYesYesWebKit-based. Excellent rendering.
Gmail app (iOS)YesYesYesBetter support than Android counterpart
Gmail app (Android)YesNoNoRenders large/desktop breakpoint. Does not support media queries.
Outlook app (iOS/Android)YesYesYesGood rendering, different from Outlook desktop
Samsung MailYesYesYesWebKit-based
Yahoo appYesYesYesGood support

Rendering Engine Notes

Word (Outlook Desktop 2007–2019)

The most restrictive rendering environment. Microsoft Outlook on Windows uses the Word HTML renderer, which means:

  • No float, position, flexbox, or grid — tables only
  • No background-image via CSS — use VML or the <hero> component
  • No border-radius via CSS — Inky uses VML <v:roundrect> for bulletproof buttons
  • No max-width — use fixed width on tables
  • No rgba() or hsla() — use solid hex colors
  • margin is unreliable — use padding on table cells or the <spacer> component
  • DPI scaling affects images — always set explicit width and height on images
  • Conditional comments work<!--[if mso]> lets you target Outlook specifically

Inky handles all of these automatically in its generated output.

WebKit (Apple Mail, iOS)

The most capable rendering engine for email. Supports:

  • Media queries
  • Web fonts (@font-face)
  • CSS animations (limited use in email)
  • background-image with background-size
  • border-radius
  • Most modern CSS

Gmail

Gmail has improved significantly since 2016 when it added <style> block support. Current behavior:

  • Supports <style> blocks in <head>
  • Prefixes all class names (e.g., .button becomes .m_button) — avoid overly generic names
  • Strips unsupported CSS properties
  • Clips emails over 102KB — use inky validate to check
  • Gmail app on Android still does not support media queries

What Inky Does Automatically

You don't need to memorize this table. Inky handles cross-client compatibility in its output:

ProblemInky's Solution
Outlook ignores <div> layoutGenerates <table> markup (or MSO fallbacks in --hybrid mode)
Gmail strips <style>Inlines CSS by default
Outlook ignores border-radiusVML <v:roundrect> bulletproof buttons
Outlook ignores background-imageVML background in <hero> component
Images blocked by defaultValidator flags missing alt text
Gmail clips large emailsValidator warns about 102KB threshold
Outlook spacing unreliable<spacer> generates a fixed-height table row
Accessibilityrole="presentation" on all layout tables

Breakpoint

Inky uses a single responsive breakpoint at 596px ($global-breakpoint in SCSS).

  • Above 596px — desktop/large layout (columns side by side)
  • Below 596px — mobile/small layout (columns stack)

This single breakpoint is sufficient for email because:

  • Email preview panes are typically 500–700px wide
  • Mobile screens are below 596px
  • More breakpoints add complexity with minimal benefit in the email context

Testing Recommendations

Rendering varies across clients and changes over time. Always test before sending:

  1. inky validate — catches structural issues and common problems
  2. inky serve — local preview with auto-reload
  3. Litmus or Email on Acid — cross-client rendering screenshots
  4. Send real test emails — especially to Outlook desktop and Gmail