Radio

v1.0.0

A single-select radio group with keyboard arrow navigation, animated selection indicator, accessible ARIA radiogroup semantics, and error state support.

Basic Radio Group

A simple uncontrolled radio group with label and description on each option. Arrow keys navigate between options.

Billing Plan

Basic features for individuals

Advanced analytics and API access

Dedicated support and SLA

Controlled Radio Group

Control the selected value externally with the <code>value</code> and <code>onValueChange</code> props.

Deployment Tier

Single instance, 1 GB RAM

Three instances, 4 GB RAM each

Unlimited instances, custom SLA

Selected: starter

Disabled State

Disable the entire group or individual radio options. Disabled radios are skipped during keyboard navigation.

Node Version

End of life — no longer supported

Active LTS with security backports

Latest with experimental features

Region

North Virginia

Ireland

Singapore

The region group is fully disabled.

Error State

Pass an <code>error</code> prop to individual Radio items to show destructive border styling with an animated error message.

Payment Method

Visa, Mastercard, Amex

Pay with your PayPal balance

BTC, ETH, USDC

Inline Horizontal Layout

Radio groups stack vertically by default, but you can use flexbox classes to lay them out horizontally.

Sort order

API Reference

Properties accepted by the RadioGroup context wrapper and individual Radio items.

Property
Type
Default
Description
value (RadioGroup)stringundefinedControlled selected value for the entire radio group.
defaultValue (RadioGroup)stringundefinedUncontrolled initial selected value on first render.
onValueChange (RadioGroup)(value: string) => voidundefinedCallback triggered when a radio option is selected.
disabled (RadioGroup)booleanfalseDisables all radio children within the group context.
label (RadioGroup)stringundefinedAccessible legend label for the radio group fieldset.
value (Radio)stringrequiredUnique value for this radio option within the group.
label (Radio)React.ReactNodeundefinedPrimary label rendered beside the radio circle.
description (Radio)React.ReactNodeundefinedSecondary text rendered below the label.
error (Radio)stringundefinedError message with destructive border and animated text.
disabled (Radio)booleanfalseDisables this specific radio option.
© 2026 Venti UI Labs. UI made right.