JSFiddle - React, Tailwind, and code Playground

by birkir

HTML

<div class="container">

    <div class="loader loader-1"><i></i><i></i><i></i><i></i></div>
    
    <hr/>

    <div class="loader loader-2"><i></i><i></i><i></i><i></i></div>

    <hr/>

    <div class="loader loader-3"><i></i><i></i><i></i><i></i><i></i></div>

</div>

CSS

.container {
    perspective: 320px;
    perspective-origin: 50% 100px;
    margin-top: 50px;
}
hr {
    border: 0;
    border-top: 1px solid #ddd;
    margin: 50px 0;
}

.loader {
    width: 64px;
    height: 64px;
    position: relative;
	transform-style: preserve-3d;
    margin: 0 auto;
}

/** LOADER 1 **/
/** -------- **/
@-webkit-keyframes loader1 {
	0% { transform: rotateX(0); }
    70% { transform: rotateX(380deg); }
	90% { transform: rotateX(340deg); }
	100% { transform: rotateX(360deg); }
}
.loader-1 {
    -webkit-animation: loader1 2000ms infinite ease-in-out;
}
.loader-1 i {
    position: absolute;
	width: 64px;
	height: 64px;
    -webkit-transform: translateZ(-32px) rotateY(180deg);
    background: #00b39f;
}
.loader-1 i + i {
    -webkit-transform: rotateX(-90deg) translateY(-32px);
	-webkit-transform-origin: top center;
    background: #214c59;
}
.loader-1 i + i + i {
    -webkit-transform: rotateX(90deg) translateY(32px);
	-webkit-transform-origin: bottom center;
    background: #00aacf;
}
.loader-1 i + i + i + i {
    -webkit-transform: translateZ(32px);
    background: #f8c66b;
}

/** LOADER 2 **/
/** -------- **/
@-webkit-keyframes loader21 {
	0% { transform: translate(0px, 0px) rotateZ(0deg); }
	30% { transform: translate(-10px, -10px) rotateZ(0deg); }
    70% { transform: translate(-10px, -10px) rotateZ(180deg); }
    100% { transform: translate(0px, 0px) rotateZ(180deg); }
}
@-webkit-keyframes loader22 {
	0% { transform: translate(0px, 0px) rotateZ(0deg); }
	30% { transform: translate(10px, -10px) rotateZ(0deg); }
    70% { transform: translate(10px, -10px) rotateZ(180deg); }
    100% { transform: translate(0px, 0px) rotateZ(180deg); }
}
@-webkit-keyframes loader23 {
	0% { transform: translate(0px, 0px) rotateZ(0deg); }
	30% { transform: translate(10px, 10px) rotateZ(0deg); }
    70% { transform: translate(10px, 10px) rotateZ(180deg); }
    100% { transform: translate(0px, 0px) rotateZ(180deg); }
}
@-webkit-keyframes loader24 {
	0% {...