Documentation

Radio group

One choice among a few options, all visible: dots with their words, or whole cards.

WebBetaForms

Web only — React, from @krizaka/ui/radio-group. Beta: its API may still change in a minor version.

When to use

  • In a form, to choose exactly one of two to five options that should all be seen: a frequency, a quality.
  • RadioGroup.Card when each option needs more than a line: an amount, a plan, a payment method.

When not to use

  • For many options (a country).Use instead: Field
  • For independent options that can all be chosen.Use instead: Checkbox
  • To filter a list at once, without a form.Use instead: Chip
  • To switch between views.Use instead: Tabs

Installation

Install

npm install @krizaka/ui@beta @krizaka/tailwind@beta @krizaka/tokens@beta tailwindcss

Styles

@import "tailwindcss";
@import "@krizaka/tailwind";
@import "@krizaka/ui/tailwind.css";

Import

import { RadioGroup } from "@krizaka/ui/radio-group";

Examples

Items

Dots and their words, one disabled.

Cards

Whole cards: the chosen one carries the accent.

Horizontal

orientation="horizontal": the items in a row.

Props

RadioGroupRoot

value/defaultValue + onValueChange, orientation, required, name for a form.

PropTypeDefaultDescription
invalidboolean—Marks every radio invalid: aria-invalid (pair it with a Field.Error).
labelstring—The group's accessible name — passed translated (or aria-labelledby a visible heading).

RadioGroupItem

A radio: a dot, and its words when given.

PropTypeDefaultDescription
childrenReactNode—The words next to the dot, clickable. Otherwise name it with Field.Label htmlFor or aria-label.

Accessibility

  • Radix RadioGroup: role="radiogroup" named by label, role="radio" with aria-checked on each option.
  • Disabled options are skipped by the arrows.

Keyboard

KeysAction
TabMoves into the group (one tab stop, on the chosen option) and out of it.
Arrow keysMove to the next or previous option and choose it.

Best practices

  • Give the group a label: the question being answered.
  • Pre-select the safest or most common option with defaultValue when there is one.
  • Keep the labels parallel and short.

Generated from the code of @krizaka/ui 2.0.0-beta.6: its meta.ts, its examples and its types.Edit this documentation on GitHub

On this page