Jadwal tersimpan
Periksa koneksi
Notifikasi sementara setelah aksi pengguna, dengan durasi, tombol aksi, dan posisi yang bisa diatur.
Kartu toast memakai warna dan variant yang sama dengan Alert. Contoh statis ini memperlihatkan tampilannya; tombol pada bagian berikut membuka notifikasi di sudut layar.
Jadwal tersimpan
Periksa koneksi
Pasang satu W4cToaster di app.vue atau layout yang tetap terpasang. Nuxt layer menyediakan useToast sebagai auto-import. Ambil composable di setup atau plugin Nuxt, lalu panggil metodenya dari event pengguna atau setelah operasi di browser selesai.
<template>
<NuxtPage />
<W4cToaster />
</template>Gunakan success, error, warning, atau info untuk pesan sesuai hasil aksi. Notifikasi tidak memindahkan fokus secara otomatis. Antrean terpisah per aplikasi Nuxt, termasuk saat render server; panggilan saat SSR tidak diteruskan ke browser.
Toast tampil sebagai tumpukan kartu, dengan pesan terbaru di depan. Tepi tiga kartu sebelumnya menjadi penanda bahwa masih ada pesan lain. Menutup kartu depan memperlihatkan pesan berikutnya.
Membuka dan meringkas tumpukan adalah satu gerakan: kartu tidak berganti tata letak, hanya bergeser dan berubah skala ke posisi barunya. Gunakan Lihat notifikasi untuk membuka kartu aktif, termasuk melalui keyboard atau layar sentuh. Timer hanya berjalan pada kartu depan saat tumpukan ringkas, tanpa hover atau fokus. Pesan yang tertutup tidak habis sebelum dibaca. Contoh ini memakai duration: 0 supaya bisa dicoba tanpa terburu-buru.
Tersedia tiga varian visual: soft (default, berlatar lembut), outline (dengan bingkai warna semantik), dan solid (warna pekat penuh).
Toast dapat memuat tombol aksi interaktif, seperti tombol 'Batalkan' setelah aksi lokal. Contoh ini menyimulasikan aksi; handler aplikasi yang melakukan pemulihan atau unduhan sebenarnya. Tombol aksi tidak menutup toast otomatis; panggil remove(id) jika aksi sudah selesai.
Viewport <W4cToaster /> mendukung 6 pilihan posisi di layar. Posisi bawaan adalah kanan atas (top-right). Klik posisi untuk memindahkan notifikasi contoh. Halaman ini memakai satu Toaster yang ada dalam contoh posisi, sehingga notifikasi tidak muncul ganda.
Setel duration: 0 jika pesan harus tetap tampil hingga pengguna mengklik tombol tutup secara manual. Ikon juga dapat dikustomisasi dengan ikon Iconify pilihan.
Selama duration lebih dari nol, garis di tepi bawah kartu menyusut sesuai waktu yang tersisa, jadi pembaca tahu berapa lama lagi pesannya ada. Garis itu berhenti saat kartu di-hover atau menerima fokus keyboard — sama seperti timernya — dan tidak ditampilkan sama sekali bila sistem meminta prefers-reduced-motion, karena garis yang tidak menyusut akan mengaku waktunya masih penuh. Matikan dengan progress: false bila tidak diinginkan.
| Metode | Tipe | Default | Keterangan |
|---|---|---|---|
| add | (options: W4cToastOptions) => string | — | Menambahkan notifikasi toast baru ke antrean dan mengembalikan ID toast. |
| success | (title: string, desc?: string, options?: Partial<W4cToastOptions>) => string | — | Pintasan menambahkan notifikasi dengan warna success. |
| error | (title: string, desc?: string, options?: Partial<W4cToastOptions>) => string | — | Pintasan menambahkan notifikasi dengan warna danger. |
| warning | (title: string, desc?: string, options?: Partial<W4cToastOptions>) => string | — | Pintasan menambahkan notifikasi dengan warna warning. |
| info | (title: string, desc?: string, options?: Partial<W4cToastOptions>) => string | — | Pintasan menambahkan notifikasi dengan warna primary. |
| remove | (id: string) => void | — | Menutup dan menghapus toast tertentu berdasarkan ID. |
| clear | () => void | — | Menutup dan membersihkan seluruh toast aktif di layar. |
| Opsi | Tipe | Default | Keterangan |
|---|---|---|---|
| id | string | — | ID opsional. add dengan ID yang sama memperbarui pesan dan mengulang durasinya. |
| title | string | — | Judul singkat notifikasi, dicetak tebal. |
| description | string | — | Deskripsi detail atau penjelasan tambahan pesan notifikasi. |
| color | 'primary' | 'neutral' | 'success' | 'warning' | 'danger' | 'primary' | Makna semantik pesan: primary (info), success (berhasil), warning (peringatan), danger (gagal/error), neutral (netral). |
| variant | 'soft' | 'outline' | 'solid' | 'soft' | Gaya visual tampilan toast. |
| icon | string | false | — | Nama ikon Iconify. Otomatis disesuaikan dengan warna jika tidak disetel; false untuk menyembunyikan ikon. |
| duration | number | 4000 | Lama tampil dalam milidetik. Setel ke 0 untuk membuat toast tetap terbuka (persistent) hingga ditutup pengguna. |
| dismissible | boolean | true | Menampilkan tombol tutup di pojok kanan toast. |
| closeLabel | string | 'Tutup' | Label tombol tutup untuk pembaca layar (screen reader). |
| action | { label: string; onClick?: (event: MouseEvent) => void; color?: ButtonColor; variant?: ButtonVariant } | — | Tombol aksi opsional di bagian bawah konten toast (misal: "Batalkan", "Lihat"). |
| progress | boolean | true | Menampilkan garis waktu mundur (progress bar) saat duration > 0. |
| onClose | () => void | — | Fungsi callback saat toast ditutup. |
| Prop | Tipe | Default | Keterangan |
|---|---|---|---|
| expandLabel / collapseLabel | string | Lihat notifikasi / Ringkas notifikasi | Label tombol untuk membuka atau meringkas tumpukan. |
| position | 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top-center' | 'bottom-center' | 'top-right' | Posisi viewport penampung kumpulan notifikasi di layar. |
| max | number | 5 | Jumlah kartu dalam tumpukan aktif. Pesan terbaru atau yang baru diperbarui berada di depan. Sisanya tetap mengantre; max=0 menyembunyikan semuanya. |
| Prop | Tipe | Default | Keterangan |
|---|---|---|---|
| title | string | — | Judul singkat notifikasi, dicetak tebal. |
| description | string | — | Deskripsi detail atau penjelasan tambahan pesan notifikasi. |
| color | 'primary' | 'neutral' | 'success' | 'warning' | 'danger' | 'primary' | Makna semantik pesan: primary (info), success (berhasil), warning (peringatan), danger (gagal/error), neutral (netral). |
| variant | 'soft' | 'outline' | 'solid' | 'soft' | Gaya visual tampilan toast. |
| icon | string | false | — | Nama ikon Iconify. Otomatis disesuaikan dengan warna jika tidak disetel; false untuk menyembunyikan ikon. |
| duration | number | 4000 | Lama tampil dalam milidetik. Setel ke 0 untuk membuat toast tetap terbuka (persistent) hingga ditutup pengguna. |
| dismissible | boolean | true | Menampilkan tombol tutup di pojok kanan toast. |
| closeLabel | string | 'Tutup' | Label tombol tutup untuk pembaca layar (screen reader). |
| action | { label: string; onClick?: (event: MouseEvent) => void; color?: ButtonColor; variant?: ButtonVariant } | — | Tombol aksi opsional di bagian bawah konten toast (misal: "Batalkan", "Lihat"). |
| progress | boolean | true | Menampilkan garis waktu mundur (progress bar) saat duration > 0. |
| paused | boolean | false | Menjeda timer dan progress Toast mandiri. Toaster mengaturnya otomatis untuk kartu di belakang dan saat tumpukan dibuka. |
| Slot | Tipe | Default | Keterangan |
|---|---|---|---|
| default | — | — | Isi pesan, menggantikan description. |
| title | — | — | Menggantikan title. |
| icon | — | — | Menggantikan ikon otomatis. |
| action | — | — | Aksi custom, menggantikan prop action. |
| Event | Tipe | Default | Keterangan |
|---|---|---|---|
| close | () => void | — | Dipanggil sekali ketika durasi selesai atau tombol tutup ditekan. Untuk Toast mandiri, hapus komponen melalui handler ini. |