A radio button is a control that enables users to choose one option from a list of mutually exclusive options.
Installation
import '@nvidia-elements/core/radio/define.js';
<nve-radio-group>
<label>label</label>
<nve-radio>
<label>radio 1</label>
<input type="radio" checked />
</nve-radio>
<nve-radio>
<label>radio 2</label>
<input type="radio" />
</nve-radio>
<nve-radio>
<label>radio 3</label>
<input type="radio" />
</nve-radio>
<nve-control-message>message</nve-control-message>
</nve-radio-group>
Layout
Controls the directional arrangement and spacing behavior of the element's content.
Layout Description vertical Arranges content in a vertical stack with block-level spacing. vertical-inline Arranges content vertically with compact inline spacing for dense layouts. horizontal Arranges content in a horizontal row with block-level spacing. horizontal-inline Arranges content horizontally with compact inline spacing.
Vertical Group
Radio groups with vertical layout including validation states for disabled, success, and error.
<div nve-layout="column gap:lg align:stretch">
<nve-radio-group>
<label>label</label>
<nve-radio>
<label>radio 1</label>
<input type="radio" checked />
</nve-radio>
<nve-radio>
<label>radio 2</label>
<input type="radio" />
</nve-radio>
<nve-radio>
<label>radio 3</label>
<input type="radio" />
</nve-radio>
<nve-control-message>message</nve-control-message>
</nve-radio-group>
<nve-radio-group>
<label>disabled</label>
<nve-radio>
<label>radio 1</label>
<input type="radio" checked disabled />
</nve-radio>
<nve-radio>
<label>radio 2</label>
<input type="radio" disabled />
</nve-radio>
<nve-radio>
<label>radio 3</label>
<input type="radio" disabled />
</nve-radio>
<nve-control-message>disabled message</nve-control-message>
</nve-radio-group>
<nve-radio-group>
<label>success</label>
<nve-radio>
<label>radio 1</label>
<input type="radio" checked />
</nve-radio>
<nve-radio>
<label>radio 2</label>
<input type="radio" />
</nve-radio>
<nve-radio>
<label>radio 3</label>
<input type="radio" />
</nve-radio>
<nve-control-message status="success">success message</nve-control-message>
</nve-radio-group>
<nve-radio-group>
<label>error</label>
<nve-radio>
<label>radio 1</label>
<input type="radio" checked />
</nve-radio>
<nve-radio>
<label>radio 2</label>
<input type="radio" />
</nve-radio>
<nve-radio>
<label>radio 3</label>
<input type="radio" />
</nve-radio>
<nve-control-message status="error">error message</nve-control-message>
</nve-radio-group>
</div>
Vertical Inline Group
Radio groups with vertical inline layout for compact vertical stacking with inline label positioning.
<div nve-layout="column gap:lg align:stretch">
<nve-radio-group layout="vertical-inline">
<label>label</label>
<nve-radio>
<label>radio 1</label>
<input type="radio" checked />
</nve-radio>
<nve-radio>
<label>radio 2</label>
<input type="radio" />
</nve-radio>
<nve-radio>
<label>radio 3</label>
<input type="radio" />
</nve-radio>
<nve-control-message>message</nve-control-message>
</nve-radio-group>
<nve-radio-group layout="vertical-inline">
<label>disabled</label>
<nve-radio>
<label>radio 1</label>
<input type="radio" checked disabled />
</nve-radio>
<nve-radio>
<label>radio 2</label>
<input type="radio" disabled />
</nve-radio>
<nve-radio>
<label>radio 3</label>
<input type="radio" disabled />
</nve-radio>
<nve-control-message>disabled message</nve-control-message>
</nve-radio-group>
<nve-radio-group layout="vertical-inline">
<label>success</label>
<nve-radio>
<label>radio 1</label>
<input type="radio" checked />
</nve-radio>
<nve-radio>
<label>radio 2</label>
<input type="radio" />
</nve-radio>
<nve-radio>
<label>radio 3</label>
<input type="radio" />
</nve-radio>
<nve-control-message status="success">success message</nve-control-message>
</nve-radio-group>
<nve-radio-group layout="vertical-inline">
<label>error</label>
<nve-radio>
<label>radio 1</label>
<input type="radio" checked />
</nve-radio>
<nve-radio>
<label>radio 2</label>
<input type="radio" />
</nve-radio>
<nve-radio>
<label>radio 3</label>
<input type="radio" />
</nve-radio>
<nve-control-message status="error">error message</nve-control-message>
</nve-radio-group>
</div>
Horizontal Group
Radio groups with horizontal layout for options arranged in a row, ideal for limited choices.
<div nve-layout="column gap:lg align:stretch">
<nve-radio-group layout="horizontal">
<label>label</label>
<nve-radio>
<label>radio 1</label>
<input type="radio" checked />
</nve-radio>
<nve-radio>
<label>radio 2</label>
<input type="radio" />
</nve-radio>
<nve-radio>
<label>radio 3</label>
<input type="radio" />
</nve-radio>
<nve-control-message>message</nve-control-message>
</nve-radio-group>
<nve-radio-group layout="horizontal">
<label>disabled</label>
<nve-radio>
<label>radio 1</label>
<input type="radio" checked disabled />
</nve-radio>
<nve-radio>
<label>radio 2</label>
<input type="radio" disabled />
</nve-radio>
<nve-radio>
<label>radio 3</label>
<input type="radio" disabled />
</nve-radio>
<nve-control-message>disabled message</nve-control-message>
</nve-radio-group>
<nve-radio-group layout="horizontal">
<label>success</label>
<nve-radio>
<label>radio 1</label>
<input type="radio" checked />
</nve-radio>
<nve-radio>
<label>radio 2</label>
<input type="radio" />
</nve-radio>
<nve-radio>
<label>radio 3</label>
<input type="radio" />
</nve-radio>
<nve-control-message status="success">success message</nve-control-message>
</nve-radio-group>
<nve-radio-group layout="horizontal">
<label>error</label>
<nve-radio>
<label>radio 1</label>
<input type="radio" checked />
</nve-radio>
<nve-radio>
<label>radio 2</label>
<input type="radio" />
</nve-radio>
<nve-radio>
<label>radio 3</label>
<input type="radio" />
</nve-radio>
<nve-control-message status="error">error message</nve-control-message>
</nve-radio-group>
</div>
Horizontal Inline Group
Radio groups with horizontal inline layout for space-efficient horizontal arrangement with inline labels.
<div nve-layout="column gap:lg align:stretch">
<nve-radio-group layout="horizontal-inline">
<label>label</label>
<nve-radio>
<label>radio 1</label>
<input type="radio" checked />
</nve-radio>
<nve-radio>
<label>radio 2</label>
<input type="radio" />
</nve-radio>
<nve-radio>
<label>radio 3</label>
<input type="radio" />
</nve-radio>
<nve-control-message>message</nve-control-message>
</nve-radio-group>
<nve-radio-group layout="horizontal-inline">
<label>disabled</label>
<nve-radio>
<label>radio 1</label>
<input type="radio" checked disabled />
</nve-radio>
<nve-radio>
<label>radio 2</label>
<input type="radio" disabled />
</nve-radio>
<nve-radio>
<label>radio 3</label>
<input type="radio" disabled />
</nve-radio>
<nve-control-message>disabled message</nve-control-message>
</nve-radio-group>
<nve-radio-group layout="horizontal-inline">
<label>success</label>
<nve-radio>
<label>radio 1</label>
<input type="radio" checked />
</nve-radio>
<nve-radio>
<label>radio 2</label>
<input type="radio" />
</nve-radio>
<nve-radio>
<label>radio 3</label>
<input type="radio" />
</nve-radio>
<nve-control-message status="success">success message</nve-control-message>
</nve-radio-group>
<nve-radio-group layout="horizontal-inline">
<label>error</label>
<nve-radio>
<label>radio 1</label>
<input type="radio" checked />
</nve-radio>
<nve-radio>
<label>radio 2</label>
<input type="radio" />
</nve-radio>
<nve-radio>
<label>radio 3</label>
<input type="radio" />
</nve-radio>
<nve-control-message status="error">error message</nve-control-message>
</nve-radio-group>
</div>
Release Status
All elements and features go through 3 phases of stability, pre-release, beta and stable.
pre-release
Docs Preview
API Documentation
Fully Themeable
beta
Robust unit test coverages
Passed API Review
Passed Designer VQA Review
Included in library package
stable
No known outstanding AA WCAG issues
No known outstanding performance issues
Adapts to different screen/container sizes
No breaking API changes for at least 90 days