Gloss UIv4.4
Architecture
Style Guide
Primitives
Input
TextNumberTextareaSelectCheckboxRadioToggle
Output7
Actions4
Forms2
Dashboard10
Composites
Compositions
Planning
Applications

Prototypes

Gloss UIv4.4
Architecture
Style Guide
Primitives
Input
TextNumberTextareaSelectCheckboxRadioToggle
Output7
Actions4
Forms2
Dashboard10
Composites
Compositions
Planning
Applications

Prototypes

Radio

Single-choice selection controls for mutually exclusive options. Users can select exactly one option from a set. Uses convex physics with the selected indicator animating in with a spring effect. Use radio buttons when only one selection is allowed.

Radio StatesInteractive
Default
Error
Disabled
Unselected
Selected

Physics: Radio buttons use convex shadows for depth. On hover, the button elevates slightly (-1px). The inner dot scales in with spring easing when selected.

Size Variants
Small (16px)
Medium (20px)
Large (24px)
Selected: md
Hover
Radio lifts -1px with elevated shadow
Select
Inner dot scales in with spring easing
Mutual Exclusion
Previous selection automatically deselects

Examples

Basic RadioGroup

Use RadioGroup with options array for simple single-choice selection.

Select a plan

With Descriptions

Add secondary text to help users understand each option.

Choose your plan

Horizontal Layout

Arrange radio buttons horizontally for compact layouts.

Select size

With Disabled Options

Disable specific options that are temporarily unavailable.

Shipping method
Express shipping is temporarily unavailable

Required Field

Mark the group as required with a visual indicator.

Preferred contact method *

Error State

Display validation errors when no option is selected.

Select an option *
Please select one of the options to continue

Success State

Confirm successful selection with a success status.

Delivery time

All Sizes Comparison

Compare all three sizes for different density requirements.

Small size
Medium size (default)
Large size

Disabled Group

Disable the entire group when the section is not applicable.

Account type (locked)

Payment Method Pattern

Common pattern for payment method selection with descriptions.

Payment method

Standalone Radio

Use individual Radio components for custom layouts.

With Helper Text

Add group-level helper text for additional context.

Email frequency
You can change this setting anytime in your account preferences

Best Practices

Do

  • Use for mutually exclusive options
  • Provide a default selection when possible
  • Keep option labels concise
  • Use descriptions for complex choices
  • Group related options together

Don't

  • Don't use for multi-select (use Checkbox instead)
  • Don't use more than 7 options (consider Select)
  • Don't leave without a default if one is required
  • Don't mix radio buttons with checkboxes in the same group

RadioGroup Props

PropTypeDefaultDescription
namestringrequiredForm field name (required for radio groups)
valueT-Controlled selected value
defaultValueT-Initial selected value (uncontrolled)
onChange(value: T) => void-Callback when selection changes
optionsRadioGroupOption[]-Array of options with value, label, description
orientation'horizontal' | 'vertical''vertical'Layout direction
size'sm' | 'md' | 'lg''md'Radio button size
labelstring-Group label
helperTextstring-Helper text below group
status'default' | 'success' | 'error''default'Validation status
requiredbooleanfalseMark as required
disabledbooleanfalseDisable entire group

Accessibility

  • Keyboard: Arrow keys to navigate between options, Space/Enter to select
  • ARIA: Uses role="radiogroup" with aria-required
  • Focus: Tab moves to group, arrows move within group
  • Grouping: Always use RadioGroup for proper accessibility
  • Name: All radios in a group must share the same name attribute