Case à cocher
LhCheckbox prend en charge une valeur booléenne autonome, LhCheckboxGroup prend en charge une valeur de type tableau pour plusieurs options.
Utilisation autonome
<script setup lang="ts">
import { ref } from 'vue'
import { LhCheckbox } from '@lh-ui/vue3'
const accepted = ref(false)
</script>
<template>
<LhCheckbox v-model="accepted" label="J'ai lu et j'accepte" />
</template><script>
import { LhCheckbox } from '@lh-ui/vue3'
export default {
components: { LhCheckbox },
data() {
return {
accepted: false
}
}
}
</script>
<template>
<LhCheckbox v-model="accepted" label="J'ai lu et j'accepte" />
</template>Utilisation en groupe
<script setup lang="ts">
import { ref } from 'vue'
import { LhCheckbox, LhCheckboxGroup } from '@lh-ui/vue3'
const selected = ref(['vue'])
</script>
<template>
<LhCheckboxGroup v-model="selected" name="framework">
<LhCheckbox value="vue" label="Vue" />
<LhCheckbox value="react" label="React" />
<LhCheckbox value="svelte" label="Svelte" />
</LhCheckboxGroup>
</template><script>
import { LhCheckbox, LhCheckboxGroup } from '@lh-ui/vue3'
export default {
components: { LhCheckbox, LhCheckboxGroup },
data() {
return {
selected: ['vue']
}
}
}
</script>
<template>
<LhCheckboxGroup v-model="selected" name="framework">
<LhCheckbox value="vue" label="Vue" />
<LhCheckbox value="react" label="React" />
<LhCheckbox value="svelte" label="Svelte" />
</LhCheckboxGroup>
</template>Personnalisation du thème
Appliquez des couleurs thème personnalisées aux cases à cocher.
<script setup lang="ts">
import { ref } from 'vue'
import { LhConfigProvider, LhCheckbox, LhCheckboxGroup } from '@lh-ui/vue3'
const selected = ref(['option1'])
const cerblueTheme = {
'primary-color': '#2B4C7C',
'primary-color-hover': '#3D649E',
'primary-color-bg': '#E8EDF3',
}
</script>
<template>
<LhConfigProvider :theme-vars="cerblueTheme">
<LhCheckboxGroup v-model="selected">
<LhCheckbox value="option1" label="Option 1" />
<LhCheckbox value="option2" label="Option 2" />
</LhCheckboxGroup>
</LhConfigProvider>
</template><script>
import { LhConfigProvider, LhCheckbox, LhCheckboxGroup } from '@lh-ui/vue3'
export default {
components: { LhConfigProvider, LhCheckbox, LhCheckboxGroup },
data() {
return {
selected: ['option1'],
cerblueTheme: {
'primary-color': '#2B4C7C',
'primary-color-hover': '#3D649E',
'primary-color-bg': '#E8EDF3',
},
}
},
}
</script>
<template>
<LhConfigProvider :theme-vars="cerblueTheme">
<LhCheckboxGroup v-model="selected">
<LhCheckbox value="option1" label="Option 1" />
<LhCheckbox value="option2" label="Option 2" />
</LhCheckboxGroup>
</LhConfigProvider>
</template>Pour aller plus loin, voir Personnalisation du thème.
Internationalisation
Le texte des cases à cocher peut être internationalisé au moyen de LhConfigProvider et des packs de langue.
<script setup lang="ts">
import { ref } from 'vue'
import { LhConfigProvider, LhCheckbox, LhCheckboxGroup } from '@lh-ui/vue3'
import { zhCN } from '@lh-ui/vue3'
import { enUS } from '@lh-ui/vue3'
const locale = ref('zh-CN')
const selected = ref(['vue'])
</script>
<template>
<!-- Configuration du pack de langue -->
<LhConfigProvider :locale="locale === 'zh-CN' ? zhCN : enUS">
<LhCheckboxGroup v-model="selected">
<LhCheckbox value="vue" :label="locale === 'zh-CN' ? 'Vue框架' : 'Vue Framework'" />
<LhCheckbox value="react" :label="locale === 'zh-CN' ? 'React框架' : 'React Framework'" />
</LhCheckboxGroup>
</LhConfigProvider>
</template><script>
import { LhConfigProvider, LhCheckbox, LhCheckboxGroup } from '@lh-ui/vue3'
import { zhCN } from '@lh-ui/vue3'
import { enUS } from '@lh-ui/vue3'
export default {
components: { LhConfigProvider, LhCheckbox, LhCheckboxGroup },
data() {
return {
locale: 'zh-CN',
selected: ['vue'],
zhCN: zhCN,
enUS: enUS,
}
},
}
</script>
<template>
<!-- Configuration du pack de langue -->
<LhConfigProvider :locale="locale === 'zh-CN' ? zhCN : enUS">
<LhCheckboxGroup v-model="selected">
<LhCheckbox value="vue" :label="locale === 'zh-CN' ? 'Vue框架' : 'Vue Framework'" />
<LhCheckbox value="react" :label="locale === 'zh-CN' ? 'React框架' : 'React Framework'" />
</LhCheckboxGroup>
</LhConfigProvider>
</template>Désactivation, état indéterminé et taille
Une case à cocher autonome se désactive avec disabled, affiche un état indéterminé avec indeterminate, et ajuste sa taille avec size ; un groupe se désactive tout entier avec disabled et harmonise la taille de ses cases avec size.
<script setup lang="ts">
import { ref } from 'vue'
const demoCbDisabled = ref(true)
const demoCbIndeterminate = ref(false)
const demoIndeterminate = ref(true)
const demoCbSmall = ref(false)
const demoCbLarge = ref(false)
const demoCbGroupDisabled = ref<string[]>([])
const demoCbGroupSize = ref<string[]>([])
</script>
<template>
<!-- Désactivé -->
<LhCheckbox v-model="demoCbDisabled" disabled label="État désactivé" />
<!-- État indéterminé -->
<LhCheckbox v-model="demoCbIndeterminate" :indeterminate="demoIndeterminate" label="État indéterminé" />
<!-- Petite taille -->
<LhCheckbox v-model="demoCbSmall" size="small" label="small" />
<!-- Grande taille -->
<LhCheckbox v-model="demoCbLarge" size="large" label="large" />
<!-- Groupe entièrement désactivé -->
<LhCheckboxGroup v-model="demoCbGroupDisabled" disabled>
<LhCheckbox value="a" label="Option A" />
<LhCheckbox value="b" label="Option B" />
</LhCheckboxGroup>
<!-- Taille grande uniforme dans le groupe -->
<LhCheckboxGroup v-model="demoCbGroupSize" size="large">
<LhCheckbox value="a" label="Option A" />
<LhCheckbox value="b" label="Option B" />
</LhCheckboxGroup>
</template><script>
export default {
data() {
return {
demoCbDisabled: true,
demoCbIndeterminate: false,
demoIndeterminate: true,
demoCbSmall: false,
demoCbLarge: false,
demoCbGroupDisabled: [],
demoCbGroupSize: [],
}
},
}
</script>
<template>
<!-- Désactivé -->
<LhCheckbox v-model="demoCbDisabled" disabled label="État désactivé" />
<!-- État indéterminé -->
<LhCheckbox v-model="demoCbIndeterminate" :indeterminate="demoIndeterminate" label="État indéterminé" />
<!-- Petite taille -->
<LhCheckbox v-model="demoCbSmall" size="small" label="small" />
<!-- Grande taille -->
<LhCheckbox v-model="demoCbLarge" size="large" label="large" />
<!-- Groupe entièrement désactivé -->
<LhCheckboxGroup v-model="demoCbGroupDisabled" disabled>
<LhCheckbox value="a" label="Option A" />
<LhCheckbox value="b" label="Option B" />
</LhCheckboxGroup>
<!-- Taille grande uniforme dans le groupe -->
<LhCheckboxGroup v-model="demoCbGroupSize" size="large">
<LhCheckbox value="a" label="Option A" />
<LhCheckbox value="b" label="Option B" />
</LhCheckboxGroup>
</template>Checkbox API
LhCheckbox Props
| Propriété | Description | Type | Valeur par défaut |
|---|---|---|---|
| modelValue | État sélectionné en mode autonome | boolean | false |
| value | Valeur soumise en mode groupe | unknown | — |
| label | Texte de l'étiquette | string | — |
| disabled | Désactivé | boolean | false |
| indeterminate | État indéterminé | boolean | false |
| name | — | string | — |
| size | Taille | "small" | "medium" | "large" | 'medium' |
| sx | Propriétés de mise en page rapide sx | LhSxProps | — |
LhCheckboxGroup Props
| Propriété | Description | Type | Valeur par défaut |
|---|---|---|---|
| model-value | État sélectionné en mode groupe | unknown[] | [] |
| disabled | Désactiver tout le groupe | boolean | false |
| name | Nom de formulaire natif | string | — |
| size | Taille des cases à cocher du groupe | 'small' | 'medium' | 'large' | 'medium' |
Events
| Événement | Description | Paramètre |
|---|---|---|
| update:modelValue | La valeur change | value: boolean ou value[] |
| change | La sélection change | value |
Slots
| Slot | Description |
|---|---|
| default | Contenu personnalisé |
Définitions de types
Les structures de types TypeScript exportées par ce composant sont présentées ci-dessous (extraction automatique à partir des sources packages/components/checkbox/src/types.ts et @lh-ui/share/core/* ; cliquez sur chaque entrée pour afficher la définition complète ; la description des propriétés se trouve dans le tableau Props ci-dessus) :
LhCheckboxSize
export type LhCheckboxSize = 'small' | 'medium' | 'large'LhCheckboxProps
export interface LhCheckboxProps {
modelValue?: boolean
value?: unknown
label?: string
disabled?: boolean
indeterminate?: boolean
name?: string
size?: LhCheckboxSize
/** Propriétés de mise en page rapide sx */
sx?: LhSxProps
}LhCheckboxGroupProps
export interface LhCheckboxGroupProps {
modelValue?: unknown[]
disabled?: boolean
name?: string
size?: LhCheckboxSize
}