Reference

Email client HTML & CSS support cheatsheet

Outlook Windows routes through the Word rendering engine. Outlook iOS runs a WebKit variant closer to Apple Mail. Concrete shape this takes: ::after renders cleanly on Apple Mail macOS and ships unsupported on Gmail Web. The ten-column grid below is the rest of the dataset, pulled from the caniemail.com snapshot.

What this snapshot says

  • 156 features render differently in Outlook Windows than in Outlook iOS. Same brand, different engines.
  • 136 features that Apple Mail macOS supports cleanly are partial or unsupported in Gmail Web. This is where templates that look pristine in your dev inbox quietly degrade in production.
  • 5 features show partial support on 7 or more of the 10 clients shown. Nominally supported, practically a caveat in every inbox. Open the row to read the per-note caveat from caniemail.
  • The dataset is thinnest on CSS: 0% of cells in that category are no-data. Treat those as unsupported until you ship a test of your own.
  • Across the whole table, 0% of 3,070 cells have no caniemail data. The dash glyph covers tested-and-unsupported and no-data alike. Hover or open the row for the distinction.

Legend. Glyphs mirror caniemail's raw codes: check = y on the latest tested version, bang = a partial (open the row for the note number from caniemail), dash = n oru (treat absence as unsupported until you ship a test of your own).

Source. caniemail.com by Hteumeuleu and the contributors. Published under CC BY-SA 4.0. We mirror their JSON snapshot here and serve it with a 5-minute edge revalidate. Upstream snapshot: 2026-05-19 13:46:34 +0000. 307 features × 10 clients.

Feature support table

Show clients
10 of 10 clients shown.
Showing 307 of 307 features.
Supported Partial Not supported Unknown or no data
Email client HTML and CSS feature support. Click any feature title to expand notes.
FeatureCategoryGmail WebGmail iOSGmail AndroidOutlook.comOutlook WinOutlook macOSOutlook iOSApple macOSApple iOSYahoo Web
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
CSS
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
Image formats
Image formats
Image formats
Image formats
Image formats
Image formats
Image formats
Image formats
Image formats
Image formats
Image formats
Image formats
Image formats
Image formats
Others
Others

Scroll the table sideways to see every client column.

Hit a gap?

Send caniemail your test

caniemail accepts community tests. If you confirmed a cell that is no-data here, file the result so the next reader gets it too.

Contribute on GitHub ->

Why the gap exists

Read the renderer notes

Why Outlook Windows still routes through Word, why Apple Mail iOS uses WebKit, which CSS classes survive each pipeline, and how to graceful-degrade the failures the table flags above.

Browse the Almanac ->

Past the render layer

Audit auth + headers

After the renderer surface, check the auth surface: DMARC parser, SPF checker, source analyzer.

Open the tools index ->