Categories: CSS

Membuat efek bubble dengan CSS

Bismillaahirrohmaanirrohiim…

Untuk mempercantik halaman website, kita bisa membuat efek bublle menggunakan CSS.

Animasi bubble ini akan menampilkan gelembung-gelembung di halaman website yang dapat bergerak kesana-kemari dan membuat website terlihat hidup serta tidak membosankan.

Berikut kode HTML dan CSS nya:

<!DOCTYPE html>
<html lang="en">
  <head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <title>Membuat efek bubble dengan CSS</title>

    <style type="text/css">

      .bubbles {
        position: fixed;
        width: 100%;
        height: 100vh;
        overflow: hidden;
      }

      .bubble {
        position: absolute;
        left: var(--bubble-left-offset);
        bottom: -75%;
        display: block;
        width: var(--bubble-radius);
        height: var(--bubble-radius);
        border-radius: 50%;
        animation: float-up var(--bubble-float-duration) var(--bubble-float-delay) ease-in infinite;
      }
      .bubble::before {
        position: absolute;
        content: "";
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(136, 246, 251, 0.3);
        border-radius: inherit;
        animation: var(--bubble-sway-type) var(--bubble-sway-duration) var(--bubble-sway-delay) ease-in-out alternate infinite;
      }
      .bubble:nth-child(0) {
        --bubble-left-offset: 34vw;
        --bubble-radius: 8vw;
        --bubble-float-duration: 20s;
        --bubble-sway-duration: 4s;
        --bubble-float-delay: 0s;
        --bubble-sway-delay: 2s;
        --bubble-sway-type: sway-left-to-right;
      }
      .bubble:nth-child(1) {
        --bubble-left-offset: 29vw;
        --bubble-radius: 9vw;
        --bubble-float-duration: 20s;
        --bubble-sway-duration: 5s;
        --bubble-float-delay: 0s;
        --bubble-sway-delay: 4s;
        --bubble-sway-type: sway-right-to-left;
      }
      .bubble:nth-child(2) {
        --bubble-left-offset: 30vw;
        --bubble-radius: 2vw;
        --bubble-float-duration: 22s;
        --bubble-sway-duration: 4s;
        --bubble-float-delay: 0s;
        --bubble-sway-delay: 1s;
        --bubble-sway-type: sway-right-to-left;
      }
      .bubble:nth-child(3) {
        --bubble-left-offset: 6vw;
        --bubble-radius: 9vw;
        --bubble-float-duration: 21s;
        --bubble-sway-duration: 4s;
        --bubble-float-delay: 1s;
        --bubble-sway-delay: 2s;
        --bubble-sway-type: sway-left-to-right;
      }
      .bubble:nth-child(4) {
        --bubble-left-offset: 9vw;
        --bubble-radius: 6vw;
        --bubble-float-duration: 28s;
        --bubble-sway-duration: 5s;
        --bubble-float-delay: 3s;
        --bubble-sway-delay: 2s;
        --bubble-sway-type: sway-left-to-right;
      }
      .bubble:nth-child(5) {
        --bubble-left-offset: 14vw;
        --bubble-radius: 4vw;
        --bubble-float-duration: 19s;
        --bubble-sway-duration: 4s;
        --bubble-float-delay: 1s;
        --bubble-sway-delay: 4s;
        --bubble-sway-type: sway-right-to-left;
      }
      .bubble:nth-child(6) {
        --bubble-left-offset: 67vw;
        --bubble-radius: 10vw;
        --bubble-float-duration: 21s;
        --bubble-sway-duration: 5s;
        --bubble-float-delay: 3s;
        --bubble-sway-delay: 4s;
        --bubble-sway-type: sway-left-to-right;
      }
      .bubble:nth-child(7) {
        --bubble-left-offset: 32vw;
        --bubble-radius: 4vw;
        --bubble-float-duration: 27s;
        --bubble-sway-duration: 5s;
        --bubble-float-delay: 1s;
        --bubble-sway-delay: 2s;
        --bubble-sway-type: sway-left-to-right;
      }
      .bubble:nth-child(8) {
        --bubble-left-offset: 47vw;
        --bubble-radius: 9vw;
        --bubble-float-duration: 28s;
        --bubble-sway-duration: 6s;
        --bubble-float-delay: 2s;
        --bubble-sway-delay: 4s;
        --bubble-sway-type: sway-right-to-left;
      }
      .bubble:nth-child(9) {
        --bubble-left-offset: 4vw;
        --bubble-radius: 3vw;
        --bubble-float-duration: 20s;
        --bubble-sway-duration: 5s;
        --bubble-float-delay: 4s;
        --bubble-sway-delay: 2s;
        --bubble-sway-type: sway-left-to-right;
      }
      .bubble:nth-child(10) {
        --bubble-left-offset: 0vw;
        --bubble-radius: 5vw;
        --bubble-float-duration: 22s;
        --bubble-sway-duration: 5s;
        --bubble-float-delay: 1s;
        --bubble-sway-delay: 4s;
        --bubble-sway-type: sway-right-to-left;
      }
      .bubble:nth-child(11) {
        --bubble-left-offset: 20vw;
        --bubble-radius: 3vw;
        --bubble-float-duration: 22s;
        --bubble-sway-duration: 4s;
        --bubble-float-delay: 1s;
        --bubble-sway-delay: 2s;
        --bubble-sway-type: sway-right-to-left;
      }
      .bubble:nth-child(12) {
        --bubble-left-offset: 41vw;
        --bubble-radius: 3vw;
        --bubble-float-duration: 26s;
        --bubble-sway-duration: 4s;
        --bubble-float-delay: 2s;
        --bubble-sway-delay: 2s;
        --bubble-sway-type: sway-right-to-left;
      }
      .bubble:nth-child(13) {
        --bubble-left-offset: 99vw;
        --bubble-radius: 3vw;
        --bubble-float-duration: 26s;
        --bubble-sway-duration: 5s;
        --bubble-float-delay: 1s;
        --bubble-sway-delay: 2s;
        --bubble-sway-type: sway-right-to-left;
      }
      .bubble:nth-child(14) {
        --bubble-left-offset: 92vw;
        --bubble-radius: 6vw;
        --bubble-float-duration: 26s;
        --bubble-sway-duration: 6s;
        --bubble-float-delay: 3s;
        --bubble-sway-delay: 4s;
        --bubble-sway-type: sway-right-to-left;
      }
      .bubble:nth-child(15) {
        --bubble-left-offset: 49vw;
        --bubble-radius: 2vw;
        --bubble-float-duration: 20s;
        --bubble-sway-duration: 6s;
        --bubble-float-delay: 1s;
        --bubble-sway-delay: 0s;
        --bubble-sway-type: sway-right-to-left;
      }
      .bubble:nth-child(16) {
        --bubble-left-offset: 62vw;
        --bubble-radius: 7vw;
        --bubble-float-duration: 22s;
        --bubble-sway-duration: 6s;
        --bubble-float-delay: 1s;
        --bubble-sway-delay: 1s;
        --bubble-sway-type: sway-left-to-right;
      }
      .bubble:nth-child(17) {
        --bubble-left-offset: 43vw;
        --bubble-radius: 10vw;
        --bubble-float-duration: 20s;
        --bubble-sway-duration: 6s;
        --bubble-float-delay: 4s;
        --bubble-sway-delay: 1s;
        --bubble-sway-type: sway-left-to-right;
      }
      .bubble:nth-child(18) {
        --bubble-left-offset: 9vw;
        --bubble-radius: 5vw;
        --bubble-float-duration: 21s;
        --bubble-sway-duration: 6s;
        --bubble-float-delay: 0s;
        --bubble-sway-delay: 1s;
        --bubble-sway-type: sway-left-to-right;
      }
      .bubble:nth-child(19) {
        --bubble-left-offset: 16vw;
        --bubble-radius: 7vw;
        --bubble-float-duration: 22s;
        --bubble-sway-duration: 6s;
        --bubble-float-delay: 1s;
        --bubble-sway-delay: 4s;
        --bubble-sway-type: sway-right-to-left;
      }
      .bubble:nth-child(20) {
        --bubble-left-offset: 11vw;
        --bubble-radius: 8vw;
        --bubble-float-duration: 26s;
        --bubble-sway-duration: 4s;
        --bubble-float-delay: 0s;
        --bubble-sway-delay: 1s;
        --bubble-sway-type: sway-right-to-left;
      }
      .bubble:nth-child(21) {
        --bubble-left-offset: 18vw;
        --bubble-radius: 6vw;
        --bubble-float-duration: 27s;
        --bubble-sway-duration: 4s;
        --bubble-float-delay: 1s;
        --bubble-sway-delay: 2s;
        --bubble-sway-type: sway-left-to-right;
      }
      .bubble:nth-child(22) {
        --bubble-left-offset: 36vw;
        --bubble-radius: 10vw;
        --bubble-float-duration: 22s;
        --bubble-sway-duration: 5s;
        --bubble-float-delay: 1s;
        --bubble-sway-delay: 0s;
        --bubble-sway-type: sway-right-to-left;
      }
      .bubble:nth-child(23) {
        --bubble-left-offset: 66vw;
        --bubble-radius: 10vw;
        --bubble-float-duration: 26s;
        --bubble-sway-duration: 4s;
        --bubble-float-delay: 4s;
        --bubble-sway-delay: 4s;
        --bubble-sway-type: sway-left-to-right;
      }
      .bubble:nth-child(24) {
        --bubble-left-offset: 47vw;
        --bubble-radius: 2vw;
        --bubble-float-duration: 20s;
        --bubble-sway-duration: 6s;
        --bubble-float-delay: 0s;
        --bubble-sway-delay: 1s;
        --bubble-sway-type: sway-right-to-left;
      }
      .bubble:nth-child(25) {
        --bubble-left-offset: 20vw;
        --bubble-radius: 6vw;
        --bubble-float-duration: 28s;
        --bubble-sway-duration: 4s;
        --bubble-float-delay: 3s;
        --bubble-sway-delay: 0s;
        --bubble-sway-type: sway-right-to-left;
      }

      @keyframes float-up {
        to {
          transform: translateY(-175vh);
        }
      }
      @keyframes sway-left-to-right {
        from {
          transform: translateX(-100%);
        }
        to {
          transform: translateX(100%);
        }
      }
      @keyframes sway-right-to-left {
        from {
          transform: translateX(100%);
        }
        to {
          transform: translateX(-100%);
        }
      }

    </style>
  </head>
  <body style="background:#4D3370 ;">


    <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 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 class="bubble"></div>
        <div class="bubble"></div>
        <div class="bubble"></div>
        <div class="bubble"></div>
        <div class="bubble"></div>
    </div>


  </body>
