--- layout: docs title: Progress description: Documentation and examples for using Bootstrap custom progress bars featuring support for stacked bars, animated backgrounds, and text labels. group: components toc: true --- ## How it works Progress components are built with two HTML elements, some CSS to set the width, and a few attributes. We don't use [the HTML5 `` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress), ensuring you can stack progress bars, animate them, and place text labels over them. - We use the `.progress` as a wrapper to indicate the max value of the progress bar. - We use the inner `.progress-bar` to indicate the progress so far. - The `.progress-bar` requires an inline style, utility class, or custom CSS to set their width. - The `.progress-bar` also requires some `role` and `aria` attributes to make it accessible, including an accessible name (using `aria-label`, `aria-labelledby`, or similar). Put that all together, and you have the following examples. {{< example >}}
{{< /example >}} Bootstrap provides a handful of [utilities for setting width]({{< docsref "/utilities/sizing" >}}). Depending on your needs, these may help with quickly configuring progress. {{< example >}}
{{< /example >}} ## Labels Add labels to your progress bars by placing text within the `.progress-bar`. {{< example >}}
25%
{{< /example >}} ## Height We only set a `height` value on the `.progress`, so if you change that value the inner `.progress-bar` will automatically resize accordingly. {{< example >}}
{{< /example >}} ## Backgrounds Use background utility classes to change the appearance of individual progress bars. {{< example >}}
{{< /example >}} {{< callout info >}} {{< partial "callout-warning-color-assistive-technologies.md" >}} {{< /callout >}} ## Multiple bars Include multiple progress bars in a progress component if you need. {{< example >}}
{{< /example >}} ## Striped Add `.progress-bar-striped` to any `.progress-bar` to apply a stripe via CSS gradient over the progress bar's background color. {{< example >}}
{{< /example >}} ## Animated stripes The striped gradient can also be animated. Add `.progress-bar-animated` to `.progress-bar` to animate the stripes right to left via CSS3 animations. {{< example >}}
{{< /example >}} ## CSS ### Variables {{< added-in "5.2.0" >}} As part of Bootstrap's evolving CSS variables approach, progress bars now use local CSS variables on `.progress` for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too. {{< scss-docs name="progress-css-vars" file="scss/_progress.scss" >}} ### Sass variables {{< scss-docs name="progress-variables" file="scss/_variables.scss" >}} ### Keyframes Used for creating the CSS animations for `.progress-bar-animated`. Included in `scss/_progress-bar.scss`. {{< scss-docs name="progress-keyframes" file="scss/_progress.scss" >}}