Skip to main content

Our email CSS engine is open source. Give it a star on GitHub 

Emailens

HEY Mail email CSS: what breaks, and what to write instead

HEY Mail is tested on 236 of 300 features: 173 work, 10 partial, 53 not supported. The other 64 are untested.

Works 173 · Partial 10 · Not supported 53 · Untested 64 · of 300 · Tested on fewer than 270 of 300 features

WebKit · webmail · prefers-color-scheme: not supported

The checker needs a computer screen.

See what breaks ↓

HEY Mail opens with a free account.

A free account opens all 21 clients and keeps your checks for 7 days. Create a free account →

@emailens/engine 0.18.22 · data last changed 10 Nov 2026

Where HEY Mail is the outlier

17 features work in at least 14 of the other 20 clients and are not supported here.

So an email that looks right in most clients can reach your reader in HEY Mail without them.

64 features are untested in HEY Mail. They are left out here, not counted as not supported.

All 17

What works in HEY Mail and breaks elsewhere

38 features work in HEY Mail and in 6 or fewer of the other 20 clients, so they need a fallback.

64 features are untested in HEY Mail. They are left out here, not counted as not supported.

All 37

Not listed: @import, structural tags; the table below has them.

What to write instead

4 features HEY Mail does not fully support have a written fix. See them in the table ↓

<form>

The fix for HEY Mail

Replace embedded form with a link to a hosted form

after
<table role="presentation" cellpadding="0" cellspacing="0">
  <tr>
    <td style="background-color: #6d28d9; border-radius: 6px;
               padding: 12px 32px;">
      <a href="https://example.com/subscribe"
        style="color: #fff; text-decoration: none;
               font-family: Arial, sans-serif;
               font-weight: bold;">
        Subscribe Now
      </a>
    </td>
  </tr>
</table>
Show the original
before
<form action="/subscribe" method="POST">
  <input type="email" placeholder="Email" />
  <button type="submit">Subscribe</button>
</form>

The checker needs a computer screen.

<svg>

The fix for HEY Mail

Convert inline SVG to an image for email compatibility

after
<img src="https://example.com/icon.png"
  width="24" height="24" alt="Icon"
  style="display: block; border: 0;" />
Show the original
before
<svg width="24" height="24" viewBox="0 0 24 24">
  <path d="M12 2L2 7l10 5 10-5-10-5z" fill="#6d28d9"/>
</svg>

The checker needs a computer screen.

<video>

The fix for HEY Mail

Replace video with animated GIF or linked thumbnail

after
<a href="https://example.com/watch" target="_blank">
  <img src="https://example.com/video-thumb.gif"
    width="600" alt="Watch the video"
    style="display: block; border: 0; max-width: 100%;" />
</a>
Show the original
before
<video width="600" autoplay muted>
  <source src="demo.mp4" type="video/mp4">
</video>

The checker needs a computer screen.

Paste your email and see what HEY Mail does to it.

The checker needs a computer screen.

Dark mode in HEY Mail

Live preview: HEY Mail does not honour @media (prefers-color-scheme: dark); the query is rewritten to @media (false).

Before you send to HEY Mail

  • Validate that the email reads cleanly without external resources, HEY's privacy stance often blocks them on first open.
  • Test the alt-text and placeholder rendering, HEY users see this state more often than users of less-privacy-strict clients.
  • Avoid embedding tracking pixels for HEY audiences; they will be stripped, and any analytics depending on them will under-report.

Every feature in HEY Mail

Show

HTML Elements · 31 of 48 not supported or partial here

HTML Attributes · 16 of 22 not supported or partial here

HTML & Email Structure · 6 of 8 not supported or partial here

CSS At-Rules · 1 of 10 not supported or partial here

Pseudo-Elements · 1 of 6 not supported or partial here

Pseudo-Classes & Selectors · 2 of 34 not supported or partial here

CSS Functions · 0 of 8 not supported or partial here

CSS Properties · 6 of 164 not supported or partial here

How HEY Mail renders email

HEY Mail is built by Basecamp and uses a WebKit-based rendering engine. It has good overall CSS support but takes an opinionated approach to email display, it strips tracking pixels, modifies some layout properties, and applies its own reading experience on top of your HTML.

Tracking pixels
HEY aggressively blocks tracking pixels and remote image loading by default. Open-rate tracking won't work for HEY users.
Layout modifications
HEY may modify your email's width and padding to fit its reading experience. Fixed-width layouts can break.
External fonts
External font loading may be blocked as part of HEY's privacy-first approach. Rely on system font stacks.
  • HEY's reading experience overlay applies its own typography hierarchy and spacing on top of the email content. Designs that depend on precise edge-to-edge spacing should account for HEY's wrapper padding.
  • Tracking pixel detection is aggressive, known tracking domains and 1×1 transparent images are stripped or replaced. Open-rate analytics that depend on these mechanisms will under-count HEY users.
  • External @font-face fetches may be blocked under HEY's privacy-first defaults. Always supply a complete system-font fallback stack rather than relying on a single custom font.
  • Image loading is opt-in for unknown senders, so first-open rendering shows alt text and image placeholder boxes. Design with explicit width/height attributes so layout doesn't reflow when images load.

Get new email CSS fixes by email.

caniemail (MIT) via @emailens/engine 0.18.22 · data last changed 10 Nov 2026