Button
Validity Gated Submit
A submit button locked until the form is ready: a :has(:invalid) rule dims it without JS, and the hint below always keeps its space.
What you can change
- the field label through the label prop
- the button label through the submitLabel prop
- the hint text through the hint prop
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/button-059?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
The component is self-contained: one file, no dependencies, its own palette in the local --vibeui-button-059-* variables. Server component, no JS is needed: the root is a <form>, and the form:has(:invalid) rule dims the button and shows the hint. Validity is computed by the browser from required and type="email", not by our code. The hint always occupies its space (visibility, not display), so the layout does not jump when the status changes. The button stays clickable for a screen reader — instead of disabled it is dimmed visually, and an attempt to submit shows the system message about the field.
Tags
- button
- submit
- form
- validation
Component source
The same file your agent installs. Here in case you would rather copy it by hand.
Loading…