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