CSS Animated Heartbeat

Hi - I’ve completed and replicated this challenge on codepen but I’d like some help understanding why it happens. I’m confused about how the transform: rotate(-45deg); works to make the heart beat - I’ve removed it and can see that the animation becomes more “clonky” but I still don’t really understand how it works. Why do we choose rotate -45deg?
Here’s the code:

@keyframes beat {

0% {

  transform: scale(1) rotate(-45deg);

}

50% {

  transform: scale(0.6) rotate(-45deg);

}

<style>
.back {
  position: fixed;
  padding: 0;
  margin: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: white;
  animation-name: backdiv;
  animation-duration: 1s;

}

.heart {
  position: absolute;
  margin: auto;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: pink;
  height: 50px;
  width: 50px;
  transform: rotate(-45deg);
  animation-name: beat;
  animation-duration: 1s;

}
.heart:after {
  background-color: pink;
  content: "";
  border-radius: 50%;
  position: absolute;
  width: 50px;
  height: 50px;
  top: 0px;
  left: 25px;
}
.heart:before {
  background-color: pink;
  content: "";
  border-radius: 50%;
  position: absolute;
  width: 50px;
  height: 50px;
  top: -25px;
  left: 0px;
}

@keyframes backdiv {
  50% {
    background: #ffe6f2;
  }
}

@keyframes beat {
  0% {
    transform: scale(1) rotate(-45deg);
  }
  50% {
    transform: scale(0.6) rotate(-45deg);
  }
}

</style>
<div class="back"></div>
<div class="heart"></div>

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36.

Challenge: Make a CSS Heartbeat using an Infinite Animation Count

Link to the challenge:

Hi @Jesk,

If you take a look the CSS for .heart, it have property transform: rotate(-45deg)
If you want to animate the scale by doing
transform: scale(0.6), the rotate transformation is gone, because when you declare transform property, you will need to redeclare the previous transform you used on the original style.

Hope you understand it :slight_smile:

Hi @padunk - Aha! Yes I get it now! Thank-you so much :slight_smile:

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.