Eating Pizza CSS

HTML
<div class='pizza'> <div class='slice'></div> <div class='slice'></div> <div class='slice'></div> <div class='slice'></div> <div class='slice'></div> <div class='slice'></div> <div class='slice'></div> <div class='slice'></div> <div class='slice'></div> <div class='slice'></div> <div class='slice'></div> <div class='slice'></div> <div class='slice'></div> </div>
SCSS
$number: 12; $cheese: #ffdc73; $crust: #bbb083; $roni: #cc333f; @mixin size($h: 100%, $w: 100%) { height: $h; width: $w; } body { &:before{ content:''; position:absolute; top:50%; left:50%; transform:translateX(-50%) translateY(-50%); width:15vmin; height:2vmin; background:darken($roni, 15%); margin-top:17.5vmin; filter:blur(10px); border-radius:100%; } @include size(100vh, 100vw); align-items: center; display: flex; justify-content: center; margin: 0; overflow: hidden; background:radial-gradient(circle at center, $roni, darken($roni, 20%)); p{ position:absolute; bottom:10px; right:10px; color:#fff; font-size:10px; } .pizza { @include size(20vmin, 20vmin); align-items: center; background: none; position:relative; animation:rotate 13s linear infinite; @keyframes rotate{ to{ transform:rotate(360deg); } } .slice{ z-index:-1; overflow:visible; position:absolute; width: 0; height: 0; border-style: solid; border-width: 10vmin 2.75vmin 0 2.75vmin; border-color: $cheese transparent transparent transparent; left:7.5vmin; top:0; transform-origin:50% 100%; transform:rotate(0deg); animation:loading 1.8125s ease-in-out infinite; @keyframes loading{ 0%{ opacity:1; } 49%{ opacity:1; } 50%{ opacity:0; } 99%{ opacity:0; } 100%{ opacity:1; } } &:nth-of-type(2n){ &:after{ box-shadow:0.5vmin 2.5vmin 0 $roni; } } &:nth-of-type(4n){ &:after{ box-shadow:0.5vmin 2.5vmin 0 $roni, 1.5vmin 5vmin 0 $roni; } } @for $i from 1 through $number { &:nth-of-type(#{$i}) { transform:rotate(-#{$i * 27.75}deg); animation-delay:#{-$i / 16}s; } } &:before{ content:''; position:absolute; height:1.5vmin; width:6vmin; background:$crust; top:-10.5vmin; left:-3vmin; border-radius:100vmin 100vmin 0.5vmin 0.5vmin / 50vmin 50vmin; } &:after{ content:''; border-radius:100%; position:absolute; width:1.25vmin; height:1.25vmin; background:$roni; left:-1vmin; top:-7vmin; z-index:2; } } } }
JAVASCRIPT
Expand for more options Login