2018-10-12 15:37:13 -04:00
---
title: Transition
---
<!-- The article goes here, in GitHub - flavored Markdown. Feel free to add YouTube videos, images, and CodePen/JSBin embeds -->
## Transition
2019-03-15 13:26:17 -05:00
The `transition` property allows you to change property values smoothly (from one value to another), over a given duration. For example the code below sets the transistion time to 300 milliseconds.
2018-10-12 15:37:13 -04:00
```css
transition: all 300ms;
```
### Transition on Several Property Values
You can change multiples property values with transition property.
```css
transition: width 300ms, height 2s;
```
2018-11-05 02:26:25 +11:00
## Sub-Property
2018-10-12 15:37:13 -04:00
2018-11-05 02:26:25 +11:00
To create a CSS transition, we have different sub-properties for the transition property in CSS :
2018-10-12 15:37:13 -04:00
2018-11-05 02:26:25 +11:00
• `transition-delay` < br >
• `transition-duration` < br >
• `transition-property` < br >
• `transition-timing-function`
2018-10-12 15:37:13 -04:00
2018-11-05 02:26:25 +11:00
### Delay
The `transition-delay` property defines the delay (in seconds) before the transition is played.
```css
/* 2 seconds delay */
div {
transition-delay: 2s;
}
2018-10-12 15:37:13 -04:00
```
2018-11-05 02:26:25 +11:00
### Duration
2018-10-12 15:37:13 -04:00
2018-11-05 02:26:25 +11:00
The `transition-duration` property defines the duration (in seconds) of the transition.
```css
/* 2 seconds duration */
div {
transition-duration: 2s;
}
```
### Property
The `transition-property` property defines the CSS property that will be affected in the transition.
```css
/* The transition will be on the width property */
div {
transition-property: width;
}
```
### Timing-function
The `transition-timing-function` property defines the speed of the transition.
```css
/* The transition speed */
div {
2018-10-12 15:37:13 -04:00
transition-timing-function: linear;
2018-11-05 02:26:25 +11:00
}
2018-10-12 15:37:13 -04:00
```
2018-11-05 02:26:25 +11:00
#### Different values of `transition-timing-function`
2018-10-12 15:37:13 -04:00
2018-11-05 02:26:25 +11:00
• `ease` - specifies a transition effect with a slow start, then fast, then end slowly (this is default)< br >
• `linear` - specifies a transition effect with the same speed from start to end< br >
• `ease-in` - specifies a transition effect with a slow start< br >
• `ease-out` - specifies a transition effect with a slow end< br >
• `ease-in-out` - specifies a transition effect with a slow start and end< br >
• `cubic-bezier(n,n,n,n)` - lets you define your own values in a cubic-bezier function
2018-10-12 15:37:13 -04:00
2018-11-05 02:26:25 +11:00
## Syntax
2018-10-12 15:37:13 -04:00
2018-12-25 16:17:38 +08:00
### Transition Delay
Setting a transition delay determines when the transition will start.
```css
transition-delay: 1s;
```
### Transition Shorthand
2018-11-05 02:26:25 +11:00
```css
transition: property name / duration / timing function / delay ;
```
2018-12-25 16:17:38 +08:00
2018-11-05 02:26:25 +11:00
#### Example
```css
transition: width 2s linear 2s;
```
2018-10-12 15:37:13 -04:00
#### More Information:
<!-- Please add any articles you think might be helpful to read before writing the article -->
2018-12-25 16:17:38 +08:00
* [MDN - transition ](https://developer.mozilla.org/en-US/docs/Web/CSS/transition )
* [Easings reference ](http://easings.net/en )