Files
directus/docs/reference/app/components/v-checkbox.md
Nicola Krumschmidt 1961dc188b Port the app to Vue 3 (#5339)
* Fix linting errors

* Fix remaining catch all routes

* Fix directive registration regression

* Replace $router global with composition function

* Fix v-bind overwrite order in nested-draggable

* Migrate vuedraggable

* Fix building with empty translation files

* Add comment regarding array equality check

* Fix markdown-it plugins import

* Fix newly introduced wrong store usage

* Fix v-button-group model

* Fix v-fancy-select model

* Fix v-field-template model

* Fix v-input model

* Fix v-item-group model

* Fix v-menu model

* Fix v-select model

* Fix v-tabs model

* Fix v-tabs-items model

* Fix v-textarea model

* Fix v-checkbox model

* Fix v-dialog model

* Fix v-drawer model

* Fix v-form model

* Fix v-list model

* Fix v-table model

* Fix v-detail model

* Fix v-radio model

* Fix v-switch model

* Fix files-navigation model

* Fix replace-file model

* Fix bookmark-add model

* Fix bookmark-edit model

* Fix drawer-batch model

* Fix drawer-item model

* Fix file-lightbox model

* Fix image-editor model

* Fix notifications-preview model

* Fix users-invite model

* Lowercase editor component name

* Fix collections-filter model

* Fix filter-input model

* Fix filter-sidebar-detail model

* Fix folder-picker model

* Fix interface-checkboxes model

* Fix interface-code model

* Fix interface-icon model

* Fix interface-repeater model

* Fix refresh-sidebar-detail model

* Fix search-input model

* Fix interface/display component option v-model usage

* Replace calling listener through $attrs with $emit and add emits option

* Add comment regarding useCustomSelection emits

* Fix context menu activation

* Fix collectionsStore access

* Fix popperjs

* Hotfix useGroupable

* Fix notifications-preview old prop name

* Fix module bar tooltip translation

* Fix useSync type signature

* Fix update:layoutOptions emit name

* Fix usePermissions missing imports regression

* Revert changes to docs vuepress instance

* Fix module-relative-resolve vite plugin when serving

* Fix docs

* Fix refresh on first load

* Fix creating new collection

* Fix loading of collection route

* Fix v-dialog/v-menu appear transition

* Access props directly

* Fix v-table clickable

* Fix v-drawer cancelable

* Fix v-icon clickable

* Fix v-input clickable

* Fix v-list-group clickable

* Fix v-list-item clickable

* Fix v-overlay clickable

* Fix header-bar primary button

* Fix v-table item.* slot

* Fix vue warning regarding exposed variables starting with _ or $

* Fix usePermissions

* Add package-lock.json

* Fix v-form unset regression

* Fix vue shims

* Fix useCustomSelection emit

* Make extensions arrays shallow

* Move teleport targets out of the vue app

* Fix v-field-select model

* Fix v-slider model

* Fix v-pagination model

* Fix card model

* Fix v-select item-value prop usage

* Fix layout-sidebar-detail model

* Fix form-field model

* Fix form-field-menu model

* Fix form-field-interface model

* Fix v-form model

* Use kebab-case for modelValue

* Update package-lock.json

* Add missing dependency

* Replace $t with i18n composable

* Replace remaining usages of $t

* Replace $te with i18n composable

* Replace $n with i18n composable

* Disable global injection in vue-i18n

* Replace i18n.global.t usage where composable is already imported

* Replace remaining i18n.global.t usage with composable

* Replace remaining i18n.global usages with composable

* Fix uploadFile emitter regression

* Remove inheritAttrs: false from file-info-sidebar-detail

* Hotfix v-input

* Update .eslintrc.js

* Fix use-preview

* Fix eslint issues

* Remove unused imports

* Fix extension getter type

* Refactor layout structure and fix tabular layout

* Fix build

* Fix cards layout

* Hotfix vuedraggable

* Dev is true again

* Register export-sidebar-detail globally

* Deconstruct layout state

* Fix calendar layout

* Fix cards/calendar layouts

* Fix layout options when switching layout

* Replace marked usage with md util

* Use useLayout everywhere

* Fix type issue

* Fix codemirror dynamic imports

* Fix data-fns dynamic import

* Fix useLayout selection

* Fix v-avatar scoped styling

* Remove unused v-button-group component

* Remove v-deep from v-card-actions

* Replace v-deep in v-dialog

* Use correct pseudoclasses for vue3

* Fix v-deep in v-field-template

* Replace v-deep in v-list-item-content

* Replace v-deep in v-list-item

* v-deep in v-list

* v-deep in v-notice

* Replace breakpoint mixin

* Replace v-deep in v-button

* Enforce empty line before block

* v-deep in v-pagination

* No white lines on the inner brackets of a block please

* Replace v-deep in v-select

* Fix stylelint rule

* Replace v-deep in v-table

* Replace v-deep in v-tabs

* Replace v-deep in rich text input

* Replace v-deep

* Replace v-deep elsewhere

* Needs more stylelint tweaks, but v-deep is done

* Fix translations interface

* Fix date layout

* Fix npm install

* Fix router catch all routes

* Fix layout options

* Remove call to next in router guards

* Remove vue router in-component guards

* Refactor module route registration

* Fix collections module navigation

* Fix settings module navigation

* Fix router-passthrough in devtools

* Refactor docs export and docs route registration

* Import docs routes using exported function

* Remove moduleRelativeResolve vite hack

* Re-add dev scripts

* Fix deprecated hljs usage

* Use activateContextMenu without parens

* Re-add readme/license/editorconfig

* Fix groupable

* Fix initial docs navigation

* Move global app css to app component

* Fix collection navigation icon color

* Fix field setup style

* Fix divider icon style

* Fix optional v-input slots

* Use $slots direct property access

* Fix docs font style

* Fix docs v-deep

* Fix docs add missing styles

* Remove docs style margin

* Fix save options color

* Fix nested v-slotted usage

* Fix v-button exact prop

* Fix v-list-item exact prop

* Fix package-lock.json

* Improve useSync type

* Fix route type error

* Fix bookmark router links

* Add redirect to route with bookmark

* Fix files module folder route

* Fix users module role route

* Add redirect routes to files and roles sub-routes

* Fix users module role active state

* Replace routerPassthrough function with object

* Nest file routes

* Improve module bar hidden check

* Remove slash from module router link

* Fix files and folder navigation

* Revert users route nesting

* Fix buttons in list

* Don't make nav item mandatory in left sidebar

* Fix infinite loop in box open

* Fix interactivity in v-list items

* Fix docs menu jumps

* Fix right click positioning

* Fix missing translations

* Fix close/open alignment of color interface

* Fix code editor interfaces

* Fix relation access in cards layout

* Remove template ref from collection-or-item

* Revert jest-environment-jsdom package update

* Fix package-lock.json

* Resolve vue3 TODO comments

* Fix layout presets

* Remove reactivity fix

* Remove Todo3 comment

* Fix icon color override

* Add error message to useLayoutState

* Add composable to properly transition dialog routes

* Fix new collection transition

* Fix add new role transition

* Fix add new file transition

* Fix activity item transition

* Fix error type in useItems

* Fix collection error dialog transition

* Fix field detail transition

* Fix permissions detail transition

* Fix store getters types

* Update package-lock

* Fix preview icon color

* Fix reference to selections

* Fix linter warnings

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-06-08 15:59:55 -04:00

125 lines
4.3 KiB
Markdown

# Checkbox
Display a single checkbox on which you can model a boolean.
```html
<v-checkbox v-model="checked" label="Receive newsletter" />
```
## Colors
The colors can be changed via the css variables `--v-checkbox-color`.
```html
<v-checkbox class="example-1" />
<v-checkbox class="example-2" />
<v-checkbox class="example-3" />
<v-checkbox class="example-4" />
<style>
.example-1 {
--v-checkbox-color: #abcabc;
}
.example-2 {
--v-checkbox-color: rgba(125, 125, 198, 0.5);
}
.example-3 {
--v-checkbox-color: var(--red);
}
.example-4 {
--v-checkbox-color: var(--border-normal);
}
</style>
```
## Boolean vs arrays
Just as with checkboxes, you can use `v-model` with both an array and a boolean:
```html
<template>
<v-checkbox v-model="withBoolean" />
<v-checkbox v-model="withArray" value="red" />
<v-checkbox v-model="withArray" value="blue" />
<v-checkbox v-model="withArray" value="green" />
</template>
<script>
export default {
data() {
return {
withBoolean: false,
withArray: ['red', 'green'],
};
},
};
</script>
```
Keep in mind to pass the `value` prop with a unique value when using arrays in `v-model`.
## Indeterminate
The indeterminate state can be set with the `indeterminate` prop. We recommend using the `v-model` directive with the
indeterminate prop, so the checkbox can set change it too:
```html
<v-checkbox v-model:indeterminate="indeterminate">
<script>
export default {
data() {
indeterminate: true;
},
};
</script>
</v-checkbox>
```
If you can't, you should listen to the `update:indeterminate` event and respond to that:
```html
<v-checkbox indeterminate @update:indeterminate="setIndeterminate"></v-checkbox>
```
## Reference
#### Props
| Prop | Description | Default | Type |
| -------------------- | ------------------------------------------------------------------------ | --------------------------- | ------------------ |
| `value` | Value for checkbox. Similar to value attr on checkbox type input in HTML | `null` | `String` |
| `input-value` | Value that's used with `v-model`. Either boolean or array of values | `false` | `[Boolean, Array]` |
| `label` | Label for the checkbox | `null` | `String` |
| `disabled` | Disable the checkbox | `false` | `Boolean` |
| `indeterminate` | Show the indeterminate state | `false` | `Boolean` |
| `icon-on` | What icon to use for the on state | `'check_box'` | `String` |
| `icon-off` | What icon to use for the off state | `'check_box_outline_blank'` | `String` |
| `icon-indeterminate` | What icon to use for the indeterminate state | `'indeterminate_check_box'` | `String` |
| `block` | Show as styled block. Matches input size | `false` | `Boolean` |
| `custom-value` | | `false` | `Boolean` |
#### Slots
| Slot | Description | Data |
| --------- | ---------------------------------- | ---- |
| `prepend` | Rendered right before the checkbox | |
| `append` | Rendered right after the label | |
| _default_ | | |
#### Events
| Event | Description | Value |
| ---------------------- | -------------------------- | -------------------------- |
| `change` | New state for the checkbox | Boolean or array of values |
| `update:indeterminate` | New state for the checkbox | Boolean or array of values |
#### CSS Variables
| Variable | Default |
| -------------------- | ---------------- |
| `--v-checkbox-color` | `var(--primary)` |