Google loader

by Andrey Izman

HTML

<div class="hg3Lgc qs41qe" data-loadingmessage="Loading..." jscontroller="GFartf" jsaction="animationend:kWijWc;dyRcpb:dyRcpb" data-active="true"><div class="eBrXtc" aria-live="polite" jsname="vyyg5">Loading...</div><div jsname="Hxlbvc" class="JdM54e"><div class="aopPX ZqnFk co39ub"><div class="e2XBBf uEtL3"><div class="kPEoYc GOJTSe"></div></div><div class="LqC3Y"><div class="kPEoYc GOJTSe"></div></div><div class="e2XBBf QR7YS"><div class="kPEoYc GOJTSe"></div></div></div><div class="aopPX fxjES Cn087"><div class="e2XBBf uEtL3"><div class="kPEoYc GOJTSe"></div></div><div class="LqC3Y"><div class="kPEoYc GOJTSe"></div></div><div class="e2XBBf QR7YS"><div class="kPEoYc GOJTSe"></div></div></div><div class="aopPX ZHXbZe hfsr6b"><div class="e2XBBf uEtL3"><div class="kPEoYc GOJTSe"></div></div><div class="LqC3Y"><div class="kPEoYc GOJTSe"></div></div><div class="e2XBBf QR7YS"><div class="kPEoYc GOJTSe"></div></div></div><div class="aopPX fDBOYb EjXFBf"><div class="e2XBBf uEtL3"><div class="kPEoYc GOJTSe"></div></div><div class="LqC3Y"><div class="kPEoYc GOJTSe"></div></div><div class="e2XBBf QR7YS"><div class="kPEoYc GOJTSe"></div></div></div></div></div>

CSS

.hg3Lgc {
    display: inline-block;
    position: relative;
    width: 28px;
    height: 28px
}

.eBrXtc {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden
}

.JdM54e {
    width: 100%;
    height: 100%
}

.hg3Lgc.qs41qe .JdM54e {
    animation: spinner-container-rotate 1568ms linear infinite
}

.aopPX {
    position: absolute;
    width: 100%;
    height: 100%;
    opacity: 0
}

.ZqnFk {
    border-color: #4285f4
}

.fxjES {
    border-color: #db4437
}

.ZHXbZe {
    border-color: #f4b400
}

.fDBOYb {
    border-color: #0f9d58
}

.hg3Lgc.qs41qe .aopPX.ZqnFk {
    animation: spinner-fill-unfill-rotate 5332ms cubic-bezier(0.4,0.0,0.2,1) infinite both,spinner-blue-fade-in-out 5332ms cubic-bezier(0.4,0.0,0.2,1) infinite both
}

.hg3Lgc.qs41qe .aopPX.fxjES {
    animation: spinner-fill-unfill-rotate 5332ms cubic-bezier(0.4,0.0,0.2,1) infinite both,spinner-red-fade-in-out 5332ms cubic-bezier(0.4,0.0,0.2,1) infinite both
}

.hg3Lgc.qs41qe .aopPX.ZHXbZe {
    animation: spinner-fill-unfill-rotate 5332ms cubic-bezier(0.4,0.0,0.2,1) infinite both,spinner-yellow-fade-in-out 5332ms cubic-bezier(0.4,0.0,0.2,1) infinite both
}

.hg3Lgc.qs41qe .aopPX.fDBOYb {
    animation: spinner-fill-unfill-rotate 5332ms cubic-bezier(0.4,0.0,0.2,1) infinite both,spinner-green-fade-in-out 5332ms cubic-bezier(0.4,0.0,0.2,1) infinite both
}

.LqC3Y {
    position: absolute;
    box-sizing: border-box;
    top: 0;
    left: 45%;
    width: 10%;
    height: 100%;
    overflow: hidden;
    border-color: inherit
}

.LqC3Y .kPEoYc {
    width: 1000%;
    left: -450%
}

.e2XBBf {
    display: inline-block;
    position: relative;
    width: 50%;
    height: 100%;
    overflow: hidden;
    border-color: inherit
}

.e2XBBf .kPEoYc {
    width: 200%
}

.kPEoYc {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    box-sizing: border-box;
    height: 100%;
    border-width: 3px;
    border-style: solid;
    border-color: inherit;
   ...