@gravity-ui/uikit
Version:
Gravity UI base styling and components
77 lines (62 loc) • 5.13 kB
Markdown
# Checkbox
The `Checkbox` component allows the user to select or deselect a specific value.
```tsx
import {Checkbox} from '@gravity-ui/uikit';
```
## States
A `Checkbox` can have different states:
- Checked: The checkbox is ticked.
- Disabled: The checkbox is unavailable.
- Indeterminate: The checkbox is in an intermediate state between being ticked and unticked.
```tsx
<Checkbox size="l" checked={false}>Unchecked</Checkbox>
<Checkbox size="l" checked>Checked</Checkbox>
<Checkbox size="l" disabled>Disabled</Checkbox>
<Checkbox size="l" indeterminate>Indeterminate</Checkbox>
```
## Size
Use the `size` property to manage the `Checkbox` size. The default size is `m`.
```tsx
<Checkbox size="m">M Size</Checkbox>
<Checkbox size="l">L Size</Checkbox>
<Checkbox size="xl">XL Size</Checkbox>
```
## Label
You can assign a label to a `Checkbox` using the `content` property or provide it as a child property.
```tsx
<div>
<Checkbox content="Content" size="l" />
<div
style={{
marginTop: 10,
}}
>
<Checkbox size="l">
<span>Content as children</span>
</Checkbox>
</div>
</div>
```
## Properties
| Name | Description | Type | Default |
| :------------- | :---------------------------------------------------------------------------------------------------- | :-------------------------------------------: | :-----: |
| children | Checkbox content (usually, a label). | `ReactNode` | |
| content | Checkbox content (alternative to children). | `ReactNode` | |
| disabled | Toggles the `disabled` state of the checkbox. | `boolean` | `false` |
| checked | Toggles the `checked` state of the checkbox. | `boolean` | `false` |
| defaultChecked | Sets the initial checked state when the component is mounted. | `boolean` | `false` |
| onUpdate | Fires when the user changes the checkbox state and provides the checked value as a callback argument. | `(checked: boolean) => void` | |
| onChange | Fires when the user changes the checkbox state and provides the change event as a callback argument. | `Function` | |
| onFocus | Event handler to use when the checkbox input element receives focus. | `Function` | |
| onBlur | Event handler to use when the checkbox input element loses focus. | `Function` | |
| size | Determines the checkbox size. | `m` `l` | `m` |
| id | `id` HTML attribute | `string` | |
| qa | `data-qa` HTML attribute, used for testing | `string` | |
| style | `style` HTML attribute | `React.CSSProperties` | |
| className | `class` HTML attribute | `string` | |
| title | `title` HTML attribute | `string` | |
| name | `name` HTML attribute for the input element. | `string` | |
| value | `value` HTML attribute for the input element. | `string` | |
| indeterminate | Toggles the `indeterminate` state of the checkbox. | `boolean` | `false` |
| controlProps | Additional propeties for the underlying input element. | `React.InputHTMLAttributes<HTMLInputElement>` | |
| controlRef | Ref to the underlying input element. | `React.Ref<HTMLInputElement>` | |