Skip to main content

Breadcrumbs

shadow

Breadcrumbs je komponent, ktorý zobrazuje cestu, po ktorej používateľ prešiel v rámci aplikácie alebo webu. Tento element zobrazuje hierarchické usporiadanie stránok, v ktorom každý segment cesty Breadcrumb je hyperlink, umožňujúci rýchly návrat na predchádzajúce úrovne. Breadcrumbs môže obsahovať ikonu.

Základné použitie

Ukážka zobrazuje základný breadcrumb trail s niekoľkými úrovňami, aby bolo jasné, ako sa skladá navigačná cesta a kde je aktívna položka.

Dátové položky

Okrem ručne vložených wje-breadcrumb elementov môžete breadcrumb trail riadiť aj cez property items. Komponent z poľa vytvorí položky a pri ďalšom nastavení porovná nové dáta s existujúcim DOM podľa id, takže upraví iba zmenené položky. Rovnaké dáta môžete odovzdať aj ako JSON string cez atribút items, ak komponent konfigurujete priamo v HTML.

const breadcrumbs = document.querySelector('wje-breadcrumbs');

breadcrumbs.items = [
{ id: 'home', label: 'Home', href: '/', icon: 'home' },
{ id: 'documents', label: 'Documents', href: '/documents' },
{ id: 'invoice', label: 'Invoice', disabled: true, data: { folderId: 10 } },
];

breadcrumbs.addEventListener('wje-breadcrumbs:item-click', (event) => {
const { item, index, originalEvent } = event.detail;

if (item.disabled) {
event.preventDefault();
}
});

Položka podporuje polia id, label, href, icon, disabled a vlastné data. Klik na dátovo riadenú položku dispatchuje wje-breadcrumbs:item-click; ak listener zavolá event.preventDefault(), pôvodná navigácia sa zastaví.

Použitie s ikonami

Ukážka pridáva ikony priamo k breadcrumb položkám. Hodí sa v prípadoch, keď potrebujete rýchlejšie rozlíšiť sekcie aj vizuálne, nielen textom.

Vlastná ikona oddeľovača

Ukážka mení predvolený oddeľovač breadcrumbov za vlastnú ikonu. Je to vhodné vtedy, keď chcete trail priblížiť vizuálnemu štýlu zvyšku aplikácie.

Zbaľovací breadcrumb

Maximálny počet položiek

Ak je v zozname viac položiek ako hodnota maxItems, zoznam sa zbalí. Hodnota max-items určuje celkový počet viditeľných breadcrumb prvkov vrátane indikátora ....

Ak chcete zbaľovať iba pod konkrétnou šírkou obrazovky, pridajte atribút breakpoint. Podporuje tokeny sm, md, lg, xl, 2xl/xxl aj priamu číselnú hodnotu v pixeloch. Nad breakpointom ostane trail rozbalený aj vtedy, keď má viac položiek ako max-items.

Pre toolbar alebo úzke hlavičky môžete pod breakpointom schovať celý trail do jedného menu pomocou breakpoint-collapse="menu". Nad breakpointom ostáva bežné skrátenie podľa max-items, pod breakpointom ostane v toolbare iba kompaktný indikátor a všetky breadcrumb položky sa presunú do jeho mobilného zobrazenia alebo dropdownu.

Mobilné zobrazenie riadi collapsed-variant. Pôvodná hodnota dropdown ostáva podporovaná. Pre kompaktné hlavičky sú dostupné aj hodnoty text, back, parent-title, menu-title a sheet. Pre disk alebo file manager je odporúčané collapsed-variant="back", ktoré zobrazí parent akciu a aktuálny názov:

<wje-breadcrumbs breakpoint="lg" breakpoint-collapse="menu" collapsed-variant="back">
<wje-breadcrumb href="/disk">Disk</wje-breadcrumb>
<wje-breadcrumb href="/disk/personal">Personal</wje-breadcrumb>
<wje-breadcrumb>TESTS</wje-breadcrumb>
</wje-breadcrumbs>

Predvolený hamburger v tomto režime môžete zmeniť cez breakpoint-collapse-icon, alebo nahradiť celé tlačidlo slotom breakpoint-collapse-trigger. Ak slot nepoužijete, zobrazí sa predvolený wje-button.

<wje-breadcrumbs breakpoint="lg" breakpoint-collapse="menu" breakpoint-collapse-icon="menu-2">
<wje-breadcrumb href="/home" title="Home" aria-label="Home"><wje-icon slot="start" name="home"></wje-icon></wje-breadcrumb>
<wje-breadcrumb href="/photography">Photography</wje-breadcrumb>
</wje-breadcrumbs>

