JSFiddle - React, Tailwind, and code Playground

HTML

<div class="container">
  <div class="rotor">
    <div class="face front">
      <pre>transform-origin: center center 0;</pre>
    </div>
    <div class="face top"></div>
    <div class="face back"></div>
    <div class="face bottom"></div>
  </div>
</div>
<div class="container">
  <div class="rotor prism">
    <div class="face front">
      <pre>transform-origin: center center -25px;</pre>
    </div>
    <div class="face top"></div>
    <div class="face back"></div>
    <div class="face bottom"></div>
  </div>
</div>

CSS

.container {
  margin: 50px;
  border: 2px solid #00f;
  height: 50px;
  -webkit-perspective: 500px;
  -moz-perspective: 500px;
  perspective: 500px;
  position: relative;
}

.rotor {
  -webkit-transform-style: preserve-3d;
  -moz-transform-style: preserve-3d;
  transform-style: preserve-3d;
  -webkit-animation: spin 4s infinite linear;
  -moz-animation: spin 4s infinite linear;
  animation: spin 4s infinite linear;
}

.face {
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  backface-visibility: hidden;
}

.rotor, .face {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
}

.prism, .prism .face {
  -webkit-transform-origin: center center -25px;
  -moz-transform-origin: center center -25px;
  transform-origin: center center -25px;
}

.face.front {
  background-color: rgba(255,0,0,0.5);
  -webkit-transform: rotateX(0deg);
  -moz-transform: rotateX(0deg);
  transform: rotateX(0deg);
}

.face.bottom {
  background-color: rgba(0,0,255,0.5);
  -webkit-transform: rotateX(90deg);
  -moz-transform: rotateX(90deg);
  transform: rotateX(90deg);
}

.face.back {
  background-color: rgba(0,255,255,0.5);
  -webkit-transform: rotateX(180deg);
  -moz-transform: rotateX(180deg);
  transform: rotateX(180deg);
}

.face.top {
  background-color: rgba(0,255,0,0.5);
  -webkit-transform: rotateX(270deg);
  -moz-transform: rotateX(270deg);
  transform: rotateX(270deg);
}

pre {
  margin: 10px;
}

@-webkit-keyframes spin {
  from { -webkit-transform: rotateX(0); }
  50%  { -webkit-transform: rotateX(0); }
  to   { -webkit-transform: rotateX(360deg); }
}

@-moz-keyframes spin {
  from { -moz-transform: rotateX(0); }
  50%  { -moz-transform: rotateX(0); }
  to   { -moz-transform: rotateX(360deg); }
}

@keyframes spin {
  from { transform: rotateX(0); }
  50%  { transform: rotateX(0); }
  to   { transform: rotateX(360deg); }
}