Skeleton
Gö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.
pnpm dlx shadcn@latest add https://hextaui.com/r/skeleton.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 cn tw-animate-cssAşağıdaki kodu kopyalayıp projenize yapıştırın.
components/ui/skeleton.tsx İçe aktarma yollarını proje yapılandırmanıza uyacak şekilde güncelleyin.
Shimmer ve nabız, temanızdaki iki animasyonu kullanır. Bunları global CSS dosyanıza bir kez ekleyin.
Skeleton'u boyutlandırılmış bir yer tutucu olarak tek başına kullanın veya yer tutucu gerçek içeriğin tam boyutunu alsın diye loading verip gerçek içeriği sarın.
Şekiller
Tek başına bir skeleton boş bir bloktur. Yerine geçtiği şeye uysun diye sınıflarla ona boyut ve yarıçap verin.
Animasyonlar
animation süpüren bir shimmer, yumuşak bir pulse veya none seçer.
Metin
<SkeletonText /> satır başına bir çubuk çizer ve üst öğenin yazı tipi boyutunu ve satır yüksekliğini izler; böylece yerine geçtiği metinle aynı alanı doldurur. Son satır daha kısadır.
Gerçek içeriği sarın
loading ile skeleton gerçek içeriği altta görünmez olarak işler; böylece tam boyutu alır ve veri geldiğinde hiçbir şey kaymaz. loading false olunca içerik solarak belirir.
Satır içi
Bir skeleton'u cümle içine yerleştirmek için render={<span />} verin. Metnin taban çizgisine oturur.
Hızlı yükleme
Bir skeleton ilk 150ms boyunca görünmez kalır, sonra solarak belirir. Daha erken gelen veri hiç yer tutucu çakıştırmaz.
Çok satır
Birlikte mount olan skeleton'lar animasyonlarına birlikte başlar; böylece uzun bir liste tek bir yükleme alanı gibi okunur.
Sağdan sola
Sağdan sola düzende shimmer sağdan sola süpürür.
- Tek başına bir skeleton dekoratiftir ve yardımcı teknolojilerden gizlidir;
<SkeletonText />da öyle. - İçeriği saran bir skeleton yüklenirken
aria-busyayarlar. Alttaki içerik yardımcı teknolojilerden gizlenir ve yüklenene kadar odaklanılamaz. - Skeleton'lar hiçbir şey duyurmaz. İnsanların neyin yüklendiğini bilmesi gerekiyorsa görünür bir etiket veya durum mesajı ekleyin.
- Azaltılmış hareket açıkken skeleton'lar shimmer, nabız veya solma olmadan hemen görünür.
İşlediği öğenin tüm niteliklerini kabul eder.
| Prop | Tür | Varsayılan |
|---|---|---|
animation | "shimmer" | "pulse" | "none" | "shimmer" |
loadingAyarlandığında skeleton alt öğelerini sarar: true yer tutucuyu, false içeriği gösterir. Bağımsız bir yer tutucu için vermeyin. | boolean | – |
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="skeleton" | CSS'te skeleton'ları hedefler. |
data-animation | Kullanılan animasyon. Sarılan içerik yüklendikten sonra kaldırılır. |
data-loading | İskelet içeriği sardığında "true" veya "false". |
data-slot="skeleton-content" | Gerçek içeriği sarar. Yüklenirken görünmez ve etkisizdir. |
--skeleton-dir | 1 ya da sağdan sola düzenlerde -1. Shimmer'ın yönünü belirler. |
Tüm <div> niteliklerini kabul eder.
| Prop | Tür | Varsayılan |
|---|---|---|
linesAşağı yuvarlanır ve 1 ile 50 arasında tutulur. | number | 3 |
animation | "shimmer" | "pulse" | "none" | "shimmer" |
| Öznitelik | Açıklama |
|---|---|
data-slot="skeleton-text" | Satırlar için kapsayıcı. |
- 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.
- 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.
- 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.
- Aspect ratioMedya yüklenmeden önce şeklini koruyan, yüklenirken parıldayan, medyayı yumuşakça görünür kılan ve hata durumunda yedeğe düşen bir kutu.
Kullanıldığı bloklar
Skeleton ü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.
- ArtifactModelin ürettiğini gösteren, yapay zeka sohbetinin yanındaki panel. Web sayfaları, SVG'ler, belgeler ve kod canlı olarak akar, ardından korumalı bir önizlemeye geçer; karşılaştırıp geri yükleyebileceğiniz sürümler, yeniden boyutlandırılabilir bir bölme ve telefonlarda alt sayfa sunar.
- 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.
- 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.