Table of Contents
Steps to Create a Rainbow Heart
Example
in conclusion
Home Web Front-end CSS Tutorial Animating a rainbow heart from a square using CSS?

Animating a rainbow heart from a square using CSS?

Sep 09, 2023 am 09:01 AM

使用 CSS 从正方形制作彩虹心动画?

We can create animations using HTML, CSS and JavaScript together and implement these animations on a web page or website. CSS provides many properties that we can use to create animations, which is why it is recommended to use CSS for styling as it provides powerful features for front-end development.

In this article, we will use CSS to create a heart shape that changes color every 3 seconds and do it in two steps using some animation.

Steps to Create a Rainbow Heart

We will create two different parts for the body and then create two classes, one of which is the square and the other is the container. We'll also create a CSS section where we'll add some properties to the body and center everything we want to display. We will use the following code to create the container.

Example

In the example below, we have added some properties and created a heart shape that the animation will play in. The code below gives the output of HTML and CSS code.

<!DOCTYPE html>
<html lang="en">
<head>
   <title>Creating the container</title>
   <style>
      .contain {
         display: grid;
         height: 99vh;
         place-items: center;
      }
      .sqr {
         height: 9rem;
         width: 9rem;
         background-color: blue;
         transform: rotate(45deg);
      }
      .sqr::before {
         content: "";
         height: 100%;
         width: 99%;
         background-color: red;
         position: absolute;
         transform: translateY(-50%);
         border-radius: 49%;
      }
      .sqr::after {
         content: "";
         background-color: lightgreen;
         position: absolute;
         width: 99%;
         height: 99%;
         transform: translateX(-49%);
         border-radius: 50%;
      }
   </style>
</head>
<body>
   <div class="contain">
      <div class="sqr"></div>
   </div>
</body>
</html>
Copy after login

The circles now have different colors, we keep it that way so we can differentiate the circles.

Now, we will animate this heart. To do this we will add movement to the heart and then use keyframe properties to change the color. The color of the heart will change every time a new frame appears.

The movement of the created heart will change to form a square, and then change back to form a heart. We'll do this by using the transform property so that the square can transform into a heart shape. Now we have discussed the method.

Example

In the code below, we first use the same code we used to make the container and heart shapes, and then add some keyframes where we set the color from 0% to 100%. The color of each keyframe changes so that the square appears to change into a heart shape. Let's take a look at the output so we understand what happens after using the code.

<!DOCTYPE html>
<html lang="en">
<head>
   <title>Creating the container</title>
   <style>
      .contain {
         display: grid;
         height: 99vh;
         place-items: center;
      }
      .sqr {
         height: 9rem;
         width: 9rem;
         background-color: grey;
         transform: rotate(45deg);
         animation: beater 3s linear infinite;
      }
      .sqr::before {
         content: "";
         height: 100%;
         width: 99%;
         background-color: maroon;
         position: absolute;
         transform: translateY(-50%);
         border-radius: 49%;
         animation: beater 3s linear infinite;
      }
      .sqr::after {
         content: "";
         background-color: yellow;
         position: absolute;
         width: 99%;
         height: 99%;
         transform: translateX(-49%);
         border-radius: 50%;
         animation: beater 3s linear infinite;
      }
      @keyframes beater {
         0% {
            background: red;
         }
         15% {
            background: orange;
         }
         30% {
            transform: scale(0.5);
            background: yellow;
         }
         45% {
            background: greenyellow;
         }
         60% {
            background: blue;
         }
         75% {
            background: indigo;
         }
         100% {
            background: violet;
         }
      }
   </style>
</head>
<body>
   <div class="contain">
      <div class="sqr"></div>
   </div>
</body>
</html>
Copy after login

Initially our output will look like this, a square, then in every frame it will create the illusion that the square is transforming into a heart shape, then after the transformation it will loop again and become a square, Each frame will turn into a different color as the frame changes. A complete heart looks like this.

Finally, we can see a complete heart from the square.

in conclusion

Animations in websites are very common these days, and these animations determine the actual look and feel of the website. The purpose of these animations is usually to engage the user or make it easy for the user to understand something. CSS is a very powerful tool that allows you to create these animations with just a few lines of code. Animations contain frames between them and we use the keyframe property in CSS to change the frames.

In this article we learned how to create an animated rainbow heart from a square using CSS that changes color every 3 seconds.

The above is the detailed content of Animating a rainbow heart from a square using CSS?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

It&#039;s out! Congrats to the Vue team for getting it done, I know it was a massive effort and a long time coming. All new docs, as well.

A bit on ci/cd A bit on ci/cd Apr 02, 2025 pm 06:21 PM

I&#039;d say "website" fits better than "mobile app" but I like this framing from Max Lynch:

Can you get valid CSS property values from the browser? Can you get valid CSS property values from the browser? Apr 02, 2025 pm 06:17 PM

I had someone write in with this very legit question. Lea just blogged about how you can get valid CSS properties themselves from the browser. That&#039;s like this.

Using Markdown and Localization in the WordPress Block Editor Using Markdown and Localization in the WordPress Block Editor Apr 02, 2025 am 04:27 AM

If we need to show documentation to the user directly in the WordPress editor, what is the best way to do it?

Stacked Cards with Sticky Positioning and a Dash of Sass Stacked Cards with Sticky Positioning and a Dash of Sass Apr 03, 2025 am 10:30 AM

The other day, I spotted this particularly lovely bit from Corey Ginnivan’s website where a collection of cards stack on top of one another as you scroll.

Comparing Browsers for Responsive Design Comparing Browsers for Responsive Design Apr 02, 2025 pm 06:25 PM

There are a number of these desktop apps where the goal is showing your site at different dimensions all at the same time. So you can, for example, be writing

How to Use CSS Grid for Sticky Headers and Footers How to Use CSS Grid for Sticky Headers and Footers Apr 02, 2025 pm 06:29 PM

CSS Grid is a collection of properties designed to make layout easier than it’s ever been. Like anything, there&#039;s a bit of a learning curve, but Grid is

Google Fonts   Variable Fonts Google Fonts Variable Fonts Apr 09, 2025 am 10:42 AM

I see Google Fonts rolled out a new design (Tweet). Compared to the last big redesign, this feels much more iterative. I can barely tell the difference

See all articles