Checkbox
Компонент, который позволяет пользователю выбрать один или несколько вариантов из списка опций. Компонент представляет собой квадратный переключатель, который может быть в трёх состояниях: выбрано, не выбрано и не определено.
Применение компонента
- если вы используете компонент
Checkboxдля глобального управления состоянием другой группы компонентовCheckbox, используйте свойствоindeterminateдля индикации разного состояния дочерних переключателей; - если вам необходим компонент, который предоставляет выбор более чем из двух взаимоисключающих значений,
используйте группу компонентов
Radio.
Режим работы
Компонент поддерживает работу как в неконтролируемом режиме, так и контролируемом. Это стандартное поведение React-компонентов, прочитать про это можно в документации React ↗.
Для использования неконтролируемого режима достаточно просто не передавать checked или передавать defaultChecked, если
требуется задать значение по умолчанию.
Для контролируемого режима используйте связку свойств checked/onChange для задания значения и его изменения.
Есть возможность также влиять на значение “не определено”. В неконтролируемом режиме передавайте свойство defaultIndeterminate,
в контролируемом используйте свойство indeterminate. Получить значение “не определено” в onChange нельзя.
// Неконтролируемое состояние, по умолчанию в состоянии "выбран"
<Checkbox defaultChecked />
// Неконтролируемое состояние, по умолчанию в состоянии "не определено"
<Checkbox defaultIndeterminate />
// Контролируемое состояние, значение "не выбран"
const [checked, setChecked] = React.useState(false);
<Checkbox checked={checked} onChange={(event) => setChecked(event.target.checked)} />;Состояния
disabled
Свойство disabled блокирует взаимодействие с компонентом и добавляет визуальную индикацию недоступности.
Визуальное оформление
По умолчанию компонент использует для визуализации два набора (для "regular" и "compact" режима) стандартных иконок,
включающих три состояния. С помощью представленных ниже свойств вы можете определить собственные наборы иконок:
IconIndeterminate- иконка для неопределенного состояния;IconOffCompact- иконка для не выбранного состояния в режиме"compact"(планшеты, десктоп);IconOffRegular- иконка для не выбранного состояния в режиме"regular"(мобильные устройства);IconOnCompact- иконка для выбранного состояния в режиме"compact"(планшеты, десктоп);IconOnRegular- иконка для выбранного состояния в режиме"regular"(мобильные устройства).
Рекомендуется использовать иконки размером 24px для режима "regular" и 20px для режима "compact".
Доступность (a11y)
Компонент Checkbox обеспечивает базовую доступность, используя нативные HTML-элементы input[type="checkbox"] и label.
Для улучшения доступности рекомендуется предавать в компонент атрибуты aria-labelledby, aria-label и aria-describedby
для предоставления дополнительной информации об элементе.
Свойства и методы
Checkbox
| Свойство | Описание |
|---|---|
activeMode | StateModeLiteralСтиль подсветки active-состояния. Если передать произвольную строку, она добавится как css-класс во время active. По умолчанию: - |
defaultIndeterminate | booleanНеопределенное состояние чекбокса по умолчанию. По умолчанию: - |
description | ReactNodeПодпись под основным текстом. По умолчанию: - |
focusVisibleMode | FocusVisibleModeСтиль аутлайна focus visible. Если передать произвольную строку, она добавится как css-класс при :focus-visible По умолчанию: - |
getRef | Ref<HTMLInputElement>Deprecated: Since 7.9.0. Вместо этого используйте По умолчанию: - |
getRootRef | Ref<HTMLLabelElement>По умолчанию: - |
hasActive | booleanУказывает, должен ли компонент реагировать на По умолчанию: - |
hasHover | booleanУказывает, должен ли компонент реагировать на По умолчанию: - |
hoverMode | StateModeLiteralСтиль подсветки hover-состояния. Если передать произвольную строку, она добавится как css-класс во время hover. По умолчанию: - |
IconIndeterminate | CheckboxInputIconTypeИконка для неопределенного состояния. По умолчанию: - |
IconOffCompact | CheckboxInputIconTypeИконка для выключенного состояния в компактном режиме. По умолчанию: - |
IconOffRegular | CheckboxInputIconTypeИконка для выключенного состояния в обычном режиме. По умолчанию: - |
IconOnCompact | CheckboxInputIconTypeИконка для включенного состояния в компактном режиме. По умолчанию: - |
IconOnRegular | CheckboxInputIconTypeИконка для включенного состояния в обычном режиме. По умолчанию: - |
indeterminate | booleanНеопределенное состояние чекбокса. По умолчанию: - |
noPadding | booleanОтключает отступы у чекбокса. При использовании этого свойства, значение по умолчанию для свойств По умолчанию: - |
slotProps | { root?: (Omit<LabelHTMLAttributes<HTMLLabelElement>, "children"> & HasRootRef<HTMLLabelElement> & HasDataAttribute); input?: (ClassAttributes<...> & ... 2 more ... & HasDataAttribute) | undefined; } | undefinedСвойства, которые можно прокинуть внутрь компонента:
По умолчанию: - |
titleAfter | ReactNodeКонтент, идущий за основным текстом. По умолчанию: - |
Checkbox.Input
| Свойство | Описание |
|---|---|
defaultIndeterminate | booleanНеопределенное состояние чекбокса по умолчанию. По умолчанию: - |
getRef | Ref<HTMLInputElement>Deprecated: Since 7.9.0. Вместо этого используйте По умолчанию: - |
getRootRef | Ref<HTMLDivElement>По умолчанию: - |
IconIndeterminate | CheckboxInputIconTypeИконка для неопределенного состояния. По умолчанию: - |
IconOffCompact | CheckboxInputIconTypeИконка для выключенного состояния в компактном режиме. По умолчанию: - |
IconOffRegular | CheckboxInputIconTypeИконка для выключенного состояния в обычном режиме. По умолчанию: - |
IconOnCompact | CheckboxInputIconTypeИконка для включенного состояния в компактном режиме. По умолчанию: - |
IconOnRegular | CheckboxInputIconTypeИконка для включенного состояния в обычном режиме. По умолчанию: - |
indeterminate | booleanНеопределенное состояние чекбокса. По умолчанию: - |
slotProps | { root?: (Omit<HTMLAttributes<HTMLDivElement>, "children"> & HasRootRef<HTMLDivElement> & HasDataAttribute); input?: (ClassAttributes<...> & ... 2 more ... & HasDataAttribute) | undefined; } | undefinedСвойства, которые можно прокинуть внутрь компонента:
По умолчанию: - |