<div id = 'loader_1'>
  <span></span>
  <span></span>
  <span></span>
  <span></span>
</div>
body {
  background-color: #e9f3f5;
  min-height: 100%;
}

#loader_1 {
  position: absolute;
  left: 45%;
  top: 45%;
  width: 100px;
  height: 100px;
}

#loader_1 span {
  display: block;
  width: 50px;
  height: 50px;
  position: absolute;
}

#loader_1 span:nth-child(1) {
  -webkit-border-radius: 100px 0 0 0;
  -moz-border-radius: 100px 0 0 0;
  -ms-border-radius: 100px 0 0 0;
  -o-border-radius: 100px 0 0 0;
  border-radius: 100px 0 0 0;
  background: #54acd2;
  -webkit-animation: loader_1_1 3s infinite;
  -moz-animation: loader_1_1 3s infinite;
  -ms-animation: loader_1_1 3s infinite;
  -o-animation: loader_1_1 3s infinite;
  animation: loader_1_1 3s infinite;
  -webkit-animation: loader_1_1 3s infinite;
  -moz-animation: loader_1_1 3s infinite;
  -ms-animation: loader_1_1 3s infinite;
  -o-animation: loader_1_1 3s infinite;
  animation: loader_1_1 3s infinite;
  -webkit-animation: loader_1_1 3s infinite;
  -moz-animation: loader_1_1 3s infinite;
  -ms-animation: loader_1_1 3s infinite;
  -o-animation: loader_1_1 3s infinite;
  animation: loader_1_1 3s infinite;
  -webkit-animation: loader_1_1 3s infinite;
  -moz-animation: loader_1_1 3s infinite;
  -ms-animation: loader_1_1 3s infinite;
  -o-animation: loader_1_1 3s infinite;
  animation: loader_1_1 3s infinite;
  -webkit-animation: loader_1_1 3s infinite;
  -moz-animation: loader_1_1 3s infinite;
  -ms-animation: loader_1_1 3s infinite;
  -o-animation: loader_1_1 3s infinite;
  animation: loader_1_1 3s infinite;
}

#loader_1 span:nth-child(2) {
  left: 50px;
  -webkit-border-radius: 0 100px 0 0;
  -moz-border-radius: 0 100px 0 0;
  -ms-border-radius: 0 100px 0 0;
  -o-border-radius: 0 100px 0 0;
  border-radius: 0 100px 0 0;
  background: #e14a39;
  -webkit-animation: loader_1_2 3s infinite;
  -moz-animation: loader_1_2 3s infinite;
  -ms-animation: loader_1_2 3s infinite;
  -o-animation: loader_1_2 3s infinite;
  animation: loader_1_2 3s infinite;
  -webkit-animation: loader_1_2 3s infinite;
  -moz-animation: loader_1_2 3s infinite;
  -ms-animation: loader_1_2 3s infinite;
  -o-animation: loader_1_2 3s infinite;
  animation: loader_1_2 3s infinite;
  -webkit-animation: loader_1_2 3s infinite;
  -moz-animation: loader_1_2 3s infinite;
  -ms-animation: loader_1_2 3s infinite;
  -o-animation: loader_1_2 3s infinite;
  animation: loader_1_2 3s infinite;
  -webkit-animation: loader_1_2 3s infinite;
  -moz-animation: loader_1_2 3s infinite;
  -ms-animation: loader_1_2 3s infinite;
  -o-animation: loader_1_2 3s infinite;
  animation: loader_1_2 3s infinite;
}

#loader_1 span:nth-child(3) {
  top: 50px;
  -webkit-border-radius: 0 0 0 100px;
  -moz-border-radius: 0 0 0 100px;
  -ms-border-radius: 0 0 0 100px;
  -o-border-radius: 0 0 0 100px;
  border-radius: 0 0 0 100px;
  background: #fcc312;
  -webkit-animation: loader_1_3 3s infinite;
  -moz-animation: loader_1_3 3s infinite;
  -ms-animation: loader_1_3 3s infinite;
  -o-animation: loader_1_3 3s infinite;
  animation: loader_1_3 3s infinite;
  -webkit-animation: loader_1_3 3s infinite;
  -moz-animation: loader_1_3 3s infinite;
  -ms-animation: loader_1_3 3s infinite;
  -o-animation: loader_1_3 3s infinite;
  animation: loader_1_3 3s infinite;
  -webkit-animation: loader_1_3 3s infinite;
  -moz-animation: loader_1_3 3s infinite;
  -ms-animation: loader_1_3 3s infinite;
  -o-animation: loader_1_3 3s infinite;
  animation: loader_1_3 3s infinite;
  -webkit-animation: loader_1_3 3s infinite;
  -moz-animation: loader_1_3 3s infinite;
  -ms-animation: loader_1_3 3s infinite;
  -o-animation: loader_1_3 3s infinite;
  animation: loader_1_3 3s infinite;
}

