The Radio component provides single-selection radio buttons, typically used within a RadioGroup.
Basic Usage
import { Radio, RadioGroup } from "@paramanu/forms-react"
export default function App() {
<RadioGroup name="fruit">
<Radio name="fruit" value="apple">Apple</Radio>
<Radio name="fruit" value="banana">Banana</Radio>
<div class="pm-radio-group pm-radio-group--vertical pm-radio-group--md" role="radiogroup">
<label class="pm-radio pm-radio--md">
<input type="radio" class="pm-radio__input" name="fruit" value="apple" />
<span class="pm-radio__indicator"></span>
<span class="pm-radio__label">Apple</span>
<label class="pm-radio pm-radio--md">
<input type="radio" class="pm-radio__input" name="fruit" value="banana" />
<span class="pm-radio__indicator"></span>
<span class="pm-radio__label">Banana</span>
Horizontal Group
import { Radio, RadioGroup } from "@paramanu/forms-react"
export default function App() {
<RadioGroup name="color" orientation="horizontal">
<Radio name="color" value="red">Red</Radio>
<Radio name="color" value="blue">Blue</Radio>
<div class="pm-radio-group pm-radio-group--horizontal pm-radio-group--md" role="radiogroup">
<label class="pm-radio pm-radio--md"><input type="radio" class="pm-radio__input" name="color" value="red" /><span class="pm-radio__indicator"></span><span class="pm-radio__label">Red</span></label>
<label class="pm-radio pm-radio--md"><input type="radio" class="pm-radio__input" name="color" value="blue" /><span class="pm-radio__indicator"></span><span class="pm-radio__label">Blue</span></label>
Accessibility
| Feature | Detail |
|---|
role="radiogroup" | Group container uses radiogroup role |
aria-invalid | Applied when invalid is true |
| Keyboard | Arrow keys navigate between radios |
Best Practices
- Always group radios using RadioGroup with a shared
name.
- Use radio buttons when only one option can be selected.
Radio Props
| Prop | Type | Default | Description |
|---|
size | "xs" | "sm" | "md" | "lg" | "md" | Radio size |
disabled | boolean | false | Disabled state |
invalid | boolean | false | Invalid state |
checked | boolean | false | Checked state |
name | string | - | Group name |
value | string | - | Radio value |
RadioGroup Props
| Prop | Type | Default | Description |
|---|
orientation | "horizontal" | "vertical" | "vertical" | Layout direction |
size | "xs" | "sm" | "md" | "lg" | "md" | Group size |
CSS Classes
| Class | Description |
|---|
pm-radio | Base radio class |
pm-radio-group | Group container |
pm-radio-group--horizontal | Horizontal layout |
pm-radio-group--vertical | Vertical layout |