<wje-breadcrumbs breakpoint="lg" breakpoint-collapse="menu">
<wje-button slot="breakpoint-collapse-trigger" fill="outline" aria-label="Breadcrumb menu">
<wje-icon name="menu-2"></wje-icon>
</wje-button>

<wje-breadcrumb href="/home" title="Home" aria-label="Home"><wje-icon slot="start" name="home"></wje-icon></wje-breadcrumb>
<wje-breadcrumb href="/photography">Photography</wje-breadcrumb>
</wje-breadcrumbs>

Počet položiek pred alebo po zbalení

Keď sú položky zbalené, počet položiek pred a za indikátorom možno riadiť vlastnosťami itemsBeforeCollapse a itemsAfterCollapse. Ak itemsAfterCollapse nenastavíte, dopočíta sa automaticky z max-items.

Rozbaľovacie okno

Zbalené položky je možné zobraziť aj v podobe rozbaľovacieho okna použitím vlastnosti collapsed-variant s hodnotou dropdown.

Rozbalenie po kliknutí

Ak nechcete rozbaľovacie menu, predvolený button variant zobrazí skryté položky priamo v traili po kliknutí na indikátor zbalenia.

Úprava štýlov

Farebné varianty

Farby breadcrumbov sa upravujú cez CSS premenné na wje-breadcrumb, takže si môžete pripraviť aj vlastné významové varianty pre konkrétne trail-y.

CSS vlastné premenné

Ak potrebujete jemnejšie doladiť predvolený vzhľad, upravte CSS premenné pre text a hover stav jednotlivých breadcrumb položiek.

Kedy použiť

Použite wje-breadcrumbs, keď používateľ potrebuje orientáciu v aplikácii alebo prechod medzi stavmi/obrazovkami.

Kedy nepoužiť

Nepoužívajte viac paralelných navigačných vzorov, ktoré si navzájom konkurujú.

Prístupnosť

Zabezpečte jasné active/selected stavy, predvídateľné poradie tabulátora a pomenovanie ovládacích prvkov.

Odporúčané postupy

  • Držte URL a UI stav v synchronizácii, aby bola navigácia reprodukovateľná.
  • Používajte konzistentné názvoslovie položiek naprieč menu, breadcrumbom a tabmi.
  • Pri hlbokých štruktúrach pridajte pomocný kontext (breadcrumb, nadpis, ikony).

Atribúty a vlastnosti

ariaLabel

PopisNastavuje ARIA metadáta, ktoré zlepšujú prístupnosť pre asistenčné technológie.
Atribútaria-label
Typany
Predvolené-

ariaLabelledby

PopisNastavuje ARIA metadáta, ktoré zlepšujú prístupnosť pre asistenčné technológie.
Atribútaria-labelledby
Typany
Predvolené-

breakpoint

PopisNastavuje textovú hodnotu uloženú vo voľbe breakpoint.
Atribútbreakpoint
Typstring
Predvolené-

breakpointCollapse

PopisNastavuje textovú hodnotu uloženú vo voľbe breakpoint-collapse.
Atribútbreakpoint-collapse
Typstring
Predvolené-

breakpointCollapseIcon

PopisNastavuje textovú hodnotu uloženú vo voľbe breakpoint-collapse-icon.
Atribútbreakpoint-collapse-icon
Typstring
Predvolené-

collapsedVariant

PopisNastavuje ARIA metadáta, ktoré zlepšujú prístupnosť pre asistenčné technológie.
Atribútcollapsed-variant
Typstring
Predvolené-

itemsAfterCollapse

PopisNastavuje číselnú hodnotu používanú vo voľbe items-after-collapse.
Atribútitems-after-collapse
Typnumber
Predvolené1

itemsBeforeCollapse

PopisNastavuje číselnú hodnotu používanú vo voľbe items-before-collapse.
Atribútitems-before-collapse
Typnumber
Predvolené1

maxItems

PopisNastavuje číselnú hodnotu používanú vo voľbe max-items.
Atribútmax-items
Typnumber
Predvolené-

variant

PopisNastavuje ARIA metadáta, ktoré zlepšujú prístupnosť pre asistenčné technológie.
Atribútvariant
Typstring
Predvolenébutton

Udalosti

NázovPopis
wje-breadcrumbs:item-clickVyvolá sa pri odoslaní udalosti wje-breadcrumbs:item-click.

Metódy

upgradeProperty

PopisSpustí metódu upgradeProperty na vykonanie logiky komponentu a aktualizáciu jeho stavu.
Signatúra(property: string) => void

