Popover API'nin başlıca içeriğinin özeti
Popover API'ye giriş
- Popover API, geliştiricilere sayfa içeriğinin üzerinde popover içeriği göstermek için standart, tutarlı ve esnek bir mekanizma sağlar
- Popover içeriği, HTML öznitelikleri kullanılarak deklaratif olarak veya JavaScript üzerinden kontrol edilebilir
Popover'ın özellikleri ve kullanım şekli
- Popover'lar iki türe ayrılır: Modal ve non-modal; Popover API ile oluşturulan popover'lar ise her zaman non-modal'dır
- Modal, popover görüntülenirken sayfanın geri kalanının etkileşimsiz olarak işlenmesi anlamına gelir
- Non-modal, popover görüntülenirken sayfanın geri kalanıyla etkileşim kurulabileceği anlamına gelir
- Popover için yaygın kullanım örnekleri arasında işlem menüleri, özel "toast" bildirimleri, form öğesi önerileri, içerik seçiciler veya eğitim amaçlı UI'ler yer alır
- Popover'lar HTML öznitelikleriyle deklaratif olarak ya da JavaScript API üzerinden oluşturulabilir
Popover API ile ilgili HTML öznitelikleri
popover: Bir öğeyi popover öğesine dönüştüren genel öznitelik
popovertarget: <button> veya <input> öğesini popover kontrol düğmesine dönüştürür
popovertargetaction: Kontrol eden <button> veya <input> tarafından yönetilen popover öğesinde gerçekleştirilecek işlemi belirtir
Popover API ile ilgili CSS özellikleri
::backdrop: Popover öğesinin hemen arkasına yerleştirilen tam ekran öğedir; istenirse popover'ın arkasındaki sayfa içeriğine efekt eklemek için kullanılabilir
:popover-open: Yalnızca popover öğesi görünür durumdayken eşleşen sözde sınıftır; popover öğesi gösterildiğinde stil vermek için kullanılabilir
Popover API ile ilgili arayüzler ve genişletmeler
ToggleEvent: Popover öğesinin durumu görünür ve gizli arasında değiştiğinde kullanıcıyı bilgilendiren olayı temsil eder
HTMLElement.popover, HTMLButtonElement.popoverTargetElement, HTMLInputElement.popoverTargetElement, HTMLButtonElement.popoverTargetAction, HTMLInputElement.popoverTargetAction gibi instance özellikleri eklendi
HTMLElement.hidePopover(), HTMLElement.showPopover(), HTMLElement.togglePopover() gibi instance metotları eklendi
beforetoggle, toggle olayları eklendi
GN⁺ görüşü
- Popover API, web geliştiricilere popover UI'lerini kolayca uygulayabilecekleri standart bir yöntem sunması açısından anlamlı. Daha önce bunun için kütüphane kullanmak veya doğrudan kendiniz uygulamak gerekiyordu
- Ancak Popover API'nin hâlâ deneysel bir özellik olması ve tarayıcı desteğinin sınırlı olması dikkate alınmalı. Production ortamında kullanmak için polyfill ya da mevcut kütüphanelerle birlikte kullanımın değerlendirilmesi gerekebilir
- Benzer işlev sunan kütüphaneler arasında Bootstrap'ın Popover bileşeni ve Tippy.js bulunuyor
- Popover API kullanılırken erişilebilirlik de göz önünde bulundurulmalı. Popover klavyeyle kontrol edilebilmeli ve ekran okuyucu kullanıcıları için alternatif metin de sağlanmalı
1 yorum
Hacker News görüşleri
Özetle şöyle deniyor.
<dialog>öğesi de kullanılabilir.<dialog>kullanılması öneriliyor; ancak arka planı bulanıklaştırma gibi durumlarda popover'ı modal yapmak zaten doğru kullanım senaryosu.<popover modal=true>daha iyi bir yaklaşım olmaz mı?