# ion-checkbox Checkboxes allow the selection of multiple options from a set of options. They appear as checked (ticked) when activated. Clicking on a checkbox will toggle the `checked` property. They can also be checked programmatically by setting the `checked` property. ## Interfaces ### CheckboxChangeEventDetail ```typescript interface CheckboxChangeEventDetail { value: T; checked: boolean; } ``` ### CheckboxCustomEvent While not required, this interface can be used in place of the `CustomEvent` interface for stronger typing with Ionic events emitted from this component. ```typescript interface CheckboxCustomEvent extends CustomEvent { detail: CheckboxChangeEventDetail; target: HTMLIonCheckboxElement; } ``` ## Usage ### Angular ```html {{entry.val}} ``` ```typescript import { Component } from '@angular/core'; @Component({ selector: 'app-page-home', templateUrl: 'home.page.html', styleUrls: ['home.page.scss'] }) export class HomePage { public form = [ { val: 'Pepperoni', isChecked: true }, { val: 'Sausage', isChecked: false }, { val: 'Mushroom', isChecked: false } ]; } ``` ### Javascript ```html Pepperoni Sausage Mushrooms ``` ### React ```tsx import React, { useState } from 'react'; import { IonContent, IonHeader, IonPage, IonTitle, IonToolbar, IonCheckbox, IonList, IonItem, IonLabel, IonItemDivider } from '@ionic/react'; const checkboxList = [ { val: 'Pepperoni', isChecked: true }, { val: 'Sausage', isChecked: false }, { val: 'Mushroom', isChecked: false } ]; export const CheckboxExamples: React.FC = () => { const [checked, setChecked] = useState(false); return ( CheckboxExamples Default Checkbox Checked: {JSON.stringify(checked)} setChecked(e.detail.checked)} /> Disabled Checkbox Checkbox Colors Checkboxes in a List {checkboxList.map(({ val, isChecked }, i) => ( {val} ))} ); }; ``` ### Stencil ```tsx import { Component, h } from '@stencil/core'; @Component({ tag: 'checkbox-example', styleUrl: 'checkbox-example.css' }) export class CheckboxExample { private form = [ { val: 'Pepperoni', isChecked: true }, { val: 'Sausage', isChecked: false }, { val: 'Mushroom', isChecked: false } ]; render() { return [ // Default Checkbox , // Disabled Checkbox , // Checked Checkbox , // Checkbox Colors , , , , , // Checkboxes in a List {this.form.map(entry => {entry.val} )} ]; } } ``` ### Vue ```html ``` ## Properties | Property | Attribute | Description | Type | Default | | --------------- | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | -------------- | | `checked` | `checked` | If `true`, the checkbox is selected. | `boolean` | `false` | | `color` | `color` | The color to use from your application's color palette. Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`. For more information on colors, see [theming](/docs/theming/basics). | `string \| undefined` | `undefined` | | `disabled` | `disabled` | If `true`, the user cannot interact with the checkbox. | `boolean` | `false` | | `indeterminate` | `indeterminate` | If `true`, the checkbox will visually appear as indeterminate. | `boolean` | `false` | | `mode` | `mode` | The mode determines which platform styles to use. | `"ios" \| "md"` | `undefined` | | `name` | `name` | The name of the control, which is submitted with the form data. | `string` | `this.inputId` | | `value` | `value` | The value of the checkbox does not mean if it's checked or not, use the `checked` property for that. The value of a checkbox is analogous to the value of an ``, it's only used when the checkbox participates in a native `
`. | `string` | `'on'` | ## Events | Event | Description | Type | | ----------- | ---------------------------------------------- | --------------------------------------------- | | `ionBlur` | Emitted when the checkbox loses focus. | `CustomEvent` | | `ionChange` | Emitted when the checked property has changed. | `CustomEvent>` | | `ionFocus` | Emitted when the checkbox has focus. | `CustomEvent` | ## Shadow Parts | Part | Description | | ------------- | ------------------------------------------------- | | `"container"` | The container for the checkbox mark. | | `"mark"` | The checkmark used to indicate the checked state. | ## CSS Custom Properties | Name | Description | | ------------------------ | ---------------------------------------------- | | `--background` | Background of the checkbox icon | | `--background-checked` | Background of the checkbox icon when checked | | `--border-color` | Border color of the checkbox icon | | `--border-color-checked` | Border color of the checkbox icon when checked | | `--border-radius` | Border radius of the checkbox icon | | `--border-style` | Border style of the checkbox icon | | `--border-width` | Border width of the checkbox icon | | `--checkmark-color` | Color of the checkbox checkmark when checked | | `--checkmark-width` | Stroke width of the checkbox checkmark | | `--size` | Size of the checkbox icon | | `--transition` | Transition of the checkbox icon | ## Dependencies ### Used by - ion-select-popover ### Graph ```mermaid graph TD; ion-select-popover --> ion-checkbox style ion-checkbox fill:#f9f,stroke:#333,stroke-width:4px ``` ---------------------------------------------- *Built with [StencilJS](https://stenciljs.com/)*