Design System · DS-006

LagoBreadcrumbs

Internal QA/reference page for the canonical LAGO breadcrumb navigation. Every example uses the real production Breadcrumbs component. Not linked from any product navigation.

01

Overview

DS-006 LagoBreadcrumbs — hierarchical navigation within Lago management pages. Current page is not clickable; breadcrumbs are used only when hierarchy is meaningful; long paths collapse on narrow screens.

Approved anatomy

nav landmark → items separated by ChevronRight (16px / 2px stroke). Intermediate items are Links; the current page is a non-clickable span.

HomeExperiencesCurrent Page

Rules

  • Current page (last item) is never clickable — rendered as a span with aria-current="page"
  • Used only when hierarchy is meaningful (2+ levels)
  • Long paths (3+ items) collapse on narrow screens to first + … + current
  • Typography: Montserrat 14px / 22px / 500
  • Spacing: gap-2 (8px). Separator: ChevronRight 16px / 2px stroke
  • Colors: LAGO semantic tokens only — no pills, cards, heavy backgrounds, or shadows
Note:This preview uses the ACTUAL production Breadcrumbs component from @/components/lago/Breadcrumbs. No production files were modified.
02

Default · Intermediate Links · Current Page · Single Level

Standard 4-level path, intermediate link behavior, current-page styling, and a valid single-level breadcrumb.

Default — Home > Experiences > Miami > Private Yacht Charter

4-level hierarchy. First three items are clickable Links; the last is a non-clickable span.

Intermediate links

Home, Experiences, and Miami are keyboard-navigable Links with visible focus rings. Hover transitions to text-lago-text-primary.

Current page

The last item (Private Yacht Charter) is a span with aria-current='page' and text-lago-text-primary — not a link, not interactive.

Single level

A valid single-level breadcrumb. No separator, no unnecessary hierarchy.

03

Icons

Approved Lucide item icons at 16px / 2px stroke. No Unicode icons, emoji, custom replacements, or other icon libraries.

Item icons

Each item carries an optional Lucide icon rendered before the label at h-4 w-4 (16px) with strokeWidth={2}.

Note:Icons are decorative (aria-hidden='true'). The label text remains the accessible name for each item.
04

Long Path

A realistic 6-level hierarchy. On narrow screens (<640px) the intermediate levels collapse to first + … + current.

6-level path

Home > Experiences > Ontario > Muskoka > Gravenhurst > Private Yacht Charter. Resize below 640px to see the collapse.

05

Mobile Collapse · Long Labels

Collapse behavior for paths >3 items on narrow screens, and long-label containment verification.

Mobile collapse

At <640px: first item + ellipsis (…) + current page. Intermediate levels are hidden. First meaningful level and current page are preserved.

Resize below 640px to see collapse

Long labels

Realistic long label in the current page. min-w-0 + truncate contain it — no horizontal page overflow.

Note:The production Breadcrumbs component uses min-w-0 and truncate on every item span/link to prevent overflow. The ellipsis treatment is an inline … character with a ChevronRight separator, not a pill or button.
06

Responsive

Explicit viewport specimens at 1534, 1024, 768, 430, 390, 375, and 320px. Each shows a 4-item and 6-item path. Scroll horizontally if wider than your viewport.

4-item path

Home > Experiences > Miami > Private Yacht Charter. No collapse at any width (≤3 items threshold).

1534px — Desktop

1024px — Desktop / Tablet boundary

768px — Tablet

430px — Mobile

390px — Mobile

375px — Mobile

320px — Mobile

6-item path

Home > Experiences > Ontario > Muskoka > Gravenhurst > Private Yacht Charter. Collapses to first + … + current below 640px (visible at 430, 390, 375, 320).

1534px — Desktop

1024px — Desktop / Tablet boundary

768px — Tablet

430px — Mobile

390px — Mobile

375px — Mobile

320px — Mobile

07

Accessibility

nav landmark, aria-label, aria-current, keyboard focus, visible focus ring, current page not interactive, links remain keyboard accessible.

Live specimen

Tab through the links below — each has a visible focus ring. The current page (last item) is a span, not a link, and receives no focus.

Accessibility checklist

  • nav landmark — rendered as a <nav> element
  • aria-label — aria-label="Breadcrumb" on the nav
  • aria-current — aria-current="page" on the last item span
  • Keyboard focus — intermediate Links are in the tab order; focus-visible:ring-2 with lago-border-focus
  • Visible focus ring — focus-visible:ring-2 focus-visible:ring-offset-2 on each Link
  • Current page not interactive — last item is a <span>, not a Link; no tabindex, no onClick
  • Links keyboard accessible — intermediate items are React Router <Link>s, natively focusable
  • Icons decorative — aria-hidden="true" on all Lucide icons and separators
Note:No accessibility behavior was changed for this preview. The production Breadcrumbs component already implements all of the above.
08

DS-004 Integration

Breadcrumbs rendered above a LagoPageHeader specimen using the ACTUAL production components. Breadcrumbs are not merged into PageHeader — they are siblings.

Breadcrumbs + Standard PageHeader

The LagoPageHeader accepts a breadcrumbs prop and renders it above the title/action row. Both components are production, unmodified.

Water Experiences

Discover and book premium water experiences across Ontario.

Standalone Breadcrumbs

The same breadcrumbs rendered directly, without PageHeader — as they appear when used independently.

Note:Breadcrumbs and LagoPageHeader remain separate production components. The PageHeader's breadcrumbs prop passes items to the Breadcrumbs component internally — no merge, no coupling beyond the prop.

DS-006 LagoBreadcrumbs preview · Production implemented (11/16/500, Brand/Accent current page). Calibration complete.