Logo

Single checkbox

<div>
   <b-form-checkbox
     id="checkbox-1"
     v-model="status"
     name="checkbox-1"
     value="accepted"
     unchecked-value="not_accepted"
   >
     I accept the terms and use
   </b-form-checkbox>

   <div>State: <strong>{{ status }}</strong></div>
 </div>
State: not_accepted

Multiple choice checkboxes

<div>
   <b-form-group label="Using options array:">
     <b-form-checkbox-group
       id="checkbox-group-1"
       v-model="selected"
       :options="options"
       name="flavour-1"
     ></b-form-checkbox-group>
   </b-form-group>

   <b-form-group label="Using sub-components:">
     <b-form-checkbox-group id="checkbox-group-2" v-model="selected" name="flavour-2">
       <b-form-checkbox value="orange">Orange</b-form-checkbox>
       <b-form-checkbox value="apple">Apple</b-form-checkbox>
       <b-form-checkbox value="pineapple">Pineapple</b-form-checkbox>
       <b-form-checkbox value="grape">Grape</b-form-checkbox>
     </b-form-checkbox-group>
   </b-form-group>

   <div>Selected: <strong>{{ selected }}</strong></div>
 </div>
Using options array:
Selected: []
Using sub-components:
Selected: []

Inline and stacked checkboxes

<div>
   <b-form-group label="Form-checkbox-group inline checkboxes (default)">
     <b-form-checkbox-group
       v-model="selected"
       :options="options"
       name="flavour-1a"
     ></b-form-checkbox-group>
   </b-form-group>

   <b-form-group label="Form-checkbox-group stacked checkboxes">
     <b-form-checkbox-group
       v-model="selected"
       :options="options"
       name="flavour-2a"
       stacked
     ></b-form-checkbox-group>
   </b-form-group>

   <b-form-group label="Individual stacked checkboxes (default)">
     <b-form-checkbox
       v-for="option in options"
       v-model="selected"
       :key="option.value"
       :value="option.value"
       name="flavour-3a"
     >
       {{ option.text }}
     </b-form-checkbox>
   </b-form-group>

   <b-form-group label="Individual inline checkboxes">
     <b-form-checkbox
       v-for="option in options"
       v-model="selected"
       :key="option.value"
       :value="option.value"
       name="flavour-4a"
       inline
     >
       {{ option.text }}
     </b-form-checkbox>
   </b-form-group>
 </div>

<b-form-checkbox-group> components render inline checkboxes by default, while <b-form-checkbox> renders block-level (stacked) checkboxes.

Form-checkbox-group inline checkboxes (default)
Form-checkbox-group stacked checkboxes
Individual stacked checkboxes (default)
Individual inline checkboxes

Control sizing

<div>
  <b-form-checkbox size="sm">Small</b-form-checkbox>
  <b-form-checkbox>Default</b-form-checkbox>
  <b-form-checkbox size="lg">Large</b-form-checkbox>
</div>

Use the size prop to control the size of the checkbox. The default size is medium. Supported size values are sm (small) and lg (large).

Grouped button style checkboxes

<div>
   <b-form-group label="Button-group style checkboxes">
     <b-form-checkbox-group
       v-model="selected"
       :options="options"
       name="buttons-1"
       buttons
     ></b-form-checkbox-group>
   </b-form-group>

   <b-form-group label="Button-group style checkboxes with variant primary and large buttons">
     <b-form-checkbox-group
       v-model="selected"
       :options="options"
       buttons
       button-variant="primary"
       size="lg"
       name="buttons-2"
     ></b-form-checkbox-group>
   </b-form-group>

   <b-form-group label="Stacked (vertical) button-group style checkboxes">
     <b-form-checkbox-group
       v-model="selected"
       :options="options"
       stacked
       buttons
     ></b-form-checkbox-group>
   </b-form-group>
 </div>
Button-group style checkboxes
Button-group style checkboxes with variant primary and large buttons
Stacked (vertical) button-group style checkboxes