UI components · Feedback
Spinner
Also called: Loading spinner, Loader, Loading indicator, Spin
A small icon that keeps spinning to show something is processing or loading, without saying how long it will take.
Click “Labeled” to see what each part is called.
How to tell AI
Swap in your own content firstAfter I click "Submit," show a 14px spinning icon to the left of the button text and disable the button so it can't be submitted twice. When the table's filters change, cover the table area with a semi-transparent white overlay with a spinner and "Loading..." in the middle. Keep the existing data instead of clearing it.
Send to
01Decide
Does your content look like this?
Check both columns to confirm Spinner is what you need.
Use Spinner when
- Waiting for an API response after clicking a submit button, usually a second or two
- A table or card refreshes in place, and you want to keep the old data while showing it's updating
- You can't estimate the wait time and can't get a percentage
Pick something else when
The page is loading for the first time and the layout is known; a skeleton reduces jumping
Use insteadSkeletonLong tasks like uploads or exports can report real progress; a progress bar is more reassuring
Use insteadProgressThe wait is over ten seconds; a spinner alone makes users think the page is frozen
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
Putting one centered spinner on the whole page and leaving it blank until all the data arrives
- 02
The submit button can still be clicked while it's spinning, causing duplicate submissions
- 03
Five or six spinners on the page at once, each card spinning on its own
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 spinning ring or dot icon, optionally with "Loading" text. For partial loading, it's often placed on a semi-transparent overlay.
PartsClick one to highlight it in the wireframe above
04Explained
In detail
A spinner is for waits of unknown length, usually just a second or two: a spinner inside a button after clicking Submit, a semi-transparent overlay with a spinner over a table after changing filters, or a spinner at the top during pull-to-refresh. It only tells the user "working on it, hang on," not how far along it is.
How it differs from Progress: use a progress bar when you can calculate the percentage, and a spinner when you can't. How it differs from a Skeleton: when a page or card loads for the first time and the content layout is known, a skeleton draws gray outlines first so the layout doesn't jump. A spinner fits small waits like a partial refresh or a button submit. Putting one centered spinner on the whole page and showing nothing until all the data comes back is the most common approach, and the one that makes people most anxious.
Developer infoTerm ID, DOM cues, match priority
- Term ID
component-spinner- DOM selectors
The extension matches these CSS selectors when it inspects a page locally (tags, ARIA roles, common component library classes).
.ant-spin.el-loading-mask[class*="MuiCircularProgress-root"].t-loading.n-spin-body.spinner-border.spinner-grow.animate-spin
- Priority
- 2 · when several match at the same level, the higher priority wins
- Version
- v2 · updated Sep 29, 2026