JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="new-parent">
  <div class="perspective">
    <div class="some-bg"></div>
   </div>
   <div class="perspective">
     <div class="wrapper">
       <div class="card-face back">Back</div>
       <div class="card-face front">Front</div>
     </div>
</div>
</div>


<button>Flip Me!</button>

CSS

.new-parent {
  perspective: 1000px;
  margin: 50px;
  position: relative;
  width: 175px;
  height: 250px;
}

.perspective {
  perspective: 1000px;
  position: absolute;
  width: 100%;
  height: 100%;
}

.some-bg {
  background-color: #ccc;
  background-position: center;
  width: 100%;
  height: 100%;
  position: absolute;
  animation: test-bg-animation 1s infinite linear;
   -webkit-backface-visibility: hidden;
}

@keyframes test-bg-animation {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.wrapper {
  width: 125px;
  height: 175px;
  border: 1px solid blue;
  position: absolute;
  transform-style: preserve-3d;
  transition: all 250ms;
  top: 35px;
  left: 25px;
}

.wrapper.flip {
  transform: rotateY(180deg);
}

.card-face {
  width: 100%;
  height: 100%;
  position: absolute;
  -webkit-backface-visibility: hidden;
}

.back {
  background-color: tomato;
}

.front {
  background-color: #bada55;
  transform: rotateY(180deg);
}

JavaScript

$(document).ready(function() {
  $('button').click(function() {
    $('.wrapper').toggleClass('flip');
  });
});