JSFiddle - React, Tailwind, and code Playground

by Keith Jeter

HTML

<div class="wing">
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
</div>
<div class="wing">
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
  <div class="feather"></div>
</div>

CSS

html, body {
  background: #fff;
  position: relative;
  width: 100%;
  height: 100%;
  margin: 0;
}

.wing {
  position: absolute;
  top: 50%;
  left: calc(50% - 20px);
  width: 40px;
  height: 100px;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}
.wing:nth-child(2) {
  -webkit-transform: rotateY(180deg) translate(-50%, -50%);
  transform: rotateY(180deg) translate(-50%, -50%);
}

.feather {
  height: 100px;
  width: 20px;
  position: absolute;
  border-bottom-right-radius: 100%;
  border-top-left-radius: 100%;
  -webkit-transform-origin: top left;
  transform-origin: top left;
  background-color: #00ccff;
  background-image: -webkit-linear-gradient(bottom, #00ccff, #e6f5ff);
  background-image: -webkit-linear-gradient(bottom,#00ccff, #e6f5ff);
  background-image: linear-gradient(to top,#00ccff, #e6f5ff);
}
.feather:nth-of-type(1) {
  height: 105px;
  -webkit-transform: rotate(0deg) translateY(0px);
  transform: rotate(0deg) translateY(0px);
  -webkit-animation: wave1 3s infinite;
  animation: wave1 3s infinite;
}
@-webkit-keyframes wave1 {
  50% {
    -webkit-transform: rotate(0deg) translateY(2px);
  }
}
@keyframes wave1 {
  50% {
    -webkit-transform: rotate(0deg) translateY(2px);
    transform: rotate(0deg) translateY(2px);
  }
}
.feather:nth-of-type(2) {
  height: 110px;
  -webkit-transform: rotate(0deg) translateY(0px);
  transform: rotate(0deg) translateY(0px);
  -webkit-animation: wave2 3s infinite;
  animation: wave2 3s infinite;
}
@-webkit-keyframes wave2 {
  50% {
    -webkit-transform: rotate(5deg) translateY(4px);
  }
}
@keyframes wave2 {
  50% {
    -webkit-transform: rotate(5deg) translateY(4px);
    transform: rotate(5deg) translateY(4px);
  }
}
.feather:nth-of-type(3) {
  height: 115px;
  -webkit-transform: rotate(0deg) translateY(0px);
  transform: rotate(0deg) translateY(0px);
  -webkit-animation: wave3 2s infinite;
  animation: wave3 3s infinite;
}
@-webkit-keyframes wave3 {
  50% {
    -webkit-transform:...