Snippets Timeline

Bootstrap 5 Timeline Styles

A set of five timeline layouts for career or project milestones: a centered spine, a left rail, a horizontal stepper, year chips and accent bars.

Bootstrap 5 No jQuery Sep 2019 1.8K views

<section class="tl-section wdw-stage">
  <div class="container">
    <header class="text-center mb-4 tl-head">
      <span class="badge rounded-pill text-bg-primary mb-2">Timelines</span>
      <h1 class="h2 fw-bold text-body-emphasis mb-1">Five timeline styles</h1>
      <p class="text-body-secondary mb-0">Career milestones laid out five ways, from a stepper to a scrolling card strip.</p>
    </header>

    <div class="row g-4">
      <div class="col-12">
        <article class="card wdw-card border-0">
          <div class="card-body p-4">
            <p class="tl-label">Style 1 · Horizontal stepper</p>
            <ol class="tl tl-steps list-unstyled mb-0">
              <li class="is-done"><span class="tl-icon"><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 8.5l3.2 3L13 4.5"/></svg></span><time>2017</time><h3>Research</h3><span class="tl-state">Done</span></li>
              <li class="is-done"><span class="tl-icon"><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 8.5l3.2 3L13 4.5"/></svg></span><time>2018</time><h3>Design</h3><span class="tl-state">Done</span></li>
              <li class="is-current" aria-current="step"><span class="tl-icon"><svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><circle cx="8" cy="8" r="3"/></svg></span><time>2019</time><h3>Build</h3><span class="tl-state">In progress</span></li>
              <li class=""><span class="tl-icon"><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 2l1.8 3.8 4.2.6-3 3 .7 4.2L8 11.6 4.3 13.6 5 9.4l-3-3 4.2-.6z"/></svg></span><time>2020</time><h3>Launch</h3><span class="tl-state">Upcoming</span></li>
            </ol>
          </div>
        </article>
      </div>

      <div class="col-lg-6">
        <article class="card wdw-card border-0 h-100">
          <div class="card-body p-4">
            <p class="tl-label">Style 2 · Left rail</p>
            <ol class="tl tl-rail list-unstyled mb-0">
              <li><span class="tl-node"><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M2.5 13.5l.8-3.2 7.6-7.6a1.4 1.4 0 012 2l-7.6 7.6z"/></svg></span><div class="d-flex align-items-center gap-2 mb-1"><time class="mb-0">2017</time><span class="badge rounded-pill border fw-medium text-body-secondary bg-transparent">Design</span></div><h3>Web Designing</h3><p>First freelance clients and a growing portfolio.</p></li>
              <li><span class="tl-node"><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 4.5L2.5 8 6 11.5M10 4.5L13.5 8 10 11.5"/></svg></span><div class="d-flex align-items-center gap-2 mb-1"><time class="mb-0">2018</time><span class="badge rounded-pill border fw-medium text-body-secondary bg-transparent">Code</span></div><h3>Web Development</h3><p>Learned to build what was being designed.</p></li>
              <li><span class="tl-node"><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 2l1.8 3.8 4.2.6-3 3 .7 4.2L8 11.6 4.3 13.6 5 9.4l-3-3 4.2-.6z"/></svg></span><div class="d-flex align-items-center gap-2 mb-1"><time class="mb-0">2019</time><span class="badge rounded-pill border fw-medium text-body-secondary bg-transparent">Product</span></div><h3>Product Design</h3><p>Joined a startup as its first design hire.</p></li>
            </ol>
          </div>
        </article>
      </div>

      <div class="col-lg-6">
        <article class="card wdw-card border-0 h-100">
          <div class="card-body p-4 d-flex flex-column">
            <p class="tl-label">Style 3 · Year chips</p>
            <ol class="tl tl-chips list-unstyled mb-0 d-flex flex-column justify-content-between flex-grow-1">
              <li class="d-flex gap-3 align-items-start"><span class="tl-year">2015</span><div><h3>First site</h3><p>Published a hand-coded portfolio.</p></div></li>
              <li class="d-flex gap-3 align-items-start"><span class="tl-year">2016</span><div><h3>Internship</h3><p>Learned the craft inside a small agency.</p></div></li>
              <li class="d-flex gap-3 align-items-start"><span class="tl-year">2017</span><div><h3>Web Development</h3><p>Built the first responsive component library.</p></div></li>
              <li class="d-flex gap-3 align-items-start"><span class="tl-year">2018</span><div><h3>Web Designing</h3><p>Redesigned a marketplace checkout and lifted conversion.</p></div></li>
            </ol>
          </div>
        </article>
      </div>

      <div class="col-12">
        <article class="card wdw-card border-0">
          <div class="card-body p-4">
            <p class="tl-label">Style 4 · Centered spine</p>
            <ol class="tl tl-center list-unstyled mb-0">
              <li><span class="tl-node"><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M2.5 13.5l.8-3.2 7.6-7.6a1.4 1.4 0 012 2l-7.6 7.6z"/></svg></span><div class="tl-card"><time>2019</time><h3>Web Designing</h3><p>Shipped a design system used by four product teams.</p><span class="badge rounded-pill border fw-medium text-body-secondary bg-transparent mt-2">Design</span></div></li>
              <li><span class="tl-node"><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 4.5L2.5 8 6 11.5M10 4.5L13.5 8 10 11.5"/></svg></span><div class="tl-card"><time>2020</time><h3>JavaScript</h3><p>Moved the front end to modular, framework-free code.</p><span class="badge rounded-pill border fw-medium text-body-secondary bg-transparent mt-2">Code</span></div></li>
              <li><span class="tl-node"><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 2l1.8 3.8 4.2.6-3 3 .7 4.2L8 11.6 4.3 13.6 5 9.4l-3-3 4.2-.6z"/></svg></span><div class="tl-card"><time>2021</time><h3>Product Strategy</h3><p>Defined the roadmap with engineering and research.</p><span class="badge rounded-pill border fw-medium text-body-secondary bg-transparent mt-2">Strategy</span></div></li>
              <li><span class="tl-node"><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 8a2.5 2.5 0 100-5 2.5 2.5 0 000 5zM3 13.5c.4-2.4 2.3-3.5 5-3.5s4.6 1.1 5 3.5"/></svg></span><div class="tl-card"><time>2022</time><h3>Leadership</h3><p>Grew the team from three to twelve designers.</p><span class="badge rounded-pill border fw-medium text-body-secondary bg-transparent mt-2">Team</span></div></li>
            </ol>
          </div>
        </article>
      </div>

      <div class="col-12">
        <article class="card wdw-card border-0">
          <div class="card-body p-4">
            <p class="tl-label">Style 5 · Scrolling cards</p>
            <div class="tl-scroll" tabindex="0" role="region" aria-label="Scrollable timeline, 2016 to 2020">
              <ol class="tl tl-hscroll list-unstyled mb-0">
                <li><time>2016</time><div class="tl-hcard"><h3>HTML and CSS</h3><p>Where everything started.</p></div></li>
                <li><time>2017</time><div class="tl-hcard"><h3>JavaScript</h3><p>Interactive prototypes in plain JavaScript.</p></div></li>
                <li><time>2018</time><div class="tl-hcard"><h3>Web Designing</h3><p>Interface work for fintech and health apps.</p></div></li>
                <li><time>2019</time><div class="tl-hcard"><h3>Design Systems</h3><p>One component library for four product teams.</p></div></li>
                <li><time>2020</time><div class="tl-hcard"><h3>Team Lead</h3><p>Hiring, mentoring and setting the roadmap.</p></div></li>
              </ol>
            </div>
          </div>
        </article>
      </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.