Kısa bildirim toast / snackbar
bilinen diğer adları toast · snackbar · geçici bildirim
Böyle diyorsan: "köşede çıkıp kaybolan mesaj" · "kaydedildi yazısı" → bunun adı kısa bildirim.
Köşede belirip birkaç saniyede kendiliğinden kaybolan küçük durum mesajı.
Kısa bildirim, bir işin sonucunu köşede birkaç saniye gösterip kendiliğinden kaybolan mesajdır. Sözleşmesi tek cümledir: KAÇIRILMASI ÖNEMLİ OLMAYAN şeyler için. Kaybolduğunda geri getirilemediği için kritik bilgi buraya konmaz — 'Ödeme başarısız' bir kısa bildirim değildir, çünkü kullanıcı başka yere bakıyorsa o bilgi tamamen kaybolur. İkinci kural süredir: kullanıcı okuyacak kadar zaman bulamıyorsa bildirim işe yaramaz; içinde bir eylem varsa (geri al) süre daha da uzun olmalı ya da hiç otomatik kapanmamalıdır.
Kapsam: Bu madde kendiliğinden kaybolan geçici mesajı kapsar. Sayfada duran ve kaybolmayan kutu Uyarı Şeridi, kullanıcıyı durdurup cevap bekleyen pencere Kip Pencere maddesindedir. Üçü bir SPEKTRUM oluşturur: pasif şerit, geçici bildirim, engelleyici pencere.
Yapıştır, sonuna belirtiyi ekle — ajana klasik hata kalıplarını önden verir.
- 1Konum
position: fixedToast'ın yaşadığı köşe (çoğu üründe sağ alt/sağ üst); sayfa kaysa da yerinde durur.
- 2Durum rengi + ikon
success / errorYeşil tik = başarı, kırmızı = hata; renk TEK sinyal olmamalı, ikon eşlik eder.
- 3Mesaj
tek satırKısa ve eylem odaklı: 'Kaydedildi', 'Bağlantı koptu'. Paragraf gerekiyorsa toast yanlış parçadır.
- 4Ömür
setTimeoutOtomatik kapanma sayacı (2-5 sn); üzerine gelince durması iyi görgü kuralıdır.
- ABelirdi
role="status"Kibar duyuru: ekran okuyucu sırasını bekler, kullanıcının işini bölmez. Başarı mesajları için doğru olan budur.
- BYığıldı
kuyruk + üst sınırArka arkaya birden çok bildirim. Sınır koy (ör. üç) ve eskisini düşür; ekranı kaplayan bildirim kulesi bilgi değil gürültüdür.
- CEylemli
'Geri al' butonuİçinde buton varsa süre uzar ya da otomatik kapanma kalkar. Kullanıcı butona uzanırken kaybolan bildirim, olmamasından kötüdür.
- DDuraklatıldı
hover / odakFare üstüne gelince ya da klavye odağı girince sayaç durmalı; okumaya çalışırken kaçan mesaj erişilebilirlik sorunudur.
- EKapandı
otomatik / elleKayboldu ve geri getirilemez. Bilgi önemliyse aynı bilgi kalıcı bir yerde de bulunmalı (liste, şerit, kayıt).
| CSS | position: fixed | köşeye sabitleme |
| ARIA | role="status" / aria-live | erişilebilir duyuru |
| shadcn/ui | sonner | hazır yığın + sayaç yönetimi |
- Doğru rolü seç: başarı ve bilgi mesajları için role="status" (kibar, sırasını bekler), gerçekten kritik olanlar için role="alert" (araya girer). Her şeyi alert yaparsan ekran okuyucu kullanıcısı sürekli bölünür.
- Süreyi kullanıcı kontrol edebilmeli (WCAG 2.2.1). Hover ve klavye odağında sayaç dursun; okuma hızı herkeste aynı değildir.
- İçinde buton varsa otomatik kapanma ya kalksın ya da belirgin biçimde uzasın — klavyeyle o butona ulaşmak zaman ister.
- Kritik bilgiyi kısa bildirime koyma. Kaybolduğunda geri getirilemeyen bir kanaldır; 'ödeme başarısız' gibi mesajlar sayfada kalıcı olarak da görünmeli.
- Bildirim ekranın köşesinde odak ÇALMAMALI: odağı bildirime taşımak kullanıcının yaptığı işi böler.
Uyarı şeridinden farkı. Kısa bildirim GEÇİCİDİR ve bir olayın sonucunu söyler ('Kaydedildi'); uyarı şeridi KALICIDIR ve devam eden bir durumu anlatır ('E-postan doğrulanmadı'). Test basit: bilgi kullanıcı bir şey yapana kadar doğru kalacaksa şerittir, olay bittiği anda geçersizleşiyorsa kısa bildirimdir. Kalıcı durumu kısa bildirimle söylersen kullanıcı kaçırdığında bir daha göremez.
Kip pencereden farkı. Kısa bildirim BİLDİRİR ve engellemez; kip pencere DURDURUR ve cevap bekler. Seçim, bilginin kaçırılmasının maliyetine göre yapılır: kaçırılırsa hiçbir şey olmuyorsa kısa bildirim, kaçırılırsa yanlış iş yapılıyorsa kip pencere. İkisi arasında kalan durumlar için uyarı şeridi vardır — spektrumun ortası odur.
- standartMDN — ARIA Live Regions ↗
status ile alert arasındaki fark ve duyuruların nasıl kuyruğa girdiği.
- standartMDN — role="status" ↗
Kibar duyurunun doğru kullanımı.
- standartW3C — WCAG 2.2, Timing Adjustable (2.2.1) ↗
Kendiliğinden kaybolan içeriğin süresinin kullanıcı tarafından yönetilebilmesi şartı.
Uyarı şeridi alert / bannerKip pencere modal / dialogRozet badgeAnahtar switch / toggle