Overflow Tailwind: Class Scroll dan Hidden — Tailwind CSS

Class overflow di Tailwind mengatur konten yang melebihi kotaknya: overflow-auto, hidden, dan scroll, plus varian per sumbu dan scroll-smooth.

Overflow adalah isi yang lebih besar dari kotaknya. Kotaknya punya tinggi tetap, isinya kepanjangan: sisanya mau diapakan? Dibiarkan nongol keluar, dipotong, atau dikasih scroll. Bayangin aplikasi chat di HP. Tingginya tetap, tapi pesannya ratusan. Aplikasinya gak ikut memanjang; kamu geser ke atas untuk membaca pesan lama. Itu overflow-y-auto: kotaknya tetap, isinya bisa digeser.

🧪 Tebakan cepat: kotak overflow-y-auto p-4 berisi 6 paragraf, tapi gak diberi h-32. Scrollbar-nya muncul? Tebak dulu, jawabannya ada di bagian "Scroll butuh tinggi".

Empat pilihan untuk isi yang meluap

Ini kotak dari latihan dan Lab:

<div id="scroll-box" class="overflow-y-auto h-32 p-4">
  <p>Paragraf 1</p>
  <p>Paragraf 2</p>
  <p>Paragraf 3</p>
  <p>Paragraf 4</p>
  <p>Paragraf 5</p>
  <p>Paragraf 6</p>
</div>

Hitung dulu ukurannya:

Bagian Ukuran
Satu paragraf (teks 16px, tinggi baris 1,5) 24px
Enam paragraf 6 × 24 = 144px
Tinggi kotak, h-32 128px
Padding atas + bawah, p-4 16 + 16 = 32px
Ruang untuk isi 128 - 32 = 96px
Yang meluap 144 - 96 = 48px, sekitar 2 paragraf

Tinggi 128px sudah termasuk padding, karena Tailwind memakai box-sizing: border-box. Jadi 48px isinya gak muat. Nasib 48px itu ditentukan class overflow-*:

Class CSS Isi yang meluap
overflow-visible overflow: visible (bawaan) nongol keluar kotak dan menimpa yang ada di bawahnya
overflow-hidden overflow: hidden dipotong, gak kelihatan sama sekali
overflow-scroll overflow: scroll bisa digeser, scrollbar selalu dipasang walau isinya muat
overflow-auto overflow: auto bisa digeser, scrollbar cuma muncul kalau perlu

overflow-auto hampir selalu pilihan yang pas untuk kotak yang bisa di-scroll. overflow-scroll bikin batang scroll kosong tetap kelihatan di Windows, walaupun isinya muat.

Satu arah saja: overflow-x dan overflow-y

Scroll butuh tinggi

Kotak <div> biasa ikut memanjang mengikuti isinya. Tanpa h-32, tinggi kotak tadi jadi 144 + 32 = 176px: semua paragraf muat, gak ada yang meluap, jadi gak ada yang bisa di-scroll. Scrollbar-nya gak muncul. Itu jawaban tebakannya. overflow-y-auto cuma bilang "kalau meluap, kasih scroll"; tinggi tetap yang bikin isinya meluap.

Alternatifnya max-h-32: kotaknya boleh memanjang sampai 128px, dan baru bisa di-scroll kalau isinya lebih dari itu. Cocok untuk daftar yang kadang pendek, kadang panjang.

Teks kepanjangan: truncate dan line-clamp

<p class="truncate">Belajar Tailwind dari nol sampai bisa bikin landing page sendiri</p>
<p class="line-clamp-2">Deskripsi produk yang panjang, dipotong sesudah dua baris...</p>

💡 Scroll yang lebih enak: snap dan smooth

<div class="flex gap-4 overflow-x-auto snap-x snap-mandatory">
  <div class="w-64 shrink-0 snap-center">Slide 1</div>
  <div class="w-64 shrink-0 snap-center">Slide 2</div>
  <div class="w-64 shrink-0 snap-center">Slide 3</div>
</div>

⚠️ Jebakan yang sering ketemu

TL;DR: overflow-visible (bawaan) membiarkan isi nongol keluar, overflow-hidden memotongnya, overflow-scroll dan overflow-auto bikin isinya bisa digeser, dengan auto cuma memunculkan scrollbar kalau perlu. Tambah -x- atau -y- untuk satu arah saja, misalnya overflow-y-auto. Scroll butuh tinggi tetap (h-32 = 128px) atau batas (max-h-32), kalau gak kotaknya ikut memanjang. Teks satu baris yang kepanjangan: truncate; dibatasi beberapa baris: line-clamp-2.

Yang akan kamu pelajari