Aller au contenu

Composant · Navigation

Breadcrumb

Stable

Fil d'Ariane indiquant la position de la page courante dans la hiérarchie et permettant de remonter. Rendu sémantique : <nav> + liste ordonnée, dernier élément marqué comme page courante.

Quand l'utiliser

  • Pour des hiérarchies profondes (≥ 2 niveaux) où l'utilisateur doit pouvoir remonter.
  • En complément de la navigation principale, pas à sa place.
  • Inutile sur une page de premier niveau.

Exemples

Exemples

Hiérarchie profonde

Deux niveaux

Voir le code (Svelte)
<div class="docs-demo-stack">
  <h3>Hiérarchie profonde</h3>
  <Breadcrumb
    items={[{"label":"Accueil","href":"#"},{"label":"Projets","href":"#"},{"label":"Forge","href":"#"},{"label":"Paramètres","current":true}]}
    label="Fil d'Ariane"
  />
  <h3>Deux niveaux</h3>
  <Breadcrumb
    items={[{"label":"Catalogue","href":"#"},{"label":"Breadcrumb","current":true}]}
    label="Fil d'Ariane court"
  />
</div>

Anatomie

  • Conteneur : <nav aria-label> contenant une liste ordonnée <ol>.
  • Maillons : chaque item est un <a> (si href et non courant) ou un <span>.
  • Séparateur : un « / » décoratif (aria-hidden) entre les maillons.
  • Page courante : <span aria-current="page">, non cliquable.

Accessibilité

  • Le <nav> reçoit un aria-label via la prop label.
  • Le maillon courant porte aria-current="page" et n'est pas un lien.
  • Les séparateurs sont aria-hidden : ils ne sont pas annoncés.

Lignes directrices

À faire

  • Refléter la vraie hiérarchie de navigation.
  • Marquer le dernier élément comme current.

À éviter

  • Rendre la page courante cliquable.
  • Y mettre l'historique de navigation plutôt que la hiérarchie.

API

PropTypeDéfautDescription
itemsBreadcrumbItem[]requisMaillons du fil, dans l'ordre.
labelstring"Breadcrumb"aria-label du <nav>.
classstringoptionnelClasse(s) supplémentaire(s).
Autres attributsHTMLAttributes<HTMLElement>N/APropagés sur le <nav>.

Type BreadcrumbItem

ChampTypeDescription
labelstringTexte du maillon.
hrefstring?Lien ; rend un <a> si présent et non courant.
currentboolean?Marque la page courante (aria-current).

Tokens utilisés

  • --st-component-breadcrumb-text
  • --st-component-breadcrumb-linkText
  • --st-component-breadcrumb-currentText
  • --st-component-breadcrumb-separator