Snippets Bar

Bootstrap 5 Animated Skill Bars Chart

A skills chart with eight animated progress bars and counting percentages that play when the card scrolls into view, with a replay button.

Bootstrap 5 No jQuery Feb 2020 2K views

<section class="wdw-stage">
  <div class="container" style="max-width:920px">
    <div class="wdw-card p-4 p-md-5 sk-card" id="skills">
      <div class="d-flex flex-wrap justify-content-between align-items-end gap-3 mb-4">
        <div><span class="wdw-eyebrow">Skills</span><h1 class="h2 wdw-heading mb-0">What I work with</h1></div>
        <button type="button" class="btn btn-outline-primary rounded-pill btn-sm" id="skReplay">Replay</button>
      </div>
      <ul class="list-unstyled mb-0 sk-grid">
        <li class="sk-row">
          <div class="d-flex justify-content-between align-items-baseline mb-2"><span class="fw-semibold fs-6">HTML5</span><span class="d-flex align-items-center gap-2"><span class="badge rounded-pill bg-primary-subtle text-primary-emphasis d-none d-sm-inline">Expert</span><span class="fw-bold text-body-emphasis" data-count="95">0</span><span class="small text-body-secondary">%</span></span></div>
          <div class="progress sk-bar" role="progressbar" aria-label="HTML5" aria-valuenow="95" aria-valuemin="0" aria-valuemax="100"><div class="progress-bar rounded-pill" data-value="95"></div></div>
        </li>
        <li class="sk-row">
          <div class="d-flex justify-content-between align-items-baseline mb-2"><span class="fw-semibold fs-6">CSS3</span><span class="d-flex align-items-center gap-2"><span class="badge rounded-pill bg-primary-subtle text-primary-emphasis d-none d-sm-inline">Expert</span><span class="fw-bold text-body-emphasis" data-count="92">0</span><span class="small text-body-secondary">%</span></span></div>
          <div class="progress sk-bar" role="progressbar" aria-label="CSS3" aria-valuenow="92" aria-valuemin="0" aria-valuemax="100"><div class="progress-bar rounded-pill" data-value="92"></div></div>
        </li>
        <li class="sk-row">
          <div class="d-flex justify-content-between align-items-baseline mb-2"><span class="fw-semibold fs-6">JavaScript</span><span class="d-flex align-items-center gap-2"><span class="badge rounded-pill bg-primary-subtle text-primary-emphasis d-none d-sm-inline">Advanced</span><span class="fw-bold text-body-emphasis" data-count="84">0</span><span class="small text-body-secondary">%</span></span></div>
          <div class="progress sk-bar" role="progressbar" aria-label="JavaScript" aria-valuenow="84" aria-valuemin="0" aria-valuemax="100"><div class="progress-bar rounded-pill" data-value="84"></div></div>
        </li>
        <li class="sk-row">
          <div class="d-flex justify-content-between align-items-baseline mb-2"><span class="fw-semibold fs-6">Vue.js</span><span class="d-flex align-items-center gap-2"><span class="badge rounded-pill bg-primary-subtle text-primary-emphasis d-none d-sm-inline">Proficient</span><span class="fw-bold text-body-emphasis" data-count="70">0</span><span class="small text-body-secondary">%</span></span></div>
          <div class="progress sk-bar" role="progressbar" aria-label="Vue.js" aria-valuenow="70" aria-valuemin="0" aria-valuemax="100"><div class="progress-bar rounded-pill" data-value="70"></div></div>
        </li>
        <li class="sk-row">
          <div class="d-flex justify-content-between align-items-baseline mb-2"><span class="fw-semibold fs-6">PHP / MySQL</span><span class="d-flex align-items-center gap-2"><span class="badge rounded-pill bg-primary-subtle text-primary-emphasis d-none d-sm-inline">Advanced</span><span class="fw-bold text-body-emphasis" data-count="76">0</span><span class="small text-body-secondary">%</span></span></div>
          <div class="progress sk-bar" role="progressbar" aria-label="PHP / MySQL" aria-valuenow="76" aria-valuemin="0" aria-valuemax="100"><div class="progress-bar rounded-pill" data-value="76"></div></div>
        </li>
        <li class="sk-row">
          <div class="d-flex justify-content-between align-items-baseline mb-2"><span class="fw-semibold fs-6">Laravel</span><span class="d-flex align-items-center gap-2"><span class="badge rounded-pill bg-primary-subtle text-primary-emphasis d-none d-sm-inline">Working</span><span class="fw-bold text-body-emphasis" data-count="58">0</span><span class="small text-body-secondary">%</span></span></div>
          <div class="progress sk-bar" role="progressbar" aria-label="Laravel" aria-valuenow="58" aria-valuemin="0" aria-valuemax="100"><div class="progress-bar rounded-pill" data-value="58"></div></div>
        </li>
        <li class="sk-row">
          <div class="d-flex justify-content-between align-items-baseline mb-2"><span class="fw-semibold fs-6">Photoshop</span><span class="d-flex align-items-center gap-2"><span class="badge rounded-pill bg-primary-subtle text-primary-emphasis d-none d-sm-inline">Advanced</span><span class="fw-bold text-body-emphasis" data-count="82">0</span><span class="small text-body-secondary">%</span></span></div>
          <div class="progress sk-bar" role="progressbar" aria-label="Photoshop" aria-valuenow="82" aria-valuemin="0" aria-valuemax="100"><div class="progress-bar rounded-pill" data-value="82"></div></div>
        </li>
        <li class="sk-row">
          <div class="d-flex justify-content-between align-items-baseline mb-2"><span class="fw-semibold fs-6">Illustrator</span><span class="d-flex align-items-center gap-2"><span class="badge rounded-pill bg-primary-subtle text-primary-emphasis d-none d-sm-inline">Proficient</span><span class="fw-bold text-body-emphasis" data-count="74">0</span><span class="small text-body-secondary">%</span></span></div>
          <div class="progress sk-bar" role="progressbar" aria-label="Illustrator" aria-valuenow="74" aria-valuemin="0" aria-valuemax="100"><div class="progress-bar rounded-pill" data-value="74"></div></div>
        </li>
      </ul>
    </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.