Progress Bar

Components

Progress Bar

A progress bar is an element that shows how far a running task has gotten, coming in two forms depending on whether the progress can be measured.

60%
Type
Progress60%

Definition

A progress bar is an element that uses a filling bar to show how far a running task has gotten. It comes in two main flavors. The first is used when you can measure the progress — with something like a file upload, you know what percentage of the whole is done, so the bar fills up by exactly that much. The second is used when the progress can't be measured — while waiting on a server response, for instance, the end is hard to predict, so a shape keeps sliding across the bar in a looping animation to signal that the task is still moving and hasn't stalled. Choosing between these two is the heart of it, and which one you reach for is decided naturally by a single question: can you calculate the progress or not?

Why does it matter?

Progress bars matter because they turn waiting into something people can actually tolerate. Even for the exact same wait, when someone can see how much is left, they feel far less stuck and are much less likely to abandon the screen. A frozen screen with no feedback plants the suspicion that something is broken, but a bar that fills in bit by bit reassures the user that the system is alive and working. If a spinner is just a signal to wait, a progress bar that knows the percentage is a kinder signal that also tells you how much longer. So the more predictable a task's remaining time is, the more showing that progress with a bar helps the overall experience.

Common mistakes

  • Showing only a sliding animation when you actually know the percentage. If the task lets you calculate progress but you fall back on a vaguely spinning indicator, users can't gauge when it will end and grow anxious for no good reason.
  • Letting the bar sit stuck in the middle for a long time. When it freezes at 90 percent for a while, users stop trusting the indicator itself — losing the very confidence it was meant to build — and start wondering whether the task has died.
  • Giving no closing signal once the work is done. If the bar just quietly vanishes, users don't know whether the task succeeded or failed, so they check once more and leave the screen without ever feeling sure it finished.

Practical tips

  • If you can calculate progress, show the percentage with a filling bar; if you can't, use the sliding form. Being honest — showing what you know as known and what you don't as unknown — gives users the most reassurance.
  • Don't bother showing a progress bar for tasks that finish almost instantly. A bar that appears and disappears in a blink just clutters the screen and reads like a flicker; leaving it out often looks smoother.
  • Pair the bar with a short line about what's happening right now. Adding context like "organizing files" makes the same wait feel shorter, and because users understand what they're waiting for, the frustration eases considerably.

Related concepts