Btn Group
Groups related buttons together with consistent spacing, optional attached borders, and horizontal or vertical layout.
Basic Usage
import { BtnGroup, Btn } from "@paramanu/buttons-react"
export default function App() {return ( <BtnGroup aria-label="Actions"> <Btn variant="secondary">Left</Btn> <Btn variant="secondary">Center</Btn> <Btn variant="secondary">Right</Btn> </BtnGroup>)}<div class="pm-btn-group pm-btn-group--horizontal" role="group" aria-label="Actions"><button class="pm-btn pm-btn--secondary pm-btn--md">Left</button><button class="pm-btn pm-btn--secondary pm-btn--md">Center</button><button class="pm-btn pm-btn--secondary pm-btn--md">Right</button></div>Attached
import { BtnGroup, Btn } from "@paramanu/buttons-react"
export default function App() {return ( <BtnGroup attached aria-label="Actions"> <Btn variant="secondary">Left</Btn> <Btn variant="secondary">Center</Btn> <Btn variant="secondary">Right</Btn> </BtnGroup>)}<div class="pm-btn-group pm-btn-group--horizontal pm-btn-group--attached" role="group" aria-label="Actions"><button class="pm-btn pm-btn--secondary pm-btn--md">Left</button><button class="pm-btn pm-btn--secondary pm-btn--md">Center</button><button class="pm-btn pm-btn--secondary pm-btn--md">Right</button></div>Vertical
import { BtnGroup, Btn } from "@paramanu/buttons-react"
export default function App() {return ( <BtnGroup orientation="vertical" aria-label="Actions"> <Btn variant="secondary">Top</Btn> <Btn variant="secondary">Middle</Btn> <Btn variant="secondary">Bottom</Btn> </BtnGroup>)}<div class="pm-btn-group pm-btn-group--vertical" role="group" aria-label="Actions"><button class="pm-btn pm-btn--secondary pm-btn--md">Top</button><button class="pm-btn pm-btn--secondary pm-btn--md">Middle</button><button class="pm-btn pm-btn--secondary pm-btn--md">Bottom</button></div>Accessibility
- Uses
role="group"witharia-labelfor screen reader context - Keyboard navigation follows standard tab order through buttons
Best Practices
- Always provide an
aria-labeldescribing the group’s purpose - Use consistent button variants within a group
- Limit groups to 2-5 buttons for clarity
React Props
Extends all native <div> HTML attributes.
| Prop | Type | Default | Description |
|---|---|---|---|
orientation | "horizontal" | "vertical" | "horizontal" | Layout direction |
attached | boolean | false | Merge button borders |
fullWidth | boolean | false | Stretch to container width |
children | ReactNode | — | Btn elements |
CSS Classes
| Class | Purpose |
|---|---|
pm-btn-group | Base styles |
pm-btn-group--horizontal | Horizontal layout |
pm-btn-group--vertical | Vertical layout |
pm-btn-group--attached | Merged borders |
pm-btn-group--full-width | Full width |