Checkbox
Checkbox — составной компонент выбора «да / нет» на Ark Checkbox.
Checkbox.Root рендерит <label> и задаёт цвет, размер и скругление, части внутри него свободно комбинируются: Checkbox.Control — квадрат с галочкой, Checkbox.Label — текст. Клик по любой части переключает состояние, скрытый инпут формы Root добавляет сам.
Состояние ведётся контролируемо (пара checked / onCheckedChange) или неконтролируемо (defaultChecked). Для мультивыбора чекбоксы оборачивают в Checkbox.Group — она держит value (string[]) и onValueChange, а вложенным Checkbox.Root достаточно передать свой value.
Используется в: Cell
Анатомия
Примеры
Группа (мультивыбор)
Checkbox.Group держит массив выбранных значений и раздаёт состояние вложенным Checkbox.Root по их value — каждому чекбоксу нужен только value и лейбл, onCheckedChange на них не нужен.
Вариант
Смысловой вариант — задаёт цвет отмеченного чекбокса: primary — акцент (по умолчанию), secondary — второстепенный, success / warning / danger — семантические статусы, default — нейтральный.
Внешний вид
Внешний вид отмеченного состояния: solid — сплошная заливка, outline — обводка и галочка цветом варианта без заливки, dashed — та же обводка пунктиром, ghost — приглушённая подложка. Неотмеченный квадрат при любом appearance выглядит одинаково — нейтральная рамка, иначе чекбокс терял бы очертания.
Размер
Размер задаётся на Checkbox.Root и управляет и квадратом, и шрифтом Checkbox.Label; галочка масштабируется вместе с квадратом. xs — для плотных списков и таблиц, sm — базовый, md и крупнее — для акцентных переключателей.
Скругление
Скругление углов квадрата — от прямых none до circle (круглый чекбокс, визуально близкий к радио).
Отключённый
disabled отключает чекбокс: он тускнеет (opacity 0.5) и не реагирует на клики, значение при этом сохраняется. readOnly — состояние видно, но переключить нельзя.
API
| Prop | Type | Default |
|---|---|---|
childrenЧасти чекбокса: Checkbox.Control и Checkbox.Label.
Root рендерит | ArkCheckboxRootProps["children"] | - |
variantСмысловой вариант — задаёт цвет отмеченного чекбокса | Variant | "primary" |
appearanceВнешний вид отмеченного состояния: сплошная заливка, обводка (сплошная или пунктирная) или приглушённая подложка. Неотмеченный чекбокс всегда нейтральный | Appearance | "solid" |
sizeРазмер чекбокса: квадрат-контрол и шрифт лейбла | Size | sm |
radiusСкругление углов квадрата: circle — круглый чекбокс | Radius | sm |
checkedКонтролируемое состояние. Пара с onCheckedChange. | ArkCheckboxRootProps["checked"] | - |
defaultCheckedНачальное состояние для неконтролируемого чекбокса — когда вести состояние вручную не нужно. | ArkCheckboxRootProps["defaultChecked"] | - |
onCheckedChangeКолбэк смены состояния: получает { checked }, где checked — true | false | "indeterminate". | ArkCheckboxRootProps["onCheckedChange"] | - |
disabledОтключает чекбокс: он тускнеет и не реагирует на клики. | ArkCheckboxRootProps["disabled"] | - |
readOnlyТолько для чтения: состояние видно, но переключить нельзя. | ArkCheckboxRootProps["readOnly"] | - |
requiredОбязательное поле формы. | ArkCheckboxRootProps["required"] | - |
valueЗначение чекбокса при отправке формы и для привязки к Checkbox.Group. | ArkCheckboxRootProps["value"] | "on" |
Наследуется от ComponentProps<typeof ArkCheckbox.Root>
Checkbox.Control
Квадрат-контрол с галочкой; размер, скругление и цвет отмеченного состояния берёт с Checkbox.Root.
Компонент не принимает пропсов.
Checkbox.Label
Текст рядом с квадратом — шрифт задаёт размер с Checkbox.Root.
| Prop | Type | Default |
|---|---|---|
children*Текст лейбла — шрифт задаёт размер с Checkbox.Root | ReactNode | - |
Checkbox.Group
Группа чекбоксов для мультивыбора: держит value (string[]) и onValueChange, вложенные Checkbox.Root биндятся к ней по своему value.
| Prop | Type | Default |
|---|---|---|
childrenВложенные Checkbox.Root — биндятся к группе по своему value. | ArkCheckboxGroupProps["children"] | - |
valueКонтролируемый список выбранных значений. Пара с onValueChange. | ArkCheckboxGroupProps["value"] | - |
defaultValueНачальный список выбранных значений для неконтролируемой группы. | ArkCheckboxGroupProps["defaultValue"] | - |
onValueChangeКолбэк смены выбора: получает массив значений отмеченных чекбоксов. | ArkCheckboxGroupProps["onValueChange"] | - |
disabledОтключает всю группу разом. | ArkCheckboxGroupProps["disabled"] | - |
Наследуется от ComponentProps<typeof ArkCheckbox.Group>