CSS transitions provide a way to control animation speed when changing CSS properties. Instead of having property changes take effect immediately, you can cause the changes in a property to take place over a period of time. Animations that involve transitioning between two states are often called implicit transitions as the states in between the start and final states are implicitly defined by the browser. The easiest way for determining styles for different states is by using the :hover, :focus, :active, and :target pseudo-classes.
The transition property is a shorthand property used to represent up to four transition-related longhand properties: