* { box-sizing: border-box; }

body { font-family: sans-serif; }

.scene {
  width: 500px;
  height: 500px;
  border: 1px solid #CCC;
  margin: 80px;
  perspective: 1000px;
}

.cube {
  width: 500px;
  height: 500px;
  position: relative;
  transform-style: preserve-3d;
  transform: translateZ(-500px);
  transition: transform 1s;
}

.cube.show-front  { transform: translateZ(-250px) rotateY(   0deg); }
.cube.show-right  { transform: translateZ(-250px) rotateY( -90deg); }
.cube.show-back   { transform: translateZ(-250px) rotateY(-180deg); }
.cube.show-left   { transform: translateZ(-250px) rotateY(  90deg); }
.cube.show-top    { transform: translateZ(-250px) rotateX( -90deg); }
.cube.show-bottom { transform: translateZ(-250px) rotateX(  90deg); }

.cube__face {
  position: absolute;
  width: 500px;
  height: 500px;
  border: 2px solid black;
  line-height: 50px;
  font-size: 20px;
  font-weight: bold;
  color: white;
  text-align: center;
}

.cube__face--front  { background: hsla(  0, 100%, 50%, 0.9); }
.cube__face--right  { background: hsla( 60, 100%, 50%, 1); }
.cube__face--back   { background: hsla(120, 100%, 50%, 1); }
.cube__face--left   { background: hsla(180, 100%, 50%, 1); }
.cube__face--top    { background: hsla(240, 100%, 50%, 1); }
.cube__face--bottom { background: hsla(300, 100%, 50%, 1); }

.cube__face--front  { transform: rotateY(  0deg) translateZ(250px); }
.cube__face--right  { transform: rotateY( 90deg) translateZ(250px); }
.cube__face--back   { transform: rotateY(180deg) translateZ(250px); }
.cube__face--left   { transform: rotateY(-90deg) translateZ(250px); }
.cube__face--top    { transform: rotateX( 90deg) translateZ(250px); }
.cube__face--bottom { transform: rotateX(-90deg) translateZ(250px); }

label { margin-right: 10px; }