Checkbox

Contrôle de sélection booléen pour les paramètres, les formulaires, les filtres, le consentement et les flux de produits à sélection multiple dans PyColors UI.

UIMise à jour 14 octobre 2026
UICase à cocher

Choix booléens pour les formulaires et les paramètres de produitsLien vers la section

Les Case à cocher Le composant permet aux utilisateurs de sélectionner une ou plusieurs options dans une liste, de confirmer un paramètre ou d’opter pour une condition spécifique.

Utilisez-le pour:

  • paramètres basculent qui peuvent être sélectionnés indépendamment
  • filtres à sélection multiple
  • termes, consentement et champs de confirmation
  • préférences groupées
  • flux de produits de type checklist
  • choix de forme facultatifs

Checkbox est construit sur Boîte à cocher Radix et stylisé avec des tokens sémantiques PyColors tels que border-input, bg-background, text-foregroundet ring-ring.

Idée de base

La case à cocher est pour la sélection explicite. Utilisez-le lorsque chaque option peut être cochée ou décochée indépendamment.

ImportationLien vers la section

checkbox-import.tsx
import { Checkbox } from "@pycolors/ui";

Utilisation de baseLien vers la section

Utilisez une case à cocher avec une étiquette lorsque l'utilisateur doit activer ou sélectionner une option.

Collectez des données sur l'utilisation des produits pour améliorer l'expérience du tableau de bord.

Règle des étiquettes

Toujours connecter l'étiquette visible avec la case à cocher en utilisant htmlFor et id, à moins que l'étiquette n'enroule le contrôle directement.

Quand utiliser la case à cocherLien vers la section

Utilisez la case à cocher lorsque les options sont indépendantes et que l'utilisateur peut sélectionner plusieurs choix.

Paramètres

Utilisez pour les préférences, les options et les paramètres de compte indépendants.

Filtres

Utilisez pour les filtres à sélection multiple où plusieurs valeurs peuvent s'appliquer en même temps.

Consentement

Utilisez pour les termes, les confirmations et les choix explicites d'opt-in.

État vérifiéLien vers la section

Utilisation defaultChecked pour les cases à cocher non contrôlées et checked avec onCheckedChange État contrôlé du produit.

Cette option démarre et peut être modifiée par l'utilisateur.

Cette option démarre sans vérification.

Case à cocher contrôléeLien vers la section

Utilisez une case à cocher contrôlée lorsque la valeur cochée entraîne l'état de l'application.

Ajoutez des fondations d'auth, de facturation et d'route protégées à la configuration.

Règle de l'État

Radix Checkbox peut retourner true, falseou "indeterminate". Convertissez la valeur intentionnellement lorsque votre application attend un booléen.

État indéterminéLien vers la section

Utilisez l'état indéterminé pour les cases à cocher parent lorsque seuls certains éléments enfants sont sélectionnés.

Utilisation checked="indeterminate" lorsque votre application est la propriété de l'État, ou defaultChecked="indeterminate" pour une sélection partielle initiale non contrôlée. Appuyez sur Espace pour sélectionner une case à cocher partielle non contrôlée. À l'intérieur d'un formulaire, un bouton de réinitialisation natif restaure son état initial, y compris le tiret de sélection partielle.

import { Button, Checkbox, CheckboxField, CheckboxLabel } from "@pycolors/ui";

export function PartialSelection() {
  return (
    <form>
      <CheckboxField>
        <Checkbox
          id="project-selection"
          name="projects"
          value="all"
          defaultChecked="indeterminate"
        />
        <CheckboxLabel htmlFor="project-selection">
          Select projects
        </CheckboxLabel>
      </CheckboxField>
      <Button type="reset" variant="outline">
        Reset selection
      </Button>
    </form>
  );
}

Certaines fonctionnalités sont actuellement sélectionnées.

État handicapéLien vers la section

Utilisez les cases à cocher désactivées uniquement lorsque l'option ne peut pas être modifiée pour le moment.

Cette option n'est pas disponible sur le plan actuel.

Ce paramètre est activé par défaut et ne peut pas être modifié.

Disabled copy

Lorsqu’une option désactivée peut frustrer les utilisateurs, expliquez pourquoi elle n’est pas disponible et ce qui la déverrouille.

Validation du formulaireLien vers la section

Utilisez le error prop lorsqu'une case à cocher requise n'est pas sélectionnée. Il rend visible la copie d'erreur, définit aria-invalid, et relie le message aux deux aria-describedby et aria-errormessage. L'erreur a role="alert"Il est donc annoncé lorsqu'il apparaît. Fourni par les consommateurs aria-describedby Les valeurs sont conservées à côté de l'identifiant du message d'erreur.

Nécessaire avant de créer un espace de travail.

UtilisationsLien vers la section

