* { margin: 0; padding: 0; box-sizing: border-box; } ::selection { background-color: orangered; color: white; } body { background-color: #222; display: flex; flex-direction: column; justify-content: center; align-items: center; height: 100vh; overflow: hidden; color: white; } h1 { position: fixed; top: 10px; } #wrapper { perspective: 600px; } .cube { width: 200px; height: 200px; transform-style: preserve-3d; animation: rotateCube 6s infinite linear; } .face { position: absolute; width: 200px; height: 200px; border: 2px solid orangered; text-align: center; padding-top: 50%; font-size: 20px; } .front { transform: rotateY(0deg) translateZ(100px); } .back { transform: rotateY(180deg) translateZ(100px); } .left { transform: rotateY(-90deg) translateZ(100px); } .right { transform: rotateY(90deg) translateZ(100px); } .top { transform: rotateX(90deg) translateZ(100px); } .bottom { transform: rotateX(-90deg) translateZ(100px); } @keyframes rotateCube { 0% { transform: rotateX(0deg); } 100% { transform: rotateX(360deg) rotateY(360deg); } }