Tabs

Sekelompok panel setara yang dapat dipindahkan tanpa meninggalkan konteks halaman.

Dasar

Berikan daftar item, lalu gunakan slot #panel-[value] untuk isi panel yang kompleks. Tab pertama yang aktif akan dipilih otomatis bila v-model belum diberikan.

Penanda tab aktif adalah satu elemen yang bergeser ke tab baru (250 ms), bukan garis yang langsung berpindah, dan panelnya masuk dari arah perpindahan. Gerakan itu menunjukkan ke mana pilihan tadi pergi. Keduanya mati sendiri saat sistem meminta prefers-reduced-motion.

PT Hijau Lestari

Pelanggan aktif dengan empat lokasi pengangkutan.

Variant

underline cocok untuk bagian utama halaman, pill untuk pilihan ringkas, dan bordered untuk tab yang perlu batas lebih tegas.

underline

Seluruh permintaan pickup.

pill

Seluruh permintaan pickup.

bordered

Seluruh permintaan pickup.

Lebar penuh

full-width membuat tab berbagi lebar wadahnya secara merata, bukan mengikuti panjang labelnya. Berguna untuk bilah pilihan di layar sempit, tempat tab yang mengecil di kanan terasa seperti kesalahan.

Penanda aktifnya diukur dari tab yang ditempatinya, jadi ia tetap sejajar pada pembagian lebar yang berakhir di pecahan piksel — termasuk pada tab terakhir, tempat galat pembulatan biasanya menumpuk.

437px

Seluruh permintaan pickup.

302px

Seluruh permintaan pickup.

100%

Seluruh permintaan pickup.

Vertikal dan disabled

Orientasi vertikal memakai tombol panah atas dan bawah. Item disabled tetap terlihat, tetapi dilewati oleh navigasi keyboard dan tidak dapat dipilih.

Informasi dasar dan kontak pengguna.

Banyak tab

Daftar horizontal menggulir di dalam wadahnya ketika label tidak muat. Tab yang menerima fokus digulir ke area terlihat tanpa membuat halaman melebar.

Konten ringkasan.

Bilah tab dengan isi sendiri

Slot #actions mengisi ujung baris tab — catatan, filter, atau tombol — di luar tablist, yang menurut WAI-ARIA hanya boleh memuat tab. Isinya tidak ikut menggulir saat tabnya banyak. Bersama listClass, panelClass, dan :panel-padding="false", itulah yang membentuk bilah Preview/Code pada setiap contoh di situs ini: pratinjau yang sedang kamu baca memakai komponen ini sendiri.

Aktivasi keyboard

Mode bawaan automatic langsung mengganti panel saat tombol panah memindahkan fokus. Gunakan activation="manual" bila isi panel perlu dimuat dari server; fokus dapat bergerak lebih dulu dan panel baru dibuka dengan Enter atau Spasi.

API

Props

PropTipeDefaultKeterangan
itemsW4cTabItem[][]Daftar tab dan isi panelnya.
modelValuestring | numberundefinedNilai tab aktif, mendukung v-model.
defaultValuestring | numbertab aktif pertamaTab awal untuk penggunaan tanpa v-model.
variant'underline' | 'pill' | 'bordered''underline'Gaya visual daftar tab.
size'sm' | 'md' | 'lg''md'Ukuran label, ikon, badge, dan panel.
orientation'horizontal' | 'vertical''horizontal'Arah daftar tab dan tombol panah keyboard.
activation'automatic' | 'manual''automatic'Automatic langsung memilih saat fokus berpindah; manual menunggu Enter atau Spasi.
loopbooleantrueMengulang navigasi keyboard dari ujung ke awal.
fullWidthbooleanfalseMembagi lebar tab horizontal secara merata.
lazybooleanfalseHanya memasang panel aktif; state panel lama dibuang ketika berpindah.
labelstring'Tab'Nama aksesibel tablist.
listClassstring—Kelas tambahan untuk baris yang memuat tab dan slot actions — untuk bilah tab yang perlu latar atau garisnya sendiri.
panelClassstring—Kelas tambahan untuk kotak tempat panel berada.
panelPaddingbooleantrueJarak antara tab dan panelnya. Matikan bila panelnya membawa padding sendiri, alih-alih menimpanya dengan utility lain yang urutannya ditentukan CSS.

W4cTabItem

PropTipeDefaultKeterangan
valuestring | numberwajibNilai unik tab.
labelstringwajibTeks label tab.
contentstringundefinedIsi teks bawaan panel saat tidak memakai slot.
iconstringundefinedNama ikon Iconify dekoratif sebelum label.
badgestring | numberundefinedHitungan atau status singkat setelah label.
disabledbooleanfalseMenampilkan tab tetapi melewatinya saat navigasi.

Slots

SlotTipeDefaultKeterangan
actions{ active }—Ruang di ujung baris tab, di luar tablist: catatan, filter, atau tombol. Tidak ikut menggulir bersama tabnya.
tab{ item, active, focused }—Mengganti tampilan label semua tab.
tab-[value]{ item, active, focused }—Mengganti label satu tab.
panel{ item, active }—Mengganti isi semua panel.
panel-[value]{ item, active }—Mengganti isi panel tertentu.

Events

EventTipeDefaultKeterangan
update:modelValue(value: string | number) => void—Dipicu untuk sinkronisasi v-model.
change(value: string | number) => void—Dipicu ketika tab aktif berubah.