CSS Animations

CSS animations are a powerful way to breathe life into web elements. They allow you to create engaging and interactive user experiences by adding motion, transitions, and effects to your web pages. In this guide, we’ll explore CSS animations, from the basics to advanced techniques, complete with code examples to illustrate each concept.

The Basics of CSS Animations

CSS animations involve transitioning an element from one state to another over a specified duration. They can be triggered by user interactions or occur automatically. Here’s a fundamental example:

@keyframes slide-in {
0% {
transform: translateX(-100%);

100% {
transform: translateX(0);



.slide {
animation: slide-in 1s ease-in-out;


In this code, we define an animation called slide-in that moves an element horizontally from left to right. We then apply this animation to an element with the class slide.




Keyframes define the animation’s intermediate steps, specifying the style at various points in time. In the previous example, we defined two keyframes: 0% and 100%, indicating the initial and final states.



Animation Properties

CSS animations are controlled through animation properties. Here are some essential ones:

  • animation-name: Specifies the name of the keyframes animation.
  • animation-duration: Determines how long the animation lasts.
  • animation-timing-function: Defines the acceleration and deceleration of the animation.
  • animation-delay: Sets a delay before the animation starts.
  • animation-iteration-count: Specifies how many times the animation repeats.
  • animation-direction: Controls whether the animation runs forwards, backward, or alternates.
  • animation-fill-mode: Determines the styles applied before and after the animation.

Easing Functions

Easing functions control the pace of an animation, ensuring smooth transitions. Here are some common easing functions:

  • ease: Starts slow, accelerates, and then decelerates.
  • linear: Moves at a constant speed.
  • ease-in: Starts slow and accelerates.
  • ease-out: Starts fast and decelerates.
  • ease-in-out: Starts slow, accelerates, then decelerates.
.slide {
animation: slide-in 1s ease-in-out;

In this code, the ease-in-out easing function creates a smooth start and finish for the slide-in animation.




Transformations are often used in animations to alter the size, shape, and position of elements. Common transformation properties include translate, scale, rotate, and skew. For example:

@keyframes bounce {
0%, 100% {
transform: translateY(0);

50% {
transform: translateY(-20px);



.ball {
animation: bounce 1s ease-in-out infinite;


Here, the bounce animation lifts a ball element up and down using the translateY transformation.




Transitions are a simpler way to add animation to web elements, especially for hover effects or state changes. They define the change over time, rather than specifying keyframes. For example:

.button {
background-color: #0077B6;
color: white;
transition: background-color 0.3s ease-in-out;


.button:hover {
background-color: #FF5733;


In this code, the background color smoothly transitions from blue to orange when the button is hovered over.



Animation and Interaction

You can trigger animations based on user interactions, such as clicks or hovers. JavaScript can be used to add and remove CSS classes that initiate animations. For instance:


@keyframes rotate {
0% {
transform: rotate(0deg);

100% {
transform: rotate(360deg);



.rotate {
animation: rotate 2s linear infinite;
cursor: pointer;


Here, an element with the class rotate will continuously rotate. JavaScript can be used to toggle this class on user clicks.



Animation Libraries

For more complex animations, various CSS animation libraries are available, such as Animate.css and GreenSock Animation Platform (GSAP). These libraries provide pre-built animations and simplify the creation of intricate motion effects.


CSS animations bring web elements to life, making user interactions more engaging and visually appealing. From simple transitions to complex keyframe animations, CSS provides the tools to create dynamic and interactive web experiences. Whether you’re adding subtle hover effects or crafting intricate animations, mastering CSS animations can enhance the user experience and elevate the quality of your web designs.

Build something ULTIMATE!

About Us

Learn about HTML, CSS, SASS, Javascript, jQuery, PHP, SQL, WordPress. From basics to tips and tricks.

Connect With us

© 2023 Ultimate WebDev

This website uses cookies to improve your experience. By browsing this website, you agree to our cookies. Accept Read More