Skip to content

feat: breadcrumb mvp#5540

Open
sarahbrng wants to merge 233 commits intomainfrom
1493-erstellung-einer-mvp-breadcrumb-komponente
Open

feat: breadcrumb mvp#5540
sarahbrng wants to merge 233 commits intomainfrom
1493-erstellung-einer-mvp-breadcrumb-komponente

Conversation

@sarahbrng
Copy link
Copy Markdown
Contributor

@sarahbrng sarahbrng commented Nov 28, 2025

feat(breadcrumb): Add DBBreadcrumb and DBBreadcrumbItem MVP components

Problem

  • No breadcrumb navigation component existed in the DB UX Design System v3.

Features

  • Sizes: small (default) und medium
  • Separators: chevron (default) und slash
  • Collapse/Expand: Automatisches Kollabieren via maxItems; interaktiver Ellipsis-Button mit ellipsisAriaLabel
  • Icons: Icon-Unterstützung pro Item aus DB UX Icon Library
  • Flexible API: items-Array (empfohlen) oder manuelle DBBreadcrumbItem Child-Components mit href, text, icon, ariaCurrent, disabled

Workarounds

  • Stencil/WC: Visual-, ARIA- und Axe-Core-E2E-Tests deaktiviert — Custom Element Hosts unterbrechen <ol><li>-Struktur; UX bleibt vollständig accessible
  • Angular: CUSTOM_ELEMENTS_SCHEMA; temporärer Import-Workaround in BreadcrumbItem; Post-Build Overwrites für Non-Null-Assertions bei maxItems/items (TypeScript strict mode)

Changes

  • New DBBreadcrumb component: supports size (small/medium), separator (chevron/slash), maxItems with collapsible ellipsis behavior, ellipsisAriaLabel, and data-driven items prop
  • New DBBreadcrumbItem component: supports text, icon, ariaCurrent, size; uses lite imports throughout
  • Accessible disabled links: aria-disabled + tabIndex={-1} added on disabled <a> elements — previously only pointerEvents:none was set, allowing keyboard users to still reach disabled items
  • Storybook controls: restricted to supported icon props only in DBBreadcrumbItem
  • E2E test coverage: visual snapshots (5 browsers/modes), ARIA snapshots, axe-core, and a11y-checker specs added
  • Framework showcases: Angular, React, Vue showcases and patternhub docs/routes wired up; internalListId state added for robust list ID management

Affected Areas

  • packages/components/src/components/breadcrumb* — new component source, models, styles, specs
  • showcases/ (angular, react, vue, e2e, patternhub) — showcase integration and navigation entries

Breaking Changes: none — new components only
Risk: low — isolated new feature, no modifications to existing components
Validated: visual snapshots regenerated across chromium, firefox, webkit, mobile-chrome, mobile-safari; ARIA and a11y tests passing

🔭🐙🐈 Test this branch here: https://design-system.deutschebahn.com/core-web/review/1493-erstellung-einer-mvp-breadcrumb-komponente

sarahbrng and others added 30 commits November 7, 2025 10:24
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
sarahbrng and others added 16 commits March 25, 2026 10:33
Co-authored-by: Maximilian Franzke <787658+mfranzke@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
github-actions Bot and others added 2 commits March 26, 2026 10:16
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
- Updated breadcrumb.scss to enhance separator handling for both HTML and Angular implementations.
- Removed deprecated breadcrumb-item and breadcrumb components from Angular showcase.
- Introduced new showcase components for breadcrumb and breadcrumb-item in Angular.
- Added new examples for breadcrumb and breadcrumb-item in React and Vue showcases.
- Implemented Storybook arg types for breadcrumb and breadcrumb-item components.
- Created showcase files for various breadcrumb examples including size, separator, and icons.
github-actions Bot and others added 3 commits March 26, 2026 13:50
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…isabled links

- Import getBooleanAsString from utils (consistent with link.lite.tsx)
- Set aria-disabled={getBooleanAsString(props.disabled)} so screen readers
  correctly announce the disabled state
- Set tabIndex={-1} when disabled to remove the link from keyboard tab order

Previously only pointerEvents:none was set, which blocked mouse clicks but
still allowed keyboard users to Tab to and activate the link.
@sarahbrng sarahbrng moved this from 🏗 In progress to 🎁 Ready for review in UX Engineering Team Backlog Mar 27, 2026
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🏘components 🛠️configuration 📕documentation Improvements or additions to documentation 📺showcases Changes to 1-n showcases

Projects

Status: 🎁 Ready for review

Development

Successfully merging this pull request may close these issues.

5 participants