Live Demo

Hover and click the buttons to see the liquid morphing effects!

Code

<!DOCTYPE html>
<html>
<head>
  <style>
    body {
      margin: 0;
      padding: 50px;
      background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
      font-family: Arial, sans-serif;
      display: flex;
      justify-content: center;
      align-items: center;
      min-height: 100vh;
      gap: 30px;
      flex-wrap: wrap;
    }
    
    .liquid-button {
      position: relative;
      padding: 20px 40px;
      font-size: 18px;
      font-weight: bold;
      color: white;
      background: transparent;
      border: none;
      cursor: pointer;
      text-transform: uppercase;
      letter-spacing: 2px;
      overflow: hidden;
      border-radius: 50px;
    }
    
    .liquid-button::before {
      content: '';
      position: absolute;
      top: 0;
      left: -100%;
      width: 100%;
      height: 100%;
      background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
      transition: left 0.5s;
    }
    
    .liquid-button:hover::before {
      left: 100%;
    }
    
    .liquid-bg {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: linear-gradient(45deg, #ff6b6b, #4ecdc4);
      border-radius: 50px;
      transition: all 0.3s ease;
      z-index: -1;
    }
    
    .liquid-button:hover .liquid-bg {
      transform: scale(1.1);
      filter: blur(1px);
    }
    
    .liquid-button-1 .liquid-bg {
      background: linear-gradient(45deg, #ff6b6b, #4ecdc4);
    }
    
    .liquid-button-2 .liquid-bg {
      background: linear-gradient(45deg, #4ecdc4, #45b7d1);
    }
    
    .liquid-button-3 .liquid-bg {
      background: linear-gradient(45deg, #96ceb4, #feca57);
    }
    
    .liquid-button::after {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      width: 0;
      height: 0;
      background: rgba(255,255,255,0.3);
      border-radius: 50%;
      transform: translate(-50%, -50%);
      transition: all 0.3s ease;
    }
    
    .liquid-button:active::after {
      width: 300px;
      height: 300px;
    }
    
    .button-text {
      position: relative;
      z-index: 1;
    }
  </style>
</head>
<body>
  <button class="liquid-button liquid-button-1">
    <div class="liquid-bg"></div>
    <span class="button-text">Liquid</span>
  </button>
  
  <button class="liquid-button liquid-button-2">
    <div class="liquid-bg"></div>
    <span class="button-text">Button</span>
  </button>
  
  <button class="liquid-button liquid-button-3">
    <div class="liquid-bg"></div>
    <span class="button-text">Effect</span>
  </button>
</body>
</html>