The transition CSS property is a shorthand property for transition-property, transition-duration, transition-timing-function, and transition-delay.
The transition CSS property is a shorthand property for transition-property, transition-duration, transition-timing-function, and transition-delay.
Transitions enable you to define the transition between two states of an element. Different states may be defined using pseudo-classes like :hover or :active or dynamically set using JavaScript.
This property is a shorthand for the following CSS properties:
/* Apply to 1 property */ /* property name | duration */ transition: margin-right 4s; /* property name | duration | delay */ transition: margin-right 4s 1s; /* property name | duration | easing function */ transition: margin-right 4s ease-in-out; /* property name | duration | easing function | delay */ transition: margin-right 4s ease-in-out 1s; /* Apply to 2 properties */ transition: margin-right 4s, color 1s; /* Apply to all changed properties */ transition: all 0.5s ease-out; /* Global values */ transition: inherit; transition: initial; transition: revert; transition: revert-layer; transition: unset;
The transition property is specified as one or more single-property transitions, separated by commas.
Each single-property transition describes the transition that should be applied to a single property (or the special values all and none). It includes:
none
all
<custom-ident> naming a CSS property.<easing-function> value representing the easing function to use<time> values. The first value that can be parsed as a time is assigned to the transition-duration, and the second value that can be parsed as a time is assigned to transition-delay.See how things are handled when lists of property values aren't the same length. In short, extra transition descriptions beyond the number of properties actually being animated are ignored.
| Initial value | as each of the properties of the shorthand: 
 | 
|---|---|
| Applies to | all elements, ::beforeand::afterpseudo-elements | 
| Inherited | no | 
| Computed value | as each of the properties of the shorthand: 
 | 
| Animation type | discrete | 
transition =
<single-transition>#
<single-transition> =
[ none | <single-transition-property> ] ||
<time> ||
<easing-function> ||
<time>
<single-transition-property> =
all |
<custom-ident>
<easing-function> =
linear |
<linear-easing-function> |
<cubic-bezier-easing-function> |
<step-easing-function>
<linear-easing-function> =
linear( <linear-stop-list> )
<cubic-bezier-easing-function> =
ease |
ease-in |
ease-out |
ease-in-out |
cubic-bezier( <number [0,1]> , <number> , <number [0,1]> , <number> )
<step-easing-function> =
step-start |
step-end |
steps( <integer> [, <step-position> ]? )
<linear-stop-list> =
[ <linear-stop> ]#
<step-position> =
jump-start |
jump-end |
jump-none |
jump-both |
start |
end
<linear-stop> =
<number> &&
<linear-stop-length>?
<linear-stop-length> =
<percentage>{1,2}
This example performs a four-second font size transition with a one-second delay when the user hovers over the element.
<a class="target">Hover over me</a>
.target { font-size: 14px; transition: font-size 4s 1s; } .target:hover { font-size: 36px; }
There are several more examples of CSS transitions included in the Using CSS transitions article.
| Specification | 
|---|
| CSS Transitions # transition-shorthand-property | 
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
| transition | 261 | 1212 | 49 16["Before Firefox 57, transitions do not work when transitioning from atext-shadowwith a color specified to atext-shadowwithout a color specified (see bug 726550).", "Before Firefox 57, cancelling a filling animation (for example, withanimation-fill-mode: forwardsset) can trigger a transition set on the same element, although only once (see bug 1192592 and these test cases for more information).", "Before Firefox 57, thebackground-positionproperty can't be transitioned between two values containing different numbers of<position>values, for examplebackground-position: 10px 10px;andbackground-position: 20px 20px, 30px 30px;(see bug 1390446)."] | 1010 | 1512.110.1–15 | 93.1 | 4.42 | 2618 | 49 16["Before Firefox 57, transitions do not work when transitioning from atext-shadowwith a color specified to atext-shadowwithout a color specified (see bug 726550).", "Before Firefox 57, cancelling a filling animation (for example, withanimation-fill-mode: forwardsset) can trigger a transition set on the same element, although only once (see bug 1192592 and these test cases for more information).", "Before Firefox 57, thebackground-positionproperty can't be transitioned between two values containing different numbers of<position>values, for examplebackground-position: 10px 10px;andbackground-position: 20px 20px, 30px 30px;(see bug 1390446)."] | 1412.110.1–14 | 92 | 1.51.0 | 
| gradients | No | 12–79 | No | 10 | No | preview | No | No | No | No | No | No | 
    © 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
    https://developer.mozilla.org/en-US/docs/Web/CSS/transition