JSFiddle - React, Tailwind, and code Playground
by mrnobody
HTML
<div class="wrap">
<figure class="smile">
<div class="eye"></div>
<div class="eye"></div>
<div class="mouth"></div>
<div class="glasses-diving">
<div class="nose"></div>
<div class="tube"></div>
</div>
</figure>
<div class="bubbles">
<div class="bubble"></div>
<div class="bubble"></div>
<div class="bubble"></div>
<div class="bubble"></div>
<div class="bubble"></div>
<div class="bubble"></div>
<div class="bubble"></div>
<div class="bubble"></div>
<div class="bubble"></div>
<div class="bubble"></div>
</div>
</div>
CSS
html,
body {
height: 100%; }
body {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
margin: 0; }
.wrap {
position: relative;
overflow: hidden;
width: 320px;
height: 320px;
margin: auto;
border-radius: 50%;
background: -webkit-linear-gradient(top, #6bbdd4, #305671);
background: linear-gradient(to bottom, #6bbdd4, #305671); }
.smile, .bubbles {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
margin: auto;
border-radius: 50%; }
.smile {
width: 200px;
height: 200px;
-webkit-animation: drift 6s ease-in-out infinite alternate;
animation: drift 6s ease-in-out infinite alternate;
text-align: center;
background-color: #f56542;
box-shadow: inset -10px -30px rgba(0, 0, 0, 0.05); }
.eye {
position: relative;
top: 70px;
display: inline-block;
width: 10px;
height: 10px;
margin: 0 30px;
-webkit-animation: moving-eye 12s infinite alternate cubic-bezier(0.46, 0.96, 0.22, -0.06);
animation: moving-eye 12s infinite alternate cubic-bezier(0.46, 0.96, 0.22, -0.06);
border-radius: 10px;
border-radius: 50%;
background: rgba(0, 0, 0, 0.9); }
.mouth {
position: absolute;
bottom: 23px;
left: 50%;
width: 40px;
height: 40px;
margin-left: -20px;
border-radius: 9px;
background-color: #46555d;
z-index: 1; }
.glasses-diving {
position: absolute;
top: 30px;
right: 0;
left: 0;
height: 90px;
border: 10px solid #46555d;
border-radius: 75px/45px;
background-color: rgba(90, 213, 246, 0.5); }
.glasses-diving:before {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
content: '';
border-width: 3px;
border-style: solid;
border-color: transparent;
border-top: 1px solid #fff;
border-left: 2px solid #fff;
border-radius: inherit; }
.glasses-diving .nose {
position: absolute;
right: 0;
bottom: -10px;
left: 0;
width: 46px;
height: 30px;
margin: auto;
border:...