Snippets Navbar

Bootstrap 5 Day Tabs Note Planner

A weekly planner with seven day tabs. Each day opens a note card listing that day's tasks.

Bootstrap 5 No jQuery Jul 2019 2.2K views

<section class="wdw-stage">
  <div class="container" style="max-width:960px">
    <div class="text-center mb-4">
      <span class="wdw-eyebrow mb-2">Weekly planner</span>
      <h2 class="wdw-heading h2">Notes for the week</h2>
    </div>
    <div class="wdw-card p-3 p-md-4">
      <ul class="nav nav-pills pn-tabs flex-nowrap overflow-auto gap-2 mb-4" id="noteTabs" role="tablist" aria-label="Days of the week">
        <li class="nav-item" role="presentation"><button class="nav-link pn-day active" id="pn-tab-mon" data-bs-toggle="pill" data-bs-target="#pn-mon" type="button" role="tab" aria-controls="pn-mon" aria-selected="true"><span class="pn-abbr">Mon</span><span class="pn-num">14</span><span class="pn-dot" aria-hidden="true"></span><span class="visually-hidden">, 3 tasks</span></button></li>
        <li class="nav-item" role="presentation"><button class="nav-link pn-day" id="pn-tab-tue" data-bs-toggle="pill" data-bs-target="#pn-tue" type="button" role="tab" aria-controls="pn-tue" aria-selected="false" tabindex="-1"><span class="pn-abbr">Tue</span><span class="pn-num">15</span><span class="pn-dot" aria-hidden="true"></span><span class="visually-hidden">, 3 tasks</span></button></li>
        <li class="nav-item" role="presentation"><button class="nav-link pn-day" id="pn-tab-wed" data-bs-toggle="pill" data-bs-target="#pn-wed" type="button" role="tab" aria-controls="pn-wed" aria-selected="false" tabindex="-1"><span class="pn-abbr">Wed</span><span class="pn-num">16</span><span class="pn-dot" aria-hidden="true"></span><span class="visually-hidden">, 3 tasks</span></button></li>
        <li class="nav-item" role="presentation"><button class="nav-link pn-day" id="pn-tab-thu" data-bs-toggle="pill" data-bs-target="#pn-thu" type="button" role="tab" aria-controls="pn-thu" aria-selected="false" tabindex="-1"><span class="pn-abbr">Thu</span><span class="pn-num">17</span><span class="pn-dot" aria-hidden="true"></span><span class="visually-hidden">, 3 tasks</span></button></li>
        <li class="nav-item" role="presentation"><button class="nav-link pn-day" id="pn-tab-fri" data-bs-toggle="pill" data-bs-target="#pn-fri" type="button" role="tab" aria-controls="pn-fri" aria-selected="false" tabindex="-1"><span class="pn-abbr">Fri</span><span class="pn-num">18</span><span class="pn-dot" aria-hidden="true"></span><span class="visually-hidden">, 3 tasks</span></button></li>
        <li class="nav-item" role="presentation"><button class="nav-link pn-day" id="pn-tab-sat" data-bs-toggle="pill" data-bs-target="#pn-sat" type="button" role="tab" aria-controls="pn-sat" aria-selected="false" tabindex="-1"><span class="pn-abbr">Sat</span><span class="pn-num">19</span><span class="pn-dot" aria-hidden="true"></span><span class="visually-hidden">, 3 tasks</span></button></li>
        <li class="nav-item" role="presentation"><button class="nav-link pn-day" id="pn-tab-sun" data-bs-toggle="pill" data-bs-target="#pn-sun" type="button" role="tab" aria-controls="pn-sun" aria-selected="false" tabindex="-1"><span class="pn-abbr">Sun</span><span class="pn-num">20</span><span class="pn-dot" aria-hidden="true"></span><span class="visually-hidden">, 3 tasks</span></button></li>
      </ul>
      <div class="tab-content pn-panel">
        <div class="tab-pane fade show active" id="pn-mon" role="tabpanel" aria-labelledby="pn-tab-mon" tabindex="0">
          <div class="d-flex justify-content-between align-items-start gap-3 mb-3">
            <div><span class="wdw-eyebrow">Mon, Oct 14</span><h3 class="h4 wdw-heading mb-1">Monday</h3><p class="wdw-muted mb-0">Plan the sprint and clear the inbox.</p></div>
            <span class="badge text-bg-primary rounded-pill pn-count" data-total="3">3 tasks</span>
          </div>
          <ul class="pn-list">
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-mon-0"><label class="form-check-label pn-label" for="pn-mon-0">Sprint planning</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">10:00</span></li>
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-mon-1"><label class="form-check-label pn-label" for="pn-mon-1">Review open pull requests</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">13:30</span></li>
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-mon-2"><label class="form-check-label pn-label" for="pn-mon-2">Reply to client feedback</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">16:00</span></li>
          </ul>
        </div>
        <div class="tab-pane fade" id="pn-tue" role="tabpanel" aria-labelledby="pn-tab-tue" tabindex="0">
          <div class="d-flex justify-content-between align-items-start gap-3 mb-3">
            <div><span class="wdw-eyebrow">Tue, Oct 15</span><h3 class="h4 wdw-heading mb-1">Tuesday</h3><p class="wdw-muted mb-0">Deep work day, no meetings.</p></div>
            <span class="badge text-bg-primary rounded-pill pn-count" data-total="3">3 tasks</span>
          </div>
          <ul class="pn-list">
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-tue-0"><label class="form-check-label pn-label" for="pn-tue-0">Finish the onboarding flow</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">09:00</span></li>
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-tue-1"><label class="form-check-label pn-label" for="pn-tue-1">Write component tests</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">13:00</span></li>
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-tue-2"><label class="form-check-label pn-label" for="pn-tue-2">Lunch walk</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">12:30</span></li>
          </ul>
        </div>
        <div class="tab-pane fade" id="pn-wed" role="tabpanel" aria-labelledby="pn-tab-wed" tabindex="0">
          <div class="d-flex justify-content-between align-items-start gap-3 mb-3">
            <div><span class="wdw-eyebrow">Wed, Oct 16</span><h3 class="h4 wdw-heading mb-1">Wednesday</h3><p class="wdw-muted mb-0">Design review and user calls.</p></div>
            <span class="badge text-bg-primary rounded-pill pn-count" data-total="3">3 tasks</span>
          </div>
          <ul class="pn-list">
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-wed-0"><label class="form-check-label pn-label" for="pn-wed-0">Design review</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">11:00</span></li>
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-wed-1"><label class="form-check-label pn-label" for="pn-wed-1">Two customer interviews</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">14:00</span></li>
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-wed-2"><label class="form-check-label pn-label" for="pn-wed-2">Update the roadmap</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">17:00</span></li>
          </ul>
        </div>
        <div class="tab-pane fade" id="pn-thu" role="tabpanel" aria-labelledby="pn-tab-thu" tabindex="0">
          <div class="d-flex justify-content-between align-items-start gap-3 mb-3">
            <div><span class="wdw-eyebrow">Thu, Oct 17</span><h3 class="h4 wdw-heading mb-1">Thursday</h3><p class="wdw-muted mb-0">Ship what is ready.</p></div>
            <span class="badge text-bg-primary rounded-pill pn-count" data-total="3">3 tasks</span>
          </div>
          <ul class="pn-list">
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-thu-0"><label class="form-check-label pn-label" for="pn-thu-0">Release candidate build</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">10:00</span></li>
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-thu-1"><label class="form-check-label pn-label" for="pn-thu-1">Write the changelog</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">14:30</span></li>
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-thu-2"><label class="form-check-label pn-label" for="pn-thu-2">Team demo</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">16:00</span></li>
          </ul>
        </div>
        <div class="tab-pane fade" id="pn-fri" role="tabpanel" aria-labelledby="pn-tab-fri" tabindex="0">
          <div class="d-flex justify-content-between align-items-start gap-3 mb-3">
            <div><span class="wdw-eyebrow">Fri, Oct 18</span><h3 class="h4 wdw-heading mb-1">Friday</h3><p class="wdw-muted mb-0">Wrap up and look ahead.</p></div>
            <span class="badge text-bg-primary rounded-pill pn-count" data-total="3">3 tasks</span>
          </div>
          <ul class="pn-list">
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-fri-0"><label class="form-check-label pn-label" for="pn-fri-0">Weekly retro</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">10:30</span></li>
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-fri-1"><label class="form-check-label pn-label" for="pn-fri-1">Archive finished tasks</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">14:00</span></li>
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-fri-2"><label class="form-check-label pn-label" for="pn-fri-2">Draft next week's plan</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">16:30</span></li>
          </ul>
        </div>
        <div class="tab-pane fade" id="pn-sat" role="tabpanel" aria-labelledby="pn-tab-sat" tabindex="0">
          <div class="d-flex justify-content-between align-items-start gap-3 mb-3">
            <div><span class="wdw-eyebrow">Sat, Oct 19</span><h3 class="h4 wdw-heading mb-1">Saturday</h3><p class="wdw-muted mb-0">Off the clock.</p></div>
            <span class="badge text-bg-primary rounded-pill pn-count" data-total="3">3 tasks</span>
          </div>
          <ul class="pn-list">
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-sat-0"><label class="form-check-label pn-label" for="pn-sat-0">Farmers market</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">09:30</span></li>
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-sat-1"><label class="form-check-label pn-label" for="pn-sat-1">Long bike ride</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">11:30</span></li>
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-sat-2"><label class="form-check-label pn-label" for="pn-sat-2">Dinner with friends</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">19:00</span></li>
          </ul>
        </div>
        <div class="tab-pane fade" id="pn-sun" role="tabpanel" aria-labelledby="pn-tab-sun" tabindex="0">
          <div class="d-flex justify-content-between align-items-start gap-3 mb-3">
            <div><span class="wdw-eyebrow">Sun, Oct 20</span><h3 class="h4 wdw-heading mb-1">Sunday</h3><p class="wdw-muted mb-0">Slow morning, light prep.</p></div>
            <span class="badge text-bg-primary rounded-pill pn-count" data-total="3">3 tasks</span>
          </div>
          <ul class="pn-list">
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-sun-0"><label class="form-check-label pn-label" for="pn-sun-0">Read for an hour</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">10:00</span></li>
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-sun-1"><label class="form-check-label pn-label" for="pn-sun-1">Meal prep</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">15:00</span></li>
            <li class="pn-task"><div class="form-check mb-0 flex-grow-1 d-flex align-items-center gap-3 ps-0"><input class="form-check-input pn-check rounded-circle m-0" type="checkbox" id="pn-sun-2"><label class="form-check-label pn-label" for="pn-sun-2">Pack for Monday</label></div><span class="badge bg-primary-subtle text-primary-emphasis rounded-pill">18:30</span></li>
          </ul>
        </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.