Snippets Navbar

Bootstrap 5 Navbar for a Personal Website with Search

A personal-site navbar with a books dropdown, movie and song links, an archive search and a collapsing mobile menu.

Bootstrap 5 No jQuery Jun 2019 2.8K views

<section class="wdw-stage">
  <div class="container" style="max-width:1040px">
    <div class="wdw-card overflow-hidden">
      <nav class="navbar navbar-expand-lg px-3 px-lg-4 py-3 border-bottom" aria-label="Personal site">
        <a class="navbar-brand d-flex align-items-center gap-2 fw-bolder" href="#">
          <span class="pn-mark" aria-hidden="true">M</span> Maya Lindqvist
        </a>
        <button class="navbar-toggler border-0" type="button" data-bs-toggle="collapse" data-bs-target="#pnNav" aria-controls="pnNav" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="pnNav">
          <ul class="navbar-nav me-auto gap-lg-1 mt-3 mt-lg-0">
            <li class="nav-item dropdown">
              <a class="nav-link rounded-pill px-3 dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">Books</a>
              <ul class="dropdown-menu p-2">
                <li><a class="dropdown-item rounded-3" href="#">Reading list</a></li>
                <li><a class="dropdown-item rounded-3" href="#">Reviews</a></li>
                <li><a class="dropdown-item rounded-3" href="#">All-time favourites</a></li>
              </ul>
            </li>
            <li class="nav-item"><a class="nav-link rounded-pill px-3" href="#">Movies</a></li>
            <li class="nav-item"><a class="nav-link rounded-pill px-3 active" aria-current="page" href="#">Songs</a></li>
          </ul>
          <form class="d-flex flex-column flex-sm-row gap-2 mt-3 mt-lg-0" role="search" onsubmit="return false">
            <label class="visually-hidden" for="pnSearch">Search</label>
            <input id="pnSearch" class="form-control rounded-pill px-3" type="search" placeholder="Search the archive" />
            <button class="btn btn-primary rounded-pill px-4" type="submit">Search</button>
          </form>
        </div>
      </nav>
      <div class="p-4 p-md-5">
        <span class="wdw-eyebrow">Now playing</span>
        <h1 class="wdw-heading display-6 mt-2 mb-3">Songs I keep coming back to</h1>
        <p class="wdw-muted mb-4" style="max-width:34rem">Notes on the albums, films and books that shaped this year, written slowly and updated often.</p>
        <div class="row g-3">
          <div class="col-md-4"><div class="pn-skel"><span class="wdw-icon mb-3" aria-hidden="true"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M9 18V5l12-2v13"/><circle cx="6" cy="18" r="3"/><circle cx="18" cy="16" r="3"/></svg></span><div class="fw-semibold">Late Night Drives</div><div class="small wdw-muted">12 tracks</div></div></div>
          <div class="col-md-4"><div class="pn-skel"><span class="wdw-icon mb-3" aria-hidden="true"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M9 18V5l12-2v13"/><circle cx="6" cy="18" r="3"/><circle cx="18" cy="16" r="3"/></svg></span><div class="fw-semibold">Sunday Mornings</div><div class="small wdw-muted">18 tracks</div></div></div>
          <div class="col-md-4"><div class="pn-skel"><span class="wdw-icon mb-3" aria-hidden="true"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M9 18V5l12-2v13"/><circle cx="6" cy="18" r="3"/><circle cx="18" cy="16" r="3"/></svg></span><div class="fw-semibold">Focus Hours</div><div class="small wdw-muted">24 tracks</div></div></div>
        </div>
      </div>
    </div>
  </div>
</section>

Built on Bootstrap 5.3.8 with plain JavaScript — no jQuery. Supports light and dark mode via data-bs-theme.

Free to use in personal and commercial projects under the MIT license.