Skip to main content
Default Gray Amethyst

Breadcrumb

<mo-breadcrumb> | MOBreadcrumb
Since 1.0 stable

Breadcrumbs provide a group of links so users can easily navigate a website’s hierarchy.

Breadcrumbs are usually placed before a page’s main content with the current page shown last to indicate the user’s position in the navigation.

Modes UI Components Navigation Breadcrumb
<mo-breadcrumb>
  <mo-breadcrumb-item>Modes UI</mo-breadcrumb-item>
  <mo-breadcrumb-item>Components</mo-breadcrumb-item>
  <mo-breadcrumb-item>Navigation</mo-breadcrumb-item>
  <mo-breadcrumb-item>Breadcrumb</mo-breadcrumb-item>
</mo-breadcrumb>
import { MOBreadcrumb, MOBreadcrumbItem } from '@metsooutotec/modes-web-components/dist/react';

const App = () => (
  <MOBreadcrumb>
    <MOBreadcrumbItem>Modes UI</MOBreadcrumbItem>
    <MOBreadcrumbItem>Components</MOBreadcrumbItem>
    <MOBreadcrumbItem>Navigation</MOBreadcrumbItem>
    <MOBreadcrumbItem>Breadcrumb</MOBreadcrumbItem>
  </MOBreadcrumb>
);

Examples

By default, breadcrumb items are rendered as buttons so you can use them to navigate single-page applications. In this case, you’ll need to add event listeners to handle clicks.

For websites, you’ll probably want to use links instead. You can make any breadcrumb item a link by applying an href attribute to it. Now, when the user activates it, they’ll be taken to the corresponding page — no event listeners required.

Modes UI Components Navigation Breadcrumb
<mo-breadcrumb>
  <mo-breadcrumb-item href="/">Modes UI</mo-breadcrumb-item>
  <mo-breadcrumb-item href="/components">Components</mo-breadcrumb-item>
  <mo-breadcrumb-item href="/components/navigation">Navigation</mo-breadcrumb-item>
  <mo-breadcrumb-item>Breadcrumb</mo-breadcrumb-item>
</mo-breadcrumb>
import { MOBreadcrumb, MOBreadcrumbItem } from '@metsooutotec/modes-web-components/dist/react';

const App = () => (
  <MOBreadcrumb>
    <MOBreadcrumbItem href="/">Modes UI</MOBreadcrumbItem>
    <MOBreadcrumbItem href="/components">Components</MOBreadcrumbItem>
    <MOBreadcrumbItem href="/components/navigation">Navigation</MOBreadcrumbItem>
    <MOBreadcrumbItem>Breadcrumb</MOBreadcrumbItem>
  </MOBreadcrumb>
);

Custom separators

Use the separator slot to change the separator that goes between breadcrumb items. Icons work well, but you can also use text or an image.

First Second Third
First Second Third
First Second Third
<mo-breadcrumb>
  <mo-icon name="minus" slot="separator"></mo-icon>
  <mo-breadcrumb-item>First</mo-breadcrumb-item>
  <mo-breadcrumb-item>Second</mo-breadcrumb-item>
  <mo-breadcrumb-item>Third</mo-breadcrumb-item>
</mo-breadcrumb>

<br />

<mo-breadcrumb>
  <mo-icon name="arrow-right" slot="separator"></mo-icon>
  <mo-breadcrumb-item>First</mo-breadcrumb-item>
  <mo-breadcrumb-item>Second</mo-breadcrumb-item>
  <mo-breadcrumb-item>Third</mo-breadcrumb-item>
</mo-breadcrumb>

<br />

<mo-breadcrumb>
  <mo-icon name="chevron-right" slot="separator"></mo-icon>
  <mo-breadcrumb-item>First</mo-breadcrumb-item>
  <mo-breadcrumb-item>Second</mo-breadcrumb-item>
  <mo-breadcrumb-item>Third</mo-breadcrumb-item>
</mo-breadcrumb>
import '@metsooutotec/modes-web-components/dist/components/icon/icon.js';
import { MOBreadcrumb, MOBreadcrumbItem } from '@metsooutotec/modes-web-components/dist/react';

const App = () => (
  <>
    <MOBreadcrumb>
      <mo-icon name="minus" slot="separator" />
      <MOBreadcrumbItem>First</MOBreadcrumbItem>
      <MOBreadcrumbItem>Second</MOBreadcrumbItem>
      <MOBreadcrumbItem>Third</MOBreadcrumbItem>
    </MOBreadcrumb>

    <br />

    <MOBreadcrumb>
      <mo-icon name="arrow-right" slot="separator" />
      <MOBreadcrumbItem>First</MOBreadcrumbItem>
      <MOBreadcrumbItem>Second</MOBreadcrumbItem>
      <MOBreadcrumbItem>Third</MOBreadcrumbItem>
    </MOBreadcrumb>

    <br />

    <MOBreadcrumb>
      <mo-icon name="chevron-right" slot="separator" />
      <MOBreadcrumbItem>First</MOBreadcrumbItem>
      <MOBreadcrumbItem>Second</MOBreadcrumbItem>
      <MOBreadcrumbItem>Third</MOBreadcrumbItem>
    </MOBreadcrumb>
  </>
);

