JSFiddle - React, Tailwind, and code Playground
by eriiicam
HTML
<div class="object">
<span class="spinner">
loading...
</span>
</div>
CSS
/* the animation, a simple rotation */
@-moz-keyframes spinner {
0% {
-moz-transform: rotate(0deg);
}
100% {
-moz-transform: rotate(360deg);
}
}
@-webkit-keyframes spinner {
0% {
-webkit-transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
}
}
/* suppress craziness */
.object {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
overflow: hidden;
background: hsla(0,50%,15%,1);
}
/* spinner! */
.spinner {
/* position */
position: absolute;
left: 40%;
top: 40%;
/* layout */
display: block;
width: 0;
height: 0;
text-indent: -9999px;
border-radius: 9em;
border: 1em solid hsla(0,0%,0%,.5);
/* colors */
border-top-color: hsla(0,100%,50%,.5);
border-right-color: hsla(90,100%,50%,.5);
border-bottom-color: hsla(180,100%,50%,.5);
border-left-color: hsla(270,100%,50%,.5);
/* shadow */
box-shadow: hsla(0,0%,0%,1) 0 0 .125em,
hsla(0,0%,0%,.5) 0 0 .25em,
hsla(0,0%,100%,.5) -.125em 0 .25em inset;
/* animate it */
-moz-animation: spinner 1.5s linear infinite;
-webkit-animation: spinner 1.5s linear infinite;
animation: spinner 1.5s linear infinite;
}
/* gratuitous */
.spinner::before {
content: " ";
display: block;
position: absolute;
top: -1em;
right: -1em;
bottom: -1em;
left: -1em;
border-radius: 9em;
background: -moz-linear-gradient(left,hsla(0,0%,100%,.5),hsla(0,0%,100%,0)),
-moz-radial-gradient(50% 50%,cover,hsla(0,0%,0%,0),hsla(0,0%,100%,.5));
background: -webkit-linear-gradient(left,hsla(0,0%,100%,.5),hsla(0,0%,100%,0)),
-webkit-radial-gradient(50% 50%,cover,hsla(0,0%,0%,0),hsla(0,0%,100%,.5));
background: linear-gradient(left,hsla(0,0%,100%,.5),hsla(0,0%,100%,0)),
radial-gradient(50% 50%,cover,hsla(0,0%,0%,0),hsla(0,0%,100%,.5));
}