A loading state is the temporary product state shown while the system is fetching, processing, generating, uploading, or otherwise preparing a result.
If a user taps “Pay” and the screen appears frozen, they may tap again, leave, or assume the product failed.
A clear loading state confirms that the action was received and tells the user the system is still working.
Useful for short, indeterminate waits.
Useful when the layout is known but content is still arriving.
Better for longer operations where progress can be measured, such as uploads.
Useful when the operation has meaningful phases like “Uploading,” “Processing,” and “Finalizing.”
The interface updates immediately while the system completes the action in the background. Use it only when rollback is safe and understandable.
A loading state communicates active processing. A disabled state communicates that an action is currently unavailable.
A button may be both visually disabled and loading, but the meaning should remain clear.
Long or complex tasks often need more informative feedback.
Let users continue unrelated work when the operation allows it.
Loading cannot remain indefinite.
A loading state answers: did the product receive my action, what is happening now, and when can I expect the next state?
Product state · Error state · Empty state · Interaction design
Read Prototyping UX Design for state-aware interaction examples.