4.8 KiB
| layout | title | description | group | toc |
|---|---|---|---|---|
| docs | Breadcrumb | Indicate the current page's location within a navigational hierarchy that automatically adds separators via CSS. | components | true |
Example
Use an ordered or unordered list with linked list items to create a minimally styled breadcrumb. Use our utilities to add additional styles as desired.
{{< example >}}
- Home
- Home
- Library
Dividers
Dividers are automatically added in CSS through ::before and content. They can be changed by modifying a local CSS custom property --bs-breadcrumb-divider, or through the $breadcrumb-divider Sass variable — and $breadcrumb-divider-flipped for its RTL counterpart, if needed. We default to our Sass variable, which is set as a fallback to the custom property. This way, you get a global divider that you can override without recompiling CSS at any time.
{{< example >}}
- Home
- Library
When modifying via Sass, the quote function is required to generate the quotes around a string. For example, using > as the divider, you can use this:
$breadcrumb-divider: quote(">");
It's also possible to use an embedded SVG icon. Apply it via our CSS custom property, or use the Sass variable.
{{< callout info >}}
Using embedded SVG
Inlining SVG as data URI requires to URL escape a few characters, most notably <, > and #. That's why the $breadcrumb-divider variable is passed through our [escape-svg() Sass function]({{< docsref "/customize/sass#escape-svg" >}}). When using the CSS custom property, you need to URL escape your SVG on your own. Read Kevin Weber's explanations on CodePen for detailed information on what to escape.
{{< /callout >}}
{{< example >}}
- Home
- Library
$breadcrumb-divider: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8'><path d='M2.5 0L1 1.5 3.5 4 1 6.5 2.5 8l4-4-4-4z' fill='#{$breadcrumb-divider-color}'/></svg>");
You can also remove the divider setting --bs-breadcrumb-divider: ''; (empty strings in CSS custom properties counts as a value), or setting the Sass variable to $breadcrumb-divider: none;.
{{< example >}}
- Home
- Library
$breadcrumb-divider: none;
Accessibility
Since breadcrumbs provide a navigation, it's a good idea to add a meaningful label such as aria-label="breadcrumb" to describe the type of navigation provided in the <nav> element, as well as applying an aria-current="page" to the last item of the set to indicate that it represents the current page.
For more information, see the WAI-ARIA Authoring Practices for the breadcrumb pattern.
CSS
Variables
Added in v5.3.0
As part of Bootstrap's evolving CSS variables approach, breadcrumbs now use local CSS variables on .breadcrumb for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too.
{{< scss-docs name="breadcrumb-css-vars" file="scss/_breadcrumb.scss" >}}
Sass variables
{{< scss-docs name="breadcrumb-variables" file="scss/_variables.scss" >}}