---
title: Progress bar
summary: A progress bar shows how much of a task is done. It comes in sizes and colors, and in stacked, striped, animated and indeterminate variants.
description: Show task progress with progress bars. Set the value, color, and size, or use indeterminate bars for unknown durations.
related: [/ui/components/progress-step, /ui/components/spinner]
source: core/scss/ui/_progress.scss
css-vars: progress
classnames:
component:
- class: progress
desc: Track element
part:
- class: progress-bar
desc: The filled part; set its width and the ARIA value on it
style:
- class: progress-bar-striped
desc: Diagonal stripes over the fill
modifier:
- class: progress-stacked
desc: Wrapper for several tracks shown as one bar
- class: progress-separated
desc: Adds a gap between stacked segments
behavior:
- class: progress-bar-animated
desc: Animates the stripes
- class: progress-bar-indeterminate
desc: Looping animation for an unknown amount of progress
color:
- class: bg-{color}
desc: Any base color on the bar, for example bg-success
size:
- class: progress-sm
desc: Thin track
- class: progress-lg
desc: Thick track
- class: progress-xl
desc: Extra thick track
---
import Example from '@components/Example.astro';
import ProgressBg from '@ui/ProgressBg.astro';
## Default markup
Add the `.progress` class to a `
` and put a `.progress-bar` inside it. The width of the inner bar is the value.
## Progress size
Add a size class such as `.progress-sm` to make the bar thinner or thicker. The names follow the usual Bootstrap pattern.
```html
...
```
## Progress with value
If you want to display the numeric value inside the bar, place the percentage text directly in the `.progress-bar`.
## Indeterminate progress
You can create a progress bar which shows indeterminate progress by adding `.progress-bar-indeterminate` to the `.progress-bar` element. Leave `aria-valuenow` off - a `progressbar` with no value is what tells a screen reader the amount is unknown, rather than zero.
## Native progress element
The native `