Menu

Button group

Attached segmented actions. 3 variants × 3 sizes.

Installation

$ npx uix-ui@latest add button-group

This copies the file into components/ui/button-group.tsx in your project. npx shadcn@latest add @uix/button-group works too.

Usage

button-group.tsx
import { ButtonGroup, ButtonGroupItem } from "@/components/ui/button-group";

<ButtonGroup aria-label="Tin size">
  {["100g", "250g", "500g"].map(s => <ButtonGroupItem key={s} pressed={size === s} onClick={() => setSize(s)}>{s}</ButtonGroupItem>)}
</ButtonGroup>

Props

Button group props

PropTypeDefaultDescription
variantoutline | primary | ghost"outline"
sizesm | md | lg"md"

ButtonGroupItemProps

PropTypeDefaultDescription
pressedboolean–Marks the segment as the active one.

Everything else is passed to the root element, so className, aria-* and event handlers work as usual.

Dependencies

Installed for you by the CLI.

  • class-variance-authority
  • clsx
  • tailwind-merge
  • lib/utils.ts
This file exports 2 parts: ButtonGroup, ButtonGroupItem. Use only the ones you need.
esc

↑↓ to navigate · ↵ to select · esc to close