</html>

Dari kode di atas, kita bisa menambah jumlah gelembung, bisa juga mengubah kecepatan dan arah bubblenya.

Cukup mudah bukan….

Bagikan
rasupe

Recent Posts

Kode css yang berguna

Bismillaahirrohmaanirrohiim... Berikut ini kumpulan css yang berguna, untuk mengingat saja. Input atau button delay saat…

4 days ago

Grouping warna pada tabel dengan PHP

Bismillaahirrohmaanirrohiim... Berikut ini cara grouping warna baris pada tabel dengan PHP, dimana jika ada kode…

2 weeks ago

CMS Website Desain Interior – PHP MySQL

CMS (Content Management System) Web untuk Desain Interior adalah solusi lengkap untuk mempresentasikan bisnis desain…

4 weeks ago

Source code Template website sekolah dengan react js

Bismillaahirrohmaanirrohiim... Berikut ini source code yang dapat dimodifikasi untuk membuat front end website sekolah dengan…

1 month ago

Subdomain pada cyberpanel tidak dapat diakses

Bismillaahirrohmaanirrohiim... Jika domain dan sub domainnya berada dalam satu vps cyberpanel, maka seringkali jadi tidak…

2 months ago

10 Aplikasi Kasir Terbaik di Indonesia (2025)

Bismillaahirrohmaanirrohiim... Dalam era digital saat ini, penggunaan aplikasi kasir (Point of Sale/POS) menjadi solusi penting…

2 months ago