333b11e Oct 25, 2016
@mathebox @hansl
94 lines (70 sloc) 2.48 KB


md-checkbox is a Material Design selection control that allows users to make a binary choice for a predetermined conditioned. It is modeled after the browser's native checkbox element, and behaves in the same way. Similar to the native checkbox element, it supports an indeterminate state for "mixed" checkboxes.

A demo of the checkbox can be found at


Basic Usage

md-checkbox can be used anywhere a normal checkbox would be used, and in the same way.

  <li *ngFor="let todo of todos">
    <md-checkbox [checked]="todo.completed"
                 (change)="todo.completed = $event">

Usage within Forms

In addition to supporting native checkbox functionality, md-checkbox also supports [(ngModel)] for use within forms.

<form (submit)="saveUser()">
  <!-- Form fields... -->
    <md-checkbox [(ngModel)]="user.agreesToTOS">
      I have read and agree to the terms of service.
  <button type="submit" [disabled]="!user.agreesToTOS">Sign Up</button>

Indeterminate Checkboxes

Indeterminate checkboxes are useful when a checkbox needs to be in a "mixed" state

<md-checkbox [checked]="false"
             (change)="isIndeterminate = false">
  Click the Button Below to Make Me Indeterminate.
<button type="button" (click)="isIndeterminate = true">
  Make Indeterminate


Note that checkboxes can be aligned to come at the "start" or the "end" of its corresponding label.

<md-checkbox [checked]="true" align="end">
  I come after my label.

Note that this alignment is preserved within RTL layouts.


By default, md-checkbox provides all the accessibility attributes needed. It also supports keyboard navigation and toggling via the spacebar. However, you can provide an aria-label to the checkbox if you do not wish to have any label text.

<md-checkbox [checked]="false" aria-label="My standalone checkbox"></md-checkbox>


The color of a md-checkbox can be changed by using the color attribute. The value accent is default and will correspond to your theme accent color. Alternatively, you can specify primary or warn.


<md-checkbox [checked]="true" color="primary">
  I come after my label.