normalizeItems

PopisSpustí metódu normalizeItems na vykonanie logiky komponentu a aktualizáciu jeho stavu.
Signatúra(value: Array|string|null|undefined) => Array<object>

normalizeItem

PopisSpustí metódu normalizeItem na vykonanie logiky komponentu a aktualizáciu jeho stavu.
Signatúra(item: object|string|number, index: number, usedKeys: Set<string>) => object

getItemKey

PopisVráti položku key z aktuálneho stavu komponentu.
Signatúra(item: object, index: number, usedKeys: Set<string>) => string

syncItems

PopisSynchronizuje položky s externým alebo interným zdrojom stavu.
Signatúra(records: Array<object>) => void

createItemElement

PopisVytvorí položku element a pripojí ho do štruktúry komponentu.
Signatúra(record: object, index: number) => HTMLElement

updateItemElement

PopisAktualizuje položku element podľa najnovších údajov komponentu.
Signatúra(breadcrumb: HTMLElement, record: object, index: number) => void

syncItemAttribute

PopisSynchronizuje položku attribute s externým alebo interným zdrojom stavu.
Signatúra(element: HTMLElement, name: string, value: string|null|undefined) => void

syncBooleanItemAttribute

PopisSynchronizuje boolean položku attribute s externým alebo interným zdrojom stavu.
Signatúra(element: HTMLElement, name: string, isEnabled: boolean) => void

syncItemContent

PopisSynchronizuje položku content s externým alebo interným zdrojom stavu.
Signatúra(breadcrumb: HTMLElement, record: object) => void

getItemStructureSignature

PopisVráti položku structure signature z aktuálneho stavu komponentu.
Signatúra(record: object) => string

dispatchManagedItemClick

PopisVyvolá vlastnú udalosť z kontextu komponentu.
Signatúra(e: MouseEvent) => void

getManagedBreadcrumbFromEvent

PopisVráti managed breadcrumb from udalosť z aktuálneho stavu komponentu.
Signatúra(e: Event) => HTMLElement|null

updateCollapse

PopisAktualizuje collapse podľa najnovších údajov komponentu.
Signatúra() => void

applyMenuCollapse

PopisSpustí metódu applyMenuCollapse na vykonanie logiky komponentu a aktualizáciu jeho stavu.
Signatúra(breadcrumbs: Array<Element>) => void

isBreakpointMenuCollapseActive

PopisOverí, či je breakpoint menu collapse active aktuálne pravda.
Signatúra() => boolean

usesMobileCollapsedVariant

PopisSpustí metódu usesMobileCollapsedVariant na vykonanie logiky komponentu a aktualizáciu jeho stavu.
Signatúra() => boolean

resetCollapseState

PopisObnoví collapse state na počiatočné hodnoty.
Signatúra(breadcrumbs: Array<Element>) => void

syncManagedAttribute

PopisSynchronizuje managed attribute s externým alebo interným zdrojom stavu.
Signatúra(element: Element, name: string, isEnabled: boolean) => void

refreshCollapsedIndicators

PopisSpustí metódu refreshCollapsedIndicators na vykonanie logiky komponentu a aktualizáciu jeho stavu.
Signatúra() => void

shouldApplyBreakpointCollapse

PopisSpustí metódu shouldApplyBreakpointCollapse na vykonanie logiky komponentu a aktualizáciu jeho stavu.
Signatúra() => boolean

getBreakpointWidth

PopisVráti breakpoint width z aktuálneho stavu komponentu.
Signatúra() => number|null

getBreakpointCollapseTrigger

PopisVráti breakpoint collapse trigger z aktuálneho stavu komponentu.
Signatúra() => Element|null

getBreadcrumbs

PopisVráti breadcrumbs z aktuálneho stavu komponentu.
Signatúra() => Array<Element>

getManagedBreadcrumbs

PopisVráti managed breadcrumbs z aktuálneho stavu komponentu.
Signatúra() => Array<Element>

getBreadcrumbsCollapsed

PopisVráti breadcrumbs collapsed z aktuálneho stavu komponentu.
Signatúra() => Array<Element>

CSS tieňové časti

NázovPopis
containerŠtýluje kontajnerovú shadow časť.

CSS vlastné premenné

Pre tento komponent nie sú dostupné žiadne vlastné CSS vlastnosti.

Sloty

NázovPopis
defaultPredvolený slot pre hlavný obsah komponentu.
breakpoint-collapse-triggerSlot pre vlastný obsah breakpoint-collapse-trigger v komponente.