ShellUI Logo
ShellUI

Breadcrumb

Navigation breadcrumb trail for hierarchical page structure

The Breadcrumb component displays the user's current location within a site hierarchy, allowing quick navigation to parent pages.

Installation

shellui add breadcrumb

Basic Usage

<Breadcrumb>
  <BreadcrumbItem Href="/">Home</BreadcrumbItem>
  <BreadcrumbItem Href="/docs">Documentation</BreadcrumbItem>
  <BreadcrumbItem IsLast="true">Components</BreadcrumbItem>
</Breadcrumb>

Non-last items render as clickable links when Href is provided:

<Breadcrumb>
  <BreadcrumbItem Href="/">Home</BreadcrumbItem>
  <BreadcrumbItem Href="/products">Products</BreadcrumbItem>
  <BreadcrumbItem Href="/products/electronics">Electronics</BreadcrumbItem>
  <BreadcrumbItem IsLast="true">Headphones</BreadcrumbItem>
</Breadcrumb>

Dynamic Breadcrumbs

Generate breadcrumbs from route data:

<Breadcrumb>
  @foreach (var (segment, index) in breadcrumbs.Select((s, i) => (s, i)))
  {
    <BreadcrumbItem
      Href="@(index < breadcrumbs.Count - 1 ? segment.Href : null)"
      IsLast="@(index == breadcrumbs.Count - 1)">
      @segment.Label
    </BreadcrumbItem>
  }
</Breadcrumb>

@code {
    private List<BreadcrumbSegment> breadcrumbs = new()
    {
        new("Home", "/"),
        new("Settings", "/settings"),
        new("Profile", "/settings/profile")
    };

    record BreadcrumbSegment(string Label, string Href);
}

Custom Separator

The default separator is /. You can customize it via CSS:

<Breadcrumb Class="breadcrumb-chevron">
  <BreadcrumbItem Href="/">Home</BreadcrumbItem>
  <BreadcrumbItem Href="/docs">Docs</BreadcrumbItem>
  <BreadcrumbItem IsLast="true">Breadcrumb</BreadcrumbItem>
</Breadcrumb>

API Reference

PropertyTypeDefaultDescription
ChildContentRenderFragmentnullBreadcrumbItem children
Classstring?nullAdditional CSS classes
PropertyTypeDefaultDescription
Hrefstring?nullNavigation link (renders as anchor when set)
IsLastboolfalseMarks the current/last item (no link styling)
ChildContentRenderFragmentnullItem label content
Classstring?nullAdditional CSS classes

Accessibility

The Breadcrumb component includes:

  • nav element with aria-label="breadcrumb"
  • Ordered list (ol) for proper structure
  • aria-current="page" on the last item
  • Keyboard navigable links
  • Screen reader friendly separator handling

On this page