Skip to content

TextInput

Le composant TextInput fournit un champ de saisie stylisé, accompagné d’un label optionnel, d’un helperText et d’un message d’erreur. Il gère automatiquement les styles de bordures selon l’état (normal ou erreur) et émet les mises à jour via v-model.


Props

PropTypeDefaultDescription
idString, Number'text-input'Identifiant unique du champ.
modelValueString, Number''Valeur du champ (utilisé avec v-model).
labelString''Label affiché au-dessus du champ.
typeString'text'Type du champ (text, email, password, number, etc.).
nameString''Attribut name du champ.
placeholderString''Texte indicatif affiché dans le champ.
requiredBooleanfalseRend le champ obligatoire.
helperTextString''Texte d’aide affiché sous le champ lorsqu’il n’y a pas d’erreur.
errorString''Message d’erreur affiché sous le champ (active les styles rouge).

États visuels

ÉtatDescription
NormalBordures neutres + focus gris / zinc.
ErreurBordure rouge + focus rouge + message d’erreur rouge.

Ces styles sont déterminés via la propriété calculée borderClasses.


Slots

Le composant n’utilise pas de slot : tout est rendu à partir des props.


Utilisation

Champ simple

vue
<TextInput v-model="email" label="Email" placeholder="Entrez votre email" />

Champ requis

vue
<TextInput v-model="username" label="Nom d'utilisateur" required />

Avec texte d’aide

vue
<TextInput v-model="phone" label="Téléphone" helperText="Incluez l'indicatif du pays." />

Avec message d’erreur

vue
<TextInput
    v-model="password"
    type="password"
    label="Mot de passe"
    error="Le mot de passe est trop court."
/>

Fonctionnement interne

  • Réactivité :
    • Le champ utilise v-model via l’événement update:modelValue.
    • L’affichage des messages dépend de helperText et error.