<div class="loading">
  <span>Loading...</span>
</div>
body{
  margin: 0;
  padding: 0;
  background: #34495e;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "montserrat",sans-serif;
}

.loading{
  width: 200px;
  height: 200px;
  box-sizing: border-box;
  border-radius: 50%;
  border-top: 10px solid #e74c3c;
  position: relative;
  animation: a1 2s linear infinite;
}

.loading::before,.loading::after{
  content: '';
  width: 200px;
  height: 200px;
  position: absolute;
  left: 0;
  top: -10px;
  box-sizing: border-box;
  border-radius: 50%;
}

.loading::before{
  border-top: 10px solid #e67e22;
  transform: rotate(120deg);
}

.loading::after{
  border-top: 10px solid #3498db;
  transform: rotate(240deg);
}

.loading span{
  position: absolute;
  width: 200px;
  height: 200px;
  color: #fff;
  text-align: center;
  line-height: 200px;
  animation: a2 2s linear infinite;
}

@keyframes a1 {
  to{
    transform: rotate(360deg);
  }
}

@keyframes a2 {
  to{
    transform: rotate(-360deg);
  }
}
/*
* https://www.darkcode.info/2019/05/amazing-loading-animation-using-only.html
*/
Run Pen

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.