Skip to main content

Design system components

ProjectNav

Previous/next navigation between case studies, with a back-to-work action, for the foot of work detail pages.

Status: stable. Group: navigation. Markdown version: /design-system/components/project-nav.md

When to use

Previous/next navigation between case studies at the foot of work detail pages, plus a back-to-work action. Targets are derived from the project ordering; at each sequence edge the control is a dimmed, non-interactive placeholder (role=link, aria-disabled, labelled) instead of a navigable link.

When not to use

  • Do not use for site-wide navigation (that is SiteHeader)

Look-alikes

  • SiteHeader: Do not use for site-wide navigation (that is SiteHeader)

Props

ProjectNav props
PropTypeDefaultDescriptionRequired
currentSlugstringnoneCurrent project slug.Yes
classNamestringnoneCustom className.No

Variants

No variant dimensions and no props with a fixed set of values.

Invalid combinations

The contract records no invalid combinations.

Keyboard

The contract records no keyboard interaction.

Rules

Every item under When not to use is a MUST NOT. MUST and SHOULD follow RFC 2119.

ProjectNav rules
LevelRuleHow it is checked
MUSTARIA: Wrapped in a nav landmark labelled via aria-label (projectNavLabel)Not yet verified: no evidence record. WCAG 4.1.2.
MUSTARIA: Back, previous and next are native links (Tab, Enter); previous and next carry an aria-label of the translated projectPrevious or projectNext label plus the target project title.Not yet verified: no evidence record. WCAG 4.1.2.
MUSTARIA: The sequence edge is a span with role="link", aria-disabled="true" and an aria-label (projectPrevious or projectNext), with no href or tabindex: it is skipped by Tab and announced as a disabled "Previous project" or "Next project" link, including below the tablet breakpoint where it shows only the arrow icon.Not yet verified: no evidence record. WCAG 4.1.2.
MUSTRequired stories produce no axe violations at the configured severity.Automated by npm run test:stories:matrix:ci. WCAG 2.5.8.
MUSTThe accessibility tree (role, name, state) matches the committed snapshot for every required story.Automated by npm run test:stories:matrix:ci. WCAG 1.3.1, 4.1.2.
MUSTThe component remains legible and operable under a real browser forced-colors: active pass.Automated by npm run test:stories:hc.
MUSTA human completed an end-to-end accessibility review of this component.Manual review, last on 2026-11-04.
MUST NOTMaintainers: Do not invent parallel primitives inside this folder.Release review; not machine-checked.

Install and import

  • In-repo only. ProjectNav is not exported from @digitaltableteur/react, so there is no public import path.