breadcrumb

Displays the path to the current resource using a hierarchy of links.

PreviousNext
import { Component } from '@angular/core';

import { ZardBreadcrumbImports } from '../breadcrumb.imports';

@Component({
  selector: 'z-demo-breadcrumb-default',
  imports: [ZardBreadcrumbImports],
  template: `
    <z-breadcrumb zLabel="Default breadcrumb">
      <z-breadcrumb-item>
        <a z-breadcrumb-link [routerLink]="['/']">Home</a>
      </z-breadcrumb-item>
      <z-breadcrumb-item>
        <a z-breadcrumb-link [routerLink]="['/docs/components']">Components</a>
      </z-breadcrumb-item>
      <z-breadcrumb-item>
        <span z-breadcrumb-page>Breadcrumb</span>
      </z-breadcrumb-item>
    </z-breadcrumb>
  `,
})
export class ZardDemoBreadcrumbDefaultComponent {}

Installation

Copy
npx zard-cli@latest add breadcrumb

Usage

import { ZardBreadcrumbImports } from '@/shared/components/breadcrumb/breadcrumb.imports';
Copy
<z-breadcrumb>
  <z-breadcrumb-item>
    <a z-breadcrumb-link routerLink="/">Home</a>
  </z-breadcrumb-item>
  <z-breadcrumb-item>
    <a z-breadcrumb-link routerLink="/docs/components">Components</a>
  </z-breadcrumb-item>
  <z-breadcrumb-item>
    <span z-breadcrumb-page>Breadcrumb</span>
  </z-breadcrumb-item>
</z-breadcrumb>
Copy

Examples

default

import { Component } from '@angular/core';

import { ZardBreadcrumbImports } from '../breadcrumb.imports';

@Component({
  selector: 'z-demo-breadcrumb-default',
  imports: [ZardBreadcrumbImports],
  template: `
    <z-breadcrumb zLabel="Default breadcrumb">
      <z-breadcrumb-item>
        <a z-breadcrumb-link [routerLink]="['/']">Home</a>
      </z-breadcrumb-item>
      <z-breadcrumb-item>
        <a z-breadcrumb-link [routerLink]="['/docs/components']">Components</a>
      </z-breadcrumb-item>
      <z-breadcrumb-item>
        <span z-breadcrumb-page>Breadcrumb</span>
      </z-breadcrumb-item>
    </z-breadcrumb>
  `,
})
export class ZardDemoBreadcrumbDefaultComponent {}

separator

import { Component } from '@angular/core';

import { NgIcon, provideIcons } from '@ng-icons/core';
import { lucideDot } from '@ng-icons/lucide';

import { ZardBreadcrumbImports } from '@/shared/components/breadcrumb/breadcrumb.imports';

@Component({
  selector: 'z-demo-breadcrumb-separator',
  imports: [ZardBreadcrumbImports, NgIcon],
  template: `
    <z-breadcrumb zLabel="Breadcrumb with custom separator">
      <z-breadcrumb-item>
        <a z-breadcrumb-link [routerLink]="['/']">Home</a>
      </z-breadcrumb-item>
      <li z-breadcrumb-separator>
        <ng-icon name="lucideDot" />
      </li>
      <z-breadcrumb-item>
        <a z-breadcrumb-link [routerLink]="['/docs/components']">Components</a>
      </z-breadcrumb-item>
      <li z-breadcrumb-separator>
        <ng-icon name="lucideDot" />
      </li>
      <z-breadcrumb-item>
        <span z-breadcrumb-page>Breadcrumb</span>
      </z-breadcrumb-item>
    </z-breadcrumb>
  `,
  viewProviders: [provideIcons({ lucideDot })],
})
export class ZardDemoBreadcrumbSeparatorComponent {}

dropdown

import { Component } from '@angular/core';

import { NgIcon, provideIcons } from '@ng-icons/core';
import { lucideChevronDown } from '@ng-icons/lucide';

import { ZardBreadcrumbImports } from '@/shared/components/breadcrumb/breadcrumb.imports';
import { ZardMenuImports } from '@/shared/components/menu/menu.imports';

@Component({
  selector: 'z-demo-breadcrumb-dropdown',
  imports: [ZardBreadcrumbImports, ZardMenuImports, NgIcon],
  template: `
    <z-breadcrumb zLabel="Breadcrumb with dropdown">
      <z-breadcrumb-item>
        <a z-breadcrumb-link [routerLink]="['/']">Home</a>
      </z-breadcrumb-item>
      <z-breadcrumb-item>
        <button
          z-breadcrumb-link
          type="button"
          class="flex items-center gap-1.5 border-0 bg-transparent p-0 text-inherit"
          z-menu
          [zMenuTriggerFor]="componentsMenu"
        >
          Components
          <ng-icon name="lucideChevronDown" class="size-3.5!" aria-hidden="true" />
        </button>

        <ng-template #componentsMenu>
          <div z-menu-content class="w-48">
            <button type="button" z-menu-item>Documentation</button>
            <button type="button" z-menu-item>Themes</button>
            <button type="button" z-menu-item>Blocks</button>
          </div>
        </ng-template>
      </z-breadcrumb-item>
      <z-breadcrumb-item>
        <span z-breadcrumb-page>Breadcrumb</span>
      </z-breadcrumb-item>
    </z-breadcrumb>
  `,
  viewProviders: [provideIcons({ lucideChevronDown })],
})
export class ZardDemoBreadcrumbDropdownComponent {}

