Breadcrumb

Mevcut sayfanın hiyerarşideki yerini, her üst sayfaya link vererek gösterir.

KararlıKaynak kod

Import

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

Anatomi

tsx
<Breadcrumb.Root>
  <Breadcrumb.Item>
    <Breadcrumb.Link href="/" />
  </Breadcrumb.Item>
  <Breadcrumb.Item>
    <Breadcrumb.Page />
  </Breadcrumb.Item>
</Breadcrumb.Root>
  • Breadcrumb.Root: sıralı bir listeyi saran <nav> landmark'ı.
  • Breadcrumb.Item: yoldaki bir <li>. Ayraçlar item'ların arasına CSS ile çizilir.
  • Breadcrumb.Link: bir üst sayfaya giden <a>.
  • Breadcrumb.Page: aria-current="page" taşıyan, düz metin olarak mevcut sayfa.

Örnekler

Uzun yol

Yer kalmadığında mevcut sayfa alt satıra geçmek yerine üç noktayla kısaltılır; genişliği sınırlı bir alanda item'ına min-width: 0 ver. Listenin kendisi item'lar arasında alt satıra geçer.

Router ile

Breadcrumb.Link düz bir <a> render'lar ve as prop'u almaz. Client tarafı routing için router'ının link'ini Breadcrumb.Item'ın içine koy ve ona className="mrd-breadcrumb__link" ekle.

API referansı

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

PropTipVarsayılanAçıklama
aria-labelstring"Breadcrumb"Landmark'ın erişilebilir adı. Türkçe arayüzde örneğin `"Sayfa yolu"` ver.
refRef<HTMLElement>–nav elemanına iletilen ref.

<li> render'lar ve tüm HTML attribute'larını kabul eder. Ek prop'u yoktur.

Varsayılan olarak <a> render'lar ve tüm anchor attribute'larını kabul eder. Onun yerine bir router link'i render'lamak için as ver; to gibi ek prop'lar iletilir.

PropTipVarsayılanAçıklama
asElementType"a"Render'lanacak eleman ya da component, örneğin bir router `Link`'i.
hrefstring–Üst sayfanın adresi.
refRef<HTMLAnchorElement>–Anchor'a iletilen ref.

<span aria-current="page"> render'lar ve tüm HTML attribute'larını kabul eder. Ek prop'u yoktur.

Stil verme

  • .mrd-breadcrumb: nav root.
  • .mrd-breadcrumb__list: ol elemanı; --mrd-text-xs boyutunda, alt satıra geçebilen bir flex satırı.
  • .mrd-breadcrumb__item: her li; .mrd-breadcrumb__item + .mrd-breadcrumb__item::before, / ayracını --mrd-placeholder renginde çizer.
  • .mrd-breadcrumb__link: --mrd-body renginde üst sayfa link'i, hover'da --mrd-ink.
  • .mrd-breadcrumb__page: --mrd-ink renginde, orta kalınlıkta, tek satırda üç noktayla kısalan mevcut sayfa.

Ayraç content: "/" / "" kullanır; alternatif metni boş olduğu için ekran okuyucu onu okumaz. Değiştirmek için kendi layer'ında .mrd-breadcrumb__item + .mrd-breadcrumb__item::before'u ez.

Erişilebilirlik

WAI-ARIA Breadcrumb desenini izler.

  • Root, varsayılan olarak "Breadcrumb" adını taşıyan bir nav landmark'ıdır. Sayfada birden çok navigasyon landmark'ı varsa aria-label ile yeniden adlandır.
  • Item'lar sıralı bir listedir; ekran okuyucular konumu ve toplam sayıyı okur.
  • Son item Breadcrumb.Page kullanır; bu aria-current="page" atar ve link değildir.
TuşNe yapar
TabFocus'u yoldaki bir sonraki link'e taşır.
ShiftTabFocus'u bir önceki link'e taşır.
EnterFocus'taki link'e gider.

Kullanım ilkeleri

Yap

Anlamlı bir kökten başla ve mevcut sayfayla, metin olarak bitir. Etiketleri kullanıcıların zaten gördüğü sayfa başlıklarıyla aynı tut.

Kaçın

Breadcrumb'ı tek navigasyon olarak ya da ziyaret edilen sayfaların geçmişini göstermek için kullanmak. Hiyerarşiyi anlatır, geri butonu değildir.

Yap

Her üst sayfayı link yap.

Kaçın

Mevcut sayfayı kendisine link'lemek.

İlgili sayfalar