Angular Breadcrumbs Component | ng-hub-ui-breadcrumbs

Angular breadcrumbs component with router integration, custom templates, RTL support and flexible styling tokens.

Interactive examples

Explore live examples that show how the library behaves in common Angular use cases.

Basic Breadcrumbs

Basic Breadcrumbs

A trail read straight from the route configuration, with nothing to wire.

Items are generated from the data.breadcrumb configuration of active routes.

Code

Dynamic Breadcrumbs

Dynamic Breadcrumbs

Labels built from a route placeholder and the data its resolver returns.

The last crumb comes from a route declaring breadcrumb: "Dynamic: {name}", resolved with that route's data. This page has no router tree, so the demo is handed the resulting trail — the route configuration is in the TS tab.

Code

Custom Templates

Custom Templates

Take over the markup of every crumb with the hubBreadcrumbItem template.

The hubBreadcrumbItem directive allows custom rendering of each element.

Code

Icons on the Trail

Icons on the Trail

Icons declared in the route data, rendered through a custom item template.

Code

RTL Layout

RTL Layout

Right-to-left support, with the separator on the side the trail comes from.

Code

Truncation & Tooltip

Truncation & Tooltip

Clip a long label with an ellipsis and reveal its full text on hover.

Each label is capped at --hub-breadcrumb-max-item-width (12rem). Only the items that overflow get a tooltip.

Code

Collapsing Long Trails

Six crumbs, no collapsing — the default

maxItems = 4 — one crumb each side of the indicator

maxItems = 4 with two crumbs kept on each side

Indicator opened 0 time(s) — that is the collapsedClick output. The trail expands on its own and collapses again on the next navigation.

Keyboard Focus Ring

Default ring — press Tab to walk the trail

Re-tinted ring on the same markup

The ring reaches the collapsed indicator too, which is a button and therefore part of the tab order. Note where the overrides live: the focus tokens are declared on :host, so a value set on an ancestor never reaches them — put it on the <hub-breadcrumb> element or inside it. (The accent slot is the one exception, left undeclared on purpose so it does inherit.)

The Trail as a Signal

INV-2026-0184

in Invoices · 5 levels deep

The heading and the crumbs are two readings of the same signal. Only the trail changes when you move; neither the header nor the component is told anything.