Skip to main content
Emailens
CSS Properties

transition

CSS property · 4 supported, 7 partial, 10 unsupported across 21 clients

As of Sep 2, 2026, transition fails or degrades in 17 of 21 email clients, treat it as progressive enhancement, never structure.

  • 1/7 webmail, 2/6 desktop, 1/8 mobile clients support transition fully.
  • Unsupported in Gmail, Gmail Android, Gmail iOS, Outlook 365 and 6 more.
  • Partial in Yahoo Mail, Yahoo Mail Android, Yahoo Mail iOS, Samsung Mail and 3 more, behavior differs from browsers, test before relying on it.
  • Outlook Classic (Word engine, supported to at least 2029) does not fully support transition, and its replacement changes little here; see the deprecation diff.
  • Documented before/after fixes on this page cover 21 clients, including Gmail and Gmail Android.
  • Across all clients, only 6 of 298 tracked HTML/CSS features render identically everywhere.

Source: caniemail.com (MIT), via the Emailens engine. Last tested upstream Mar 29, 2024, synced by Emailens Sep 2, 2026.

Client Support

ClientCategoryEngineSupport
GmailwebmailGmail WebUnsupported
Gmail AndroidmobileGmail MobileUnsupported
Gmail iOSmobileGmail MobileUnsupported
Outlook 365webmailOutlook WebUnsupported
Outlook (New)desktopOutlook WebUnsupported
Outlook ClassicdesktopMicrosoft WordUnsupported
Outlook iOSmobileOutlook MobileUnsupported
Outlook AndroidmobileOutlook MobileUnsupported
Outlook for MacdesktopWebKitUnsupported
Apple MaildesktopWebKitSupported
Apple Mail iOSmobileWebKitSupported
Yahoo MailwebmailYahooPartialSee caveat 1
Yahoo Mail AndroidmobileYahooPartialSee caveat 1
Yahoo Mail iOSmobileYahooPartialSee caveat 1
Samsung MailmobileSamsungPartialSee caveat 2
ThunderbirddesktopGeckoSupported
HEY MailwebmailWebKitPartialSee caveat 3
Proton MailwebmailProtonUnsupported
AOL MailwebmailAOLPartialSee caveat 1
FastmailwebmailFastmailSupportedSee caveat 4
SuperhumandesktopBlinkPartialSee caveat 5

Documented caveats (5)

  1. 1.Yahoo Mail, Yahoo Mail Android, Yahoo Mail iOS, AOL Mail: Partial. Longhand properties are not supported. Buggy. The all keyword is not supported.
  2. 2.Samsung Mail: Partial. Not supported with Outlook accounts.
  3. 3.HEY Mail: Buggy. transition-duration is forced to 0 on a global reset style.
  4. 4.Fastmail: Transition properties are supported but pseudo-classes like :hover are not.
  5. 5.Superhuman: Partial. Blink runs transitions, but the user's reduced-motion setting may disable them.

Caveats recorded by caniemail.com (MIT) and carried verbatim, one entry per wording rather than per client.

Client-by-client behaviour for transition

Fully supports transition (4): Apple Mail, Apple Mail iOS, Thunderbird, Fastmail.

Partial support (7): Yahoo Mail, Yahoo Mail Android, Yahoo Mail iOS, Samsung Mail, HEY Mail, AOL Mail, Superhuman. Expect rendering quirks unique to each engine. Partial support typically means a subset of values, an ignored shorthand, or sanitizer-specific rewrites.

No support (10): Gmail, Gmail Android, Gmail iOS, Outlook 365, Outlook (New), Outlook Classic, Outlook iOS, Outlook Android, Outlook for Mac, Proton Mail. Plan fallbacks for these clients before relying on transition in production sends.

Fixes & Workarounds

Gmail

Unsupported

CSS transitions are not supported in email.

Before (Broken)

before.html
7 lines
.button {
  background-color: #6d28d9;
  transition: background-color 0.2s;
}
.button:hover {
  background-color: #5b21b6;
}

After (Fixed)

fixed.html
8 lines
.button {
  /* Use the most visually appealing state as default.
     :hover is only supported in a few clients. */
  background-color: #6d28d9;
  color: #ffffff;
  text-decoration: none;
  font-weight: bold;
}

Transitions don't work in email; style the default state well

Gmail Android

Unsupported

CSS transitions are not supported in email.

Before (Broken)

before.html
7 lines
.button {
  background-color: #6d28d9;
  transition: background-color 0.2s;
}
.button:hover {
  background-color: #5b21b6;
}

After (Fixed)

fixed.html
8 lines
.button {
  /* Use the most visually appealing state as default.
     :hover is only supported in a few clients. */
  background-color: #6d28d9;
  color: #ffffff;
  text-decoration: none;
  font-weight: bold;
}

