Onjsdev

Share


How To Create A Card Component That Flips When Hovered Over


By onjsdev

Jul 29th, 2024

If you want to create components that flip in 3D when hovered over, this can be easily achieved using only HTML and CSS. Now, Let's see how to create a flip-animated card component.

Structure of the Card Component

A flip-animated card consists of two sides: the front and the back. By applying CSS transformations, you can create the illusion of flipping the card when hovering over it.

<div class="card-container">
  <div class="card">
    <div class="card-front">
      </div>
    <div class="card-back">
      </div>
  </div>
</div>

Here,

  • card-container: The main container for the card.
  • card : This container will hold both sides of the card and handle the flipping animation.
  • card-front: Contains the content displayed on the front side of the card.
  • card-back: Contains the content displayed on the back side of the card.

Now, let's add some basic styles to our card components.

.card-container {
  perspective: 1000px;
  width: 300px;
  height: 200px;
}

.card {
  width: 100%;
  height: 100%;
  position: relative;
  transform-style: preserve-3d;
  transition: transform 0.6s;
}

.card-front,
.card-back {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
}

.card-front {
  background-color: #fff;
  color: #000;
}

.card-back {
  background-color: #007BFF;
  color: #fff;
  transform: rotateY(180deg);
}
.card-container:hover .card {
  transform: rotateY(180deg);
  // rotate the .card element around the Y-axis when hovered.
}

Here,

  • perspective: Provides depth to the 3D transformation.
  • transform-style: preserve-3d: Ensures child elements are positioned in 3D space.
  • backface-visibility: Hides the back of the card when it's flipped.

Of course, to improve the overall experience, you can add some subtle enhancements like box shadows and smooth transitions.

Conclusion

Creating a flip-animated card component using HTML and CSS is a straightforward yet effective way to add interactive elements to your web pages. Feel free to customize the code further and add additional animations or styles to make the card even more engaging.

Thank you for reading.