Skip to content
Velkin LogoVelkin Logo
Velkin
VELKIN/UI

Modern UI components for product teams and their AI agents. Lit core, typed wrappers, live MCP.

sales@velkinui.com

Product

  • Docs
  • Components
  • Studio
  • Pricing

Resources

  • Quick start
  • Blog
  • Changelog
  • Roadmap
  • Status

Project

  • About
  • Contact
  • License
  • Privacy
  • Terms

© 2026 Velkin. MIT core · Pro licenses available.

VELKIN

Button Group

A button group component with shared styling and optional selection.

vu-button-group · @velkin/react/button-group

Copy page

Import

React
npm i @velkin/react

import { VuButtonGroup } from "@velkin/react/button-group";

Examples

API

Props

PropTypeDefaultDescription
variantVuButtonGroupVariant"solid"Visual treatment forwarded to children. Default: `"solid"`.
colorVuButtonGroupColor"default"Token intent forwarded to children. Default: `"default"`.
sizeVuButtonGroupSize"md"Discrete size forwarded to children. Default: `"md"`.
radiusVuButtonGroupRadius"md"Corner preset (`none`/`sm`/`md`/`lg`/`full`). Default: `md`.
orientationVuButtonGroupOrientation"horizontal"Layout axis. Default: `"horizontal"`.
disabledbooleanfalseDisables every child while set. Default: `false`.
labelstring""Accessible name for the group container.
selectionModeVuButtonGroupSelectionMode"none"Selection model; HTML attribute is `selectionmode`. Default: `"none"`.
valuestring""Selected value when `selectionMode === "single"`.
valuesstring[][]Selected values when `selectionMode === "multiple"`.

Events

EventDetailDescription
vu-changeVuButtonGroupChangeDetailUser toggled selection (not programmatic `value` / `values` writes).

Slots

SlotDescription
—- Two or more cluster members. Supported: `<vu-button>` and `<vu-dropdown>` (the dropdown's `[slot="trigger"]` `<vu-button>` is the visual surface that gets the cluster's variant / color / size / radius forwarded to it). Other tags are ignored — wrap raw `<button>` / `<a>` in `<vu-button>` first. `<vu-dropdown>` members are skipped from selection (`value` / `values`) — they remain trigger-only.

CSS parts

PartDescription
baseThe inner `[role="group"]` (or `[role="radiogroup"]`) container that wraps the slot.

Types

NameDefinition
VuButtonGroupChangeDetail
{
  value: string;
  values: string[];
  source: HTMLElement | null;
}
VuButtonGroupColor
"default" | "primary" | "success" | "warning" | "danger"
VuButtonGroupOrientation
"horizontal" | "vertical"
VuButtonGroupRadius
"sm" | "md" | "lg" | "none" | "full"
VuButtonGroupSelectionMode
"none" | "single" | "multiple"
VuButtonGroupSize
"sm" | "md" | "lg"
VuButtonGroupVariant
"solid" | "outline" | "soft" | "ghost"

Related

Inputs

  • Advanced FilterAn advanced filter component with expression input and visual builder.
  • ButtonA clickable button component with multiple variants and states.
  • CheckboxA checkbox component with label, hint, and validation.
  • Checkbox GroupA checkbox group component with shared label and validation.
  • Color AreaA two-dimensional color picker component for saturation and brightness.
  • Color PickerA color picker component with swatches, sliders, and input field.

Guides

  • FormsFormData, VuForm, and validation
  • EventsonVu* / v-model / e.detail
  • Appearancevariant, color, tone, size

Browse

  • Previous: ButtonEarlier in the sidebar
  • Next: CheckboxLater in the sidebar
  • All componentsBrowse the full index