Checkbox
Чекбокс для множественного выбора из списка. Поддерживает три визуальных состояния — unchecked / checked / indeterminate — плюс disabled и loading.
Когда использовать
- Для множественного выбора из двух или более независимых опций.
- Для согласий («Я согласен с условиями»), чек-листов, фильтров.
- Для «выбрать всё» в группе — индикатор частичного выбора (
indeterminate).
Когда не нужен Checkbox: для взаимоисключающего выбора — используйте Radio, для on/off настроек — Switch.
Анатомия
Size
xs — для плотных таблиц и инлайновых списков, s — дефолт в формах.
Установка
pnpm add @cloud-ru/ds-toggles
import { Checkbox } from '@cloud-ru/ds-toggles'
Примеры использования
1. Базовый чекбокс
tsx
import { Checkbox } from '@cloud-ru/ds-toggles';
export function CheckboxBasic() {
return <Checkbox defaultChecked />;
}2. Indeterminate
tsx
import { Checkbox } from '@cloud-ru/ds-toggles';
export function CheckboxIndeterminate() {
return <Checkbox indeterminateDefault />;
}3. Все состояния
tsx
import { Checkbox } from '@cloud-ru/ds-toggles';
export function CheckboxStates() {
return (
<div style={{ display: 'flex', gap: 12, flexWrap: 'wrap', alignItems: 'center' }}>
<Checkbox />
<Checkbox defaultChecked />
<Checkbox disabled />
<Checkbox disabled defaultChecked />
<Checkbox loading />
</div>
);
}Props
Types
Props
CheckboxProps| Prop | Type | Default | Required | Description |
|---|---|---|---|---|
autofocus | boolean | — | no | HTML-аттрибут autofocus |
checked | boolean | — | no | HTML-аттрибут checked |
className | string | — | no | CSS-класс |
data-test-id | string | — | no | |
defaultChecked | boolean | — | no | HTML-аттрибут checked по-умолчанию |
disabled | boolean | false | no | HTML-аттрибут disabled |
id | string | — | no | HTML-аттрибут id |
indeterminate | boolean | — | no | Состояние частичного выбора |
indeterminateDefault | boolean | — | no | Состояние частичного выбора по-умолчанию |
inputRef | RefObject<HTMLInputElement> | — | no | |
loading | boolean | false | no | Состояние загрузки |
name | string | — | no | HTML-аттрибут name |
onBlur | FocusEventHandler<HTMLInputElement> | — | no | Колбек потери фокуса |
onChange | ((checked: boolean) => void) | — | no | Колбек смены значения |
onClick | MouseEventHandler<HTMLInputElement> | — | no | Колбек клика |
onFocus | FocusEventHandler<HTMLInputElement> | — | no | Колбек приобретения фокуса |
size | "s" | "xs" | s | no | Размер |
tabIndex | number | — | no | HTML-аттрибут tab-index |
value | string | — | no | HTML-аттрибут value |