Stepper

Çok adımlı bir akıştaki ilerlemeyi gösteren, salt okunur bir gösterge.

KararlıKaynak kod
  1. Hesap, Tamamlandı
  2. Teslimat, Geçerli adım
  3. Ödeme, Başlanmadı
  4. Özet, Başlanmadı

Import

tsx
import { Stepper } from "@merid/react";

Anatomi

tsx
<Stepper.Root current={0}>
  <Stepper.Step title="…" description="…" />
</Stepper.Root>
  • Stepper.Root: sıralı bir liste. current, aktif adımın sıfırdan başlayan index'idir; önceki adımlar tamamlanmış, sonrakiler sırada bekliyor sayılır.
  • Stepper.Step: numaralı bir işaret (tamamlandığında onay işareti), bir başlık ve isteğe bağlı bir açıklamadan oluşan tek adım.

Örnekler

Açıklamalarla dikey

  1. Çalışma alanı oluşturAd ve bölge, Tamamlandı
  2. Ekibi davet etEn fazla 10 kişi ekle, Tamamlandı
  3. Veriyi bağlaCSV'den ya da bir API'den import et, Geçerli adım
  4. Yayına al, Başlanmadı

Responsive davranış

Yatay yönde başlıklar ve açıklamalar tek satırda kalır, sığmayınca üç noktayla kısalır; string başlıklar tam metni bir title attribute'unda saklar. Stepper kendi genişliğini ölçer (viewport'u değil, bir CSS container query'si kullanır): 560px'in altında kompakt bir layout'a geçer; yalnızca geçerli adım başlığını gösterir, diğerleri numaralı ya da onaylı işaretlerine küçülür. Küçülen başlıklar erişilebilirlik ağacında kalır; ekran okuyucular her iki durumda da tüm adımları duyurur, dar kolonlar da JavaScript ya da yön değişikliği gerektirmez.

API referansı

Stepper.Root

<ol> render'lar ve onun tüm HTML attribute'larını kabul eder.

PropTipVarsayılanAçıklama
currentZorunlunumber–Geçerli adımın sıfırdan başlayan index'i. Ondan önceki adımlar tamamlanmış sayılır.
orientation"horizontal" | "vertical""horizontal"Layout yönü.
aria-labelstring"Progress"Adım listesinin erişilebilir adı. Türkçe arayüzlerde Türkçe bir değer ver.
refRef<HTMLOListElement>–Listeye iletilen ref.

Stepper.Step

<li> render'lar ve title dışındaki HTML attribute'larını kabul eder. Stepper.Root'un doğrudan child'ı olmalı.

PropTipVarsayılanAçıklama
titleZorunluReactNode–Adımın adı.
descriptionReactNode–İsteğe bağlı açıklama satırı.
statusLabelsPartial<Record<"complete" | "current" | "upcoming", string>>{ complete: "Completed", current: "Current step", upcoming: "Not started" }Her adımın sonuna eklenen, ekran okuyucuya yönelik durum kelimeleri. Türkçe arayüzlerde Türkçe değerler ver.

Stil verme

  • .mrd-stepper[data-orientation]: kök liste, horizontal ya da vertical.
  • .mrd-stepper__step[data-state]: complete, current ya da upcoming.
  • .mrd-stepper__marker: 28px'lik daire; sıradaki adımda --mrd-tray, geçerli adımda 1,5px'lik --mrd-accent halka, tamamlanmış adımda --mrd-accent-soft.
  • .mrd-stepper__title / .mrd-stepper__description: metin; geçerli adımda başlık --mrd-ink rengine döner.
  • .mrd-stepper__step::after: adımlar arasındaki 1px'lik --mrd-line bağlayıcı.

Erişilebilirlik

Stepper'lar için bir APG deseni yok. Stepper statik, sıralı bir listedir; APG landmark ve liste rehberinin yapılandırılmış içerik için önerdiği yapının aynısı. Etkileşimli değildir.

  • Liste varsayılan olarak "Progress" adını alır; akışı anlatan bir aria-label ver.
  • Geçerli adım aria-current="step" taşır.
  • Her adım görsel olarak gizli bir durum kelimesiyle biter ("Completed", "Current step", "Not started"); yerelleştirme için statusLabels ile değiştirilebilir.
  • İşaretler aria-hidden'dır; numara listedeki sırayla aktarılır.

Adımlar focus almaz, bu yüzden klavye etkileşimi yoktur. Kullanıcı bir adıma geri dönebiliyorsa adımın içeriğine link ya da buton koy.

Kullanım ilkeleri

Yap

Adım başlıklarını kısa ve isim gibi tut; adım sayısı üç ile altı arasında olsun.

Kaçın

Stepper'ı tab yerine ya da adımlar arasında gezinmenin tek yolu olarak kullanmak.

Yap

statusLabels'ı başlıklarla birlikte yerelleştir.

Kaçın

Bir adımın verisi gerçekten kaydedilmeden onu tamamlandı olarak işaretlemek.

İlgili sayfalar