Semua artikel disini ditulis oleh AI, jadi harap bijak dalam menggunakannya

Widget HTML #1

Membuat Tombol Mengambang (Floating Button) dan Widget Kustom dengan HTML, CSS, dan SVG: Panduan Mendalam

 


Floating button dan widget adalah elemen antarmuka pengguna yang populer, sering digunakan untuk meningkatkan navigasi, memberikan akses cepat ke tindakan, atau menampilkan informasi penting. Elemen-elemen ini "mengambang" di atas konten utama halaman web, tetap terlihat bahkan saat pengguna menggulir. Dalam panduan komprehensif ini, kita akan mempelajari cara membuat floating button dan widget kustom yang menarik secara visual dan fungsional menggunakan HTML, CSS, dan SVG.

1. Dasar-Dasar Floating Button

Floating button biasanya berbentuk lingkaran atau persegi dengan ikon atau teks di dalamnya. Untuk membuatnya, kita menggunakan elemen HTML <button>:

HTML
<button class="floating-button">
  <i class="fas fa-plus"></i>  
</button>

Di sini, kita menyertakan ikon "plus" dari pustaka Font Awesome, tetapi Anda dapat menggunakan ikon apa pun yang Anda suka atau menggantinya dengan teks.

Gaya CSS dasar untuk floating button akan terlihat seperti ini:

CSS
.floating-button {
  position: fixed; 
  bottom: 20px; 
  right: 20px; 
  width: 60px; 
  height: 60px;
  background-color: #4CAF50; 
  color: white; 
  border: none;
  border-radius: 50%; 
  text-align: center;
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); 
  z-index: 9999; 
}

.floating-button:hover {
  background-color: #3e8e41; 
}

Kode CSS ini akan membuat tombol bulat berwarna hijau yang terletak 20 piksel dari kanan bawah layar, dengan efek bayangan halus dan perubahan warna saat dihover. Properti z-index yang tinggi memastikan tombol tetap berada di atas elemen lain.

2. Membuat Widget Mengambang Kustom dengan SVG

Untuk membuat widget mengambang kustom, kita akan menggunakan SVG (Scalable Vector Graphics) untuk ikon atau grafis lainnya. Berikut adalah contoh widget berbentuk bel notifikasi:

HTML
<div class="floating-widget">
  <label for="checkPop">
    <div class="wcTextPopNotif">
      <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
        <path d="M10.1405897,17.5694629 C10.4180311,17.32187 ..."/> 
      </svg>
    </div>
  </label>
</div>

Kode SVG yang kompleks telah dipersingkat di sini, tetapi Anda dapat memasukkan kode SVG Anda sendiri.

CSS untuk widget ini mirip dengan CSS untuk floating button, dengan beberapa penyesuaian:

CSS
.floating-widget {
  /* ... (sebagian besar properti sama dengan floating button) ... */
  width: 50px;
  height: 50px;
  padding: 10px;
}

.floating-widget .wcTextPopNotif svg { 
  width: 100%; 
  height: 100%;
  fill: currentColor; 
}

Perhatikan bahwa kita menggunakan width: 100%; dan height: 100%; untuk SVG agar memenuhi seluruh area widget.

3. Menangani Kesalahan SAXParseException

Jika Anda mencoba menggunakan kode HTML di atas di luar konteks dokumen HTML lengkap, Anda mungkin akan menemui error org.xml.sax.SAXParseException. Ini karena parser XML mengharapkan struktur dokumen yang valid, yang dimulai dengan tag <html> dan diakhiri dengan </html>.

Untuk mengatasi ini, pastikan kode Anda tertanam dalam dokumen HTML lengkap:

HTML
<!DOCTYPE html>
<html>
<head>
  <title>Floating Elements</title>
  <style>
    /* ... (CSS Anda di sini) ... */
  </style>
</head>
<body>
  <div class="floating-button">...</div>
  <div class="floating-widget">...</div>
</body>
</html>

4. Tips dan Trik Tambahan

  • Animasi: Tambahkan transisi CSS atau animasi untuk membuat floating button dan widget Anda lebih menarik.
  • Responsivitas: Pastikan elemen Anda terlihat bagus di berbagai ukuran layar dengan menggunakan media queries.
  • Aksesibilitas: Gunakan atribut aria-label untuk memberikan deskripsi yang jelas tentang fungsi tombol atau widget Anda bagi pengguna pembaca layar.
  • Interaktivitas: Tambahkan JavaScript untuk membuat elemen Anda bereaksi terhadap klik atau hover pengguna.

Dengan mengikuti panduan ini dan bereksperimen dengan berbagai gaya dan fitur, Anda dapat membuat floating button dan widget kustom yang unik dan berguna untuk meningkatkan pengalaman pengguna di situs web Anda.