JSFiddle - React, Tailwind, and code Playground

HTML

<div id="cube">
    <div id="face1" class="allSides face">face1</div>
    <div id="sideLeft" class="allSides side">sideLeft</div>
    <div id="face2" class="allSides face">face2</div>
    <div id="sideRight" class="allSides side">sideRight</div>
</div>

CSS

* {color: white;}

#cube{
    width: 198px;
    height: 198px;
    margin: 100px;
    -ms-perspective: 1000px;
    -moz-perspective: 1000px;
}

.allSides {
    width: 200px;
    height: 200px;
    position: absolute;
    -ms-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
}

.face {
    
    width: 200px;
    height: 200px;
    
}

.side {
    
    width: 50px;
    height: 200px;
    
    background-color: #999999;
}

#face1
{
    background-color:blue;
    -ms-transform: rotateY(0deg) perspective(1000px) translateZ(100px);
    -moz-transform: rotateY(0deg) translateZ(100px);
    -ms-transition: -ms-transform .5s linear;
    -moz-transition: -moz-transform .5s linear;
}

#cube:hover #face1 {
    -ms-transform: rotateY(180deg) perspective(1000px) translateZ(100px);
    -moz-transform: rotateY(180deg) translateZ(100px);
}

#sideLeft {
    -ms-transform: rotateY(-90deg) perspective(1000px) translateZ(100px);
    -moz-transform: rotateY(-90deg) translateZ(100px);
    -ms-transition: -ms-transform .5s linear;
    -moz-transition: -moz-transform .5s linear; 
}

#cube:hover #sideLeft {
    -ms-transform: rotateY(90deg) perspective(1000px) translateZ(100px);
    -moz-transform: rotateY(90deg) translateZ(100px);
}

#face2
{
    background-color:red;
    -ms-transform: rotateY(-180deg) perspective(1000px) translateZ(100px);
    -moz-transform: rotateY(-180deg) translateZ(100px);
    -ms-transition: -ms-transform .5s linear;
    -moz-transition: -moz-transform .5s linear;    
}

#cube:hover #face2 {
    -ms-transform: rotateY(0deg) perspective(1000px) translateZ(100px);
    -moz-transform: rotateY(0deg) translateZ(100px);
}

#sideRight {
    -ms-transform: rotateY(90deg) perspective(1000px) translateZ(100px);
    -moz-transform: rotateY(90deg) translateZ(100px);
    -ms-transition: -ms-transform .5s linear;
    -moz-transition: -moz-transform .5s linear; 
}

#cube:hover #sideRight {
    -ms-transform: rotateY(90deg) perspective(1000px) translateZ(100px);
...

JavaScript

/* 
var yAngleFront = 0; 
var yAngleBack = yAngleFront+180;
var yAngleLeft = -90;
var yAngleRight = 90;

var leftTranslate = 25;

setInterval(function(){
    yAngleFront += 5;
    yAngleBack = yAngleFront+180;
    yAngleLeft += 5;
    yAngleRight = yAngleLeft+180;
    
    $('#face1').css('-ms-transform','perspective(1000px) translateZ(25px) rotateY('+yAngleFront+'deg)');
    $('#face1').css('-moz-transform','rotateY('+yAngleFront+'deg) translateZ(20px)'); 
    
    $('#sideLeft').css('-ms-transform','perspective(1000px) translateZ(25px) rotateY('+yAngleLeft+'deg)');
    $('#sideLeft').css('-moz-transform','rotateY('+yAngleLeft+'deg) translateZ(20px)');
    
    $('#face2').css('-ms-transform','perspective(1000px) translateZ(20px) rotateY('+yAngleBack+'deg)');
    $('#face2').css('-moz-transform','rotateY('+yAngleBack+'deg) translateZ(20px)');
},100);
*/