Navigation trail where the final item identifies the current page.
Install @wyrd-company/react or the Flutter package and use it directly —
your DESIGN.md does the styling.
catalog/contracts/breadcrumbs.ymlsource of truth · verbatim
$schema: https://thewyrdingway.dev/schemas/component-contract.schema.ymlcontractVersion: 0.1.0identity:name: Breadcrumbstag: wyrd-breadcrumbspackage: wyrd.component.breadcrumbstitle: Breadcrumbssummary: Navigation trail where the final item identifies the current page.relationships:related-to: - quality-parity-and-gatesclassification:category: navigationcomposition: collectioninteractive: truetarget-strategy:react: requiredflutter: requiredsurface:properties: - name: itemstype:kind: arrayitem:kind: objectfields:label:kind: stringhref:kind: stringrequired: trueserializable: truesummary: Ordered breadcrumb items; the last item is the current page.slots: []events: - name: item-presspayload:href:kind: stringbubbles: truecomposed: truecancelable: truesummary: Emitted when a non-current breadcrumb link is activated.states: - name: defaultsource: platformsummary: Trail with link ancestors and plain-text current page.parts: - name: rootsummary: Navigation landmark root. - name: listsummary: Ordered breadcrumb list. - name: itemsummary: Repeated breadcrumb item. - name: linksummary: Non-current breadcrumb link. - name: currentsummary: Current page text.tokens:link:color: color.primarycurrent:color: color.on-surfaceseparator:color: color.on-surface-variantgap: spacing.xstext: typography.label-mdmessages: - key: breadcrumbs.navigationdescription: Accessible name of the breadcrumb navigation landmark.obligations:accessibility:role: navigationname: Component-owned localized navigation message labels the landmark.keyboard: - Tab moves through non-current breadcrumb links in document order. - Enter activates a focused breadcrumb link.semantics: - Web renders a nav with localized aria-label wrapping an ordered list. - The last item is plain text with aria-current=page. - Separators are generated as hidden presentation only and are not exposed to accessibility APIs. - Flutter exposes a labeled Semantics container with link children and selected current-page text.behavior:model: statelessinteractions: - Activating a non-current item emits item-press with its href. - Web anchors also keep native navigation behavior.hostEffects: - Dispatch item activation event.conditions: - rtl - cvd-deuteranopia - density-compact - text-expansionsdui:status: serializableserializableProperties: - itemsserializableSlots: []eventBindings: - item-pressnotes: Breadcrumbs serialize item labels and hrefs; hosts own navigation after item-press in non-web targets.examples: - name: product-navigationstate: defaultproperties:items: - label: Homehref: / - label: Documentationhref: /docs - label: Component cataloghref: /docs/componentsslots: {} - name: deep-navigationstate: defaultproperties:items: - label: Homehref: / - label: Documentationhref: /docs - label: Component cataloghref: /docs/components - label: Navigation componentshref: /docs/components/navigation - label: Breadcrumbs and hierarchical wayfindinghref: /docs/breadcrumbsslots: {}
01
Examples
Generated from the contract's examples block.
Previews are the published @wyrd-company/react component, themed by the
brand's role tokens — flip the site's light/dark toggle and they follow.
Ordered breadcrumb items; the last item is the current page.
03
Slots & events
Event
Payload
Summary
item-press
href
Emitted when a non-current breadcrumb link is activated.
04
Tokens
The contract's token bindings. Open the shared contextual sidebar from any example;
primary swatches reflect the color you pick there. Error swatches show the active
preset's values; editing any knob switches to custom and resets error to TWW · Ink.
Binding
Token
link.color
color.primary
current.color
color.on-surface
separator.color
color.on-surface-variant
gap
spacing.xs
text
typography.label-md
05
States
State
Source
Summary
default
platform
Trail with link ancestors and plain-text current page.
06
Accessibility
From the contract's accessibility obligations. Role navigation; Component-owned localized navigation message labels the landmark.
Tab moves through non-current breadcrumb links in document order.
Enter activates a focused breadcrumb link.
Web renders a nav with localized aria-label wrapping an ordered list.
The last item is plain text with aria-current=page.
Separators are generated as hidden presentation only and are not exposed to accessibility APIs.
Flutter exposes a labeled Semantics container with link children and selected current-page text.