Button Group

Group multiple buttons together with shared styling and proper spacing.

Import

Usage

Colors

Variants

Select a color:

Default

Bordered

Light

Ghost

Ethereal

Sizes

Radius

Shadowed

Full Width

Disabled

Custom Implementation

Data Attributes

  • -
    data-slot="button-group"Button group container identifier

Accessibility

ARIA Attributes

  • -
    role="group"Applied to ButtonGroup for proper grouping semantics

ButtonGroup Props

AttributeTypeDefaultDescription
variant'default' | 'bordered' | 'light' | 'ghost' | 'ethereal' | 'link'-Shared variant for all child buttons.
size'sm' | 'md' | 'lg'-Shared size for all child buttons.
color'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'lavender'-Shared color for all child buttons.
radius'none' | 'sm' | 'md' | 'lg' | 'full''md'Border radius for the group.
shadowedbooleanfalseWhether to add Material Design elevation shadows to all child buttons.
fullWidthbooleanfalseWhether buttons should span the full width of the container.
isDisabledbooleanfalseWhether all buttons in the group are disabled.

Button (within ButtonGroup) Props

AttributeTypeDefaultDescription
variant'default' | 'bordered' | 'light' | 'ghost' | 'ethereal' | 'link'Inherited from ButtonGroupOverride the variant for this specific button.
size'sm' | 'md' | 'lg'Inherited from ButtonGroupOverride the size for this specific button.
color'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'lavender'Inherited from ButtonGroupOverride the color for this specific button.
shadowedbooleanInherited from ButtonGroupOverride the shadow for this specific button.
disabledbooleanfalseDisable this specific button.
loadingbooleanfalseShow loading state for this specific button.
startContentReactNode-Content to display before the button text (e.g., icons).
endContentReactNode-Content to display after the button text (e.g., icons).
iconOnlybooleanfalseWhether this button should be square-shaped for icon-only usage.
disableRipplebooleanfalseWhether to disable the ripple effect for this button.
asChildbooleanfalseRender this button as a different element using Radix Slot.