coderef

Transitions (CSS)Baseline · Widely available

The transition shorthand CSS property sets how changes to an element's styles may occur over time. Transitions can be applied to specific CSS properties, all properties, or none.

Supported in all major browsers for at least 30 months — safe to use without fallbacks. Baseline since Sep 30, 2015. Widely available since Mar 30, 2018.

Browser support

DesktopChrome
1–25Not supported
26+Supportedsince Mar 26, 2013
Current: 155
Edge
12+Supportedsince Jul 29, 2015
Current: 154
Firefox
1–15Not supported
16+Supportedsince Oct 9, 2012
Current: 157
Safari
1–8Not supported
9+Supportedsince Sep 30, 2015
Current: 27
MobileChrome Android
18–25Not supported
26+Supportedsince Apr 3, 2013
Current: 155
Firefox Android
4–15Not supported
16+Supportedsince Oct 9, 2012
Current: 157
Safari iOS
1–8Not supported
9+Supportedsince Sep 16, 2015
Current: 27

How to use

This feature is Baseline widely available — use it freely, no fallback needed.

Example

Full syntax and examples are on MDN: CSSTransition.

Feature detection

CSS · check before using
@supports (transition: initial) {
  /* styles that rely on transition */
}

/* or in JavaScript */
if (CSS.supports("transition", "initial")) {
  // use it
}

Sub-features

Support for each part of the feature (37). The overall table above shows when the whole feature works.

Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
CSSTransition84847513.1847913.4
CSSTransition.transitionProperty84847513.1847913.4
Element.transitioncancel_event87875313.1875313.4
Element.transitionend_event261851726517
Element.transitionrun_event74125313.1745313.4
Element.transitionstart_event74125313.1745313.4
TransitionEvent2712472747
TransitionEvent.TransitionEvent271423727237
TransitionEvent.elapsedTime2712472747
TransitionEvent.propertyName2712472747
TransitionEvent.pseudoElement277923727237
transition261216926169
transition-delay261216926169
transition-duration261216926169
transition-property261216926169
transition-property.IDENT_value261216926169
transition-property.all261216926169
transition-property.none261216926169
transition-timing-function261216926169
transition-timing-function.ease261216926169
Show 17 more
Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
transition-timing-function.ease-in261216926169
transition-timing-function.ease-in-out261216926169
transition-timing-function.ease-out261216926169
transition-timing-function.jump77796514776514
transition-timing-function.linear261216926169
transition-timing-function.step-end261216926169
transition-timing-function.step-start261216926169
transition.all261216926169
transition.ease261216926169
transition.ease-in261216926169
transition.ease-in-out261216926169
transition.ease-out261216926169
transition.gradients_can_animate✕✕✕✕✕✕✕
transition.linear261216926169
transition.none261216926169
transition.step-end261216926169
transition.step-start261216926169