Transitions don't work in email; style the default state well

Gmail iOS

Unsupported

CSS transitions are not supported in email.

Before (Broken)

before.html
7 lines
.button {
  background-color: #6d28d9;
  transition: background-color 0.2s;
}
.button:hover {
  background-color: #5b21b6;
}

After (Fixed)

fixed.html
8 lines
.button {
  /* Use the most visually appealing state as default.
     :hover is only supported in a few clients. */
  background-color: #6d28d9;
  color: #ffffff;
  text-decoration: none;
  font-weight: bold;
}

Transitions don't work in email; style the default state well

Outlook 365

Unsupported

CSS transitions are not supported in email.

Before (Broken)

before.html
7 lines
.button {
  background-color: #6d28d9;
  transition: background-color 0.2s;
}
.button:hover {
  background-color: #5b21b6;
}

After (Fixed)

fixed.html
8 lines
.button {
  /* Use the most visually appealing state as default.
     :hover is only supported in a few clients. */
  background-color: #6d28d9;
  color: #ffffff;
  text-decoration: none;
  font-weight: bold;
}

Transitions don't work in email; style the default state well

Outlook (New)

Unsupported

CSS transitions are not supported in email.

Before (Broken)

before.html
7 lines
.button {
  background-color: #6d28d9;
  transition: background-color 0.2s;
}
.button:hover {
  background-color: #5b21b6;
}

After (Fixed)

fixed.html
8 lines
.button {
  /* Use the most visually appealing state as default.
     :hover is only supported in a few clients. */
  background-color: #6d28d9;
  color: #ffffff;
  text-decoration: none;
  font-weight: bold;
}

Transitions don't work in email; style the default state well

Outlook Classic

Unsupported

CSS transitions are not supported in email.

Before (Broken)

before.html
7 lines
.button {
  background-color: #6d28d9;
  transition: background-color 0.2s;
}
.button:hover {
  background-color: #5b21b6;
}

After (Fixed)

fixed.html
8 lines
.button {
  /* Use the most visually appealing state as default.
     :hover is only supported in a few clients. */
  background-color: #6d28d9;
  color: #ffffff;
  text-decoration: none;
  font-weight: bold;
}

Transitions don't work in email; style the default state well

Outlook iOS

Unsupported

CSS transitions are not supported in email.

Before (Broken)

before.html
7 lines
.button {
  background-color: #6d28d9;
  transition: background-color 0.2s;
}
.button:hover {
  background-color: #5b21b6;
}

After (Fixed)

fixed.html
8 lines
.button {
  /* Use the most visually appealing state as default.
     :hover is only supported in a few clients. */
  background-color: #6d28d9;
  color: #ffffff;
  text-decoration: none;
  font-weight: bold;
}

Transitions don't work in email; style the default state well

Outlook Android

Unsupported

CSS transitions are not supported in email.

Before (Broken)

before.html
7 lines
.button {
  background-color: #6d28d9;
  transition: background-color 0.2s;
}
.button:hover {
  background-color: #5b21b6;
}

After (Fixed)

fixed.html
8 lines
.button {
  /* Use the most visually appealing state as default.
     :hover is only supported in a few clients. */
  background-color: #6d28d9;
  color: #ffffff;
  text-decoration: none;
  font-weight: bold;
}

Transitions don't work in email; style the default state well

Outlook for Mac

Unsupported

CSS transitions are not supported in email.

Before (Broken)

before.html
7 lines
.button {
  background-color: #6d28d9;
  transition: background-color 0.2s;
}
.button:hover {
  background-color: #5b21b6;
}

After (Fixed)

fixed.html
8 lines
.button {
  /* Use the most visually appealing state as default.
     :hover is only supported in a few clients. */
  background-color: #6d28d9;
  color: #ffffff;
  text-decoration: none;
  font-weight: bold;
}

Transitions don't work in email; style the default state well

Proton Mail

Unsupported

CSS transitions are not supported in email.

Before (Broken)

before.html
7 lines
.button {
  background-color: #6d28d9;
  transition: background-color 0.2s;
}
.button:hover {
  background-color: #5b21b6;
}

After (Fixed)

fixed.html
8 lines
.button {
  /* Use the most visually appealing state as default.
     :hover is only supported in a few clients. */
  background-color: #6d28d9;
  color: #ffffff;
  text-decoration: none;
  font-weight: bold;
}

Transitions don't work in email; style the default state well

Yahoo Mail

Partial

CSS transitions are not supported in email.

Before (Broken)

before.html
7 lines
.button {
  background-color: #6d28d9;
  transition: background-color 0.2s;
}
.button:hover {
  background-color: #5b21b6;
}

After (Fixed)

