Breadcrumb

Organism

Hierarchical navigation trail wrapped in a nav landmark (ariaLabel, default "Breadcrumb"). Last item marked with aria-current="page" and aria-hidden separators. Per-item attrs (data-*, aria-*, id) let a host script take the click.

Default

Preview
Code
<%- include('modules/ui/Breadcrumb', {
  items: [
    { label: 'Home',        href: '/' },
    { label: 'Products',    href: '/products' },
    { label: 'Laptop Pro 15' }
  ]
}) %>

Single level

Preview
Code
<%- include('modules/ui/Breadcrumb', {
  items: [
    { label: 'Home',     href: '/' },
    { label: 'Settings' }
  ]
}) %>

Deep hierarchy

Preview
Code
<%- include('modules/ui/Breadcrumb', {
  items: [
    { label: 'Home',       href: '/' },
    { label: 'Docs',       href: '/docs' },
    { label: 'Components', href: '/docs/components' },
    { label: 'UI',         href: '/docs/components/ui' },
    { label: 'Button' }
  ]
}) %>

Host-handled clicks

Preview
Code
<%- include('modules/ui/Breadcrumb', {
  ariaLabel: 'Page trail',
  items: [
    { label: 'Home',    href: '/',        attrs: { 'data-nav': '/' } },
    { label: 'Reports', href: '/reports', attrs: { 'data-nav': '/reports' } },
    { label: 'Q3' }
  ]
}) %>
<script>
  document.addEventListener('click', function (e) {
    var a = e.target.closest('a[data-nav]');
    if (a) { e.preventDefault(); navigate(a.dataset.nav); }
  });
</script>
Source modules/ui/Breadcrumb.ejs