Launch prototype

Components

Radio buttons

Single-choice selection within a group, built on React Aria. Supports an optional hint per option, horizontal/vertical orientation, and two sizes - driven from config/design-system.config.ts.

Component Playground

Live instance - the controls read their options from the same config that drives the Variants section below.

sm ยท vertical

Controls

Size

Orientation

Hint

Sizes

Two sizes - sm (default) and md.

Small / Medium

sm
md

With hint text

Pass a hint to a RadioButton for supporting detail beneath its label.

Labelled with hint

Disabled

Disabled dims every option in the group and prevents interaction. Pass isDisabled on a single RadioButton to disable just that option instead.

Group disabled

Orientation

Groups stack vertically by default - pass orientation="horizontal" to lay options out in a row.

Vertical / horizontal

Group

A real-world plan selector - the common pattern for pricing and settings pages.

Plan selector

API

RadioGroup holds the selected value and orientation; each RadioButton inside it is one option.

RadioGroup

PropTypeDefault
size"sm" | "md""sm"
valuestring-
defaultValuestring-
onChange(value: string) => void-
orientation"horizontal" | "vertical""vertical"
isDisabledbooleanfalse
isRequiredbooleanfalse
namestring-
classNamestring-
childrenReactNode-

RadioButton

PropTypeDefault
valuestring-
size"sm" | "md"inherited from RadioGroup
labelReactNode-
hintReactNode-
isDisabledbooleanfalse
classNamestring-

Usage

import { RadioButton, RadioGroup } from "@/components/base/radio-buttons/radio-buttons";

<RadioGroup defaultValue="growth" aria-label="Plan">
  <RadioButton value="starter" label="Starter" />
  <RadioButton value="growth" label="Growth" />
  <RadioButton value="scale" label="Scale" />
</RadioGroup>

Figma

No linked Figma file yet - this component was pulled in via the Untitled UI CLI, not designed in Figma first.