Sidebar menu collapse

Bootstrap 5 Sidebar menu collapse component

Responsive Sidebar menu collapse built with Bootstrap 5. Create sleek, user-friendly sidebars that expand and collapse effortlessly and navigation.


Basic example

In the basic version, the side navigation will appear over your website's content after clicking on a toggler.

Note: Use show and hide methods to toggle navigation with JavaScript.

Note: Adding the show class to a sidenav collapse element will expand this category on render.

<!-- Sidenav -->
<nav
  data-mdb-sidenav-init
  id="sidenav-1"
  class="sidenav"
  data-mdb-hidden="false"
>
  <ul class="sidenav-menu">
    <li class="sidenav-item">
      <a class="sidenav-link">
        <i class="far fa-smile fa-fw me-3"></i><span>Link 1</span></a
      >
    </li>
    <li class="sidenav-item">
      <a class="sidenav-link"
        ><i class="fas fa-grin fa-fw me-3"></i><span>Category 1</span></a
      >
      <ul class="sidenav-collapse show">
        <li class="sidenav-item">
          <a class="sidenav-link">Link 2</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 3</a>
        </li>
      </ul>
    </li>
    <li class="sidenav-item">
      <a class="sidenav-link"
        ><i class="fas fa-grin-wink fa-fw me-3"></i><span>Category 2</span></a
      >
      <ul class="sidenav-collapse">
        <li class="sidenav-item">
          <a class="sidenav-link">Link 4</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link"
            >Link 5</a
          >
        </li>
      </ul>
    </li>
  </ul>
</nav>
<!-- Sidenav -->

<!-- Toggler -->
<button
  data-mdb-ripple-init
  data-mdb-toggle="sidenav"
  data-mdb-target="#sidenav-1"
  class="btn btn-primary"
  aria-controls="#sidenav-1"
  aria-haspopup="true"
>
  <i class="fas fa-bars"></i>
</button>
<!-- Toggler -->
// Initialization for ES Users
import { Sidenav, initMDB } from "mdb-ui-kit";

initMDB({ Sidenav });

Menu item scroll

You can use custom styles and our Scrollbar to add inner scroll for menu items.

<!-- Sidenav -->
  <nav
  data-mdb-sidenav-init
  id="sidenav-8"
  class="sidenav"
  data-scroll-container="#scroll-container2"
  data-mdb-mode="side"
>
  <div class="text-center">
    <h3 class="py-4">Examples</h3>
    <hr class="m-0" />
  </div>
  <ul id="scroll-container2" class="sidenav-menu">
    <li class="sidenav-item">
      <a class="sidenav-link"
        ><i class="fas fa-grin fa-fw me-3"></i><span>Scrolling Category 1</span></a
      >
      <ul class="sidenav-collapse scroll-section">
        <li class="sidenav-item">
          <a class="sidenav-link">Link 1</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 2</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 3</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 4</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 5</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 6</a>
        </li>
      </ul>
    </li>
    <li class="sidenav-item">
      <a class="sidenav-link"
        ><i class="fas fa-grin fa-fw me-3"></i><span>Scrolling Category 2</span></a
      >
      <ul class="sidenav-collapse scroll-section">
        <li class="sidenav-item">
          <a class="sidenav-link">Link 1</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 2</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 3</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 4</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 5</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 6</a>
        </li>
      </ul>
    </li>
    <li class="sidenav-item">
      <a class="sidenav-link"
        ><i class="fas fa-grin fa-fw me-3"></i><span>Scrolling Category 2</span></a
      >
      <ul class="sidenav-collapse scroll-section">
        <li class="sidenav-item">
          <a class="sidenav-link">Link 1</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 2</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 3</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 4</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 5</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 6</a>
        </li>
      </ul>
    </li>
    <li class="sidenav-item">
      <a class="sidenav-link"
        ><i class="fas fa-grin fa-fw me-3"></i><span>Scrolling Category 3</span></a
      >
      <ul class="sidenav-collapse scroll-section">
        <li class="sidenav-item">
          <a class="sidenav-link">Link 1</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 2</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 3</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 4</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 5</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 6</a>
        </li>
      </ul>
    </li>
    <li class="sidenav-item">
      <a class="sidenav-link"
        ><i class="fas fa-grin fa-fw me-3"></i><span>Scrolling Category 4</span></a
      >
      <ul class="sidenav-collapse scroll-section">
        <li class="sidenav-item">
          <a class="sidenav-link">Link 1</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 2</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 3</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 4</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 5</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 6</a>
        </li>
      </ul>
    </li>
    <li class="sidenav-item">
      <a class="sidenav-link"
        ><i class="fas fa-grin fa-fw me-3"></i><span>Scrolling Category 5</span></a
      >
      <ul class="sidenav-collapse scroll-section">
        <li class="sidenav-item">
          <a class="sidenav-link">Link 1</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 2</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 3</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 4</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 5</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 6</a>
        </li>
      </ul>
    </li>
    <li class="sidenav-item">
      <a class="sidenav-link"
        ><i class="fas fa-grin fa-fw me-3"></i><span>Scrolling Category 6</span></a
      >
      <ul class="sidenav-collapse scroll-section">
        <li class="sidenav-item">
          <a class="sidenav-link">Link 1</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 2</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 3</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 4</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 5</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 6</a>
        </li>
      </ul>
    </li>
  </ul>

  <div class="text-center" style="min-height: 3rem">
    <hr class="mt-0 mb-2" />
    <small>mdbootstrap.com</small>
  </div>
