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;
    }
}