@-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: #333; padding: 20px; } .content { margin: auto auto; position: relative; width: 200px; height: 200px; -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 -50px; border-left: 50px solid transparent; border-right: 50px solid transparent; border-bottom: 86px solid rgba(30, 180, 20, 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:before { content: counter(steps); position: absolute; top: 21.5px; left: -100px; color: #fff; text-shadow: 1px 1px 3px #000; font-size: 43px; text-align: center; line-height: 77.4px; width: 200px; height: 86px; } .die .face:nth-child(1) { -webkit-transform: rotateY(0deg) translateZ(33.5px) translateY(-12.9px) rotateX(53deg); transform: rotateY(0deg) translateZ(33.5px) translateY(-12.9px) rotateX(53deg); } .die .face:nth-child(2) { -webkit-transform: rotateY(-72deg) translateZ(33.5px) translateY(-12.9px) rotateX(53deg); transform: rotateY(-72deg) translateZ(33.5px) translateY(-12.9px) rotateX(53deg); } .die .face:nth-child(3) { -webkit-transform: rotateY(-144deg) translateZ(33.5px) translateY(-12.9px) rotateX(53deg); transform: rotateY(-144deg) translateZ(33.5px) translateY(-12.9px) rotateX(53deg); } .die .face:nth-child(4) { -webkit-transform: rotateY(-216deg) translateZ(33.5px) translateY(-12.9px) rotateX(53deg); transform: rotateY(-216deg) translateZ(33.5px) translateY(-12.9px) rotateX(53deg); } .die .face:nth-child(5) { -webkit-transform: rotateY(-288deg) translateZ(33.5px) translateY(-12.9px) rotateX(53deg); transform: rotateY(-288deg) translateZ(33.5px) translateY(-12.9px) rotateX(53deg); } .die .face:nth-child(16) { -webkit-transform: rotateY(-108deg) translateZ(33.5px) translateY(121.26px) rotateZ(180deg) rotateX(53deg); transform: rotateY(-108deg) translateZ(33.5px) translateY(121.26px) rotateZ(180deg) rotateX(53deg); } .die .face:nth-child(17) { -webkit-transform: rotateY(-36deg) translateZ(33.5px) translateY(121.26px) rotateZ(180deg) rotateX(53deg); transform: rotateY(-36deg) translateZ(33.5px) translateY(121.26px) rotateZ(180deg) rotateX(53deg); } .die .face:nth-child(18) { -webkit-transform: rotateY(36deg) translateZ(33.5px) translateY(121.26px) rotateZ(180deg) rotateX(53deg); transform: rotateY(36deg) translateZ(33.5px) translateY(121.26px) rotateZ(180deg) rotateX(53deg); } .die .face:nth-child(19) { -webkit-transform: rotateY(108deg) translateZ(33.5px) translateY(121.26px) rotateZ(180deg) rotateX(53deg); transform: rotateY(108deg) translateZ(33.5px) translateY(121.26px) rotateZ(180deg) rotateX(53deg); } .die .face:nth-child(20) { -webkit-transform: rotateY(180deg) translateZ(33.5px) translateY(121.26px) rotateZ(180deg) rotateX(53deg); transform: rotateY(180deg) translateZ(33.5px) translateY(121.26px) rotateZ(180deg) rotateX(53deg); } .die .face:nth-child(6) { -webkit-transform: rotateY(360deg) translateZ(75px) translateY(54.18px) rotateZ(180deg) rotateX(-11deg); transform: rotateY(360deg) translateZ(75px) translateY(54.18px) rotateZ(180deg) rotateX(-11deg); } .die .face:nth-child(7) { -webkit-transform: rotateY(288deg) translateZ(75px) translateY(54.18px) rotateZ(180deg) rotateX(-11deg); transform: rotateY(288deg) translateZ(75px) translateY(54.18px) rotateZ(180deg) rotateX(-11deg); } .die .face:nth-child(8) { -webkit-transform: rotateY(216deg) translateZ(75px) translateY(54.18px) rotateZ(180deg) rotateX(-11deg); transform: rotateY(216deg) translateZ(75px) translateY(54.18px) rotateZ(180deg) rotateX(-11deg); } .die .face:nth-child(9) { -webkit-transform: rotateY(144deg) translateZ(75px) translateY(54.18px) rotateZ(180deg) rotateX(-11deg); transform: rotateY(144deg) translateZ(75px) translateY(54.18px) rotateZ(180deg) rotateX(-11deg); } .die .face:nth-child(10) { -webkit-transform: rotateY(72deg) translateZ(75px) translateY(54.18px) rotateZ(180deg) rotateX(-11deg); transform: rotateY(72deg) translateZ(75px) translateY(54.18px) rotateZ(180deg) rotateX(-11deg); } .die .face:nth-child(11) { -webkit-transform: rotateY(252deg) translateZ(75px) translateY(54.18px) rotateX(-11deg); transform: rotateY(252deg) translateZ(75px) translateY(54.18px) rotateX(-11deg); } .die .face:nth-child(12) { -webkit-transform: rotateY(324deg) translateZ(75px) translateY(54.18px) rotateX(-11deg); transform: rotateY(324deg) translateZ(75px) translateY(54.18px) rotateX(-11deg); } .die .face:nth-child(13) { -webkit-transform: rotateY(396deg) translateZ(75px) translateY(54.18px) rotateX(-11deg); transform: rotateY(396deg) translateZ(75px) translateY(54.18px) rotateX(-11deg); } .die .face:nth-child(14) { -webkit-transform: rotateY(468deg) translateZ(75px) translateY(54.18px) rotateX(-11deg); transform: rotateY(468deg) translateZ(75px) translateY(54.18px) rotateX(-11deg); } .die .face:nth-child(15) { -webkit-transform: rotateY(540deg) translateZ(75px) translateY(54.18px) rotateX(-11deg); transform: rotateY(540deg) translateZ(75px) translateY(54.18px) rotateX(-11deg); } h2 { color: #fafafa; } ul { list-style: none; margin: 0; padding: 0; } ul > li { display: inline-block; margin: 10px 10px; } a { text-align: center; color: #fff; text-decoration: none; font-size: 25px; font-weight: bold; padding: 5px 15px; width: 40px; display: inline-block; border: 1px solid #dcdcdc; border-radius: 4px; background-color: #999; } a.active { background-color: #333; } a:hover { background-color: #666; } a.randomize { width: auto; margin: 20px 10px; }