Button Group
Horizontally or vertically joined set of related action buttons that share a visual boundary.
Horizontal — Joined
DaisyUI .join
menyatukan tombol secara visual tanpa border ganda. Gunakan untuk aksi yang berkaitan erat — misalnya Bold / Italic / Underline atau Copy / Cut / Paste.
Default
Primary
Outline
Kecil (sm)
Besar (lg)
Toggle Group — Radio Behavior
Satu item aktif pada satu waktu. Alpine.js mengelola state active
— tidak ada JS kustom, tidak ada class toggle manual.
Tampilan
view = ''
Alignment Teks
Format Teks (Multi-select)
aktif: []
Vertikal — Joined Column
Tambahkan join-vertical pada container
untuk mode kolom. Berguna untuk menu samping atau toolbar vertikal.
Default
Outline
Toggle Vertikal
Icon + Teks
Kombinasi tombol ikon dan tombol teks dalam satu grup. Gunakan ukuran ikon yang konsisten (14–16px) agar baseline teks dan ikon sejajar.
Toolbar Editor
Aksi Produk
States
Seluruh grup disabled
Sebagian disabled
Loading state
Overflow — Scrollable
Pada container sempit (mobile, panel), bungkus grup dengan
overflow-x-auto
agar dapat di-scroll horizontal. Scroll indicator ditampilkan via fade gradient — CSS only, tidak butuh JS.
Kategori produk (banyak item)
Panduan Penggunaan
<div class="join"> <button class="btn join-item">A</button> <button class="btn join-item">B</button> </div>
<div class="join join-vertical"> <button class="btn join-item">A</button> <button class="btn join-item">B</button> </div>
x-data="{ active: 'a' }"
:class="active==='a'
? 'btn-primary' : ''"
@click="active = 'a'"