Loading button · Material
An async action button that morphs from its label to a spinner while the promise runs, then to a success or error state, and announces each step.
Design · Material1 / 20
M3 filled pill with a circular indeterminate arc; success and error use the tonal green and error roles.
Motion
The label shrinks away into a lone spinner, which pops into a drawn check (or cross with a shake) when the promise settles.
Accent
An async action button that morphs from its label to a spinner while the promise runs, then to a success or error state, and announces each step.
buttonloadingspinnerasyncsubmitsuccesserrorform