<div class="cardWrapper">
  <div class="card">
    <div class="cardFace front"><h1>front</h1></div>
    <div class="cardFace back"><h1>back</h1></div>
  </div>
</div>

<div class="cardWrapper">
  <div class="card">
    <div class="cardFace front"><h1>front</h1></div>
    <div class="cardFace back"><h1>back</h1></div>
  </div>
</div>

<div class="cardWrapper">
  <div class="card">
    <div class="cardFace front"><img src="https://s.cdpn.io/16327/logo_texture.jpg"></div>
    <div class="cardFace back"><img src="https://s.cdpn.io/16327/logo_robust.jpg"></div>
  </div>
</div>

<div class="cardWrapper">
  <div class="card">
    <div class="cardFace front"><h1>front</h1></div>
    <div class="cardFace back"><h1>back</h1></div>
  </div>
</div>

<div class="cardWrapper">
  <div class="card">
    <div class="cardFace front"><h1>front</h1></div>
    <div class="cardFace back"><div class="moreInfo">This is just an example of how you can customize the content of any card face.</div></div>
  </div>
</div>
body {
  background-color: black;
  margin:20px;
  font-family:Arial, sans-serif;
}

.cardWrapper{
  width:200px;
  height:200px;
  position:relative;
  /*background-color:#333;*/
  float:left;
  margin-right:10px;
  cursor:pointer;
  -webkit-font-smoothing:antialiased;
}

.cardFace{
  position:absolute;
  width:200px;
  height:200px;
  overflow:hidden;
}

.front{
  background-color:#333; 
}

.back{
  background-color:#333; 
}



.cardFace h1{
  margin:0px;
  font-size:30px;
  padding:10px 0px 10px 10px;
  border-bottom:solid 6px #aaa;
  border-top:solid 6px #aaa;
  background-color:black;
  color:white;
}


.cardFace.back h1{
 border-color:#91e600;
}

.moreInfo{
  padding:10px;
  color:white;
  line-height:24px;
  
}
//IE doesn't transform-style:preserve-3d.
// for IE try https://codepen.io/rhernando/pen/vjGxH


//using gsap.set() takes care of all vendor-prefixes
gsap.set(".cardWrapper", {perspective:800});
gsap.set(".card", {transformStyle:"preserve-3d"});
gsap.set(".back", {rotationY:-180});
gsap.set([".back", ".front"], {backfaceVisibility:"hidden"});

$(".cardWrapper").hover(
  function() {
    gsap.to($(this).find(".card"), {duration: 1.2, rotationY:180, ease:Back.easeOut});
  },
  function() {
    gsap.to($(this).find(".card"), {duration: 1.2, rotationY:0, ease:Back.easeOut});  
  }
);

//a nice little intro;)
gsap.to($(".card"), {duration: 1, rotationY:-180, repeat:1, yoyo:true, stagger: 0.1});

/* learn more about GSAP JS:
https://www.greensock.com/gsap/ */
Run Pen

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://cdn.jsdelivr.net/npm/gsap@3.0.1/dist/gsap.min.js
  2. https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js