Loading Dots
Indicate an action running in the background.
With text
Loading
Best Practices
When to use
- Use Loading Dots embedded in copy for short indeterminate waits, e.g.
Saving<LoadingDots />orBuilding<LoadingDots />. - For buttons, set the
loadingprop on Button instead of dropping dots inside the label. - For layout placeholders use Skeleton; for known progress use Progress; for icon-sized indeterminate waits use Spinner.
Behavior
- Pass
size(number, dot diameter in px) only when the default doesn’t match adjacent type size. - Keep the trailing label specific to the work in flight (
Saving,Deploying,Uploading) so a wait over ~1s still tells the user what’s happening. - Don’t string Loading Dots after a completed verb (
Saved<LoadingDots />); the dots imply ongoing work.
Accessibility
- Mark the wrapping span with
aria-live="polite"so screen readers pick up the in-progress label without interrupting. - The dots are decorative; the surrounding text carries meaning, so don’t add
aria-labelto the component itself. - Honor
prefers-reduced-motionand avoid pairing Loading Dots with another animated indicator on the same line.
Was this helpful?