Button Group
Tri State Switch
A three-position switch whose middle means "inherit from the project": built on the radiogroup pattern, where arrows move both focus and selection.
What you can change
- the set of positions through options
- the initial position through defaultValue
- the accessible group name through label
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/buttongroup-018?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 --vibeui-buttongroup-018-* variables. It is a client component: useState holds the selected value and useRef holds the track so that focus can be moved to the new button after an arrow key. The WAI-ARIA radiogroup pattern is implemented: buttons with role="radio" and aria-checked, tabIndex=0 only on the selected one, and arrows in both directions with wrap-around — in a radiogroup an arrow changes the selection, not just the focus, and that is what tells it apart from a toolbar. There is a single surface for the whole group: its width equals a third of the track and its offset is computed as translateX(index * 100%), which is why the columns have to be equal (grid-template-columns:repeat(3,1fr)).
Tags
- buttongroup
- tri-state
- radiogroup
- keyboard
Component source
The same file your agent installs. Here in case you would rather copy it by hand.
Loading…