JSFiddle - React, Tailwind, and code Playground
by Anonymous
HTML
<div class="loading-effect-overlay">
<div class="loading-effect-overlay-center-container">
<div class="clear-loading loading-effect">
<span></span>
</div>
</div>
<br />
<div class="loading-effect-overlay-center-container">
<b>Loading...</b>
</div>
</div>
SCSS
/* Clear Loading */
.clear-loading {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
-o-box-sizing: border-box;
box-sizing: border-box;
display: inline-block;
margin: 0 20px;
position: relative;
text-align: center;
}
// sample here: https://jsfiddle.net/s3logic/8t1acsbk/
/* Loading Effect */
.loading-effect {
height: 100px;
width: 100px;
& > span, & > span:after, & > span:before {
border: 2px solid #fff;
border-radius: 50%;
content: "";
display: block;
left: 50%;
position: absolute;
top: 50%;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
& > span {
-webkit-animation: loading-effect 1.5s infinite linear;
-moz-animation: loading-effect 1.5s infinite linear;
-ms-animation: loading-effect 1.5s infinite linear;
-o-animation: loading-effect 1.5s infinite linear;
animation: loading-effect 1.5s infinite linear;
border-left-color: transparent;
height: 100%;
left: 0;
top: 0;
width: 100%;
}
& > span:after {
border-bottom-color: transparent;
height: 50%;
width: 50%;
}
& > span:before {
border-right-color: transparent;
height: 75%;
width: 75%;
}
&-overlay {
@include flexbox;
@include flex-direction(column);
@include justify-content(center);
background-color: rgb(0, 0, 0);
-ms-border-radius: 5px;
border-radius: 5px;
bottom: 0;
left: 0;
-ms-opacity: 0.75;
opacity: 0.75;
position: fixed;
right: 0;
top: 0;
z-index: 99999;
}
&-overlay-center-container {
...
JavaScript
/*
* Title: Pure CSS3 Menu
* Author: Clear
* Version: 1.0.0
* Create: 2015-06-05
* Update: 2015-06-15
* http://www.ClearDesign.me
*/
/* Clear Loading */
.clear-loading {
text-align: center;
margin: 0 20px;
position: relative;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
-o-box-sizing: border-box;
box-sizing: border-box;
display: inline-block;
}
/* Loading Effect */
.loading-effect {
width: 100px;
height: 100px;
}
.loading-effect > span,
.loading-effect > span:before,
.loading-effect > span:after {
content: "";
display: block;
border-radius: 50%;
border: 2px solid #fff;
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.loading-effect > span {
width: 100%;
height: 100%;
top: 0;
left: 0;
border-left-color: transparent;
-webkit-animation: loading-effect 1.5s infinite linear;
-moz-animation: loading-effect 1.5s infinite linear;
-ms-animation: loading-effect 1.5s infinite linear;
-o-animation: loading-effect 1.5s infinite linear;
animation: loading-effect 1.5s infinite linear;
}
.loading-effect > span:before {
width: 75%;
height: 75%;
border-right-color: transparent;
}
.loading-effect > span:after {
width: 50%;
height: 50%;
border-bottom-color: transparent;
}
.loading-effect-overlay {
left: 0;
top: 0;
right: 0;
bottom: 0px;
display: flex;
position: fixed;
z-index: 99999;
-ms-opacity: 0.75;
opacity: 0.75;
-ms-border-radius: 5px;
border-radius: 5px;
flex-direction: column;
justify-content: center;
background-color: rgb(0, 0, 0);
}
.loading-effect-overlay-center-container {
display: flex;
flex-direction: row;
justify-content: center;
color: white;
}
@-webkit-keyframes...