Radio Group
A set of mutually exclusive options where only one item can be selected.
Accessibility
RadioGroup renders role="radiogroup" with RadioGroupItem elements using role="radio". Use aria-label on the group when no visible label is present. Keyboard navigation follows ARIA radio group behavior: arrow keys move selection, and Home/End jump to the first/last item.
Examples
Default
<c-radio-group value="default">
<div class="flex items-center gap-3">
<c-radio-group-item id="radio-default" value="default"></c-radio-group-item>
<c-label label-for="radio-default">Default</c-label>
</div>
<div class="flex items-center gap-3">
<c-radio-group-item
id="radio-comfortable"
value="comfortable"
></c-radio-group-item>
<c-label label-for="radio-comfortable">Comfortable</c-label>
</div>
<div class="flex items-center gap-3">
<c-radio-group-item id="radio-compact" value="compact"></c-radio-group-item>
<c-label label-for="radio-compact">Compact</c-label>
</div>
</c-radio-group>
Horizontal
<c-radio-group
value="card"
orientation="horizontal"
radio-group-classes="gap-6 items-center"
>
<div class="flex items-center gap-3">
<c-radio-group-item id="radio-card" value="card"></c-radio-group-item>
<c-label label-for="radio-card">Card</c-label>
</div>
<div class="flex items-center gap-3">
<c-radio-group-item id="radio-paypal" value="paypal"></c-radio-group-item>
<c-label label-for="radio-paypal">PayPal</c-label>
</div>
<div class="flex items-center gap-3">
<c-radio-group-item id="radio-bank" value="bank"></c-radio-group-item>
<c-label label-for="radio-bank">Bank</c-label>
</div>
</c-radio-group>
Disabled
<c-radio-group value="standard" disabled>
<div class="flex items-center gap-3">
<c-radio-group-item
id="radio-disabled-standard"
value="standard"
></c-radio-group-item>
<c-label label-for="radio-disabled-standard">Standard</c-label>
</div>
<div class="flex items-center gap-3">
<c-radio-group-item
id="radio-disabled-pro"
value="pro"
disabled
></c-radio-group-item>
<c-label label-for="radio-disabled-pro">Pro</c-label>
</div>
</c-radio-group>
Sizes
<c-radio-group value="default">
<div class="flex items-center gap-3">
<c-radio-group-item
id="radio-size-sm"
value="sm"
size="sm"
></c-radio-group-item>
<c-label label-for="radio-size-sm">Small</c-label>
</div>
<div class="flex items-center gap-3">
<c-radio-group-item
id="radio-size-default"
value="default"
></c-radio-group-item>
<c-label label-for="radio-size-default">Default</c-label>
</div>
<div class="flex items-center gap-3">
<c-radio-group-item
id="radio-size-lg"
value="lg"
size="lg"
></c-radio-group-item>
<c-label label-for="radio-size-lg">Large</c-label>
</div>
</c-radio-group>
API Reference
RadioGroup
The root container that manages selection and keyboard navigation.
RadioGroupItem
The selectable radio button inside a RadioGroup.
Events
change
Fired when the selected radio group value changes.
Detail:
value(string) - The selected value
radioGroup.addEventListener('change', (event) => {
console.log('Selected:', event.detail.value);
});