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

1440pxHost theme

Use it with AI

  1. 1. Copy the link.
  2. 2. Write to your agent in your own words and drop the link into the sentence.
  3. 3. The agent opens the link and installs the component from the registry.
AI
1Pick it here

put this on the home page as the hero:

https://vibeui.ru/c/spinner-009?lang=en&theme=dark

2Paste into the chat
3Get it in your project

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…