Alert
Durum ve geri bildirim için satır içi mesajlar; nötr bir yüzey, renkli bir simge ve yumuşakça daralan bir kapatma düğmesi içerir.
pnpm dlx shadcn@latest add https://hextaui.com/r/alert.jsonBileşeni, HextaUI tema token'larını ve bileşenin bağımlı olduğu tüm HextaUI bileşenlerini ekler.
Henüz eklemediyseniz tema token'larını global CSS'inize ekleyin.
Bağımlılıkları yükleyin.
pnpm add @base-ui/react @tabler/icons-react class-variance-authority cnAşağıdaki kodu kopyalayıp projenize yapıştırın.
components/ui/alert.tsx components/ui/button.tsx lib/motion.ts İçe aktarma yollarını proje yapılandırmanıza uyacak şekilde güncelleyin.
Varyantlar
variant yalnızca simgeyi renklendirir; böylece yüzey nötr kalır ve durum bağırmadan bir bakışta okunur.
Soft
appearance="soft" kenarlığı kaldırır ve tüm yüzeyi variant rengiyle tonlar.
Kısmi içerik
Yalnızca başlık, yalnızca açıklama ve simgesiz durumlar ek sınıf gerekmeden hizalanır. Grid her parçayı kendi sütununa yerleştirir.
Eylemler
Düğmeleri <AlertAction /> içine koyun. Başlık satır atlasa bile başlığın ilk satırıyla hizalanırlar.
Kapatılabilir
Kişilerin kapatabilmesi için <AlertClose /> ekleyin. Alert düzgünce daralır ve altındaki içerik yukarı kayar. Klavyeyle kapatın; odak bir sonraki kontrole, burada “Reset”e geçer.
Kontrollü
Kendi state'inizle yönetmek için open ve onOpenChange geçin. Hem giriş hem çıkış animasyonu yapar.
Kapatmayı iptal etme
Alert'i açık tutmak için kapatma düğmesinin onClick'inde event.preventDefault() çağırın; örneğin önce onay istemek için.
Yüklemeden sonra eklenen
Sayfa yüklendikten sonra eklenen alert'ler solarak ve kayarak görünür, ekran okuyucular bunları duyurur. Sunucu HTML'inde zaten bulunan alert'ler hareketsiz görünür.
Zengin içerik
Açıklama içindeki satır içi simgeler ve bağlantılar kendi stilini korur. Başlığa bir başlık düzeyi vermek için render kullanın.
Sağdan sola
Simge, içerik ve kapatma düğmesi okuma yönüne göre yansıtılır.
| Tuş | Action |
|---|---|
| Tab | Odağı alert içindeki bağlantılara, eylemlere ve kapatma düğmesine taşır. |
| EnterSpace | Odaktaki kapatma düğmesini etkinleştirir. Alert daraldıktan sonra odak, sonraki odaklanabilir öğeye, hiçbiri yoksa öncekine geçer. |
destructivevewarningalert'lerirole="alert"alır ve hemen duyurulur. Diğer tüm variant'larrole="status"alır ve bir duraklamayı bekler.- Kapatma düğmesi “Dismiss” olarak etiketlenir. Çevirmek için
aria-labelgeçin. - Odaktaki bir alert kapandığında odak asla kaybolmaz.
- Azaltılmış hareket açıkken alert'ler anında görünür ve kaybolur.
Her parça, oluşturduğu öğenin niteliklerini kabul eder. Variant'lar, diğer öğeleri aynı biçimde stillemek için alertVariants olarak dışa aktarılır.
| Prop | Tür | Varsayılan |
|---|---|---|
variantSimgeyi renklendirir. destructive ve warning hemen (assertive) duyurulur. | "default" | "destructive" | "success" | "info" | "warning" | "default" |
appearance | "outline" | "soft" | "outline" |
open | boolean | – |
defaultOpen | boolean | true |
onOpenChangeKapatma düğmesine basıldığında çağrılır. | (open: boolean) => void | – |
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="alert" | CSS'te alert'i hedefleyin. |
data-variant | Geçerli varyant. |
data-appearance | Geçerli görünüm. |
data-ending-style | Kapatıldıktan sonra alert daralırken bulunur. |
| Prop | Tür | Varsayılan |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="alert-title" | CSS'te başlıkları hedefleyin. |
| Prop | Tür | Varsayılan |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="alert-description" | CSS'te açıklamaları hedefleyin. İçindeki düz bağlantıların altı sizin için çizilir. |
| Prop | Tür | Varsayılan |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="alert-action" | CSS'te eylem alanını hedefleyin. |
En yakın alert'i kapatan ghost bir <Button />. Button'ın tüm prop'larını kabul eder ve <Alert /> içinde kullanılmalıdır.
| Prop | Tür | Varsayılan |
|---|---|---|
aria-label | string | "Dismiss" |
children | ReactNode | <IconX /> |
onClickAlert'i açık tutmak için event.preventDefault() çağırın. | (event: MouseEvent) => void | – |
| Öznitelik | Açıklama |
|---|---|
data-slot="alert-close" | CSS'te kapatma düğmesini hedefleyin. |
- ButtonHer varyant ve boyutta düğmeler; hızlı istekler için spinner'ı atlayan yerleşik yükleme, başarı ve hata akışı.
- MotionHer bileşenin kullandığı yumuşatma eğrileri, süreler ve azaltılmış hareket denetimi; ayrıca boyut dönüşümleri ve kayan vurgular için hook'lar.
- EmptyHenüz gösterilecek bir şey olmayan ekranlar için, bir simge, bir mesaj ve sonraki eylemi içeren bir yer tutucu.
- ProgressBir görevin ne kadar ilerlediğini gösteren, güncellemeler arasında yumuşak geçiş yapan ve toplam bilinmediğinde kayan bir çubuk ya da halka.
- SkeletonGöstermeden önce 150ms bekleyen, sardıkları içeriğin tam boyutunu alan ve hiçbir şeyi kaydırmadan içeriği yumuşakça görünür kılan yer tutucular.
- SpinnerApple tarzı çentiklere ya da nefes alan bir halkaya sahip, göstermeden önce bekleyebilen ve titremesin diye yeterince uzun kalan bir yükleme göstergesi.
Kullanıldığı bloklar
Alert üzerine kurulan bloklar.
- BillingBir yapay zeka ürünü için Cursor, Claude ve Vercel tarzında plan ve kullanım. Modele göre bölünmüş, dönem sonunu öngören ve krediler bitmeden uyaran bir kullanım ölçeri, üzerinde gezinebileceğiniz günlük bir grafik, ölçer üzerinde önizleyebileceğiniz uyarılara sahip bir harcama limiti, tam orantılı hesaplamayla plan değişiklikleri, gerçek doğrulamalı bir kart formu ve PDF olarak indirilen faturalar.
- MarkdownYapay zeka yanıtları için geliştirilmiş Markdown. Akıcı biçimde akar ve yarım yazılmış sözdizimini asla göstermez; bağlantı verilebilen başlıklar, Markdown ya da CSV olarak kopyalanabilen tablolar, GitHub callout'ları, görev listeleri, dipnotlar, görseller, satır içi alıntılar ve eksiksiz kod blokları sunar.