Skip to content

Checkbox

Custom styled checkbox with support for single boolean binding and checkbox groups via array v-model.

Examples

Single checkbox

Tailwind v4
vue
<script setup>
import { ref } from 'vue'
const agreed = ref(false)
</script>

<template>
  <Checkbox v-model="agreed" label="I agree to the terms and conditions" />
</template>

Checkbox group

Pass an array as v-model and a value prop on each checkbox to track selections.

Tailwind v4
vue
<script setup>
import { ref } from 'vue'
const selected = ref([])
</script>

<template>
  <Checkbox v-model="selected" value="crusher" label="Crusher Run" />
  <Checkbox v-model="selected" value="screenings" label="Screenings" />
  <Checkbox v-model="selected" value="gabion" label="Gabion Stone" />
</template>

Disabled

Tailwind v4
vue
<Checkbox :model-value="false" disabled label="Unchecked disabled" />
<Checkbox :model-value="true" disabled label="Checked disabled" />

Props

PropTypeDefaultDescription
modelValueboolean | unknown[]Bound value; use array for checkbox groups
valueunknownItem value for checkbox group mode
labelstringText label rendered beside the checkbox
disabledbooleanfalsePrevents interaction and dims the control

Emits

EventPayloadDescription
update:modelValueboolean | unknown[]New value after toggle

Slots

None — use the label prop for text.

Private — Jetpack Labs internal use only