Bulma Breadcrumb

The Breadcrumb component in Bulma provides a simple way to create hierarchical navigation. It helps users understand their current location within a website and navigate back to parent sections easily.

Basic Breadcrumb

The basic breadcrumb structure uses .breadcrumb and list items:

<nav class="breadcrumb" aria-label="breadcrumbs">
  <ul>
    <li><a href="#">Bulma</a></li>
    <li><a href="#">Documentation</a></li>
    <li><a href="#">Components</a></li>
    <li class="is-active"><a href="#" aria-current="page">Breadcrumb</a></li>
  </ul>
</nav>

Breadcrumb with Icons

<nav class="breadcrumb" aria-label="breadcrumbs">
  <ul>
    <li>
      <a href="#">
        <span class="icon is-small">
          <i class="fas fa-home"></i>
        </span>
        <span>Home</span>
      </a>
    </li>
    <li>
      <a href="#">
        <span class="icon is-small">
          <i class="fas fa-book"></i>
        </span>
        <span>Library</span>
      </a>
    </li>
    <li>
      <a href="#">
        <span class="icon is-small">
          <i class="fas fa-puzzle-piece"></i>
        </span>
        <span>Components</span>
      </a>
    </li>
    <li class="is-active">
      <a href="#" aria-current="page">
        <span class="icon is-small">
          <i class="fas fa-thumbs-up"></i>
        </span>
        <span>Breadcrumb</span>
      </a>
    </li>
  </ul>
</nav>

Separator Options

Bulma provides several separator styles:

Arrow Separator (Default)

<nav class="breadcrumb" aria-label="breadcrumbs">
  <ul>
    <li><a href="#">Home</a></li>
    <li><a href="#">Products</a></li>
    <li class="is-active"><a href="#">Details</a></li>
  </ul>
</nav>

Bullet Separator

<nav class="breadcrumb has-bullet-separator" aria-label="breadcrumbs">
  <ul>
    <li><a href="#">Dashboard</a></li>
    <li><a href="#">Settings</a></li>
    <li class="is-active"><a href="#">Profile</a></li>
  </ul>
</nav>

Dot Separator

<nav class="breadcrumb has-dot-separator" aria-label="breadcrumbs">
  <ul>
    <li><a href="#">Admin</a></li>
    <li><a href="#">Manage</a></li>
    <li><a href="#">Users</a></li>
    <li class="is-active"><a href="#">Edit</a></li>
  </ul>
</nav>

Succeeds Separator

<nav class="breadcrumb has-succeeds-separator" aria-label="breadcrumbs">
  <ul>
    <li><a href="#">Category</a></li>
    <li><a href="#">Subcategory</a></li>
    <li class="is-active"><a href="#">Item</a></li>
  </ul>
</nav>

Breadcrumb Sizes

<!-- Small Breadcrumb -->
<nav class="breadcrumb is-small" aria-label="breadcrumbs">
  <ul>
    <li><a href="#">Small</a></li>
    <li class="is-active"><a href="#">Breadcrumb</a></li>
  </ul>
</nav>

<!-- Medium Breadcrumb (Default) -->
<nav class="breadcrumb is-medium" aria-label="breadcrumbs">
  <ul>
    <li><a href="#">Medium</a></li>
    <li class="is-active"><a href="#">Breadcrumb</a></li>
  </ul>
</nav>

<!-- Large Breadcrumb -->
<nav class="breadcrumb is-large" aria-label="breadcrumbs">
  <ul>
    <li><a href="#">Large</a></li>
    <li class="is-active"><a href="#">Breadcrumb</a></li>
  </ul>
</nav>

Centered and Aligned Breadcrumbs

<!-- Centered Breadcrumb -->
<nav class="breadcrumb is-centered" aria-label="breadcrumbs">
  <ul>
    <li><a href="#">Home</a></li>
    <li><a href="#">Products</a></li>
    <li class="is-active"><a href="#">Current</a></li>
  </ul>
</nav>

<!-- Right Aligned Breadcrumb -->
<nav class="breadcrumb is-right" aria-label="breadcrumbs">
  <ul>
    <li><a href="#">First</a></li>
    <li><a href="#">Second</a></li>
    <li class="is-active"><a href="#">Third</a></li>
  </ul>
</nav>

Responsive Breadcrumb

<nav class="breadcrumb" aria-label="breadcrumbs">
  <ul>
    <!-- Hidden on mobile, shown on tablet and above -->
    <li class="is-hidden-mobile">
      <a href="#">
        <span class="icon">
          <i class="fas fa-home"></i>
        </span>
        <span>Home</span>
      </a>
    </li>
    
    <!-- Always visible -->
    <li><a href="#">Category</a></li>
    
    <!-- Truncated on mobile -->
    <li class="is-hidden-mobile"><a href="#">Subcategory</a></li>
    
    <!-- Active item -->
    <li class="is-active">
      <a href="#" aria-current="page">
        <span class="is-hidden-mobile">Current Page Title</span>
        <span class="is-hidden-tablet">Current</span>
      </a>
    </li>
  </ul>
