Input

Saisie de données avec label obligatoire, 7 types, icônes hybrides et gestion d'erreur accessible. Le label est non négociable — un input sans label est inaccessible (WCAG 1.3.1). Data entry with required label, 7 types, hybrid icons, and accessible error handling. The label is non-negotiable — an input without a label is inaccessible (WCAG 1.3.1).

ÉtatsStates

DéfautDefault
Tel qu'il apparaît sur votre document officiel.As it appears on your official document.
ErreurError
Format d'adresse invalide.Invalid email format.
DésactivéDisabled

Règles absoluesAbsolute rules

Tokens de composantComponent tokens

Token CSSRéférence sémantiqueSemantic referenceValeur résolueResolved value
--agtc-component-input-default-backgroundsemantic.color.background.surface#ffffff
--agtc-component-input-default-bordersemantic.color.border.default#e8e8e8
--agtc-component-input-default-border-focussemantic.color.border.focus#007a68
--agtc-component-input-default-border-errorsemantic.color.border.danger#ce2c31
--agtc-component-input-default-textsemantic.color.text.primary#202020
--agtc-component-input-default-placeholdersemantic.color.text.secondary#646464
--agtc-component-input-default-radiussemantic.radius.control6px
--agtc-component-input-default-padding-xsemantic.space.control.padding-x16px
--agtc-component-input-default-padding-ysemantic.space.control.padding-y8px

Types supportésSupported types

TypeUsageUsageParticularitéNote
textSaisie libreFree textDéfautDefault
emailAdresse e-mailEmail addressValidation nativeNative validation
passwordMot de passePasswordToggle show/hide intégréBuilt-in show/hide toggle
numberValeur numériqueNumeric valueSpinners supprimésSpinners removed
searchRechercheSearch
telTéléphonePhone
urlURLValidation nativeNative validation

AccessibilitéAccessibility

ImplémentationImplementation

<!-- Basique -->
<agtc-input label="Nom completFull name" name="fullname"></agtc-input>

<!-- Avec aide et erreur -->
<agtc-input
  label="Adresse e-mailEmail address"
  type="email"
  helper-text="Utilisée pour les notificationsUsed for notifications"
  invalid
  error-message="Format invalideInvalid format"
></agtc-input>

<!-- Mot de passe avec toggle intégré -->
<agtc-input label="Mot de passePassword" type="password" required></agtc-input>

<!-- Avec icône -->
<agtc-input label="RechercherSearch" type="search" icon="search"></agtc-input>

DOs et DON'TsDOs and DON'Ts

À faireDo

  • Toujours fournir label avec un texte descriptifAlways provide label with descriptive text
  • Utiliser helper-text pour les contraintes de formatUse helper-text for format constraints
  • Paire invalid + error-message — jamais l'un sans l'autrePair invalid + error-message — never one without the other
  • Utiliser required pour les champs obligatoiresUse required for mandatory fields

À éviterDon't

  • Input sans label — inaccessibleInput without label — inaccessible
  • Placeholder comme seule étiquette — disparaît à la saisiePlaceholder as sole label — disappears on input
  • invalid sans error-message — erreur sans explicationinvalid without error-message — error without explanation
  • Styles inline sur le champInline styles on the field

UX Patterns Reference

Patterns approved by the Design System Lead via the ux-pattern-review workflow (see .claude/rules/ux-patterns-sources.md and ADR-036). Decision: all approved.

PatternSourceAppliedJustification
Visible label always present (never placeholder alone)NN/gWCAG 1.3.1 — label required
Validation on blur (onBlur) by defaultNN/g — Forms · IxDFDon't flag an error during the initial keystrokes
Re-validation on keystroke once a field is in errorNN/g — How to Report Errors in FormsReward the correction immediately
Inline error under the field + role="alert"NN/g — Error-Message GuidelinesLocalized error, announced to AT
Constructive error message (states what to fix)NN/g — Error-Message Guidelineserror-message writing rule
Persistent help text, distinct from the error, aria-describedbyNN/ghelper-text linked via aria-describedby
Required marker * + aria-requiredNN/g — FormsRequired field flagged visually and to AT
Forgiving format (tolerate spaces/formats: tel, number)IxDF — forgiving formatsReduces input errors
Avoid hostile patterns (no aggressive blocking, no clearing an errored field)NN/g — Hostile Patterns in Error MessagesAnti-dark-pattern

Validation contract (synthesis of patterns 2 + 3): validate on onBlur, then re-validate on every keystroke while the field is in an error state. Never validate on the first keystroke.

Contribuer à ce projet Contribute to this project

Ce système est ouvert aux contributions — tokens, composants, décisions architecturales, corrections d'accessibilité ou documentation. Toute amélioration est bienvenue. This system welcomes contributions — tokens, components, architectural decisions, accessibility fixes, or documentation. Every improvement counts.

Voir sur GitHub View on GitHub