Utilisez des cases à cocher pour les options indépendantes

Chaque case à cocher doit représenter un choix qui peut être sélectionné sans forcer une décision mutuellement exclusive.

Gardez les étiquettes claires et précises

L'étiquette doit expliquer exactement ce qui est activé, sélectionné ou confirmé.

Ajouter des descriptions pour les conséquences importantes

Utilisation CheckboxDescription lorsque le choix affecte la confidentialité, la facturation, la livraison, la visibilité ou l'accès.

Gérer l'état indéterminé intentionnellement

Utilisation "indeterminate" uniquement lorsqu'il représente un état de groupe mixte.

Valider les confirmations requises

Pour les champs de consentement ou de conditions requis, affichez un message d'erreur directe près de la case à cocher.

Checkbox vs Switch vs Radio GroupLien vers la section

SituationUtilisation
Sélections indépendantes multiplesCase à cocher
Consentement ou confirmation requisCase à cocher
Sélection de parents avec des enfants mixtesCase à cocher avec état indéterminé
Mise en marche/arrêt immédiateCommutateur
Un choix parmi un groupe mutuellement exclusifGroupe Radio
Petite liste d'actions de menuMenu déroulant

Règle de décision

Utilisez la case à cocher pour la sélection, le commutateur pour l'activation immédiate et le groupe Radio pour un choix exclusif.

APILien vers la section

Composants

ComposanteDésignation
CheckboxContrôle de la case à cocher racine construit sur Radix
CheckboxFieldAide à la mise en page pour les lignes de case à cocher
CheckboxContentAide à la pile de texte pour l'étiquette et la description
CheckboxLabelAide-étiquette accessible
CheckboxDescriptionTexte d'appui

Cocher les props

PropTypePar défautDésignation
checkedboolean | "indeterminate"—État contrôlé vérifié
defaultCheckedboolean | "indeterminate"—État initial vérifié sans contrôle
onCheckedChange(checked) => void—Appelé lorsque l'état vérifié change
disabledbooleanfalseDésactive la case à cocher
requiredbooleanfalseCochez la case au besoin
errorstring—Rend une erreur annoncée et définit l'état invalide
namestring—Nom du champ de formulaire
valuestring—Valeur du formulaire soumis
classNamestring—Autres classes Tailwind

Checkbox étend Radix Checkbox Root props.

TypeScript typesLien vers la section

checkbox-types.ts
export interface CheckboxProps extends React.ComponentPropsWithoutRef<
  typeof CheckboxPrimitive.Root
> {
  error?: string;
}

const Checkbox = React.forwardRef<
  React.ComponentRef<typeof CheckboxPrimitive.Root>,
  CheckboxProps
>((props, ref) => {
  // ...
});

AccessibilitéLien vers la section

Checkbox est construit sur les primitives Radix Checkbox.

Cela signifie :

  • L'interaction du clavier est gérée
  • Les états vérifiés et indéterminés sont exposés aux technologies d'assistance.
  • L'état désactivé est exposé correctement
  • focus style utilise PyColors ring tokens
  • L'utilisation des formulaires fonctionne grâce à la sémantique des formulaires natifs
  • error rend visible la copie d'erreur et les fils aria-invalid, aria-describedbyet aria-errormessage

Directives :

  • fournir une étiquette visible pour chaque case à cocher
  • connecter des étiquettes en utilisant htmlFor et id
  • utiliser des descriptions pour des choix ayant des conséquences
  • Ne comptez pas uniquement sur la couleur pour les états de validation
  • utiliser le error prop pour les confirmations requises non valides
  • Gardez les étiquettes courtes et orientées vers l'action

Règle d'accessibilité

Une case à cocher a besoin d'un nom accessible clair. L'étiquette doit avoir un sens même lorsqu'elle est lue sans contexte.

Préférez/évitezLien vers la section

Préférez

  • étiquettes claires liées à htmlFor et id
  • cases à cocher pour les choix indépendants multi-sélection
  • description de l'impact sur la vie privée, la facturation ou l'accès
  • état indéterminé pour la sélection mixte des parents
  • copie de validation visible pour les confirmations requises

Éviter

  • Cochez la case pour des choix mutuellement exclusifs
  • utiliser la case à cocher comme paramètre immédiat lorsque le commutateur est plus clair
  • étiquettes qui disent seulement « Oui » ou « Activer »
  • Options désactivées sans explication
  • communication d'erreur couleur uniquement

Directives de copie du produitLien vers la section

La copie de case à cocher doit décrire le résultat sélectionné, pas le contrôle de l'interface utilisateur.

Envoyer un résumé hebdomadaire du produit

Recevez un court e-mail avec l'utilisation, la facturation et l'activité de l'espace de travail.

Questions courantesLien vers la section