</nav>
  <!-- Sidenav-->

  <div style="padding: 20px;" class="text-center">
    <button
      data-mdb-toggle="sidenav"
      data-mdb-target="#sidenav-8"
      class="btn btn-primary"
      aria-controls="#sidenav-8"
      aria-haspopup="true"
    >
      <i class="fas fa-bars"></i>
    </button>
    <div class="d-flex justify-content-center my-5"></div>
  </div>
.scroll-section {
  max-height: 100px;
  overflow-y: auto;
  margin-right: 10px;
}
// Initialization for ES Users
import { Sidenav, PerfectScrollbar, initMDB } from "mdb-ui-kit";

initMDB({ Sidenav });

const scrollSection = document.getElementsByClassName('scroll-section');

scrollSection.forEach((el) => {
  const ps = new PerfectScrollbar(el, { suppressScrollX: true });
});
const scrollSection = document.getElementsByClassName('scroll-section');

scrollSection.forEach((el) => {
  const ps = new mdb.PerfectScrollbar(el, { suppressScrollX: true });
});

Accordion example

Using accordion option will allow expanding only one category at once.

<!-- Sidenav-->
<nav
  data-mdb-sidenav-init
  id="sidenav-5"
  class="sidenav"
  data-mdb-accordion="true"
>
  <ul class="sidenav-menu">
    <li class="sidenav-item">
      <a class="sidenav-link">
        <i class="far fa-smile fa-fw me-3"></i><span>Link 1</span></a
      >
    </li>
    <li class="sidenav-item">
      <a class="sidenav-link"
        ><i class="fas fa-grin fa-fw me-3"></i><span>Category 1</span></a
      >
      <ul class="sidenav-collapse">
        <li class="sidenav-item">
          <a class="sidenav-link">Link 2</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 3</a>
        </li>
      </ul>
    </li>
    <li class="sidenav-item">
      <a class="sidenav-link"
        ><i class="fas fa-grin-wink fa-fw me-3"></i><span>Category 2</span></a
      >
      <ul class="sidenav-collapse">
        <li class="sidenav-item">
          <a class="sidenav-link">Link 4</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 5</a>
        </li>
      </ul>
    </li>
  </ul>
</nav>
<!-- Sidenav-->

<!-- Toggler -->
  <button
    data-mdb-toggle="sidenav"
    data-mdb-target="#sidenav-5"
    class="btn btn-primary"
    aria-controls="#sidenav-5"
    aria-haspopup="true"
  >
    <i class="fas fa-bars"></i>
  </button>
<!-- Toggler -->
// Initialization for ES Users
import { Sidenav, initMDB } from "mdb-ui-kit";

initMDB({ Sidenav });

Groups

You can use more than one menu inside the side navigation - in this case, accordions will be independent of one another.

<!-- Sidenav-->
<nav
  data-mdb-sidenav-init
  id="sidenav-6"
  class="sidenav"
  data-mdb-accordion="true"
  data-mdb-mode="side"
>
  <ul class="sidenav-menu">
    <li class="sidenav-item">
      <a class="sidenav-link">
        <i class="far fa-smile fa-fw me-3"></i><span>Link 1</span></a
      >
    </li>
    <li class="sidenav-item">
      <a class="sidenav-link"
        ><i class="fas fa-grin fa-fw me-3"></i><span>Category 1</span></a
      >
      <ul class="sidenav-collapse">
        <li class="sidenav-item">
          <a class="sidenav-link">Link 2</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 3</a>
        </li>
      </ul>
    </li>
    <li class="sidenav-item">
      <a class="sidenav-link"
        ><i class="fas fa-grin-wink fa-fw me-3"></i><span>Category 2</span></a
      >
      <ul class="sidenav-collapse">
        <li class="sidenav-item">
          <a class="sidenav-link">Link 4</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 5</a>
        </li>
      </ul>
    </li>
  </ul>
  <hr />
  <ul class="sidenav-menu">
    <li class="sidenav-item">
      <a class="sidenav-link">
        <i class="far fa-smile fa-fw me-3"></i><span>Link 6</span></a
      >
    </li>
    <li class="sidenav-item">
      <a class="sidenav-link"
        ><i class="fas fa-grin fa-fw me-3"></i><span>Category 3</span></a
      >
      <ul class="sidenav-collapse">
        <li class="sidenav-item">
          <a class="sidenav-link">Link 7</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 8</a>
        </li>
      </ul>
    </li>
    <li class="sidenav-item">
      <a class="sidenav-link"
        ><i class="fas fa-grin-wink fa-fw me-3"></i><span>Category 4</span></a
      >
      <ul class="sidenav-collapse">
        <li class="sidenav-item">
          <a class="sidenav-link">Link 9</a>
        </li>
        <li class="sidenav-item">
          <a class="sidenav-link">Link 10</a>
        </li>
      </ul>
    </li>
  </ul>
</nav>

<!-- Sidenav-->

<!-- Toggler -->
<button
  data-mdb-toggle="sidenav"
  data-mdb-target="#sidenav-6"
  class="btn btn-primary"
  aria-controls="#sidenav-6"
  aria-haspopup="true"
>
  <i class="fas fa-bars"></i>
</button>
<!-- Toggler -->
// Initialization for ES Users
import { Sidenav, initMDB } from "mdb-ui-kit";

initMDB({ Sidenav });