Motion

Motion can communicate a change or show that the system is working. In the illustration, the request moves from Ready to Sending and then Request sent.
A loading indicator acknowledges the action while the request is pending. The final confirmation tells the user the operation finished. A spinner alone cannot communicate every possible outcome, so pair it with meaningful status text.
Keep motion purposeful and support reduced-motion preferences. An animation that obscures controls or delays the next action can make the experience worse.