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