Empty
Henüz gösterilecek bir şey olmayan ekranlar için, bir simge, bir mesaj ve sonraki eylemi içeren bir yer tutucu.
pnpm dlx shadcn@latest add https://hextaui.com/r/empty.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 class-variance-authority cnAşağıdaki kodu kopyalayıp projenize yapıştırın.
components/ui/empty.tsx İçe aktarma yollarını proje yapılandırmanıza uyacak şekilde güncelleyin.
Giriş
Bir boş durum içeriğin yerini aldığında parçaları birbiri ardına yukarı doğru solarak gelir: medya, başlık, açıklama, sonra eylemler. Görmek için bildirimleri kapatın. Azaltılmış harekette yalnızca belirir. İlk boyamadan itibaren orada olan boş durumlar için animated={false} ayarlayın.
Outline
variant="outline" kesikli ince bir kenarlık çizer; bir bırakma bölgesini veya içerik bekleyen bir alanı işaretlemenin olağan yoludur.
Soluk
variant="muted" yumuşak bir dolgu üzerinde durur. Simge karosu, yine öne çıksın diye yükseltilmiş beyaz bir yüzeye geçer.
Küçük
size="sm" kenar çubukları, popover'lar ve dar paneller için dolguyu, boşlukları, simge karosunu ve başlığı sıkılaştırır.
Avatar
Varsayılan EmptyMedia variant'ı yalnızca içeriğini ortalar; böylece herhangi bir avatar, rozet veya illüstrasyon uyar.
Avatar grubu
Davetler ve paylaşılan alanlar için burada kimlerin olabileceğini gösterin.
Image
Yüklenirken düzenin kaymaması için görsellere açık boyutlar verin.
Arama sonucu yok
Filtreler hiçbir şeyle eşleşmediğinde sonuçları bir boş durumla değiştirin ve bir çıkış yolu sunun. Görsel olarak gizli bir role="status" sayıyı duyurur; böylece ekran okuyucu kullanıcıları, tüm liste okunmadan değişikliği duyar.
Bir kartta
Henüz verisi olmayan bir kartı doldurmak için muted variant ile size="sm" kullanın.
Bir tabloda
Başlığın hizalı kalması için colSpan ile her sütunu kaplayan tek bir hücreye koyun.
Bir popover'da
Menüler ve bildirim panelleri için kompakt bir boş durum.
Bir komut listesinde
<CommandEmpty /> geçerli aramayı bir fonksiyon alt öğesine geçirir; böylece mesaj onu alıntılayabilir.
Başlık düzeyi
Başlık bir <div> olduğundan sayfa anahatlarınızı asla bozmaz. Onu uygun başlık düzeyi olarak render edin ve bölgeyi onunla etiketleyin.
Uzun içerik
Kırılmayan adlar ve uzun adresler kapsayıcının içinde sarar, uzun düğme etiketleri ise kısaltılır.
Sağdan sola
Her şey ortalanır ve mantıksal özellikler kullanır; bu yüzden sağdan sola düzenlerde doğal okunur.
<EmptyTitle />bir<div>render eder. Boş durum sayfanın bir bölümüyserender={<h2 />}(veya uygun düzeyi) geçin.<EmptyMedia variant="icon" />yardımcı teknolojilerden gizlenir; çünkü başlık zaten ne anlama geldiğini söyler. Varsayılan variant'taki görseller erişilebilir kalır, bu yüzden onlara biraltveyaalt=""verin.- Bir arama veya filtreden sonra sonuçlar kaybolduğunda, değişikliği listenin yanında kısa bir
role="status"mesajıyla duyurun. Düğmeleri ve bağlantıları her seferinde okunacağı için tüm boş durumu bir canlı bölge yapmayın.
Her parça düz bir öğe render eder, niteliklerini kabul eder ve öğeyi değiştirmek için render prop'unu destekler.
| Prop | Tür | Varsayılan |
|---|---|---|
variant | "default" | "outline" | "muted" | "default" |
sizesm dolguyu, boşlukları, simge karosunu ve başlığı sıkılaştırır. | "default" | "sm" | "default" |
animatedBoş durum bağlandığında parçaları sırayla yukarı doğru solarak getirin. Azaltılmış harekette atlanır. | boolean | true |
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="empty" | CSS'te kökü hedefleyin. |
data-variant | Geçerli varyant. |
data-size | Geçerli boyut. |
data-animated | Giriş animasyonu açıkken bulunur. |
--empty-padding | Her yandan dolgu. Boyuta göre ayarlanır. |
--empty-gap | Üst bilgi ile içerik arasındaki boşluk. Boyuta göre ayarlanır. |
| Prop | Tür | Varsayılan |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="empty-header" | CSS'te başlığı hedefleyin. |
| Prop | Tür | Varsayılan |
|---|---|---|
varianticon, simgeyi soluk bir karoya koyar. stack, karoyu, boş duruma gelindiğinde açılan, yelpaze gibi dizilmiş iki kartın üstüne yükseltir. İkisi de medyayı yardımcı teknolojilerden gizler. | "default" | "icon" | "stack" | "default" |
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="empty-icon" | CSS'te medyayı hedefleyin. shadcn ile eşleşir. |
data-variant | Geçerli varyant. |
| Prop | Tür | Varsayılan |
|---|---|---|
renderrender={<h2 />} gibi bir başlık render edin. | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="empty-title" | CSS'te başlığı hedefleyin. |
| Prop | Tür | Varsayılan |
|---|---|---|
renderİçindeki düz bağlantıların altı çizilir. Bağlantı olarak render edilen bileşenler kendi stilini korur. | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="empty-description" | CSS'te açıklamayı hedefleyin. |
| Prop | Tür | Varsayılan |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="empty-content" | CSS'te eylem alanını hedefleyin. |
- AlertDurum 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.
- 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.
- ToastDüzgünce üst üste binen, hover'da genişleyen, kaydırılarak kapatılan ve yükleme durumunu yerinde başarıya ya da hataya çeviren kısa mesajlar.
Kullanıldığı bloklar
Empty üzerine kurulan bloklar.
- API keysOpenAI ve Anthropic konsolları gibi bir yapay zeka ürününün API anahtarları sayfası. Kapsamlı izinler ve son kullanma tarihiyle anahtar oluşturun, gizli anahtarı bir kez görün ve kopyalama onaylansın, geri alınabilir şekilde iptal edin, yerinde yeniden adlandırın, ek süreyle döndürün ve anahtar başına kullanımı görün.
- Diff ReviewBir ajanın dosyalardaki düzenlemelerini uygulanmadan önce gözden geçirin. Sayaçlı bir dosya ağacı, her değişikliği, her dosyayı ya da hepsini kabul veya reddetme, herhangi bir satıra ya da aralığa ajana geri giden yorumlar, birleşik ve bölünmüş görünümler, kelime düzeyinde vurgular, geri alma, akışla gelen düzenlemeler ve sohbet için bir “4 dosya düzenlendi” özeti.
- SecurityBir yapay zeka ürünü için oturumlar ve güvenlik. Satırları animasyonla kaldıran oturum kapatmalı etkin cihazlar, canlı güç ölçerli parola değişikliği, gerçek QR kodlu iki aşamalı doğrulama kurulumu, 6 haneli bir kontrol ve indirilebilir kurtarma kodları, WebAuthn ile passkey'ler ve yazılı onayla korunan hesap silme.
- SettingsCursor ve Claude gibi düzenlenmiş, bir yapay zeka ürünü için ayarlar. Arama, gruplar ve harici bağlantılı dolu bir kenar çubuğu, sakin seçiciler ve iç içe seçenekler içeren satır kartları, yalnızca bir şey değiştiğinde yükselen koyu bir kaydetme adası, kaydetmek için ⌘S, kontrollerinizden ya da sunucunuzdan gelen alan hataları ve içeriğin şeklini alan yükleme durumları.