@-webkit-keyframes roll { 10% { -webkit-transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg); transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg); } 30% { -webkit-transform: rotateX(120deg) rotateY(240deg) rotateZ(0deg) translateX(40px) translateY(40px); transform: rotateX(120deg) rotateY(240deg) rotateZ(0deg) translateX(40px) translateY(40px); } 50% { -webkit-transform: rotateX(240deg) rotateY(480deg) rotateZ(0deg) translateX(-40px) translateY(-40px); transform: rotateX(240deg) rotateY(480deg) rotateZ(0deg) translateX(-40px) translateY(-40px); } 70% { -webkit-transform: rotateX(360deg) rotateY(720deg) rotateZ(0deg); transform: rotateX(360deg) rotateY(720deg) rotateZ(0deg); } 90% { -webkit-transform: rotateX(480deg) rotateY(960deg) rotateZ(0deg); transform: rotateX(480deg) rotateY(960deg) rotateZ(0deg); } } @keyframes roll { 10% { -webkit-transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg); transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg); } 30% { -webkit-transform: rotateX(120deg) rotateY(240deg) rotateZ(0deg) translateX(40px) translateY(40px); transform: rotateX(120deg) rotateY(240deg) rotateZ(0deg) translateX(40px) translateY(40px); } 50% { -webkit-transform: rotateX(240deg) rotateY(480deg) rotateZ(0deg) translateX(-40px) translateY(-40px); transform: rotateX(240deg) rotateY(480deg) rotateZ(0deg) translateX(-40px) translateY(-40px); } 70% { -webkit-transform: rotateX(360deg) rotateY(720deg) rotateZ(0deg); transform: rotateX(360deg) rotateY(720deg) rotateZ(0deg); } 90% { -webkit-transform: rotateX(480deg) rotateY(960deg) rotateZ(0deg); transform: rotateX(480deg) rotateY(960deg) rotateZ(0deg); } } body { background: #35495e; padding: 20px; } .content { margin: auto auto; position: relative; width: 400px; height: 400px; -webkit-perspective: 1500px; perspective: 1500px; } .die { position: absolute; width: 100%; height: 100%; -webkit-transform-style: preserve-3d; transform-style: preserve-3d; transition: -webkit-transform 0.5s ease-out; transition: transform 0.5s ease-out; transition: transform 0.5s ease-out, -webkit-transform 0.5s ease-out; cursor: pointer; -webkit-transform: rotateX(-53deg); transform: rotateX(-53deg); } .die.rolling { -webkit-animation: roll 3s linear; animation: roll 3s linear; } .die[data-face="1"] { -webkit-transform: rotateX(-53deg) rotateY(0deg); transform: rotateX(-53deg) rotateY(0deg); } .die[data-face="2"] { -webkit-transform: rotateX(-53deg) rotateY(72deg); transform: rotateX(-53deg) rotateY(72deg); } .die[data-face="3"] { -webkit-transform: rotateX(-53deg) rotateY(144deg); transform: rotateX(-53deg) rotateY(144deg); } .die[data-face="4"] { -webkit-transform: rotateX(-53deg) rotateY(216deg); transform: rotateX(-53deg) rotateY(216deg); } .die[data-face="5"] { -webkit-transform: rotateX(-53deg) rotateY(288deg); transform: rotateX(-53deg) rotateY(288deg); } .die[data-face="16"] { -webkit-transform: rotateX(127deg) rotateY(-72deg); transform: rotateX(127deg) rotateY(-72deg); } .die[data-face="17"] { -webkit-transform: rotateX(127deg) rotateY(-144deg); transform: rotateX(127deg) rotateY(-144deg); } .die[data-face="18"] { -webkit-transform: rotateX(127deg) rotateY(-216deg); transform: rotateX(127deg) rotateY(-216deg); } .die[data-face="19"] { -webkit-transform: rotateX(127deg) rotateY(-288deg); transform: rotateX(127deg) rotateY(-288deg); } .die[data-face="20"] { -webkit-transform: rotateX(127deg) rotateY(-360deg); transform: rotateX(127deg) rotateY(-360deg); } .die[data-face="6"] { -webkit-transform: rotateX(11deg) rotateZ(180deg) rotateY(0deg); transform: rotateX(11deg) rotateZ(180deg) rotateY(0deg); } .die[data-face="7"] { -webkit-transform: rotateX(11deg) rotateZ(180deg) rotateY(72deg); transform: rotateX(11deg) rotateZ(180deg) rotateY(72deg); } .die[data-face="8"] { -webkit-transform: rotateX(11deg) rotateZ(180deg) rotateY(144deg); transform: rotateX(11deg) rotateZ(180deg) rotateY(144deg); } .die[data-face="9"] { -webkit-transform: rotateX(11deg) rotateZ(180deg) rotateY(216deg); transform: rotateX(11deg) rotateZ(180deg) rotateY(216deg); } .die[data-face="10"] { -webkit-transform: rotateX(11deg) rotateZ(180deg) rotateY(288deg); transform: rotateX(11deg) rotateZ(180deg) rotateY(288deg); } .die[data-face="11"] { -webkit-transform: rotateX(11deg) rotateY(-252deg); transform: rotateX(11deg) rotateY(-252deg); } .die[data-face="12"] { -webkit-transform: rotateX(11deg) rotateY(-324deg); transform: rotateX(11deg) rotateY(-324deg); } .die[data-face="13"] { -webkit-transform: rotateX(11deg) rotateY(-396deg); transform: rotateX(11deg) rotateY(-396deg); } .die[data-face="14"] { -webkit-transform: rotateX(11deg) rotateY(-468deg); transform: rotateX(11deg) rotateY(-468deg); } .die[data-face="15"] { -webkit-transform: rotateX(11deg) rotateY(-540deg); transform: rotateX(11deg) rotateY(-540deg); } .die .face { position: absolute; left: 50%; top: 0; margin: 0 -100px; border-left: 100px solid transparent; border-right: 100px solid transparent; border-bottom: 172px solid rgba(0, 166, 100, 0.75); width: 0px; height: 0px; -webkit-transform-style: preserve-3d; transform-style: preserve-3d; -webkit-backface-visibility: hidden; backface-visibility: hidden; counter-increment: steps 1; } .die .face .face-text { position: absolute; top: 77.4px; left: -50px; color: #fff; text-shadow: 1px 1px 3px #000; font-size: 21.5px; text-align: center; line-height: 1.3; width: 100px; height: 172px; font-family: monospace; } .die .face:nth-child(1) { -webkit-transform: rotateY(0deg) translateZ(67px) translateY(-25.8px) rotateX(53deg); transform: rotateY(0deg) translateZ(67px) translateY(-25.8px) rotateX(53deg); } .die .face:nth-child(2) { -webkit-transform: rotateY(-72deg) translateZ(67px) translateY(-25.8px) rotateX(53deg); transform: rotateY(-72deg) translateZ(67px) translateY(-25.8px) rotateX(53deg); } .die .face:nth-child(3) { -webkit-transform: rotateY(-144deg) translateZ(67px) translateY(-25.8px) rotateX(53deg); transform: rotateY(-144deg) translateZ(67px) translateY(-25.8px) rotateX(53deg); } .die .face:nth-child(4) { -webkit-transform: rotateY(-216deg) translateZ(67px) translateY(-25.8px) rotateX(53deg); transform: rotateY(-216deg) translateZ(67px) translateY(-25.8px) rotateX(53deg); } .die .face:nth-child(5) { -webkit-transform: rotateY(-288deg) translateZ(67px) translateY(-25.8px) rotateX(53deg); transform: rotateY(-288deg) translateZ(67px) translateY(-25.8px) rotateX(53deg); } .die .face:nth-child(16) { -webkit-transform: rotateY(-108deg) translateZ(67px) translateY(242.52px) rotateZ(180deg) rotateX(53deg); transform: rotateY(-108deg) translateZ(67px) translateY(242.52px) rotateZ(180deg) rotateX(53deg); } .die .face:nth-child(17) { -webkit-transform: rotateY(-36deg) translateZ(67px) translateY(242.52px) rotateZ(180deg) rotateX(53deg); transform: rotateY(-36deg) translateZ(67px) translateY(242.52px) rotateZ(180deg) rotateX(53deg); } .die .face:nth-child(18) { -webkit-transform: rotateY(36deg) translateZ(67px) translateY(242.52px) rotateZ(180deg) rotateX(53deg); transform: rotateY(36deg) translateZ(67px) translateY(242.52px) rotateZ(180deg) rotateX(53deg); } .die .face:nth-child(19) { -webkit-transform: rotateY(108deg) translateZ(67px) translateY(242.52px) rotateZ(180deg) rotateX(53deg); transform: rotateY(108deg) translateZ(67px) translateY(242.52px) rotateZ(180deg) rotateX(53deg); } .die .face:nth-child(20) { -webkit-transform: rotateY(180deg) translateZ(67px) translateY(242.52px) rotateZ(180deg) rotateX(53deg); transform: rotateY(180deg) translateZ(67px) translateY(242.52px) rotateZ(180deg) rotateX(53deg); } .die .face:nth-child(6) { -webkit-transform: rotateY(360deg) translateZ(150px) translateY(108.36px) rotateZ(180deg) rotateX(-11deg); transform: rotateY(360deg) translateZ(150px) translateY(108.36px) rotateZ(180deg) rotateX(-11deg); } .die .face:nth-child(7) { -webkit-transform: rotateY(288deg) translateZ(150px) translateY(108.36px) rotateZ(180deg) rotateX(-11deg); transform: rotateY(288deg) translateZ(150px) translateY(108.36px) rotateZ(180deg) rotateX(-11deg); } .die .face:nth-child(8) { -webkit-transform: rotateY(216deg) translateZ(150px) translateY(108.36px) rotateZ(180deg) rotateX(-11deg); transform: rotateY(216deg) translateZ(150px) translateY(108.36px) rotateZ(180deg) rotateX(-11deg); } .die .face:nth-child(9) { -webkit-transform: rotateY(144deg) translateZ(150px) translateY(108.36px) rotateZ(180deg) rotateX(-11deg); transform: rotateY(144deg) translateZ(150px) translateY(108.36px) rotateZ(180deg) rotateX(-11deg); } .die .face:nth-child(10) { -webkit-transform: rotateY(72deg) translateZ(150px) translateY(108.36px) rotateZ(180deg) rotateX(-11deg); transform: rotateY(72deg) translateZ(150px) translateY(108.36px) rotateZ(180deg) rotateX(-11deg); } .die .face:nth-child(11) { -webkit-transform: rotateY(252deg) translateZ(150px) translateY(108.36px) rotateX(-11deg); transform: rotateY(252deg) translateZ(150px) translateY(108.36px) rotateX(-11deg); } .die .face:nth-child(12) { -webkit-transform: rotateY(324deg) translateZ(150px) translateY(108.36px) rotateX(-11deg); transform: rotateY(324deg) translateZ(150px) translateY(108.36px) rotateX(-11deg); } .die .face:nth-child(13) { -webkit-transform: rotateY(396deg) translateZ(150px) translateY(108.36px) rotateX(-11deg); transform: rotateY(396deg) translateZ(150px) translateY(108.36px) rotateX(-11deg); } .die .face:nth-child(14) { -webkit-transform: rotateY(468deg) translateZ(150px) translateY(108.36px) rotateX(-11deg); transform: rotateY(468deg) translateZ(150px) translateY(108.36px) rotateX(-11deg); } .die .face:nth-child(15) { -webkit-transform: rotateY(540deg) translateZ(150px) translateY(108.36px) rotateX(-11deg); transform: rotateY(540deg) translateZ(150px) translateY(108.36px) rotateX(-11deg); } .source { color: #bbb; text-align: center; margin-top: 50px; } .source a { color: #ccc; }