Radio Group
A set of checkable buttons—known as radio buttons—where no more than one of the buttons can be checked at a time.
Usage
To display a radio group, list two or more RadioGroupItem
s within RadioGroup
.
import { RadioGroup, RadioGroupItem } from "stylus-ui/RadioGroup";
export default () => ( <RadioGroup defaultValue="default"> <RadioGroupItem value="default" label="Default" /> <RadioGroupItem value="comfortable" label="Comfortable" /> <RadioGroupItem value="compact" label="Compact" /> </RadioGroup>);
Dark mode
To display radios on a dark background, pass theme="dark"
.
import { RadioGroup, RadioGroupItem } from "stylus-ui/RadioGroup";
export default () => ( <RadioGroup defaultValue="default" theme="dark"> <RadioGroupItem value="default" label="Default" /> <RadioGroupItem value="comfortable" label="Comfortable" /> <RadioGroupItem value="compact" label="Compact" /> </RadioGroup>);
Orientation
Display radio buttons horizontally by passing orientation="horizontal"
.
import { RadioGroup, RadioGroupItem } from "stylus-ui/RadioGroup";
export default () => ( <RadioGroup defaultValue="default" orientation="horizontal"> <RadioGroupItem value="default" label="Default" /> <RadioGroupItem value="comfortable" label="Comfortable" /> <RadioGroupItem value="compact" label="Compact" /> </RadioGroup>);
Disabled
The entire group can be disabled by using the disabled
prop.
import { RadioGroup, RadioGroupItem } from "stylus-ui/RadioGroup";
export default () => ( <RadioGroup defaultValue="default" disabled> <RadioGroupItem value="default" label="Default" /> <RadioGroupItem value="comfortable" label="Comfortable" /> <RadioGroupItem value="compact" label="Compact" /> </RadioGroup>);
The disabled
prop can also be used to disable a specific RadioGroupItem
.
import { RadioGroup, RadioGroupItem } from "stylus-ui/RadioGroup";
export default () => ( <RadioGroup defaultValue="default"> <RadioGroupItem value="default" label="Default" /> <RadioGroupItem value="comfortable" label="Comfortable" /> <RadioGroupItem value="compact" label="Compact" disabled /> </RadioGroup>);
Controlled state
By default, <RadioGroup>
is uncontrolled, meaning it manages its own state locally. To make it controlled, set value
and onValueChange
.
import { RadioGroup, RadioGroupItem } from "stylus-ui/RadioGroup";import { useState } from "react";
export default () => { const [radioValue, setRadioValue] = useState("default");
return ( <RadioGroup value={radioValue} onValueChange={(value) => setRadioValue(value)} > <RadioGroupItem value="default" label="Default" /> <RadioGroupItem value="comfortable" label="Comfortable" /> <RadioGroupItem value="compact" label="Compact" /> </RadioGroup> );};
API Reference
RadioGroup
Contains all the parts of a radio group.
Inherits properties from HTMLElement
.
Prop | Type | Default |
---|---|---|
asChild | boolean | false |
children | ReactNode | |
defaultValue | string | |
dir | "ltr" "rtl" | |
disabled | boolean | |
label | string | |
loop | boolean | true |
onValueChange | (value: string) => void | |
orientation | "horizontal" "vertical" | "vertical" |
required | boolean | |
theme | "light" "dark" | "light" |
value | string |
RadioGroupItem
An item in the group that can be checked. An input
will also render when used within a form
to ensure events propagate correctly.
Inherits properties from HTMLButtonElement
.
Prop | Type | Default |
---|---|---|
asChild | boolean | false |
children | ReactNode | |
defaultValue | string | |
disabled | boolean | |
label | string | |
loop | boolean | true |
orientation | "horizontal" "vertical" | "vertical" |
required | boolean | |
theme | "light" "dark" | "light" |
value | string |