JSFiddle - React, Tailwind, and code Playground

HTML

<div class="flip-container" id="flip-toggle">
				<div class="flipper">
					<div class="front">
					<button onclick="document.querySelector('#flip-toggle').classList.toggle('hover');">Click</button>
					</div>
					<div class="back">
					<button onclick="document.querySelector('#flip-toggle').classList.toggle('hover');">Click</button>
					</div>
				</div>
			</div>

CSS

/* entire container, keeps perspective */
.flip-container {
	perspective: 1000;
}

 .flip-container.hover .flipper, .flip-container.flip .flipper {
	transform: rotateY(180deg);
}
	
.flip-container, .front, .back {
	width: 100%;
	height: 500px;
}

/* flip speed goes here */
.flipper {
	transition: 0.6s;
	transform-style: preserve-3d;

	position: relative;
}

/* hide back of pane during swap */
.front, .back {
	backface-visibility: hidden;

	position: absolute;
	top: 0;
	left: 0;
}

/* front pane, placed above back */
.front {
	z-index: 2;
	/* for firefox 31 */
	transform: rotateY(0deg);
	background-color: #000;
}

/* back, initially hidden pane */
.back {
	transform: rotateY(180deg);
	background-color: #555;
}


@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {  
/* IE10+ CSS styles go here */

	/* entire container, keeps perspective */
	.flip-container {
		perspective: 1000;
		transform-style: preserve-3d;
	}
		/*  UPDATED! flip the pane when hovered */
		.flip-container.hover .back {
			transform: rotateY(0deg);
		}
		.flip-container.hover .front {
			transform: rotateY(180deg);
		}
    
        .hover.flip-container .flipper {
            transform: none;
        }
        }

	.flip-container, .front, .back {
		width: 100%;
		height: 500px;
	}

	/* flip speed goes here */
	.flipper {
		transition: 0.6s;
		transform-style: preserve-3d;

		position: relative;
	}

	/* hide back of pane during swap */
	.front, .back {
		backface-visibility: hidden;
		transition: 0.6s;
		transform-style: preserve-3d;

		position: absolute;
		top: 0;
		left: 0;
	}

	/*  UPDATED! front pane, placed above back */
	.front {
		z-index: 2;
		transform: rotateY(0deg);
	}

	/* back, initially hidden pane */
	.back {
		transform: rotateY(-180deg);
	}

	/* 
		Some vertical flip updates 
	*/
	.vertical.flip-container {
		position: relative;
	}

		.vertical .back {
			transform: rotateX(180deg);
		}

		.vertical.flip-container:hover .back {
			transform:...