UI components · Feedback
Progress
Also called: Progress bar, Progress ring, Progress indicator, Loading bar
A bar or ring that gradually fills up to show how much of a task is done, so users know how long they still have to wait.
Click “Labeled” to see what each part is called.
How to tell AI
Swap in your own content firstWhile a file uploads, show a 6px-tall progress bar under the file name, with a gray track, a dark fill, and the percentage on the right. When the upload finishes, switch to a check mark and "Done." If it fails, turn the bar red and show a "Retry" button. Animate progress changes smoothly; don't let it jump.
Send to
01Decide
Does your content look like this?
Check both columns to confirm Progress is what you need.
Use Progress when
- Upload, download, export, and other long tasks where you can get the actual percentage done
- Showing percentage data like task completion or quota usage
- The wait is longer than a few seconds, and users need to know how much longer it will be
Pick something else when
You can't get real progress and are just waiting for an API response; a spinner is more honest
Use insteadSpinnerThe page is loading for the first time and the content layout is known; a skeleton feels better
Use insteadSkeletonShowing which step of a multi-step flow the user is on; steps fit better
Use insteadSteps
Not sure? Upload a screenshot and page analysis will check which layout each block should use.
02Pitfalls
Common misuse
It looks like it works, but it makes things harder for users.
- 01
Faking progress with no real data, moving steadily to 99% and then getting stuck
- 02
Using only color with no percentage or text, so users don't know the actual number
- 03
The task failed but the bar just stays where it was, with no error state
03Spot it
How to spot it
Look at the overall structure first, then check a few features you can spot at a glance.
Structure
A track plus a fill segment sized to the percentage, often with percentage text or a status icon. The ring version uses two layers of arcs.
PartsClick one to highlight it in the wireframe above
04Explained
In detail
A progress bar fits waits where progress can be measured: uploading files, exporting data, installation steps. It can also show how complete a form is or how much storage is used. It's usually a gray track with a darker section that grows longer, with a percentage next to it. It can also be a ring, placed in a card or dashboard to show "72% complete." If the task fails, the progress bar should switch to an error state instead of freezing where it was.
How the waiting components split the work: Progress is for when you know the progress. A Spinner is for when you don't know how long it will take, usually just a second or two. A Skeleton is for the first load of a page or list, drawing the outline of the content first. Also don't mix it up with Steps: steps show which step of a flow you're on, while a progress bar shows how much of one task is done.
Developer infoTerm ID, DOM cues, match priority
- Term ID
component-progress- DOM selectors
The extension matches these CSS selectors when it inspects a page locally (tags, ARIA roles, common component library classes).
progress[role="progressbar"].ant-progress.el-progress[class*="MuiLinearProgress-root"].arco-progress.t-progress.n-progress[data-slot="progress"].progress
- Priority
- 1 · when several match at the same level, the higher priority wins
- Version
- v2 · updated Sep 29, 2026