JSFiddle - React, Tailwind, and code Playground
HTML
<div class="wrapper">
<div class="action">
<div class="cooldown a"></div>
<div class="cutoff"></div>
<div class="cooldown b"></div>
<div class="cutoff x"></div>
</div>
</div>
CSS
body {
background: #fbfbfb;
margin: 0;
}
div {
position: absolute;
}
.wrapper {
height: 162px;
left: 50%;
margin: -81px 0 0 -81px;
overflow: hidden;
top: 50%;
width: 162px;
}
.action {
background: url('http://puu.sh/aklIw/1d5ec71811.png');
border: 1px solid #3a474d;
height: 160px;
width: 160px;
}
.cooldown {
background: rgba(0,0,0,.7);
height: 240px;
left: -40px;
top: -40px;
width: 120px;
}
.cutoff {
background: url('http://puu.sh/aklIw/1d5ec71811.png');
height: 160px;
left: 0;
position: absolute;
top: 0;
width: 80px;
}
.cooldown.a {
-webkit-animation: cooldown-a 20s linear infinite;
left: 80px;
-webkit-transform-origin: left;
}
.cooldown.b {
-webkit-animation: cooldown-b 20s linear infinite;
left: -40px;
-webkit-transform-origin: right;
}
.cutoff.x {
-webkit-animation: cutoff-x 20s linear infinite;
background-position: -80px 0;
left: 80px;
visibility: hidden;
}
@-webkit-keyframes cooldown-a {
50% {
-webkit-transform: rotate(200grad);
}
100% {
-webkit-transform: rotate(200grad);
}
}
@-webkit-keyframes cooldown-b {
50% {
-webkit-transform: rotate(0);
}
100% {
-webkit-transform: rotate(200grad);
}
}
@-webkit-keyframes cutoff-x {
50% {
visibility: hidden;
}
100% {
visibility: visible;
}
}