HTML
<div class="jake">
<div class="face">
<div class="eye">
<div class="cheek-left"></div>
</div>
<div class="eye">
<div class="cheek-right"></div>
</div>
<div class="mustache">
<div class="nose"></div>
<div class="mouth">
<div class="tooth-left"></div>
<div class="tooth-center"></div>
<div class="tooth-right"></div>
<div class="tongue"></div>
</div>
<div class="mustache-cut"></div>
</div>
</div>
<div class="arms">
<div class="arm">
<div class="finger-left"></div>
<div class="finger-center"></div>
<div class="finger-right"></div>
</div>
<div class="arm">
<div class="finger-left"></div>
<div class="finger-center"></div>
<div class="finger-right"></div>
</div>
</div>
</div>
CSS
body {
background: #f5bf3f;
display: flex;
justify-content: center;
}
.jake {
padding-top: 50px;
}
.face {
background: #f5bf3f;
width: 400px;
display: flex;
justify-content: space-between;
position: relative;
}
.eye {
background: #000;
width: 150px;
height: 150px;
border-radius: 50%;
position: relative;
}
.eye:after {
background: #fff;
width: 90px;
height: 90px;
border-radius: 50%;
position: absolute;
top: 10px;
right: 13px;
content: "";
animation: shake .1s infinite ease-in-out alternate;
}
.eye:before {
background: #fff;
width: 50px;
height: 50px;
border-radius: 50%;
position: absolute;
bottom: 10px;
left: 25px;
content: "";
animation: shake .1s infinite ease-in-out alternate;
}
@keyframes shake {
from { transform: translateX(-1px) }
to { transform: translateX(1px) }
}
.cheek-left {
border-top: 4px solid #000;
background: #f5bf3f;
width: 150px;
height: 60px;
border-radius: 50%;
position: absolute;
bottom: -45px;
right: 0px;
}
.cheek-left:before {
border-bottom: 4px solid #000;
background: #f5bf3f;
width: 60px;
height: 5px;
border-radius: 50%;
position: relative;
margin-top: 20px;
margin-left: 30px;
display: inline-block;
content: "";
}
.cheek-right {
border-top: 4px solid #000;
background: #f5bf3f;
width: 150px;
height: 60px;
border-radius: 50%;
position: absolute;
bottom: -45px;
right: 0px;
text-align: right;
}
.cheek-right:before {
border-bottom: 4px solid #000;
background: #f5bf3f;
width: 60px;
height: 5px;
border-radius: 50%;
position: relative;
margin-top: 20px;
margin-right: 30px;
display: inline-block;
content: "";
}
.mustache {
border: 4px solid #000;
border-bottom: 0;
width: 200px;
height: 200px;
border-radius: 50% 50% 0 0;
position: absolute;
top: 65px;
left: 95px;
background: linear-gradient(to bottom, #f5bf3f 50%, rgba(0,0,0,0) 50%);
}
.mustache-cut {
background: rgba(0,0,0,0,);
width: 200px;
height: 100px;
position: absolute;
bottom: -10px;
left:-6px;
z-index: 1;
border-left: 6px solid #f5bf3f;
border-right: 6px solid #f5bf3f;
}
.mustache:before {
border: 4px solid #000;
border-top: 0;
background: #f5bf3f;
width: 60px;
height: 50px;
border-radius: 0 0 50% 50%;
position: absolute;
bottom: 50px;
left: -4px;
z-index: 2;
content: "";
}
.mustache:after {
border: 4px solid #000;
border-top: 0;
background: #f5bf3f;
width: 60px;
height: 50px;
border-radius: 0 0 50% 50%;
position: absolute;
bottom: 50px;
right: -4px;
z-index: 2;
content: "";
}
.nose {
background: #000;
width: 95px;
height: 55px;
border-radius: 45%;
position: absolute;
top: 52px;
left: 52px;
z-index: 3;
}
.mouth {
border: 4px solid #000;
background: #862328;
width: 100px;
height: 100px;
border-radius: 50%;
position: absolute;
bottom: 62px;
left: 45px;
z-index: -1;
overflow: hidden;
}
.tooth-left {
border: 4px solid #000;
background: #fff;
width: 20px;
height: 20px;
border-radius: 45%;
position: absolute;
bottom: 15px;
left: 11px;
z-index: 1;
}
.tooth-center {
border: 4px solid #000;
background: #fff;
width: 20px;
height: 20px;
border-radius: 45%;
position: absolute;
bottom: 12px;
right: 35px;
z-index: 1;
}
.tooth-right {
border: 4px solid #000;
background: #fff;
width: 20px;
height: 20px;
border-radius: 45%;
position: absolute;
bottom: 15px;
right: 11px;
z-index: 1;
}
.tongue {
background: #ea6e74;
width: 40px;
height: 40px;
border-radius: 45%;
position: absolute;
bottom: -30px;
right: 20px;
z-index: 1;
}
.arms {
width: 400px;
height: 300px;
display: flex;
justify-content: space-between;
align-items: flex-end;
position: relative;
z-index: 2;
}
.arm {
width: 90px; /*Fix render bug*/
height: 200px;
border-left: 4px solid #000;
border-right: 4px solid #000;
display: flex;
animation: hands-up 1s infinite ease-in-out alternate;
}
.finger-left {
width: 30px;
height: 30px;
border: 4px solid #000;
border-bottom: 0;
border-radius: 50% 50% 0 0;
margin-top: -30px;
margin-left: -4px;
}
.finger-center {
width: 30px;
height: 30px;
border: 4px solid #000;
border-bottom: 0;
border-radius: 50% 50% 0 0;
margin-top: -30px;
margin-left: -4px;
}
.finger-right {
width: 30px;
height: 30px;
border: 4px solid #000;
border-bottom: 0;
border-radius: 50% 50% 0 0;
margin-top: -30px;
margin-left: -4px;
margin-right: -4px;
}
@keyframes hands-up {
0% { transform: translateY(0) }
100% { transform: translateY(-20px) }
}