Prefixes

Use the prefix slot to add content before any breadcrumb item.

Home Articles Support
<mo-breadcrumb>
  <mo-breadcrumb-item>
    <mo-icon slot="prefix" name="home"></mo-icon>
    Home
  </mo-breadcrumb-item>
  <mo-breadcrumb-item>Articles</mo-breadcrumb-item>
  <mo-breadcrumb-item>Support</mo-breadcrumb-item>
</mo-breadcrumb>
import { MOBreadcrumb, MOBreadcrumbItem, MOIcon } from '@metsooutotec/modes-web-components/dist/react';

const App = () => (
  <MOBreadcrumb>
    <MOBreadcrumbItem>
      <MOIcon slot="prefix" name="home" />
      Home
    </MOBreadcrumbItem>
    <MOBreadcrumbItem>Articles</MOBreadcrumbItem>
    <MOBreadcrumbItem>Support</MOBreadcrumbItem>
  </MOBreadcrumb>
);

Suffixes

Use the suffix slot to add content after any breadcrumb item.

Documents Policies Security
<mo-breadcrumb>
  <mo-breadcrumb-item>Documents</mo-breadcrumb-item>
  <mo-breadcrumb-item>Policies</mo-breadcrumb-item>
  <mo-breadcrumb-item>
    Security
    <mo-icon slot="suffix" name="lock"></mo-icon>
  </mo-breadcrumb-item>
</mo-breadcrumb>
import { MOBreadcrumb, MOBreadcrumbItem, MOIcon } from '@metsooutotec/modes-web-components/dist/react';

const App = () => (
  <MOBreadcrumb>
    <MOBreadcrumbItem>Documents</MOBreadcrumbItem>
    <MOBreadcrumbItem>Policies</MOBreadcrumbItem>
    <MOBreadcrumbItem>
      Security
      <MOIcon slot="suffix" name="lock"></MOIcon>
    </MOBreadcrumbItem>
  </MOBreadcrumb>
);

With dropdowns

Dropdown menus can be placed in a prefix or suffix slot to provide additional options.

Homepage Our Services Digital Media Web Design Web Design Web Development Marketing
<mo-breadcrumb>
  <mo-breadcrumb-item>Homepage</mo-breadcrumb-item>
  <mo-breadcrumb-item>Our Services</mo-breadcrumb-item>
  <mo-breadcrumb-item>Digital Media</mo-breadcrumb-item>
  <mo-breadcrumb-item>
    Web Design
    <mo-dropdown slot="suffix">
      <mo-icon-button slot="trigger" style="align-self: flex-start" name="more"> </mo-icon-button>
      <mo-menu>
        <mo-menu-item checked>Web Design</mo-menu-item>
        <mo-menu-item>Web Development</mo-menu-item>
        <mo-menu-item>Marketing</mo-menu-item>
      </mo-menu>
    </mo-dropdown>
  </mo-breadcrumb-item>
</mo-breadcrumb>
import {
  MOBreadcrumb,
  MOBreadcrumbItem,
  MOButton,
  MODropdown,
  MOIcon,
  MOMenu,
  MOMenuItem
} from '@metsooutotec/modes-web-components/dist/react';

const App = () => (
  <MOBreadcrumb>
    <MOBreadcrumbItem>Homepage</MOBreadcrumbItem>
    <MOBreadcrumbItem>Our Services</MOBreadcrumbItem>
    <MOBreadcrumbItem>Digital Media</MOBreadcrumbItem>
    <MOBreadcrumbItem>
      Web Design
      <MODropdown slot="suffix">
        <MOButton slot="trigger" size="small" circle>
          <MOIcon label="More options" name="three-dots"></MOIcon>
        </MOButton>
        <MOMenu>
          <MOMenuItem checked>Web Design</MOMenuItem>
          <MOMenuItem>Web Development</MOMenuItem>
          <MOMenuItem>Marketing</MOMenuItem>
        </MOMenu>
      </MODropdown>
    </MOBreadcrumbItem>
  </MOBreadcrumb>
);

Importing

If you’re using the autoloader or the traditional loader, you can ignore this section. Otherwise, feel free to use any of the following snippets to cherry pick this component.

Bundler React Script

To import this component using a bundler:

import '@metsooutotec/modes-web-components/dist/components/breadcrumb/breadcrumb.js';

To import this component as a React component:

import MOBreadcrumb from '@metsooutotec/modes-web-components/dist/react/breadcrumb/';

To import this component using a script tag:

<script type="module" src="https://modes-web.metso.com/dist/components/cdn/components/breadcrumb/breadcrumb.js"></script>

Slots

Name Description
(default) One or more breadcrumb items to display.
separator The separator to use between breadcrumb items.

Learn more about using slots.

Properties

Name Description Reflects Type Default
label The label to use for the breadcrumb control. This will not be shown, but it will be announced by screen readers and other assistive devices. string 'Breadcrumb'
updateComplete A read-only promise that resolves when the component has finished updating.

Learn more about attributes and properties.

Parts

Name Description
base The component’s internal wrapper.

Learn more about customizing CSS parts.