#loader_1 span:nth-child(4) {
  top: 50px;
  left: 50px;
  -webkit-border-radius: 0 0 100px 0;
  -moz-border-radius: 0 0 100px 0;
  -ms-border-radius: 0 0 100px 0;
  -o-border-radius: 0 0 100px 0;
  border-radius: 0 0 100px 0;
  background: #1bbc9b;
  -webkit-animation: loader_1_4 3s infinite;
  -moz-animation: loader_1_4 3s infinite;
  -ms-animation: loader_1_4 3s infinite;
  -o-animation: loader_1_4 3s infinite;
  animation: loader_1_4 3s infinite;
  -webkit-animation: loader_1_4 3s infinite;
  -moz-animation: loader_1_4 3s infinite;
  -ms-animation: loader_1_4 3s infinite;
  -o-animation: loader_1_4 3s infinite;
  animation: loader_1_4 3s infinite;
  -webkit-animation: loader_1_4 3s infinite;
  -moz-animation: loader_1_4 3s infinite;
  -ms-animation: loader_1_4 3s infinite;
  -o-animation: loader_1_4 3s infinite;
  animation: loader_1_4 3s infinite;
  -webkit-animation: loader_1_4 3s infinite;
  -moz-animation: loader_1_4 3s infinite;
  -ms-animation: loader_1_4 3s infinite;
  -o-animation: loader_1_4 3s infinite;
  animation: loader_1_4 3s infinite;
}

@keyframes loader_1_1 {
  0% {
  -webkit-transform: translateX(0px) translateY(0px) rotate(0deg);
  -moz-transform: translateX(0px) translateY(0px) rotate(0deg);
  -ms-transform: translateX(0px) translateY(0px) rotate(0deg);
  -o-transform: translateX(0px) translateY(0px) rotate(0deg);
  transform: translateX(0px) translateY(0px) rotate(0deg);
}

15% {
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  -ms-border-radius: 50px;
  -o-border-radius: 50px;
  border-radius: 50px;
}

30% {
  -webkit-transform: translateX(-100px) translateY(-100px) rotate(-720deg);
  -moz-transform: translateX(-100px) translateY(-100px) rotate(-720deg);
  -ms-transform: translateX(-100px) translateY(-100px) rotate(-720deg);
  -o-transform: translateX(-100px) translateY(-100px) rotate(-720deg);
  transform: translateX(-100px) translateY(-100px) rotate(-720deg);
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  -ms-border-radius: 50px;
  -o-border-radius: 50px;
  border-radius: 50px;
}

70% {
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  -ms-border-radius: 50px;
  -o-border-radius: 50px;
  border-radius: 50px;
}

75% {
  -webkit-transform: translateX(0px) translateY(0px);
  -moz-transform: translateX(0px) translateY(0px);
  -ms-transform: translateX(0px) translateY(0px);
  -o-transform: translateX(0px) translateY(0px);
  transform: translateX(0px) translateY(0px);
  -webkit-border-radius: 100px 0 0 0;
  -moz-border-radius: 100px 0 0 0;
  -ms-border-radius: 100px 0 0 0;
  -o-border-radius: 100px 0 0 0;
  border-radius: 100px 0 0 0;
}
}