ellipsis

import { Component } from '@angular/core';

import { ZardBreadcrumbImports } from '@/shared/components/breadcrumb/breadcrumb.imports';

@Component({
  selector: 'z-demo-breadcrumb-ellipsis',
  imports: [ZardBreadcrumbImports],
  template: `
    <z-breadcrumb zLabel="Collapsed breadcrumb">
      <z-breadcrumb-item>
        <a z-breadcrumb-link [routerLink]="['/']">Home</a>
      </z-breadcrumb-item>
      <z-breadcrumb-item>
        <z-breadcrumb-ellipsis />
      </z-breadcrumb-item>
      <z-breadcrumb-item>
        <a z-breadcrumb-link [routerLink]="['/docs/components']">Components</a>
      </z-breadcrumb-item>
      <z-breadcrumb-item>
        <span z-breadcrumb-page>Breadcrumb</span>
      </z-breadcrumb-item>
    </z-breadcrumb>
  `,
})
export class ZardDemoBreadcrumbEllipsisComponent {}

link

import { Component } from '@angular/core';

import { ZardBreadcrumbImports } from '@/shared/components/breadcrumb/breadcrumb.imports';

@Component({
  selector: 'z-demo-breadcrumb-link',
  imports: [ZardBreadcrumbImports],
  template: `
    <z-breadcrumb zLabel="Router breadcrumb">
      <z-breadcrumb-item>
        <a z-breadcrumb-link routerLink="/">Home</a>
      </z-breadcrumb-item>
      <z-breadcrumb-item>
        <a z-breadcrumb-link routerLink="/docs/components">Components</a>
      </z-breadcrumb-item>
      <z-breadcrumb-item>
        <span z-breadcrumb-page>Breadcrumb</span>
      </z-breadcrumb-item>
    </z-breadcrumb>
  `,
})
export class ZardDemoBreadcrumbLinkComponent {}

API Reference

z-breadcrumbComponent

Displays the path to the current resource using a hierarchy of links. Separators render automatically unless explicit separators are projected.

PropertyDescriptionTypeDefault
[class] Custom CSS classes string ''
[zLabel] Accessible label for the breadcrumb navigation string 'breadcrumb'
[zSize] Breadcrumb size 'sm' | 'md' | 'lg' 'md'
[zAlign] Horizontal alignment 'start' | 'center' | 'end' 'start'
[zWrap] Wrapping behavior 'wrap' | 'nowrap' 'wrap'
[zSeparator] Custom separator for auto-rendered item separators string | TemplateRef<void> ''

z-breadcrumb-item, [z-breadcrumb-item]Component

An individual breadcrumb item. When no composed primitive is projected, it renders a link for non-current items and a page for the current item.

PropertyDescriptionTypeDefault
[class] Custom CSS classes string ''
routerLink Router-compatible inputs are forwarded to the generated breadcrumb link string | any[] -

z-breadcrumb-link, [z-breadcrumb-link]Component

A clickable breadcrumb link. Supports Router-compatible inputs and plain href links; prefer native anchors or buttons when composing interactive controls.

PropertyDescriptionTypeDefault
[class] Custom CSS classes string ''
routerLink Router-compatible inputs used to build the link URL and navigate on click string | any[] -
href Plain link URL when routerLink is not provided string -

z-breadcrumb-page, [z-breadcrumb-page]Component

The current page in the breadcrumb trail. Renders non-clickable content with aria-current="page".

PropertyDescriptionTypeDefault
[class] Custom CSS classes string ''

z-breadcrumb-separator, [z-breadcrumb-separator]Component

A decorative separator between breadcrumb items. Project custom content to override the default chevron.

PropertyDescriptionTypeDefault
[class] Custom CSS classes string ''

z-breadcrumb-ellipsis, [z-breadcrumb-ellipsis]Component

An ellipsis element for truncating long breadcrumb trails.

PropertyDescriptionTypeDefault
[class] Custom CSS classes string ''
[zColor] Ellipsis color 'muted' | 'strong' 'muted'
[zLabel] Screen-reader label for the collapsed breadcrumb control string 'More breadcrumbs'
github iconwhatsapp icondiscord iconX icon

Made with in Brazil. Open source and available on GitHub .