Chapter 17. Transitions
CSS transitions allow us to animate CSS properties from an original value to a new value over time when a property value changes. These transition an element from one state to another, in response to some change—usually a user interaction, but it can also be due to the scripted change of class, ID, or other state.
Normally, when a CSS property value changes—when a “style change event” occurs—the change is instantaneous. The new property value replaces the old property in the milliseconds it takes to repaint, or reflow and repaint when necessary, the affected content. Most value changes seem instantaneous, taking less than 16 milliseconds1 to render. Even if the changes takes longer, it is still a single step from one value to the next. For example, when changing a background color on mouse hover, the background changes from one color to the next, with no gradual transition.
CSS Transitions
CSS transitions provide a way to control how a property changes from one value to the next over a period of time. Thus, we can make the property values change gradually, creating pleasant and (hopefully) unobtrusive effects. For example:
button
{
color
:
magenta
;
transition
:
color
200ms
ease
-
in
50ms
;
}
button
:hover
{
color
:
rebeccapurple
;
transition
:
color
200ms
ease
-
out
50ms
;
}
In this example, instead of instantaneously changing a
button’s color
value on hover, with CSS transitions the button can be set to
gradually fade from magenta
to rebeccapurple
over 200 milliseconds, ...
Get CSS: The Definitive Guide, 4th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.