DEV Community

Cover image for CSS Cake Animation
Danial Habib
Danial Habib

Posted on

7

CSS Cake Animation

Hey everyone. Welcome to today’s tutorial. In today’s tutorial, we will learn how to create cake animation. To create this animation, we need HTML and CSS. This is intermediate-level CSS animation.

If you are looking for more such CSS projects to enhance your skills, you can check out this playlist here. This playlist consists of 50 + CSS animation tutorials. The difficulty of this project varies from easy to quite complex. This playlist is suitable for all kinds of learners who are interested in learning CSS.

Welcome to Learn with Daniel I'm Danial and on this channel, you'll find tutorials on HTML, CSS, and JavaScript, as well as creative UI/UX designs, CSS animations, and effects. Whether you're a beginner or an experienced developer, I hope you find my content helpful and enjoyable. My goal is to inspire and empower design-focused frontend developers & designers. Don't forget to subscribe to my channel and enable notifications by clicking the bell icon. That way, you'll be the first to know about new tutorials and resources as soon as they're released. #html #javascript #css #coding #frondend #htmlcss #javascriptprojects #programming #css #trend #viral #program #shortsvideo #shorts #youtubeshort

favicon youtube.com

Video Tutorial:

If you are interested in watching a video tutorial rather than reading this blogpost, you can check out the video down below. Also, subscribe to my YouTube channel where I first new tips, tricks and tutorials every alternate day.

Project Folder Structure:

Before you start coding, let us take a look at the project folder structure. We build a project folder called CSS cake animation. Inside this folder, we have two files. These files are index.html and style.css.

HTML:

We begin with the HTML code. We created you with a class name container. Weep rap all the other elements inside this container.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Cake Animation</title>
    <link rel="stylesheet" href="style.css" />
  </head>
  <body>
    <div class="container center">
      <div class="candle"></div>
      <div class="layer-1"></div>
      <div class="layer-2"></div>
      <div class="layer-3"></div>
    </div>
  </body>
</html>
Enter fullscreen mode Exit fullscreen mode

CSS:

Next we shape, style, and position the elements using CSS. You also add animations to various shapes to complete the animation.

* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}
body {
  background-color: #f1d632;
}
.container {
  height: 100vh;
  width: 31.25em;
}
.center,
.container * {
  position: absolute;
  margin: auto;
  left: 0;
  right: 0;
}
.layer-1 {
  background-color: #367bd0;
  height: 7.5em;
  width: 21.87em;
  top: -7.5em;
  background-size: 1.56em 9.37em;
  background-position: 0 -1.25em;
  background-image: radial-gradient(
    circle at 0.78em 1em,
    #f5f5f5 1.25em,
    transparent 1.3em
  );
  animation: fall-1 8s infinite;
}
@keyframes fall-1 {
  20% {
    transform: translateY(35.62em);
  }
  100% {
    transform: translateY(35.62em);
  }
}
.layer-1:before {
  content: "";
  position: absolute;
  height: 1.25em;
  width: 100%;
  background-color: #f54597;
  bottom: 0;
}
.layer-1:after {
  content: "";
  position: absolute;
  height: 0.75em;
  width: 0.75em;
  background-color: #9a152b;
  border-radius: 50%;
  top: 2.81em;
  left: 1.87em;
  box-shadow: 3.12em 1.56em #f1663e, 5.31em -1em #f5e671, 9.37em 2.4em #9a152b,
    12.5em -1.56em #f1663e, 14.68em 0 #f5e671, 18.75em 1.56em #9a152b;
}
.layer-2 {
  height: 7.5em;
  width: 15.62em;
  background-color: #ff99b9;
  top: -7.5em;
  background-image: repeating-linear-gradient(
    90deg,
    transparent 0,
    transparent 3.12em,
    #ff4a83 3.12em,
    #ff4a83 6.25em
  );
  animation: fall-2 8s infinite;
}
@keyframes fall-2 {
  20% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(28.12em);
  }
  100% {
    transform: translateY(28.12em);
  }
}
.layer-3 {
  background-color: #9a202f;
  height: 7.5em;
  width: 9.37em;
  top: -7.5em;
  background-size: 1.56em 9.37em;
  background-position: 0 -1.25em;
  background-image: radial-gradient(
    circle at 0.78em 1em,
    #ffee8d 1.25em,
    transparent 1.3em
  );
  animation: fall-3 8s infinite;
}
@keyframes fall-3 {
  40% {
    transform: translateY(0);
  }
  60% {
    transform: translateY(20.62em);
  }
  100% {
    transform: translateY(20.62em);
  }
}
.layer-3:before {
  position: absolute;
  content: "";
  height: 0.93em;
  width: 100%;
  top: 3.12em;
  background-color: #ffee8d;
}
.layer-3:after {
  position: absolute;
  content: "";
  background-color: #f54597;
  height: 1.25em;
  width: 1.25em;
  border-radius: 50%;
  top: -1.25em;
  left: 0.37em;
  box-shadow: 1.87em 0 #f54597, 3.75em 0 #f54597, 5.62em 0 #f54597,
    7.5em 0 #f54597;
}
.candle {
  height: 3.12em;
  width: 0.75em;
  background-color: #3aa2cf;
  top: -3.12em;
  border-radius: 0.12em 0.12em 0 0;
  animation: fall-4 8s infinite;
}
@keyframes fall-4 {
  60% {
    transform: translateY(0);
  }
  80% {
    transform: translateY(13.12em);
  }
  100% {
    transform: translateY(13.12em);
  }
}
.candle:before {
  position: absolute;
  content: "";
  background-color: #f1af3f;
  height: 1.25em;
  width: 1.25em;
  margin: -0.25em;
  border-radius: 50% 50% 50% 0;
  top: -1.3em;
  transform: rotate(135deg);
  animation: flame 2s infinite;
}
@keyframes flame {
  50% {
    transform: scale(0.8) rotate(135deg);
  }
}
Enter fullscreen mode Exit fullscreen mode

That’s it for this tutorial. If you face any issues while creating this project, you can download the source code by clicking on the download code button below. If you have any queries, suggestions, or feedback you can comment them below


Download Code


CSS-Cake-Animation

CSS Cake Animation

Hot sauce if you're wrong - web dev trivia for staff engineers

Hot sauce if you're wrong · web dev trivia for staff engineers (Chris vs Jeremy, Leet Heat S1.E4)

  • Shipping Fast: Test your knowledge of deployment strategies and techniques
  • Authentication: Prove you know your OAuth from your JWT
  • CSS: Demonstrate your styling expertise under pressure
  • Acronyms: Decode the alphabet soup of web development
  • Accessibility: Show your commitment to building for everyone

Contestants must answer rapid-fire questions across the full stack of modern web development. Get it right, earn points. Get it wrong? The spice level goes up!

Watch Video 🌶️🔥

Top comments (1)

Collapse
 
dorothyjay profile image
Dorothy_Jay

so cute! Today happens to be my friend's birthday , thanks for your idea

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More

👋 Kindness is contagious

If this article connected with you, consider tapping ❤️ or leaving a brief comment to share your thoughts!

Okay