</nav>

Breadcrumb with Dropdown

<nav class="breadcrumb" aria-label="breadcrumbs">
  <ul>
    <li><a href="#">Home</a></li>
    
    <!-- Dropdown breadcrumb item -->
    <li class="has-dropdown">
      <a href="#" class="dropdown-trigger">
        <span>Products</span>
        <span class="icon is-small">
          <i class="fas fa-angle-down"></i>
        </span>
      </a>
      <ul class="dropdown-menu">
        <li><a href="#">Electronics</a></li>
        <li><a href="#">Clothing</a></li>
        <li><a href="#">Books</a></li>
      </ul>
    </li>
    
    <li class="is-active"><a href="#">Details</a></li>
  </ul>
</nav>

Use Cases

1. E-commerce Product Navigation

<nav class="breadcrumb has-arrow-separator" aria-label="breadcrumbs">
  <ul>
    <li>
      <a href="/">
        <span class="icon is-small">
          <i class="fas fa-home"></i>
        </span>
        <span>Home</span>
      </a>
    </li>
    <li>
      <a href="/electronics">
        <span class="icon is-small">
          <i class="fas fa-laptop"></i>
        </span>
        <span>Electronics</span>
      </a>
    </li>
    <li>
      <a href="/electronics/computers">
        <span>Computers & Tablets</span>
      </a>
    </li>
    <li>
      <a href="/electronics/computers/laptops">
        <span>Laptops</span>
      </a>
    </li>
    <li class="is-active">
      <a href="#" aria-current="page">
        <span>MacBook Pro 16"</span>
      </a>
    </li>
  </ul>
</nav>

2. Admin Dashboard Navigation

<nav class="breadcrumb has-bullet-separator" aria-label="breadcrumbs">
  <ul>
    <li>
      <a href="/admin">
        <span class="icon is-small">
          <i class="fas fa-tachometer-alt"></i>
        </span>
        <span>Dashboard</span>
      </a>
    </li>
    <li>
      <a href="/admin/users">
        <span class="icon is-small">
          <i class="fas fa-users"></i>
        </span>
        <span>User Management</span>
      </a>
    </li>
    <li class="is-active">
      <a href="#" aria-current="page">
        <span class="icon is-small">
          <i class="fas fa-edit"></i>
        </span>
        <span>Edit User: John Doe</span>
      </a>
    </li>
  </ul>
</nav>

3. Documentation Navigation

<nav class="breadcrumb is-small has-dot-separator" aria-label="breadcrumbs">
  <ul>
    <li><a href="/docs">Documentation</a></li>
    <li><a href="/docs/getting-started">Getting Started</a></li>
    <li><a href="/docs/components">Components</a></li>
    <li class="is-active">
      <a href="#" aria-current="page">Breadcrumb Component</a>
    </li>
  </ul>
</nav>

Accessibility Considerations

<!-- Proper ARIA labels -->
<nav class="breadcrumb" aria-label="breadcrumbs">
  <ul>
    <li>
      <a href="/">Home</a>
    </li>
    <li>
      <!-- Use aria-current for current page -->
      <a href="/current" aria-current="page">Current Page</a>
    </li>
  </ul>
</nav>

<!-- Screen reader only text -->
<nav class="breadcrumb" aria-label="breadcrumbs">
  <ul>
    <li>
      <a href="/">
        <span class="icon">
          <i class="fas fa-home" aria-hidden="true"></i>
        </span>
        <span>Home</span>
        <span class="sr-only">(Navigate to home page)</span>
      </a>
    </li>
  </ul>
</nav>

Customization

/* Custom separator */
.breadcrumb.has-custom-separator ul li+li::before {
  content: '›';
  color: #ff3860;
}

/* Custom colors */
.breadcrumb a {
  color: #3273dc;
}

.breadcrumb a:hover {
  color: #363636;
  border-bottom: 1px solid #3273dc;
}

.breadcrumb li.is-active a {
  color: #363636;
  font-weight: bold;
}

/* Custom breadcrumb styles */
.breadcrumb.is-dark {
  background-color: #363636;
  border-radius: 4px;
  padding: 0.75em;
}

.breadcrumb.is-dark a {
  color: #f5f5f5;
}

.breadcrumb.is-dark li.is-active a {
  color: #fff;
  opacity: 0.9;
}

Best Practices

  • Always use proper ARIA labels for accessibility
  • Keep breadcrumb trails concise (3-5 levels maximum)
  • Use meaningful labels that match page titles
  • Consider mobile responsiveness for long breadcrumbs
  • Make breadcrumb links actually navigable
  • Use icons sparingly to maintain clarity
  • Test breadcrumb functionality on all screen sizes
Note: Breadcrumbs are particularly useful for websites with deep hierarchical structures like e-commerce sites, documentation, and admin panels.

Up next: Bulma Button Component