JSFiddle - React, Tailwind, and code Playground

by Mahavirsinh Padhiyar

HTML

<html>
<head>
</head>
<body>
<a href="#">
  <span>Button</span>
  <div class="liquid">
  </div>
</a>
</body>
</html>

CSS

*
{
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: consolas;
}

body{
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  background: #0c0c0c;
}
a
{
 position: relative;
 padding: 20px; 50px;
 display: block;
 text-decoration: area;
 text-transform: uppercase;
 width: 200px;
 overflow: hidden;
}
a span
{
  position: relative;
  z-index; 1;
  color: white;
  font-size: 20px;
  letter-spacing: 8px;
}
a .liquid
{
  position: absolute;
  left: 0;
  top: -80px;
  width: 200px;
  height: 200px;
  background: #4973ff;
  box-shadow: inset 0 0 50px rgba(0,0,0,.5);
  transition: 0.5s;
}
a:hover .liquid
{
  top: -120px; 
}
a .liquid:before,
a .liquid:after
{
  content: '';
  position: absolute;
  width: 200%;
  height: 200%;
  top: 0;
  left: 50%;
  transform: translate(-50%,-75%);
}
a .liquid:before
{
  border-radius: 45%;
  background: rgba(20,20,20,1);
  animation: animate 5s linear infinite;
}

a .liquid:after
{
  border-radius: 40%;
  background: rgba(20,20,20,0.5);
  animation: animate 10s linear infinite;
}
@keyframes animate
{
  0%
  {
    transform: traslate(-50%,-75%) rotate(0deg);
  }
  100%
  {
    transform: traslate(-50%,-75%) rotate(360deg);
  }
}