Spinner
Submit Lock Button
A button with a spinner that blocks repeat clicks: the label stays put, the button disables itself while busy, and a hidden region announces the status.
What you can change
- the button text through label
- the screen-reader text while waiting through pendingLabel
- the demo wait duration through pendingDuration in milliseconds
A link for your AI agent: preview, code and instructions.
Preview
Use it with AI
- 1. Copy the link.
- 2. Write to your agent in your own words and drop the link into the sentence.
- 3. The agent opens the link and installs the component from the registry.
put this on the home page as the hero:
https://vibeui.ru/c/spinner-009?lang=en&theme=dark
Not sure where to paste it? Step-by-step guide
Show the full instructions
What the link says, spelled out. Use it when your agent cannot open links — paste this text instead.
Loading…
For developers
The install command lives in the “Component source” block below — a signed link that stays valid for 24 hours.
Technical notes
A client component: the pending state is kept in useState, and the timer that lifts the block is cleared in useEffect on unmount. On click the button gets disabled, aria-disabled and aria-busy, three bouncing dots appear next to the visible label — a repeat click during the work is ignored. The visible button text does not change, so that the layout is not jolted; the status is announced by a separate visually hidden region with role="status" and aria-live="polite". Under prefers-reduced-motion the dots freeze at different opacities. The button has no fill by design: the outline sits straight on the page background, which is why it never gained a background prop. The theme comes from the surrounding color-scheme through light-dark() — on a dark background the accent is lighter.
Tags
- spinner
- button
- loading
- double-submit
Component source
The same file your agent installs. Here in case you would rather copy it by hand.
Loading…