A HTML component to illustrate the steps in a multi step process e.g. a multi step form, a timeline or a quiz.

Basic usage

Center aligned

Right aligned

Text inside markers

Spaced markers


Color theme

Text on markers

Center aligned

Right aligned

Link surrounding each step

Dots connecting text to markers

Text above markers

Text to the left of markers

Text to the right of markers

Square markers

Small screen optimised <=575px

  • Step 1

  • Step 2

  • Step 3

  • Step 4

  • Step 5


The animation class can be applied to the progress tracker so each step has the same animation. Alternatively you can add the animation class to the progress step to have different animation on each step.

Fill path between steps

This site has some basic javascript to demonstrate this effect.

Partial fill of steps

Vertical layout


$ npm install progress-tracker --save-dev



After installation you can import it into your Sass files with the statement below.

@import "node_modules/progress-tracker/src/styles/progress-tracker.scss";

The JS that is part of this site is just for demonstration purposes, add your own JS as needed to toggle the classes for the step states.


Follow the HTML code example below for basic usage; each demo sets the first two steps as complete, the third step as active and the last two steps as inactive.

For additional styles add modifier classes and additional markup as needed in the examples below. You can add multiple modifier classes to achieve additional styles that those shown below.

<ul class="progress-tracker">
  <li class="progress-step is-complete">
    <div class="progress-marker"></div>
  <li class="progress-step is-complete">
    <div class="progress-marker"></div>
  <li class="progress-step is-active">
    <div class="progress-marker"></div>
  <li class="progress-step">
    <div class="progress-marker"></div>
  <li class="progress-step">
    <div class="progress-marker"></div>

Demo site

Clone or download from Github.

$ npm install
$ gulp serve