Skip to content

Conversation

Artur-
Copy link
Member

@Artur- Artur- commented Aug 25, 2025

Related to #7960

Add a new breadcrumb navigation component with the following features:

  • Main <vaadin-breadcrumb> container component with semantic HTML
  • <vaadin-breadcrumb-item> sub-component for individual items
  • Support for href, target, and router-ignore attributes
  • Automatic detection and styling of the last/current item
  • Disabled state support
  • Full accessibility with ARIA attributes
  • Lumo theme integration with customizable CSS properties
  • TypeScript definitions
  • Demo page and test suite

🤖 Generated with Claude Code

Add a new breadcrumb navigation component with the following features:
- Main `<vaadin-breadcrumb>` container component with semantic HTML
- `<vaadin-breadcrumb-item>` sub-component for individual items
- Support for href, target, and router-ignore attributes
- Automatic detection and styling of the last/current item
- Disabled state support
- Full accessibility with ARIA attributes
- Lumo theme integration with customizable CSS properties
- TypeScript definitions
- Demo page and test suite

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
@Artur- Artur- force-pushed the web-components-breadcrumb branch from 79b254b to 562d4f2 Compare August 25, 2025 12:25
Add comprehensive test coverage including:
- Visual regression tests for base and Lumo themes
- DOM snapshot tests for component structure
- Tests for various states (hover, focus, disabled)
- RTL support tests
- Tests for different breadcrumb configurations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
@Artur- Artur- force-pushed the web-components-breadcrumb branch from 562d4f2 to c41a3a1 Compare August 25, 2025 13:10
Copy link

@yuriy-fix
Copy link
Contributor

We will consider this component after the current styling changes are completed. Possible target: 25.1.
As an alternative, we will also evaluate adding it as an experimental component during the beta period.
@Artur- , please share when PR will become available for a review.

Comment on lines +9 to +10
import '../packages/breadcrumb/vaadin-breadcrumb.js';
import '../packages/breadcrumb/vaadin-breadcrumb-item.js';
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
import '../packages/breadcrumb/vaadin-breadcrumb.js';
import '../packages/breadcrumb/vaadin-breadcrumb-item.js';
import '@vaadin/breadcrumb/vaadin-breadcrumb.js';
import '@vaadin/breadcrumb/vaadin-breadcrumb-item.js';

*
* See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.
*/
declare class Breadcrumb extends ElementMixin(ThemableMixin(HTMLElement)) {}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's these move .d.ts files to src and align structure with existing components.
We can discuss moving HTMLElementTagNameMap to the root level in a separate issue.

this.setAttribute('role', 'navigation');
}

this.setAttribute('aria-label', 'Breadcrumb');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should either be left to the user or changed to use ariaLabel property with reflectToAttribute.
There is an example in vaadin-drawer-toggle web component which has default value.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants