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: '', title: '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, title, href, icon, disabled a vlastné data. Pri ikonkových položkách bez viditeľného label použite title, aby collapsed dropdown vedel zobraziť čitateľný text. 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" 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.