#experiment-cube { .cube-wrap { position: relative; width: 200px; height: 200px; margin: 0 auto; -webkit-perspective: 400px; perspective: 400px; } .cube { position: absolute; top: 0; left: 0; right: 0; bottom: 0; -webkit-transform-style: preserve-3d; transform-style: preserve-3d; -webkit-animation: rotate 4s linear infinite; animation: rotate 4s linear infinite; } @-webkit-keyframes rotate { 0% { -webkit-transform: rotateX(0) rotateY(0); transform: rotateX(0) rotateY(0); } 50% { -webkit-transform: rotateX(360deg) rotateY(0); transform: rotateX(360deg) rotateY(0); } 100% { -webkit-transform: rotateX(360deg) rotateY(360deg); transform: rotateX(360deg) rotateY(360deg); } } @keyframes rotate { 0% { -webkit-transform: rotateX(0) rotateY(0); transform: rotateX(0) rotateY(0); } 50% { -webkit-transform: rotateX(360deg) rotateY(0); transform: rotateX(360deg) rotateY(0); } 100% { -webkit-transform: rotateX(360deg) rotateY(360deg); transform: rotateX(360deg) rotateY(360deg); } } .side { border: 2px solid #000; position: absolute; width: 100%; height: 100%; line-height: 200px; font-size: 120px; font-weight: bold; color: white; text-align: center; transition: 10s; } .front { background: rgba(255,0,0,.5); -webkit-transform: translateZ(100px); transform: translateZ(100px); } .back { background: rgba(0,255,0,.5); -webkit-transform: rotateX(180deg) translateZ(100px); transform: rotateX(180deg) translateZ(100px); } .left { background: rgba(0,0,255,.5); -webkit-transform: rotateY(-90deg) translateZ(100px); transform: rotateY(-90deg) translateZ(100px); } .right { background: rgba(0,255,255,.5); -webkit-transform: rotateY(90deg) translateZ(100px); transform: rotateY(90deg) translateZ(100px); } .top { background: rgba(255,255,0,.5); -webkit-transform: rotateX(90deg) translateZ(100px); transform: rotateX(90deg) translateZ(100px); } .bottom { background: rgba(255,0,255,.5); -webkit-transform: rotateX(-90deg) translateZ(100px); transform: rotateX(-90deg) translateZ(100px); } }