Radio

Радиокнопка для взаимоисключающего выбора из группы опций. Группировка — через общий name или через компонент ToggleGroup с selectionMode='single'.

Когда использовать

  • Для выбора одной опции из 2–5 взаимоисключающих вариантов.
  • Когда все варианты должны быть видны одновременно (иначе используйте Select).

Когда не нужен Radio: для множественного выбора — Checkbox, для on/off — Switch.

Анатомия

Size

xs — для плотных списков опций, s — дефолт в формах.

Установка

pnpm add @cloud-ru/ds-toggles
import { Radio } from '@cloud-ru/ds-toggles'

Примеры использования

1. Базовый Radio

1. Базовый Radio
tsx
import { Radio } from '@cloud-ru/ds-toggles';

export function RadioBasic() {
  return <Radio defaultChecked />;
}

2. Группа радиокнопок

2. Группа радиокнопокОбщий name объединяет Radio в группу; выбор переключается автоматически
tsx
import { Radio } from '@cloud-ru/ds-toggles';

export function RadioGroup() {
  return (
    <div style={{ display: 'flex', gap: 12, flexWrap: 'wrap', alignItems: 'center' }}>
      <label htmlFor='delivery-courier'>
        <Radio id='delivery-courier' name='delivery' value='courier' defaultChecked /> Курьер
      </label>
      <label htmlFor='delivery-pickup'>
        <Radio id='delivery-pickup' name='delivery' value='pickup' /> Самовывоз
      </label>
      <label htmlFor='delivery-post'>
        <Radio id='delivery-post' name='delivery' value='post' /> Почта
      </label>
    </div>
  );
}

3. Все состояния

3. Все состояния
tsx
import { Radio } from '@cloud-ru/ds-toggles';

export function RadioStates() {
  return (
    <div style={{ display: 'flex', gap: 12, flexWrap: 'wrap', alignItems: 'center' }}>
      <Radio />
      <Radio defaultChecked />
      <Radio disabled />
      <Radio disabled defaultChecked />
      <Radio loading />
    </div>
  );
}

Props

Types

PropsRadioProps
PropTypeDefaultRequiredDescription
autofocusboolean—noHTML-аттрибут autofocus
checkedboolean—noHTML-аттрибут checked
classNamestring—noCSS-класс
data-test-idstring—no
defaultCheckedboolean—noHTML-аттрибут checked по-умолчанию
disabledbooleanfalsenoHTML-аттрибут disabled
idstring—noHTML-аттрибут id
inputRefRefObject<HTMLInputElement>—no
loadingbooleanfalsenoСостояние загрузки
namestring—noHTML-аттрибут name
onBlurFocusEventHandler<HTMLInputElement>—noКолбек потери фокуса
onChange((checked: boolean) => void)—noКолбек смены значения
onClickMouseEventHandler<HTMLInputElement>—noКолбек клика
onFocusFocusEventHandler<HTMLInputElement>—noКолбек приобретения фокуса
size"s" | "xs"snoРазмер
tabIndexnumber—noHTML-аттрибут tab-index
valuestring—noHTML-аттрибут value

Unions

Types

RadioProps

Unions

Storybook

Figma