# [Usage](../../../usage.md) > [Components](../basics.md) > [Form](form.md) > Checkbox

Boolean on/off field for a single consent, flag or confirmation inside a [Form](form.md) schema. Use it for true/false values such as terms acceptance; use [Select](select.md) with `radio` type when the user must pick one of several named options, and [Input](input.md) for free-form values.

![image](img/checkbox_1.png)

```php
{!! 
  \KFramework\Components\Forms\Checkbox::make()
  ->setLabel('label')
  ->setRequired()
  ->setValue(true)
!!}
```

**End-to-end example:** privacy consent flag bound to a boolean column.
```php
// Blade:
{!!
  \KFramework\Components\Forms\Checkbox::make('privacy_accepted')
    ->setLabel('I accept the privacy policy')
    ->setRequired()
    ->setType('toggle')
    ->setValue((bool) ($user->privacy_accepted ?? false))
!!}

// Controller:
use KFramework\Components\Forms\Checkbox;

$checkbox = Checkbox::make('privacy_accepted')
    ->setLabel('I accept the privacy policy')
    ->setRequired();

return view('registration.form', compact('checkbox'));
```
---
## Usage

- Blade:
```php
{!! \KFramework\Components\Forms\Checkbox::make() !!}
```
- Controller:
```php
Checkbox::make()
```

---
## Standard attributes

- `uuid`
- `id`
- `classes`
- `extraAttributes`
- `style`
- `name`
- `label`
- `value`: boolean — checked state; `true` renders the box checked.
- `type`:
  - `null` or not defined -> standard checkbox
  - `toggle` transform the checkbox into a toggle.
- `default`
- `hidden`
- `required`
- `disabled`
- `columnSpan`
- `updateOnChange` — when true, toggling the box refreshes dependent fields.

See their usage and description [here](../basics.md).

## See also
- [Components basics](../basics.md)
- [Form](form.md), [Input](input.md), [Select](select.md)
- [value](../shared_attributes/value.md), [type](../shared_attributes/type.md), [update_on_change](../shared_attributes/update_on_change.md)