How to use Bootstrap's progress bars and spinners

How to use Bootstrap's progress bars and spinners

In today’s fast-paced digital world, ensuring that users remain engaged with your website is paramount. Loading times and feedback mechanisms play a significant role in user satisfaction. Bootstrap, a popular front-end framework, offers robust tools for managing these aspects: progress bars and spinners. In this comprehensive guide, we will delve into how to effectively utilize Bootstrap’s progress bars and spinners to enhance the user experience on your website.

Understanding Bootstrap’s Progress Bars and Spinners

Before we dive into practical implementations, let’s gain a clear understanding of what Bootstrap’s progress bars and spinners are and why they are valuable.

Progress Bars

Progress bars are graphical elements that indicate the status of a task, such as loading a webpage or submitting a form. They offer users a visual cue about the progress, keeping them engaged and informed during potentially lengthy operations.


Spinners, often called “loading spinners” or “spinners,” are animated icons that signify that a task is in progress. They are commonly used to reassure users that their request is being processed, particularly during AJAX requests or when content is loading.

Now, let’s explore how to effectively employ these components.

Getting Started

To begin using Bootstrap’s progress bars and spinners, ensure you have Bootstrap integrated into your project. You can include Bootstrap by downloading the files or by using the Bootstrap CDN.

Creating Progress Bars

Creating a basic progress bar in Bootstrap is straightforward. You can use the .progress class along with the .progress-bar class to define its appearance.

Here’s a basic example of a progress bar:

<div class="progress">
  <div class="progress-bar" role="progressbar" style="width: 60%;" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100">60%</div>

In this example:

  • .progress: Defines the container for the progress bar.
  • .progress-bar: Represents the progress itself, with style attributes to set the width and aria-* attributes for accessibility.

You can customize the progress bar’s appearance by adjusting the width, color, and other styles to match your website’s theme.

Creating Spinners

Bootstrap provides a variety of spinner styles to choose from, each with its unique appearance. To create a spinner, use the .spinner-border class along with additional classes for styling.

Here’s an example of a spinner:

<div class="spinner-border text-primary" role="status">
  <span class="visually-hidden">Loading...</span>

In this example:

  • .spinner-border: Specifies the spinner style. In this case, it’s a bordered spinner.
  • text-primary: Sets the spinner’s color.
  • .visually-hidden: Hides the spinner’s text from screen readers while providing alternative text.

You can customize the spinner’s appearance by choosing a different style and color combination.

Adding Interactivity

To make progress bars and spinners interactive, you can use JavaScript to control their behavior. For example, you can update a progress bar’s width dynamically based on the progress of a task or display a spinner while waiting for an AJAX response.

Here’s a basic example of updating a progress bar dynamically with JavaScript:

<div class="progress">
  <div id="dynamic-progress" class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">0%</div>
  const progressBar = document.getElementById("dynamic-progress");
  let progress = 0;

  function updateProgress() {
    if (progress <= 100) { = `${progress}%`;
      progressBar.setAttribute("aria-valuenow", progress);
      progressBar.textContent = `${progress}%`;
      progress += 10; // Simulate progress
      setTimeout(updateProgress, 1000); // Update every second


This JavaScript code updates the progress bar’s width and text every second to simulate progress.

Accessibility Considerations

When implementing progress bars and spinners, accessibility is critical. Ensure that you use proper HTML structure, semantic elements, and ARIA attributes to make these components accessible to all users, including those with disabilities.


Bootstrap’s progress bars and spinners are valuable tools for enhancing the user experience on your website. Whether you’re conveying progress during lengthy operations or reassuring users during data loading, these components play a crucial role in keeping users engaged and informed. By mastering Bootstrap’s implementation of progress bars and spinners and considering accessibility, you can elevate the overall usability of your website and leave users with a positive impression of your web application.