Home / CSS

CSS Transition and Animation Properties

CSS transitions and animation properties are powerful tools that allow web developers to add movement and visual effects to their websites or applications. These properties provide a way to create smooth transitions between different states of an element or to create eye-catching animations.

CSS Transition

CSS transition allows you to define the intermediate states of an element when a CSS property changes over a specific duration. It smoothens the effect by animating the transition between the previous and new property values. The transition effect can be applied to multiple CSS properties at once.

To create a transition effect, you first need to define the CSS property you want to transition. For example, if you want to transition the background color of a button, you can use the following code:

button {
  background-color: blue;
  transition: background-color 0.5s;

In this code, we select the button element and set its initial background color to blue. We then define the transition property and specify background-color as the property to transition. The 0.5s value indicates the duration of the transition, which is half a second.

Now, whenever the background color of the button changes, it will smoothly transition to the new color over the specified duration. You can also add other transition properties like transition-delay or transition-timing-function to further customize the effect.

CSS Animation

CSS animation properties take the concept of CSS transition even further by allowing you to define keyframes and create complex animations. With CSS animation, you can define multiple intermediate states and control the timing and duration of each state.

To create a CSS animation, you need to define a set of keyframes which specify the intermediate states of the animation. For example, let's say we want to animate a div element to move across the screen smoothly:

@keyframes slide {
  from {
    transform: translateX(0);
  to {
    transform: translateX(100px);

div {
  animation: slide 1s linear infinite;

In this code, we define a keyframe animation called slide. The from block represents the starting state, where the element is initially translated by 0 pixels horizontally (translateX(0)). The to block represents the ending state, where the element is translated by 100 pixels to the right (translateX(100px)).

We then select the div element and apply the animation using the animation property. We specify the animation name as slide, the duration as 1s, the timing function as linear, and set it to run infinitely.

Now, the div element will smoothly slide from left to right, continuously repeating the animation.


CSS transition and animation properties bring life and interactivity to your web projects. These properties offer a wide range of possibilities to create dynamic effects and engage users. By combining transitions and animations, you can achieve remarkable visual experiences that enhance the overall design of your website or application. So, experiment with these properties and unleash your creativity!

noob to master © copyleft