@keyframes loader_1_2 {
  0% {
  -webkit-transform: translateX(0px) translateY(0px) rotate(0deg);
  -moz-transform: translateX(0px) translateY(0px) rotate(0deg);
  -ms-transform: translateX(0px) translateY(0px) rotate(0deg);
  -o-transform: translateX(0px) translateY(0px) rotate(0deg);
  transform: translateX(0px) translateY(0px) rotate(0deg);
}

15% {
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  -ms-border-radius: 50px;
  -o-border-radius: 50px;
  border-radius: 50px;
}

30% {
  -webkit-transform: translateX(100px) translateY(-100px) rotate(720deg);
  -moz-transform: translateX(100px) translateY(-100px) rotate(720deg);
  -ms-transform: translateX(100px) translateY(-100px) rotate(720deg);
  -o-transform: translateX(100px) translateY(-100px) rotate(720deg);
  transform: translateX(100px) translateY(-100px) rotate(720deg);
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  -ms-border-radius: 50px;
  -o-border-radius: 50px;
  border-radius: 50px;
}

70% {
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  -ms-border-radius: 50px;
  -o-border-radius: 50px;
  border-radius: 50px;
}

75% {
  -webkit-transform: translateX(0px) translateY(0px);
  -moz-transform: translateX(0px) translateY(0px);
  -ms-transform: translateX(0px) translateY(0px);
  -o-transform: translateX(0px) translateY(0px);
  transform: translateX(0px) translateY(0px);
  -webkit-border-radius: 0 100px 0 0;
  -moz-border-radius: 0 100px 0 0;
  -ms-border-radius: 0 100px 0 0;
  -o-border-radius: 0 100px 0 0;
  border-radius: 0 100px 0 0;
}
}

@keyframes loader_1_3 {
  0% {
  -webkit-transform: translateX(0px) translateY(0px) rotate(0deg);
  -moz-transform: translateX(0px) translateY(0px) rotate(0deg);
  -ms-transform: translateX(0px) translateY(0px) rotate(0deg);
  -o-transform: translateX(0px) translateY(0px) rotate(0deg);
  transform: translateX(0px) translateY(0px) rotate(0deg);
}

15% {
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  -ms-border-radius: 50px;
  -o-border-radius: 50px;
  border-radius: 50px;
}

30% {
  -webkit-transform: translateX(-100px) translateY(100px) rotate(-720deg);
  -moz-transform: translateX(-100px) translateY(100px) rotate(-720deg);
  -ms-transform: translateX(-100px) translateY(100px) rotate(-720deg);
  -o-transform: translateX(-100px) translateY(100px) rotate(-720deg);
  transform: translateX(-100px) translateY(100px) rotate(-720deg);
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  -ms-border-radius: 50px;
  -o-border-radius: 50px;
  border-radius: 50px;
}

70% {
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  -ms-border-radius: 50px;
  -o-border-radius: 50px;
  border-radius: 50px;
}

75% {
  -webkit-transform: translateX(0px) translateY(0px);
  -moz-transform: translateX(0px) translateY(0px);
  -ms-transform: translateX(0px) translateY(0px);
  -o-transform: translateX(0px) translateY(0px);
  transform: translateX(0px) translateY(0px);
  -webkit-border-radius: 0 0 0 100px;
  -moz-border-radius: 0 0 0 100px;
  -ms-border-radius: 0 0 0 100px;
  -o-border-radius: 0 0 0 100px;
  border-radius: 0 0 0 100px;
}
}

@keyframes loader_1_4 {
  0% {
  -webkit-transform: translateX(0px) translateY(0px) rotate(0deg);
  -moz-transform: translateX(0px) translateY(0px) rotate(0deg);
  -ms-transform: translateX(0px) translateY(0px) rotate(0deg);
  -o-transform: translateX(0px) translateY(0px) rotate(0deg);
  transform: translateX(0px) translateY(0px) rotate(0deg);
}

15% {
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  -ms-border-radius: 50px;
  -o-border-radius: 50px;
  border-radius: 50px;
}

30% {
  -webkit-transform: translateX(100px) translateY(100px) rotate(-720deg);
  -moz-transform: translateX(100px) translateY(100px) rotate(-720deg);
  -ms-transform: translateX(100px) translateY(100px) rotate(-720deg);
  -o-transform: translateX(100px) translateY(100px) rotate(-720deg);
  transform: translateX(100px) translateY(100px) rotate(-720deg);
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  -ms-border-radius: 50px;
  -o-border-radius: 50px;
  border-radius: 50px;
}

70% {
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  -ms-border-radius: 50px;
  -o-border-radius: 50px;
  border-radius: 50px;
}

75% {
  -webkit-transform: translateX(0px) translateY(0px);
  -moz-transform: translateX(0px) translateY(0px);
  -ms-transform: translateX(0px) translateY(0px);
  -o-transform: translateX(0px) translateY(0px);
  transform: translateX(0px) translateY(0px);
  -webkit-border-radius: 0 0 100px 0;
  -moz-border-radius: 0 0 100px 0;
  -ms-border-radius: 0 0 100px 0;
  -o-border-radius: 0 0 100px 0;
  border-radius: 0 0 100px 0;
}
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.