fixed.html
8 lines
.button {
  /* Use the most visually appealing state as default.
     :hover is only supported in a few clients. */
  background-color: #6d28d9;
  color: #ffffff;
  text-decoration: none;
  font-weight: bold;
}

Transitions don't work in email; style the default state well

Yahoo Mail Android

Partial

CSS transitions are not supported in email.

Before (Broken)

before.html
7 lines
.button {
  background-color: #6d28d9;
  transition: background-color 0.2s;
}
.button:hover {
  background-color: #5b21b6;
}

After (Fixed)

fixed.html
8 lines
.button {
  /* Use the most visually appealing state as default.
     :hover is only supported in a few clients. */
  background-color: #6d28d9;
  color: #ffffff;
  text-decoration: none;
  font-weight: bold;
}

Transitions don't work in email; style the default state well

Yahoo Mail iOS

Partial

CSS transitions are not supported in email.

Before (Broken)

before.html
7 lines
.button {
  background-color: #6d28d9;
  transition: background-color 0.2s;
}
.button:hover {
  background-color: #5b21b6;
}

After (Fixed)

fixed.html
8 lines
.button {
  /* Use the most visually appealing state as default.
     :hover is only supported in a few clients. */
  background-color: #6d28d9;
  color: #ffffff;
  text-decoration: none;
  font-weight: bold;
}

Transitions don't work in email; style the default state well

Samsung Mail

Partial

CSS transitions are not supported in email.

Before (Broken)

before.html
7 lines
.button {
  background-color: #6d28d9;
  transition: background-color 0.2s;
}
.button:hover {
  background-color: #5b21b6;
}

After (Fixed)

fixed.html
8 lines
.button {
  /* Use the most visually appealing state as default.
     :hover is only supported in a few clients. */
  background-color: #6d28d9;
  color: #ffffff;
  text-decoration: none;
  font-weight: bold;
}

Transitions don't work in email; style the default state well

HEY Mail

Partial

CSS transitions are not supported in email.

Before (Broken)

before.html
7 lines
.button {
  background-color: #6d28d9;
  transition: background-color 0.2s;
}
.button:hover {
  background-color: #5b21b6;
}

After (Fixed)

fixed.html
8 lines
.button {
  /* Use the most visually appealing state as default.
     :hover is only supported in a few clients. */
  background-color: #6d28d9;
  color: #ffffff;
  text-decoration: none;
  font-weight: bold;
}

Transitions don't work in email; style the default state well

AOL Mail

Partial

CSS transitions are not supported in email.

Before (Broken)

before.html
7 lines
.button {
  background-color: #6d28d9;
  transition: background-color 0.2s;
}
.button:hover {
  background-color: #5b21b6;
}

After (Fixed)

fixed.html
8 lines
.button {
  /* Use the most visually appealing state as default.
     :hover is only supported in a few clients. */
  background-color: #6d28d9;
  color: #ffffff;
  text-decoration: none;
  font-weight: bold;
}

Transitions don't work in email; style the default state well

Superhuman

Partial

CSS transitions are not supported in email.

Before (Broken)

before.html
7 lines
.button {
  background-color: #6d28d9;
  transition: background-color 0.2s;
}
.button:hover {
  background-color: #5b21b6;
}

After (Fixed)

fixed.html
8 lines
.button {
  /* Use the most visually appealing state as default.
     :hover is only supported in a few clients. */
  background-color: #6d28d9;
  color: #ffffff;
  text-decoration: none;
  font-weight: bold;
}

Transitions don't work in email; style the default state well

Production guidance for transition

transition is a CSS property. Across the email client matrix, 4 of 21 tracked clients support it fully, 7 only partially, and 10 not at all. The clients most likely to require a workaround for this feature are Gmail, Gmail Android, Gmail iOS. Each of them needs a tailored fallback. See the per-client examples above for the specific code fix Emailens recommends.

When in doubt, ship a baseline that renders without transition and treat it as progressive enhancement on clients where support is verified. Emailens automatically detects cross-client divergence on this feature when you preview an email, so you can see exactly which template paths break before a campaign goes out.

Related Features

Check your own HTML for transition

Paste your own, or run the sample below. Analyzed in this page, with no signup and nothing stored.

Zero-Friction Engine Preview

Test your transition layout across 21 email clients

Preview rendering, catch CSS issues, and see how transition displays across Outlook, Gmail, and Apple Mail. Free, no account needed.

Instant live preview · No signup required · 21 email engines

Last tested upstream: · Last synced by Emailens:

caniemail.com (MIT) records Mar 29, 2024 as the last time transition was tested in a real client, 2 years before this sync. Syncing copies that result forward, it does not re-test it. Carried in @emailens/engine data v0.12.2.