3D Cube

by tylorkolbeck

HTML

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <link rel="stylesheet" type="text/css" href="index.css">
  <title>Document</title>
</head>
<body>

  <div class="scene">
    <div class="Cube">
        <div class="Cube__face Cube__face-front">front</div>
        <div class="Cube__face Cube__face-back">back</div>
        <div class="Cube__face Cube__face-right">right</div>
        <div class="Cube__face Cube__face-left">left</div>
        <div class="Cube__face Cube__face-top">top</div>
        <div class="Cube__face Cube__face-bottom">bottom</div>
    </div>
  </div>
  
</body>
</html>

CSS

body {
  background: #999;
}

.scene {
  width: 200px;
  height: 200px;
  margin: auto;
  margin-top: 40%;
  perspective: 600px;
}

.Cube {
  width: 100%;
  height: 100%;
  position: relative;
  transform-style: preserve-3d;
  transform: rotateX(20deg) rotateY(20deg);
}

.Cube__face {
  position: absolute;
  width: 200px;
  height: 200px;
  border: 1px solid black;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 50px;
}


.Cube__face-front {
  background: rgba(222, 184, 135, 0.5);
  transform: rotateY(0deg)
    translateZ(100px); 
}

.Cube__face-back {
  background: rgba(0, 128, 0, 0.5);
  transform: rotateY(180deg)
    translateZ(100px);
}

.Cube__face-left {
  background: rgba(255, 192, 203, 0.5);
  transform: rotateY(-90deg);
}

.Cube__face-right {
  background: rgba(255, 166, 0, 0.5);
  transform: rotateY(90deg);
}

.Cube__face-top {
  background: rgba(128, 0, 128, 0.5);
  transform: rotateX(90deg);
}

.Cube__face-bottom {
  background: rgba(30, 143, 255, 0.5);
  transform: rotateX(-90deg);
}