پیش‌نمایش زنده
کد HTML
<label class="water-toggle">
  <input type="checkbox" id="toggle-wave" />
  <div class="container">
    <button class="water-button">water</button>
    <svg style="position: absolute; width: 0; height: 0">
      <filter id="water-rotate">
        <feTurbulence
          result="turbulence"
          seed="2"
          numOctaves="2"
          baseFrequency="0.0075 0.0075"
          type="turbulence"
        ></feTurbulence>
        <feComponentTransfer>
          <feFuncR type="table">
            <animateTransform
              repeatCount="indefinite"
              dur="10s"
              values="0.01;0.02;0.01"
              attributeName="transform"
            ></animateTransform>
          </feFuncR>
        </feComponentTransfer>
        <feDisplacementMap
          yChannelSelector="G"
          xChannelSelector="R"
          scale="17.5"
          in2="turbulence"
          in="SourceGraphic"
        ></feDisplacementMap>
      </filter>
      <filter id="still-water">
        <feTurbulence
          result="turbulence"
          seed="2"
          numOctaves="2"
          baseFrequency="0.0075 0.0075"
          type="turbulence"
        ></feTurbulence>
        <feComponentTransfer>
          <feFuncR type="table">
            <animateTransform
              repeatCount="indefinite"
              dur="10s"
              values="0.01;0.02;0.01"
              attributeName="transform"
            ></animateTransform>
          </feFuncR>
        </feComponentTransfer>
        <feDisplacementMap
          yChannelSelector="G"
          xChannelSelector="R"
          scale="12.5"
          in2="turbulence"
          in="SourceGraphic"
        ></feDisplacementMap>
      </filter>
    </svg>
  </div>
</label>
کد CSS
.water-toggle {
  display: inline-block;
  position: relative;
}

.water-toggle input#toggle-wave {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  z-index: 3;
}

.container {
  position: relative;
  z-index: 1;
  filter: url(#still-water);
  animation: wave 10s infinite ease-in-out;
  transition: 1s;
  display: block;
}

.water-toggle:hover .container {
  filter: url(#water-rotate);
  transition: 0.5s;
  animation: wave 8s infinite ease-in-out;
}

input#toggle-wave:checked ~ .container {
  animation: beeg-wave 3.5s infinite ease-in-out;
  scale: 0.75;
}

.water-button {
  position: relative;
  z-index: 5;
  font-size: 1.5rem;
  padding: 1em 2em;
  border: none;
  border-radius: 50em;
  background: #50626b22;
  outline: 3px solid #3f545f33;
  color: #d1d7e48b;
  text-shadow: 0px 0px 8px #79a5adda;
  font-weight: bold;
  backdrop-filter: url(#water) blur(0.4rem);
  cursor: pointer;
  font-family: Tahoma, sans-serif;
  translate: 10px;
  transition: 1s;
  box-shadow: inset 2px 3px 4px #d4f7fe25;
}

.water-toggle:hover .water-button {
  text-shadow: 0px 0px 12px #49e1ffda;
  background: #13b0ff3d;
  outline-color: #00aaff00;
  padding: 2em;
  box-shadow:
    inset 0px 0px 8px #7ae9ff25,
    0px 0px 64px #39d9f96f;
}

input#toggle-wave:checked ~ .container .water-button {
  text-shadow:
    0px 0px 48px #7ae9ff,
    0px 0px 12px #7ae9ff,
    0px 0px 12px #7ae9ff,
    0px 0px 64px #39d9f9;
  box-shadow:
    inset 0px 0px 12px #7ae9ff46,
    inset 0px 0px 8px #7ae9ff25,
    0px 0px 8px #7ae9ff84,
    0px 0px 64px #39d9f96f;
  padding: 20% 2em;
  transition: 1s;
}

/* animations */
@keyframes wave {
  0% {
    padding: 1rem;
  }
  50% {
    padding: 10rem;
  }
  100% {
    padding: 1rem;
  }
}

@keyframes beeg-wave {
  0% {
    padding: 1rem;
  }
  50% {
    padding: 12rem;
  }
  100% {
    padding: 1rem;
  }
}
نوع: button
تاریخ ایجاد: 2026/06/05
آخرین بروزرسانی: 2026/06/05