JSFiddle - React, Tailwind, and code Playground

HTML

<div class="flip-container">
	<div class="flipper">
		<div class="front">
            <h2>Front content</h2>
		</div>
		<div class="back">
            <h2>Back content</h2>
		</div>
	</div>
</div>

CSS

body{
    background:#ddd;
}
.flip-container {
	perspective: 1000;
    -webkit-perspective: 1000;
    -moz-perspective: 1000;
    -o-perspective: 1000;
}

.flip-container:hover .flipper, .flip-container.hover .flipper {
		transform: rotateY(180deg);
        -webkit-transform: rotateY(180deg);
        -moz-transform: rotateY(180deg);
        -ms-transform: rotateY(180deg);
        -o-transform: rotateY(180deg);
}

.flip-container, .front, .back {
	width: 200px;
	height: 200px;
   
    -webkit-transition: 0s;
    -webkit-transition-delay: 0.2s;
    -moz-transition: 0s;
    -moz-transition-delay: 0.2s;
    -ms-transition: 0s;
    -ms-transition-delay: 0.2s;
    -o-transition: 0s;
    -o-transition-delay: 0.2s;
    transition: 0s;
    transition-delay: 0.2s;
}

.flip-container .back {
    opacity: 0;
}

.flip-container:hover .front {
    opacity: 0;
}

.flip-container:hover .back {
    opacity: 1;
}

.flipper {
	transition: 0.6s;
    -webkit-transition: 0.6s;
    -moz-transition: 0.6s;
    -ms-transition: 0.6s;
    -o-transition: 0.6s;
    position: relative;
}

.flipper h2 {
   margin: 80px 0 0 30px;
}

.front, .back {
    background:#f2f2f2;
    border:1px solid #ccc;
	position: absolute;
	top: 0;
	left: 0;
}

/* front pane, placed above back */
.front {
	z-index: 2;
}

.back {
	transform: rotateY(180deg);
    -webkit-transform: rotateY(180deg);
    -moz-transform: rotateY(180deg);
    -ms-transform: rotateY(180deg);
    -o-transform: rotateY(180deg);
}