Fastmail email CSS: what breaks, and what to write instead
Fastmail is tested on 235 of 300 features: 193 work, 4 partial, 38 not supported. The other 65 are untested.
Works 193 · Partial 4 · Not supported 38 · Untested 65 · of 300 · Tested on fewer than 270 of 300 features
Fastmail · webmail · prefers-color-scheme: works
No signup · Five clients free, Outlook Classic included · All 21 with an account
The checker needs a computer screen.
Fastmail 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 Fastmail is the outlier
2 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 Fastmail without them.
65 features are untested in Fastmail. They are left out here, not counted as not supported.
What works in Fastmail and breaks elsewhere
31 features work in Fastmail and in 6 or fewer of the other 20 clients, so they need a fallback.
65 features are untested in Fastmail. They are left out here, not counted as not supported.
- overflow
Works in 4 of 21 · partial in 16 · not supported in 1
· works here - word-break
Works in 4 of 21 · partial in 12 · not supported in 5
· works here - animation
Works in 5 of 21 · partial in 1 · not supported in 15
· works here - modern-color
Works in 4 of 21 · not supported in 16 · 1 untested
· works hereDepends on browser support.
- transition
Works in 4 of 21 · partial in 7 · not supported in 10
· works hereTransition properties are supported but pseudo-classes like
:hoverare not. - :has
Works in 5 of 21 · not supported in 15 · 1 untested
· works here - @media
Works in 5 of 21 · partial in 14 · not supported in 2
· works here - ::after
Works in 6 of 21 · partial in 4 · not supported in 10 · 1 untested
· works here
All 31
- ::before
Works in 6 of 21 · partial in 4 · not supported in 10 · 1 untested
· works here - :attribute-selector
Works in 6 of 21 · partial in 12 · not supported in 2 · 1 untested
· works here - :not
Works in 6 of 21 · not supported in 14 · 1 untested
· works here - :nth-child
Works in 6 of 21 · not supported in 14 · 1 untested
· works here - :nth-last-child
Works in 6 of 21 · not supported in 14 · 1 untested
· works here - :nth-of-type
Works in 6 of 21 · not supported in 14 · 1 untested
· works here - <bdi>
Works in 6 of 21 · not supported in 14 · 1 untested
· works here - <progress>
Works in 6 of 21 · partial in 1 · not supported in 13 · 1 untested
· works here - conic-gradient
Works in 6 of 21 · partial in 1 · not supported in 13 · 1 untested
· works here - html5-semantics
Works in 6 of 21 · partial in 9 · not supported in 5 · 1 untested
· works here - list-style-image
Works in 6 of 21 · not supported in 14 · 1 untested
· works here - margin-inline-block
Works in 6 of 21 · not supported in 14 · 1 untested
· works here - pseudo-class-nth-last-of-type
Works in 6 of 21 · not supported in 14 · 1 untested
· works here - [required]
Works in 7 of 21 · partial in 1 · not supported in 12 · 1 untested
· works here - @keyframes
Works in 7 of 21 · partial in 1 · not supported in 13
· works here - <ul>
Works in 7 of 21 · partial in 13 · 1 untested
· works here - block-size
Works in 7 of 21 · not supported in 13 · 1 untested
· works here - border-image
Works in 7 of 21 · not supported in 13 · 1 untested
· works here - outline-offset
Works in 7 of 21 · not supported in 13 · 1 untested
· works here - text-decoration-skip-ink
Works in 7 of 21 · not supported in 13 · 1 untested
· works here - text-decoration-thickness
Works in 7 of 21 · not supported in 13 · 1 untested
· works here - text-underline-offset
Works in 7 of 21 · not supported in 13 · 1 untested
· works here - transform
Works in 7 of 21 · partial in 1 · not supported in 13
· works here
What to write instead
4 features Fastmail does not fully support have a written fix. See them in the table ↓
<form>
The fix for Fastmail
Replace embedded form with a link to a hosted form
<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
<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 Fastmail
Convert inline SVG to an image for email compatibility
<img src="https://example.com/icon.png"
width="24" height="24" alt="Icon"
style="display: block; border: 0;" /> Show the original
<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 Fastmail
Replace video with animated GIF or linked thumbnail
<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
<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 Fastmail does to it.
No signup · Five clients free, Outlook Classic included · All 21 with an account
The checker needs a computer screen.
Dark mode in Fastmail
-
Works @media prefers-color-scheme works in Fastmail.
Works in 9 of 21.
-
Not supported color-scheme is not supported in Fastmail.
Works in 4 of 21.
-
Not supported meta-color-scheme is not supported in Fastmail.
Works in 2 of 21.
Your next question
- Closest to Fastmail: Apple Mail, which agrees on 192 of the 235 features both are tested on.
- Where do Fastmail and Gmail differ?
Gmail · Outlook 365 · Yahoo Mail · HEY Mail · Proton Mail · AOL Mail
Every feature in Fastmail
HTML Elements · 11 of 48 not supported or partial here
- <abbr> Works Works in 14 of 21
- <acronym> Untested Works in 13 of 21
- <address> Works Works in 20 of 21
- <audio> Not supported. Not supported Works in 4 of 21
- <base> Buggy. Partial Works in 4 of 21
- <bdi> Works Works in 6 of 21
- <blockquote> Works Works in 19 of 21
- <body> Not supported Works in 5 of 21
- <button type="reset"> Works Works in 10 of 21
- <button type="submit"> Works Works in 11 of 21
- <code> Works Works in 20 of 21
- <del> Works Works in 20 of 21
- <dfn> Untested Works in 17 of 21
- <dialog> Not supported Works in 5 of 21
- <div> Works Works in 20 of 21
- <form> fix Not supported Works in 10 of 21
- <h1> Works Works in 20 of 21
- <hr> Untested Works in 18 of 21
- <img> Works Works in 19 of 21
- <input type="checkbox"> Works Works in 16 of 21
- <input type="hidden"> Works Works in 16 of 21
- <input type="radio"> Works Works in 16 of 21
- <input type="reset"> Works Works in 15 of 21
- <input type="submit"> Works Works in 12 of 21
- <input type="text"> Works Works in 13 of 21
- <link> fix Not supported Works in 3 of 21
- <marquee> Not supported Works in 8 of 21
- <meter> Works Works in 11 of 21
- <object> Not supported. Not supported Works in 1 of 21
- <p> Works Works in 20 of 21
- <picture> Not supported Works in 4 of 21
- <pre> Works Works in 20 of 21
- <progress> Works Works in 6 of 21
- <rp> Works Works in 15 of 21
- <rt> Works Works in 15 of 21
- <ruby> Works Works in 15 of 21
- <select> Works Works in 14 of 21
- <small> Works Works in 20 of 21
- <span> Works Works in 20 of 21
- <strike> Works Works in 17 of 21
- <strong> Works Works in 20 of 21
- <style> Works Works in 16 of 21
- <svg> fix Not supported Works in 5 of 21
- <table> Works Works in 20 of 21
- <textarea> Works Works in 13 of 21
- <ul> Works Works in 7 of 21
- <video> fix Not supported. Not supported Works in 3 of 21
- <wbr> Works Works in 16 of 21
HTML Attributes · 6 of 22 not supported or partial here
- [align] Works Works in 17 of 21
- [aria-describedby] Buggy. Not supported Works in 9 of 21
- [aria-hidden] Works Works in 13 of 21
- [aria-label] Works Works in 13 of 21
- [aria-labelledby] Buggy. Not supported Works in 7 of 21
- [aria-live] Works Works in 8 of 21
- [background] Works Works in 16 of 21
- [cellpadding] Untested Works in 18 of 21
- [cellspacing] Untested Works in 18 of 21
- [command] Untested Works in 3 of 21
- [dir] Works Works in 19 of 21
- [height] Works Works in 18 of 21
- [hidden] Untested Works in 5 of 21
- [lang] Works Works in 15 of 21
- [loading] Not supported Works in 4 of 21
- [popover] Not supported Works in 3 of 21
- [required] Works Works in 7 of 21
- [role] Works Works in 14 of 21
- [srcset] The
sizesattribute is supported but notsrcset. Not supported Works in 4 of 21 - [target] Not supported. Not supported Works in 0 of 21
- [valign] Works Works in 20 of 21
- [width] Works Works in 18 of 21
HTML & Email Structure · 2 of 8 not supported or partial here
- amp4email Not supported Works in 6 of 21
- anchor-links Works Works in 12 of 21
- doctype Works Works in 13 of 21
- html-comments Untested Works in 18 of 21
- html5-semantics Works Works in 6 of 21
- image-maps Works Works in 15 of 21
- mailto-links Works Works in 17 of 21
- meta-color-scheme Not supported Works in 2 of 21
CSS At-Rules · 4 of 10 not supported or partial here
- @font-face Not supported Works in 6 of 21
- @import Not supported Works in 4 of 21
- @keyframes Works Works in 7 of 21
- @media Works Works in 5 of 21
- @media device-pixel-ratio Works Works in 10 of 21
- @media hover Untested Works in 9 of 21
- @media orientation Works Works in 11 of 21
- @media prefers-color-scheme Works Works in 9 of 21
- @media prefers-reduced-motion Not supported. Not supported Works in 9 of 21
- @supports Not supported. Not supported Works in 9 of 21
Pseudo-Elements · 0 of 6 not supported or partial here
- ::after Works Works in 6 of 21
- ::before Works Works in 6 of 21
- ::first-letter Works Works in 10 of 21
- ::first-line Works Works in 10 of 21
- ::marker Works Works in 10 of 21
- ::placeholder Works Works in 9 of 21
Pseudo-Classes & Selectors · 1 of 34 not supported or partial here
- :adjacent-sibling Works Works in 16 of 21
- :attribute-selector Works Works in 6 of 21
- :chaining Works Works in 14 of 21
- :checked Works Works in 9 of 21
- :child-combinator Works Works in 16 of 21
- :class-selector Works Works in 17 of 21
- :descendant-combinator Works Works in 17 of 21
- :first-child Works Works in 12 of 21
- :first-of-type Works Works in 12 of 21
- :focus Works Works in 10 of 21
- :focus-visible Untested Works in 6 of 21
- :focus-within Untested Works in 6 of 21
- :general-sibling Works Works in 16 of 21
- :grouping Works Works in 17 of 21
- :has Works Works in 5 of 21
- :hover Works Works in 12 of 21
- :id-selector Works Works in 17 of 21
- :lang Untested Works in 6 of 21
- :last-child Works Works in 12 of 21
- :last-of-type Works Works in 12 of 21
- :link Works Works in 13 of 21
- :not Works Works in 6 of 21
- :nth-child Works Works in 6 of 21
- :nth-last-child Works Works in 6 of 21
- :nth-of-type Works Works in 6 of 21
- :only-child Works Works in 12 of 21
- :only-of-type Works Works in 12 of 21
- :target Buggy. Not supported Works in 7 of 21
- :type-selector Works Works in 17 of 21
- :universal-selector Works Works in 16 of 21
- :visited Works Works in 8 of 21
- pseudo-class-active Works Works in 8 of 21
- pseudo-class-default Untested Works in 10 of 21
- pseudo-class-nth-last-of-type Works Works in 6 of 21
CSS Functions · 3 of 8 not supported or partial here
- calc Works Works in 8 of 21
- clamp Not supported Works in 6 of 21
- conic-gradient Works Works in 6 of 21
- fit-content Works Works in 11 of 21
- linear-gradient Works Works in 9 of 21
- max Not supported Works in 6 of 21
- min Not supported Works in 6 of 21
- radial-gradient Works Works in 10 of 21
CSS Properties · 15 of 164 not supported or partial here
- !important Works Works in 11 of 21
- accent-color Not supported Works in 5 of 21
- align-items Works Works in 13 of 21
- animation Works Works in 5 of 21
- aspect-ratio Not supported Works in 5 of 21
- backdrop-filter Untested Works in 6 of 21
- background Works Works in 16 of 21
- background-blend-mode Works Works in 13 of 21
- background-clip Works Works in 14 of 21
- background-color Works Works in 21 of 21
- background-image Works Works in 16 of 21
- background-origin Works Works in 14 of 21
- background-position Works Works in 20 of 21
- background-repeat Works Works in 20 of 21
- background-size Works Works in 17 of 21
- bimi Works Works in 9 of 21
- block-size Works Works in 7 of 21
- border Works Works in 20 of 21
- border-collapse Untested Works in 19 of 21
- border-image Works Works in 7 of 21
- border-inline Untested Works in 3 of 21
- border-inline-individual Untested Works in 3 of 21
- border-inline-longhand Untested Works in 4 of 21
- border-radius Works Works in 16 of 21
- border-radius-logical Untested Works in 3 of 21
- border-spacing Untested Works in 17 of 21
- bottom Works Works in 11 of 21
- box-shadow Works Works in 14 of 21
- box-sizing Works Works in 16 of 21
- caption-side Works Works in 20 of 21
- clear Untested Works in 9 of 21
- clip-path Works Works in 8 of 21
- color Works Works in 21 of 21
- color-scheme Not supported Works in 4 of 21
- column-count Works Works in 16 of 21
- columns Works Works in 16 of 21
- css-comments Untested Works in 14 of 21
- cursor Untested Works in 2 of 21
- custom-properties Partial. Not supported Works in 6 of 21
- direction Works Works in 21 of 21
- display Partial. Partial Works in 13 of 21
- display:flex Works Works in 18 of 21
- display:grid Works Works in 18 of 21
- display:none Works Works in 20 of 21
- empty-cells Untested Works in 14 of 21
- filter Not supported Works in 7 of 21
- flex Works Works in 13 of 21
- flex-basis Works Works in 13 of 21
- flex-direction Works Works in 12 of 21
- flex-wrap Works Works in 13 of 21
- float Works Works in 14 of 21
- font Works Works in 20 of 21
- font-family Works Works in 21 of 21
- font-kerning Untested Works in 13 of 21
- font-size Untested Works in 13 of 21
- font-size-adjust Untested Works in 10 of 21
- font-stretch Untested Works in 10 of 21
- font-weight Works Works in 16 of 21
- gap Partial. Partial Works in 7 of 21
- grid-template-columns Not supported Works in 7 of 21
- height Works Works in 16 of 21
- hyphenate-character Untested Works in 4 of 21
- hyphenate-limit-chars Untested Works in 1 of 21
- hyphens Untested Works in 4 of 21
- inert Untested Works in 3 of 21
- inline-size Not supported Works in 4 of 21
- inset Untested Works in 3 of 21
- justify-content Works Works in 13 of 21
- left Works Works in 11 of 21
- letter-spacing Works Works in 20 of 21
- light-dark Untested Works in 3 of 21
- line-height Works Works in 20 of 21
- list-style Works Works in 11 of 21
- list-style-image Works Works in 6 of 21
- list-style-position Works Works in 19 of 21
- list-style-type Works Works in 21 of 21
- margin Works Works in 8 of 21
- margin-block-start-end Untested Works in 4 of 21
- margin-inline-block Works Works in 6 of 21
- margin-inline-start-end Untested Works in 4 of 21
- mask-image Untested Works in 4 of 21
- max-block-size Untested Works in 5 of 21
- max-height Works Works in 20 of 21
- max-inline-size Untested Works in 4 of 21
- max-width Works Works in 20 of 21
- min-block-size Untested Works in 4 of 21
- min-height Works Works in 19 of 21
- min-inline-size Untested Works in 5 of 21
- min-width Works Works in 20 of 21
- mix-blend-mode Not supported Works in 13 of 21
- modern-color Works Works in 4 of 21
- nesting Untested Works in 2 of 21
- object-fit Works Works in 14 of 21
- object-position Works Works in 14 of 21
- opacity Works Works in 19 of 21
- orphans Untested Works in 10 of 21
- outline Works Works in 20 of 21
- outline-offset Works Works in 7 of 21
- overflow Works Works in 4 of 21
- overflow-wrap Untested Works in 2 of 21
- padding Works Works in 20 of 21
- padding-block-start-end Untested Works in 4 of 21
- padding-inline-block Untested Works in 3 of 21
- padding-inline-start-end Untested Works in 4 of 21
- position Partial. Partial Works in 2 of 21
- resize Untested Works in 1 of 21
- rgb Works Works in 12 of 21
- rgba Works Works in 12 of 21
- right Works Works in 11 of 21
- scroll-snap Not supported Works in 6 of 21
- shape-margin Untested Works in 6 of 21
- shape-outside Untested Works in 6 of 21
- system-ui Works Works in 12 of 21
- tab-size Untested Works in 8 of 21
- table-layout Untested Works in 16 of 21
- text-align Works Works in 13 of 21
- text-align-last Untested Works in 7 of 21
- text-decoration Works Works in 14 of 21
- text-decoration-color Works Works in 17 of 21
- text-decoration-line Untested Works in 16 of 21
- text-decoration-skip-ink Works Works in 7 of 21
- text-decoration-style Untested Works in 16 of 21
- text-decoration-thickness Works Works in 7 of 21
- text-emphasis Untested Works in 9 of 21
- text-emphasis-position Untested Works in 4 of 21
- text-indent Works Works in 13 of 21
- text-justify Untested Works in 0 of 21
- text-orientation Untested Works in 13 of 21
- text-overflow Works Works in 13 of 21
- text-shadow Works Works in 12 of 21
- text-transform Works Works in 20 of 21
- text-underline-offset Works Works in 7 of 21
- text-underline-position Untested Works in 8 of 21
- text-wrap Untested Works in 4 of 21
- top Works Works in 11 of 21
- transform Works Works in 7 of 21
- transition Works Works in 4 of 21
- unit-ch Works Works in 15 of 21
- unit-cm Works Works in 20 of 21
- unit-em Works Works in 20 of 21
- unit-ex Works Works in 20 of 21
- unit-in Works Works in 20 of 21
- unit-initial Works Works in 12 of 21
- unit-mm Works Works in 20 of 21
- unit-pc Works Works in 20 of 21
- unit-percent Works Works in 20 of 21
- unit-pt Works Works in 20 of 21
- unit-px Works Works in 20 of 21
- unit-rem Works Works in 15 of 21
- unit-vh Not supported Works in 17 of 21
- unit-vmax Works Works in 15 of 21
- unit-vmin Works Works in 15 of 21
- unit-vw Not supported Works in 18 of 21
- user-select Untested Works in 3 of 21
- vertical-align Works Works in 21 of 21
- visibility Works Works in 13 of 21
- white-space Works Works in 15 of 21
- white-space-collapse Untested Works in 4 of 21
- widows Untested Works in 10 of 21
- width Works Works in 20 of 21
- word-break Works Works in 4 of 21
- word-spacing Untested Works in 14 of 21
- writing-mode Not supported Works in 13 of 21
- z-index Works Works in 17 of 21