Components · Structure

Breadcrumb

A record of where you came from, naming the patient in full. Never a route forward.

Stable · v1.0 shadcn/ui WCAG 2.2 AA

Overview

A breadcrumb is a second, independent statement of location, and in a clinical record the part that earns its place is the patient segment: a clinician returning to a screen after an interruption re-orients from the top of it. A trail that says a patient is open without saying which has answered the wrong question.

How these four sit together — the anatomy of a screen, how deep a hierarchy may go, and what has to happen on a route change — is on Navigation.

What the component enforces, and what it only asks for

The trail is data, which makes the split short and the dangerous half obvious.

RuleHeld by How
The current page is marked and is not a linkThe component current renders with aria-current="page" outside the anchor list.
Asserted: Breadcrumb: the last item is aria-current and not a link
Segments are never truncatedThe component No ellipsis, no max width. A patient identifier shortened to fit is the one segment that had to be complete.
Asserted: Breadcrumb: a real landmark holding an ordered list
It is a real landmark with an ordered listThe component The order is the meaning, and the separator is hidden from assistive technology rather than read as a word between every segment.
Asserted: Breadcrumb: a real landmark holding an ordered list
The patient is named in the trailYou items is an array you build. A trail of generic labels says a patient is open without saying which, which is the question a returning clinician is actually asking.
It only points backwardsYou Nothing stops you passing a segment nobody has visited. A trail whose later steps are clickable is a wizard wearing a breadcrumb's clothes.
Why this is written down

A rule stated on a component page reads as a rule the component keeps. 3 of these 5 are; 2 are obligations this page was quietly handing to the reader. The component keeps the trail readable. Whether it names the patient — the only reason it earns its space here — is yours.

Do's and don'ts

Do

The patient is named in the path. A returning clinician re-orients from the top of the screen.

Don't

Generic labels. It says a patient is open without saying which, which is the question actually being asked.

Do

The patient segment in full, and the last label matching the panel exactly. A second independent statement of identity that agrees with the header.

Don't

The patient truncated to make room, and a section named one thing here and another in the panel. Two names for one place, and an identity that no longer matches.

Do

Triage worklist / HARLAND, Arthur J. · MRN 44 812 907 / ECG review

Backward only. Every segment before the current one has been visited, and each is a place the clinician can return to.

Don't

Register / Consent / Allergies / Medications / Review

A trail whose later segments are visible before they have been reached is a wizard wearing a breadcrumb’s clothes, and the reader now believes two steps are done that are not.

Accessibility

Outcomes of use

Clinical safety notes

Risk controls this page specifies

Trace these in your risk file (ISO 14971) and usability engineering file (IEC 62366-1). Which of these the component keeps and which are yours is stated in the guarantees table; a control the component does not keep is one your risk file must show you keep.

Implementation

$ npx shadcn@latest add https://md.notjustany.tech/r/breadcrumb.json
<Breadcrumb
  items={[
    { label: "Triage worklist", href: "/worklist" },
    { label: patient.display, href: patientHref },
    { label: "ECG review" },   // the last item is the current one
  ]}
/>
NotJustAnyMed.Tech Design System · Navigation · v1.0 · draft for review
Covers Masthead, Side navigation and Breadcrumb. AcuteLine is a fictional reference application; all patient data shown is fabricated.