Skip to content

Radio Group

Basic Usage

Notifications
How do you prefer to receive notifications?

Sizes

Small Radio Group
Medium Radio Group
Large Radio Group

Orientation

Vertical Layout
Horizontal Layout

States

Required Selection *
You must choose one option to continue
Disabled Radio Group
This entire group cannot be interacted with
Mixed States

You can select this

This option is not available

Also selectable

Form Integration

Account Settings
Configure your account preferences
Account Type
Choose your account level

For individual use

For teams and organizations

Advanced features and support

Billing Frequency

$29/month - Pay as you go

$290/year - Save 20%

Data Privacy
Choose your privacy settings carefully
Data Sharing Level

Only essential data is shared

Anonymized analytics and usage data

All data for personalization

Properties

RadioGroup

PropertyTypeDefaultDescription
namestring-Required. Name attribute for all radio inputs in the group
valuestring-Currently selected value
disabledbooleanfalseWhether the entire radio group is disabled
requiredbooleanfalseWhether a selection is required
size'small' | 'medium' | 'large''medium'Size variant affecting all radio items
legendstring-Legend text for the radio group
descriptionstring-Description text below the legend
orientation'vertical' | 'horizontal''vertical'Layout direction of radio items
classstring-Additional CSS classes to apply

RadioItem

PropertyTypeDefaultDescription
valuestring-Required. Value for this radio option
checkedbooleanfalseWhether this radio is selected
disabledbooleanfalseWhether this specific radio is disabled
requiredbooleanfalseWhether this radio is required (inherited from group)
labelstring-Label text for the radio option
descriptionstring-Description text below the label
namestring-Name attribute (should match RadioGroup)
idstringauto-generatedUnique identifier for the radio
classstring-Additional CSS classes to apply

Accessibility

The RadioGroup component follows WCAG 2.1 AA guidelines:

Screen Reader Support

  • Semantic HTML: Uses <fieldset> and <legend> for proper grouping
  • Radio Group Role: ARIA radiogroup role for assistive technology
  • Label Association: Proper for attribute linking labels to inputs
  • Description Support: Uses aria-describedby for additional context
  • State Announcement: Screen readers announce selection changes

Keyboard Navigation

  • Arrow Keys: Navigate between radio options (Up/Down, Left/Right)
  • Tab Navigation: Focus enters and exits the radio group
  • Space/Enter: Select the focused radio option
  • Focus Management: Only one radio in the group is focusable at a time

Visual Accessibility

  • High Contrast: Meets WCAG contrast requirements in all variants
  • Focus Indicators: Clear visual focus rings for keyboard users
  • Touch Targets: Minimum 44x44px touch target size (large variant)
  • Color Independence: Selection state indicated by visual dot, not just color

Group Management

  • Single Selection: Enforces only one selection per group
  • Required Groups: Proper validation and error communication
  • Disabled States: Individual items or entire groups can be disabled

Examples

Plan Selection

Choose Your Plan
Select the subscription that works best for you

$9/month - Perfect for individuals

$29/month - Best for small teams

$99/month - Advanced features

Payment Method

Payment Method

Survey Question

How satisfied are you with our service? *

Confirmation Dialog

Are you sure you want to delete this item? *

This action cannot be undone

Cancel the deletion

<!-- Basic Usage -->
<RadioGroup name="options" legend="Choose an option">
<RadioItem value="option1" label="First Option" />
<RadioItem value="option2" label="Second Option" />
</RadioGroup>
<!-- With Descriptions -->
<RadioGroup name="plan" legend="Select Plan" description="Choose your subscription">
<RadioItem
value="basic"
label="Basic Plan"
description="$9/month - For individuals"
/>
<RadioItem
value="pro"
checked
label="Pro Plan"
description="$29/month - For teams"
/>
</RadioGroup>
<!-- Different Intent and Size -->
<RadioGroup
name="theme"
intent="primary"
size="large"
legend="Theme Preference"
orientation="horizontal"
>
<RadioItem value="light" label="Light" />
<RadioItem value="dark" checked label="Dark" />
<RadioItem value="auto" label="Auto" />
</RadioGroup>
<!-- Required with Validation -->
<RadioGroup
name="terms"
intent="danger"
required
legend="Terms Agreement"
>
<RadioItem
value="accept"
label="I accept the terms"
description="Required to continue"
/>
<RadioItem
value="decline"
label="I decline the terms"
/>
</RadioGroup>