Vue NativeVue Native
Guide
Components
Composables
Navigation
  • iOS
  • Android
  • macOS
GitHub
Guide
Components
Composables
Navigation
  • iOS
  • Android
  • macOS
GitHub
  • Layout

    • VView
    • VScrollView
    • VSafeArea
    • VKeyboardAvoiding
  • Text & Input

    • VText
    • VInput
  • Interactive

    • VButton
    • VPressable
    • VSwitch
    • VSlider
    • VSegmentedControl
    • VCheckbox
    • VRadio
    • VDropdown
    • VRefreshControl
  • Media

    • VImage
    • VWebView
    • VVideo
  • Lists

    • VList
    • VFlatList
    • VSectionList
  • Feedback

    • VActivityIndicator
    • VProgressBar
    • VAlertDialog
    • VActionSheet
    • VModal
    • VErrorBoundary
  • Transition & State

    • VTransition & VTransitionGroup
    • KeepAlive
    • VSuspense
  • Navigation

    • VNavigationBar
    • VTabBar
  • System

    • VStatusBar
    • VPicker
  • macOS

    • VToolbar
    • VSplitView
    • VOutlineView

VCheckbox

A toggle checkbox control. Maps to a custom checkbox view on iOS and CheckBox on Android.

Supports v-model for two-way binding of the checked state.

Usage

<VCheckbox
  v-model="agreed"
  label="I agree to the terms"
  checkColor="#fff"
  tintColor="#007AFF"
/>

Props

PropTypeDefaultDescription
modelValueBooleanfalseWhether the checkbox is checked. Bind with v-model
disabledBooleanfalseDisables interaction when true
labelString--Text label displayed next to the checkbox
checkColorString--Color of the checkmark icon
tintColorString--Color of the checkbox border and fill when checked
styleObject--Layout + appearance styles
accessibilityLabelString--Accessibility label read by screen readers
accessibilityHintString--Additional accessibility hint describing the result of the action

Events

EventPayloadDescription
update:modelValuebooleanEmitted when the checked state changes. Used internally by v-model
changebooleanEmitted when the user toggles the checkbox

Example

<script setup>
import { ref } from '@thelacanians/vue-native-runtime'

const notifications = ref(true)
const darkMode = ref(false)
const agreed = ref(false)

function onAgreedChange(value) {
  console.log('Agreement changed:', value)
}
</script>

<template>
  <VView :style="{ padding: 24, gap: 16 }">
    <VText :style="{ fontSize: 20, fontWeight: '700' }">Settings</VText>

    <VCheckbox
      v-model="notifications"
      label="Enable notifications"
      tintColor="#007AFF"
      checkColor="#fff"
    />

    <VCheckbox
      v-model="darkMode"
      label="Dark mode"
      tintColor="#34C759"
      checkColor="#fff"
    />

    <VCheckbox
      v-model="agreed"
      label="I agree to the terms and conditions"
      tintColor="#FF9500"
      checkColor="#fff"
      @change="onAgreedChange"
    />

    <VButton
      :disabled="!agreed"
      :style="{
        backgroundColor: agreed ? '#007AFF' : '#ccc',
        padding: 14,
        borderRadius: 8,
        marginTop: 12,
      }"
      :onPress="() => console.log('Submitted')"
    >
      <VText :style="{ color: '#fff', fontWeight: '600', textAlign: 'center' }">
        Submit
      </VText>
    </VButton>
  </VView>
</template>
Edit this page
Last Updated: 2/28/26, 11:24 PM
Contributors: Abdul Hamid, Claude Opus 4.6
Prev
VSegmentedControl
Next
VRadio