İlerleme
Bir 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.
pnpm dlx shadcn@latest add https://hextaui.com/r/progress.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/progress.tsx İçe aktarma yollarını proje yapılandırmanıza uyacak şekilde güncelleyin.
<Progress /> kendi izini ve göstergesini alt öğelerinden sonra çizer; böylece etiket ve değer çubuğun üstünde tek satırda durur. Her güncelleme dolguyu bulunduğu yerden yumuşatır, böylece hızlı güncellemeler adım adım değil tek bir akıcı hareket olarak okunur.
Boyutlar
xs, sm, default ve lg çubuğun kalınlığını değiştirir. xs, Attachment'ın alt kenarı boyunca çizdiği ince çizgidir.
Durum
variant yalnızca dolguyu veya halkayı renklendirir; iz, etiket ve değer nötr kalır.
Belirsiz
Toplam bilinmiyorken value={null} verin. Bir bölüm iz boyunca kayar ve bir sayı gelince dolgu baştan büyür.
Daire
<ProgressCircle /> aynı değeri üstten başlayan bir halka olarak çizer. Alt öğeler ortada durur; bu, lg ve xl boyutlarındaki <ProgressValue /> için uygundur.
Belirsiz daire
Bir değer gelene kadar halkanın çevresinde bir yay döner.
Özel aralık ve biçim
Herhangi bir aralık için min ve max, sayı için format, metin için <ProgressValue /> üzerinde bir fonksiyon alt öğesi ayarlayın. Ekran okuyuculara aynı sözleri getAriaValueText ile verin.
Animasyonlu değer
Yalnızca değişen hanelerin dolguyla uyumlu dönmesi için <ProgressValue /> içinde <NumberFlow /> işleyin.
Uzun etiketler
Uzun adlar kendi satırlarına sarar ve değer sonda kalır. Halkalar her satırın yanında kompakt bir durum olarak işe yarar.
Görünür etiket olmadan
Bağlam neyin yüklendiğini zaten söylüyorsa çubuğu aria-label ile adlandırın.
Sağdan sola
Dolgu ve belirsiz kayma sağdan başlar. Değeri okuyucunun rakamlarıyla biçimlendirmek için locale verin.
- Kök,
aria-valuenow,aria-valuemin,aria-valuemaxve biçimlendirilmiş biraria-valuetextiçeren birprogressbar'dır. Belirsizken geçerli değeri yoktur. <ProgressLabel />çubuğu adlandırır. Yoksaaria-labelverin.<ProgressValue />ekran okuyuculardan gizlenir, çünkü progressbar değeri zaten duyurur.- Azaltılmış harekette dolgu her yeni değere atlar; belirsiz çubuk ve halka hareket etmek yerine yerinde nabız atar.
localevermedikçe değerleren-USile biçimlendirilir; böylece sunucu ve tarayıcı aynı metni işler.
Base UI progress üzerine kuruludur. Her parça sardığı ilkelin prop'larını kabul eder.
| Prop | Tür | Varsayılan |
|---|---|---|
valuenull çubuğu belirsiz yapar. | number | null | – |
min | number | 0 |
max | number | 100 |
size | "xs" | "sm" | "default" | "lg" | "default" |
variant | "default" | "success" | "warning" | "destructive" | "default" |
formatDeğeri biçimlendirir. Olmadan değer yüzde olarak gösterilir. | Intl.NumberFormatOptions | – |
locale | Intl.LocalesArgument | "en-US" |
getAriaValueText | (formattedValue: string, value: number | null) => string | – |
className | string | (state) => string | – |
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="progress" | Kök. |
data-size | Boyut: xs, sm, default veya lg. |
data-variant | Durum varyantı. |
data-progressing | Değer max değerinin altındayken bulunur. |
data-complete | Değer max değerine ulaştığında bulunur. |
data-indeterminate | Değer null veya sonlu bir sayı olmadığında bulunur. |
Progressbar'ı adlandırır. Bir <span> işler ve kökle aynı durum niteliklerini alır.
| Prop | Tür | Varsayılan |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <span> |
| Öznitelik | Açıklama |
|---|---|
data-slot="progress-label" | Etiket. |
| Prop | Tür | Varsayılan |
|---|---|---|
childrenÖzel metin. Olmadan biçimlendirilmiş değer gösterilir, belirsizken ise hiçbir şey. | (formattedValue: string | null, value: number | null) => ReactNode | – |
render | ReactElement | (props, state) => ReactElement | <span> |
| Öznitelik | Açıklama |
|---|---|
data-slot="progress-value" | Değer. |
<Progress /> tarafından işlenir ve size değeriyle boyutlandırılır. Özel bileşimler için dışa aktarılır.
| Öznitelik | Açıklama |
|---|---|
data-slot="progress-track" | İz. |
--progress-dir | 1 ya da sağdan solda -1; böylece belirsiz kayma okuma yönünü izler. |
Dolgu. Genişliği değerden satır içi ayarlanır ve güncellemeler arasında yumuşar.
| Öznitelik | Açıklama |
|---|---|
data-slot="progress-indicator" | Dolgu. |
| Prop | Tür | Varsayılan |
|---|---|---|
valuenull bir yay döndürür. | number | null | – |
min | number | 0 |
max | number | 100 |
size | "sm" | "default" | "lg" | "xl" | "default" |
variant | "default" | "success" | "warning" | "destructive" | "default" |
locale | Intl.LocalesArgument | "en-US" |
childrenHalkanın ortasında gösterilir. | ReactNode | – |
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="progress-circle" | Kök. |
data-size | Boyut: sm, default, lg veya xl. |
data-variant | Durum varyantı. |
data-progressing | Değer max değerinin altındayken bulunur. |
data-complete | Değer max değerine ulaştığında bulunur. |
data-indeterminate | Değer null veya sonlu bir sayı olmadığında bulunur. |
--progress-circle-size | Halkanın genişliği ve yüksekliği. |
--progress-stroke | Halkanın çizgi kalınlığı. |
- 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.
- 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.
- AttachmentYüklemeler için dosya ve görsel kartları; ilerleme, durumlar, eylemler, tüm kartı kaplayan bir tetikleyici ve uzantısını koruyan adlar içerir.