JSFiddle - React, Tailwind, and code Playground

by Raghvendra Singh

HTML

<div class="holder">
	<div class="circle"></div>
	<div class="circle"></div>
	<div class="circle"></div>
	<div class="circle"></div>
	<div class="circle"></div>
	<div class="circle"></div>
	<div class="circle"></div>
	<div class="circle"></div>
	<div class="circle"></div>
	<div class="circle"></div>
	<div class="circle"></div>
	<div class="circle"></div>
	<div class="circle"></div>
	<div class="circle"></div>
	<div class="circle"></div>
	<div class="circle"></div>
</div>

CSS

body {
  overflow: hidden;
}

.holder {
  width: 500px;
  height: 250px;
  position: relative;
}
.holder .circle {
  border-radius: 100% 100% 0 0;
  position: absolute;
  bottom: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
          transform: translateX(-50%);
  -webkit-transform-origin: bottom center;
      -ms-transform-origin: bottom center;
          transform-origin: bottom center;
}
.holder .circle:nth-child(1) {
  background: black;
  border-bottom: none;
  border-radius: 25px 25px 0 0;
  width: 25px;
  height: 12.5px;
  z-index: 15;
  -webkit-animation: circle-1 10s infinite ease-in-out;
          animation: circle-1 10s infinite ease-in-out;
}
@-webkit-keyframes circle-1 {
  0% {
    -webkit-transform: translateX(-50%) rotate(0deg);
            transform: translateX(-50%) rotate(0deg);
  }
  100% {
    -webkit-transform: translateX(-50%) rotate(-360deg);
            transform: translateX(-50%) rotate(-360deg);
  }
}
@keyframes circle-1 {
  0% {
    -webkit-transform: translateX(-50%) rotate(0deg);
            transform: translateX(-50%) rotate(0deg);
  }
  100% {
    -webkit-transform: translateX(-50%) rotate(-360deg);
            transform: translateX(-50%) rotate(-360deg);
  }
}
.holder .circle:nth-child(2) {
  border: 13px solid black;
  border-bottom: none;
  border-radius: 31px 31px 0 0;
  width: 31px;
  height: 15.5px;
  z-index: 14;
  -webkit-animation: circle-2 10s infinite ease-in-out;
          animation: circle-2 10s infinite ease-in-out;
}
@-webkit-keyframes circle-2 {
  0% {
    -webkit-transform: translateX(-50%) rotate(0deg);
            transform: translateX(-50%) rotate(0deg);
  }
  100% {
    -webkit-transform: translateX(-50%) rotate(-720deg);
            transform: translateX(-50%) rotate(-720deg);
  }
}
@keyframes circle-2 {
  0% {
    -webkit-transform: translateX(-50%) rotate(0deg);
            transform: translateX(-50%) rotate(0deg);
  }
  100% {
    -webkit-transform:...