Transitions¶
CSS transitions let you smoothly animate changes in CSS property values over time.
1. Basic Syntax¶
.element {
transition: property duration timing-function delay;
}
Example:
.button {
background-color: blue;
transition: background-color 0.3s ease-in-out;
}
.button:hover {
background-color: red;
}
When :hover is triggered, the background smoothly changes from blue to red.
2. Shorthand Breakdown¶
transition: all 0.5s ease 0.1s;
property— what to animate (color,all, etc.)duration— how long the transition lasts (sorms)timing-function— how the animation acceleratesdelay— time before transition starts
3. Timing Functions¶
| Value | Description |
|---|---|
linear |
Constant speed |
ease |
Slow → fast → slow |
ease-in |
Slow start |
ease-out |
Slow end |
ease-in-out |
Slow start and end |
cubic-bezier(...) |
Custom easing curve |
4. Multiple Properties¶
.box {
transition: width 0.3s ease, background-color 0.3s linear;
}
Each property can have its own config.
5. Transitionable Properties¶
Only animatable properties can be transitioned:
✅ Examples:
colorbackground-colorwidth,heighttransformopacitymargin,padding
❌ Not animatable:
displaypositionvisibility(though can be paired withopacity)
6. Tips¶
- Use
transition: allwith caution — it's less performant and harder to debug. - Transitions only work when there's a change in property value (e.g. via
:hover,.active, JS toggle).
7. Example: Button Hover¶
.button {
background-color: #333;
color: white;
transition: background-color 0.3s ease, transform 0.2s;
}
.button:hover {
background-color: #555;
transform: scale(1.05);
}