RadioGroup
Mutually-exclusive options. Radix primitive styled to match Checkbox and Input.
Basic
<RadioGroup defaultValue="recents">
{["Recents", "Home", "Applications", "Desktop"].map((item) => {
const id = item.toLowerCase();
return (
<label key={id} className="flex items-center gap-2">
<RadioGroupItem value={id} id={id} />
<Label htmlFor={id} weight="normal">{item}</Label>
</label>
);
})}
</RadioGroup>Destructive tone
<RadioGroup defaultValue="delete">
<label className="flex items-center gap-2">
<RadioGroupItem value="archive" tone="destructive" id="archive" />
<Label htmlFor="archive" weight="normal">Archive for 30 days</Label>
</label>
<label className="flex items-center gap-2">
<RadioGroupItem value="delete" tone="destructive" id="delete" />
<Label htmlFor="delete" weight="normal">Delete immediately</Label>
</label>
</RadioGroup>Disabled
<RadioGroup defaultValue="one" disabled>
<label className="flex items-center gap-2">
<RadioGroupItem value="one" id="one" />
<Label htmlFor="one" weight="normal">Option one</Label>
</label>
<label className="flex items-center gap-2">
<RadioGroupItem value="two" id="two" />
<Label htmlFor="two" weight="normal">Option two</Label>
</label>
</RadioGroup>Sizes
<>
<RadioGroupItem size="md" defaultChecked value="m" />
<RadioGroupItem size="lg" defaultChecked value="l" />
</>Source
packages/react/src/components/radio-group.tsx · Figma node 2819:29276