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