Components
Breadcrumbs
``Breadcrumbs` help users understand where they are within a structure and make it possible to navigate back to higher levels.
React
Unable to parse html
const PreviewEn = () => ( <> <Breadcrumbs aria-label='You are here:'> <Breadcrumbs.Link href='#' aria-label='Back to Level 3'> Level 3 </Breadcrumbs.Link> <Breadcrumbs.List> <Breadcrumbs.Item> <Breadcrumbs.Link href='#'>Level 1</Breadcrumbs.Link> </Breadcrumbs.Item> <Breadcrumbs.Item> <Breadcrumbs.Link href='#'>Level 2</Breadcrumbs.Link> </Breadcrumbs.Item> <Breadcrumbs.Item> <Breadcrumbs.Link href='#'>Level 3</Breadcrumbs.Link> </Breadcrumbs.Item> <Breadcrumbs.Item> <Breadcrumbs.Link href='#'>Level 4</Breadcrumbs.Link> </Breadcrumbs.Item> </Breadcrumbs.List> </Breadcrumbs> </> ); render(<PreviewEn />)
Usage
The last link in Breadcrumbs is automatically marked with aria-current="page".
Examples
Back button only
If you place a Breadcrumbs.Link directly in Breadcrumbs, the link will be displayed as a back button. It is important that you are consistent in your solution, and use either the back button or the path, not both.
React
Unable to parse html
const BackOnlyEn = () => ( <Breadcrumbs> <Breadcrumbs.Link href='#' aria-label='Back to Level 3'> Level 3 </Breadcrumbs.Link> </Breadcrumbs> ); render(<BackOnlyEn />)
Path only
If you only put Breadcrumbs.List directly in Breadcrumbs, it will always be displayed as a path.
This means that you will get the same display on both mobile and desktop.
React
Unable to parse html
const ListOnlyEn = () => ( <Breadcrumbs aria-label='You are here:'> <Breadcrumbs.List> <Breadcrumbs.Item> <Breadcrumbs.Link href='#'>Level 1</Breadcrumbs.Link> </Breadcrumbs.Item> <Breadcrumbs.Item> <Breadcrumbs.Link href='#'>Level 2</Breadcrumbs.Link> </Breadcrumbs.Item> <Breadcrumbs.Item> <Breadcrumbs.Link href='#'>Level 3</Breadcrumbs.Link> </Breadcrumbs.Item> <Breadcrumbs.Item> <Breadcrumbs.Link href='#'>Level 4</Breadcrumbs.Link> </Breadcrumbs.Item> </Breadcrumbs.List> </Breadcrumbs> ); render(<ListOnlyEn />)
Path or back button based on screen width
If you put both a Breadcrumbs.Link and a Breadcrumbs.List directly in Breadcrumbs, the back button will be displayed on screens narrower than 650px, and the path will be displayed on wider screens.
React
Unable to parse html
const MobileViewportEn = () => ( <Breadcrumbs aria-label='You are here:'> <Breadcrumbs.Link href='#' aria-label='Back to Level 3'> Level 3 </Breadcrumbs.Link> <Breadcrumbs.List> <Breadcrumbs.Item> <Breadcrumbs.Link href='#'>Level 1</Breadcrumbs.Link> </Breadcrumbs.Item> <Breadcrumbs.Item> <Breadcrumbs.Link href='#'>Level 2</Breadcrumbs.Link> </Breadcrumbs.Item> <Breadcrumbs.Item> <Breadcrumbs.Link href='#'>Level 3</Breadcrumbs.Link> </Breadcrumbs.Item> <Breadcrumbs.Item> <Breadcrumbs.Link href='#'>Level 4</Breadcrumbs.Link> </Breadcrumbs.Item> </Breadcrumbs.List> </Breadcrumbs> ); render(<MobileViewportEn />)
HTML
The class name ds-breadcrumbs is placed on a <nav> element.
This element should also have an aria-label that explains the function of the navigation, for example "You are here:".
You do not need an aria-label if you have a visible heading that explains the function of the navigation.
If you only want to display the path, put <ol> directly inside the <nav> element. The chevron between the elements is added automatically.
It is important that the last page is marked with aria-current="page".
Back button only
Path or back button based on screen width
CSS variables and data attributes
| Name | Value |
|---|---|
| --dsc-breadcrumbs-spacing | var(--ds-size-2) |
| --dsc-breadcrumbs-icon-size | var(--ds-size-6) |
| --dsc-breadcrumbs-icon-url | url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24'%3E%3Cpath d='M9.47 5.97a.75.75 0 0 1 1.06 0l5.5 5.5a.75.75 0 0 1 0 1.06l-5.5 5.5a.75.75 0 1 1-1.06-1.06L14.44 12 9.47 7.03a.75.75 0 0 1 0-1.06'/%3E%3C/svg%3E") |
| --dsc-breadcrumbs-color | var(--ds-color-text-subtle) |
No relevant data attributes found.
Edit this page on github.com (opens in a new tab)