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