Owl by
zlyfenek
On: 11 Oct 2016
Personal site: http://codepen.io/zlyfenek
<div class="owl">
<div class="wings"></div>
<div class="oBody">
<ul class="paws">
<li></li>
<li></li>
</ul>
</div>
<div class="head">
<ul class="eyes">
<li><span class="eyebrow"></span>
<span class="eyebrow"></span>
<span class="eyebrow"></span>
</li>
<li><span class="eyebrow"></span>
<span class="eyebrow"></span>
<span class="eyebrow"></span>
</li>
</ul>
<ul class="beak">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
</div>
<div class="owl">
<div class="wings"></div>
<div class="oBody">
<ul class="paws">
<li></li>
<li></li>
</ul>
</div>
<div class="head">
<ul class="eyes">
<li><span class="eyebrow"></span>
<span class="eyebrow"></span>
<span class="eyebrow"></span>
</li>
<li><span class="eyebrow"></span>
<span class="eyebrow"></span>
<span class="eyebrow"></span>
</li>
</ul>
<ul class="beak">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
</div>
<div class="owl">
<div class="wings"></div>
<div class="oBody">
<ul class="paws">
<li></li>
<li></li>
</ul>
</div>
<div class="head">
<ul class="eyes">
<li><span class="eyebrow"></span>
<span class="eyebrow"></span>
<span class="eyebrow"></span>
</li>
<li><span class="eyebrow"></span>
<span class="eyebrow"></span>
<span class="eyebrow"></span>
</li>
</ul>
<ul class="beak">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
</div>
@-webkit-keyframes blink {
30%,
70% {
height: 16vh;
margin: 0;
}
50% {
height: 0;
margin: 8vh auto;
}
}
@keyframes blink {
30%,
70% {
height: 16vh;
margin: 0;
}
50% {
height: 0;
margin: 8vh auto;
}
}
html,
body {
width: 100vw;
height: 100vh;
background: #2b3058;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
box-sizing: border-box;
-webkit-perspective: 300vh;
perspective: 300vh;
}
ul {
list-style: none;
}
.owl {
position: relative;
}
.owl > * {
position: absolute;
}
.oBody {
background: -webkit-radial-gradient(#4a3423 40%, #000000);
background: radial-gradient(#4a3423 40%, #000000);
background-size: 60vh;
width: 30vh;
height: 40vh;
border-radius: 50vh / 80vh;
}
.wings {
background: -webkit-radial-gradient(#af632b 40%, #000000);
background: radial-gradient(#af632b 40%, #000000);
background-size: 60vh;
width: 35vh;
height: 30vh;
border-radius: 50vh / 80vh;
margin: 4vh -2.5vh;
}
.wings::after {
content: "";
background: -webkit-radial-gradient(#af632b 40%, #000000);
background: radial-gradient(#af632b 40%, #000000);
background-size: 60vh;
position: absolute;
width: 36vh;
height: 20vh;
border-radius: 80vh / 80vh;
margin: 0 -0.6vh;
}
.head {
background: -webkit-radial-gradient(#4a3423 40%, #000000);
background: radial-gradient(#4a3423 40%, #000000);
background-size: 80vh;
top: -30vh;
left: -5vh;
width: 40vh;
height: 40vh;
border-radius: 20vh;
-webkit-transform-origin: 20vh 35vh;
transform-origin: 20vh 35vh;
}
.eyes li {
top: 10vh;
position: absolute;
background: white;
border-radius: 8vh;
height: 16vh;
width: 16vh;
}
.eyes li:nth-of-type(1) {
left: 3vh;
-webkit-animation: blink 5s infinite cubic-bezier(0, 0.98, 0, 0.98);
animation: blink 5s infinite cubic-bezier(0, 0.98, 0, 0.98);
}
.eyes li:nth-of-type(2) {
right: 3vh;
-webkit-transform: rotateY(180deg);
transform: rotateY(180deg);
}
.eyes li span:nth-of-type(2) {
left: 2.5vh;
}
.eyes li span:nth-of-type(3) {
left: 5vh;
}
.eyes li::after {
content: '';
position: absolute;
top: 25%;
left: 25%;
width: 50%;
height: 50%;
background: -webkit-radial-gradient(#000000 20%, #008000 50%, #000000 100%);
background: radial-gradient(#000000 20%, #008000 50%, #000000 100%);
border-radius: 50%;
}
.eyebrow {
position: absolute;
top: -7vh;
width: 3vh;
height: 7vh;
border-bottom-right-radius: 30px;
border-right: 1.5vh solid #af632b;
-webkit-transform: rotate(100deg);
transform: rotate(100deg);
}
.beak li {
width: 0;
height: 0;
position: absolute;
bottom: 6vh;
left: 18vh;
}
.beak :nth-of-type(1) {
border-right: 2vh solid #7d5c02;
border-bottom: 4vh solid transparent;
}
.beak :nth-of-type(2) {
border-right: 2vh solid #c89403;
border-top: 2vh solid transparent;
bottom: 10vh;
}
.beak :nth-of-type(3) {
border-left: 2vh solid #966e02;
border-bottom: 4vh solid transparent;
left: 20vh;
}
.beak :nth-of-type(4) {
border-left: 2vh solid #fcc735;
border-top: 2vh solid transparent;
bottom: 10vh;
left: 20vh;
}
.paws li {
position: absolute;
display: block;
width: 8vh;
height: 4vh;
bottom: 0;
background: -webkit-radial-gradient(#af632b 40%, #000000) 1vh;
background: radial-gradient(#af632b 40%, #000000) 1vh;
background-size: 20vh;
border-radius: 6vh 6vh 0 0;
}
.paws li:nth-of-type(1) {
left: 2vh;
}
.paws li:nth-of-type(2) {
right: 2vh;
}
.owl:nth-of-type(1) {
-webkit-transform: translateX(40vh) translateZ(-50vh);
transform: translateX(40vh) translateZ(-50vh);
}
@-webkit-keyframes turn-80deg {
0%,
75% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
25%,
50% {
-webkit-transform: rotate(80deg);
transform: rotate(80deg);
}
}
@keyframes turn-80deg {
0%,
75% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
25%,
50% {
-webkit-transform: rotate(80deg);
transform: rotate(80deg);
}
}
.owl:nth-of-type(1) .head {
-webkit-animation: turn-80deg 12s 2s infinite;
animation: turn-80deg 12s 2s infinite;
-webkit-animation-delay: 4s;
animation-delay: 4s;
}
.owl:nth-of-type(2) {
-webkit-transform: translateX(0) translateZ(0);
transform: translateX(0) translateZ(0);
}
@-webkit-keyframes turn--80deg {
0%,
75% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
25%,
50% {
-webkit-transform: rotate(-80deg);
transform: rotate(-80deg);
}
}
@keyframes turn--80deg {
0%,
75% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
25%,
50% {
-webkit-transform: rotate(-80deg);
transform: rotate(-80deg);
}
}
.owl:nth-of-type(2) .head {
-webkit-animation: turn--80deg 12s 2s infinite;
animation: turn--80deg 12s 2s infinite;
-webkit-animation-delay: 0;
animation-delay: 0;
}
.owl:nth-of-type(3) {
-webkit-transform: translateX(-40vh) translateZ(-100vh);
transform: translateX(-40vh) translateZ(-100vh);
}
@keyframes turn--80deg {
0%,
75% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
25%,
50% {
-webkit-transform: rotate(-80deg);
transform: rotate(-80deg);
}
}
.owl:nth-of-type(3) .head {
-webkit-animation: turn--80deg 12s 2s infinite;
animation: turn--80deg 12s 2s infinite;
-webkit-animation-delay: 5s;
animation-delay: 5s;
}
.branch {
width: 150vh;
height: 5vh;
background: -webkit-linear-gradient(#4a3423 30%, black);
background: linear-gradient(#4a3423 30%, black);
-webkit-transform: rotateY(-35deg) translateZ(100vh);
transform: rotateY(-35deg) translateZ(100vh);
position: absolute;
bottom: 26vh;
right: 30vw;
}
14