Segmented

Contrôle segmenté mono-sélection à effet immédiat (2–5 options courtes) : bascule de langue, densité, vue liste/grille. Groupe de boutons natifs + aria-current — distinct du groupe radio (formulaire) et des onglets (panneaux). Single-select segmented control with immediate effect (2–5 short options): language toggle, density, list/grid view. Native button group + aria-current — distinct from radio group (forms) and tabs (panels).

AperçuPreview

Quand l'utiliserWhen to use

ComposantComponentUsageUsage
agtc-segmentedRéglage à effet immédiat (langue, densité, vue) — Tab + aria-currentImmediate-effect setting (language, density, view) — Tab + aria-current
agtc-radio-groupChoix de formulaire soumis — radiogroup + flèchesSubmitted form choice — radiogroup + arrows
agtc-toggleRéglage binaire on/offBinary on/off setting

Règles absoluesAbsolute rules

Tokens de composantComponent tokens

Token CSSRéférenceReferenceValeurValue
--agtc-component-segmented-default-track-backgroundsemantic.color.background.subtle#f0f0f0
--agtc-component-segmented-default-textsemantic.color.text.secondary#646464
--agtc-component-segmented-default-selected-backgroundsemantic.color.action.primary#007a68
--agtc-component-segmented-default-selected-textsemantic.color.text.on-action#ffffff
--agtc-component-segmented-default-border-focussemantic.color.border.focus#007a68
--agtc-component-segmented-default-radiussemantic.radius.control6px

AccessibilitéAccessibility

ImplémentationImplementation

<agtc-segmented label="Langue" value="fr"></agtc-segmented>
<script>
  const s = document.querySelector('agtc-segmented');
  s.options = [{ value: 'fr', label: 'FR' }, { value: 'en', label: 'EN' }];
  s.addEventListener('change', (e) => setLanguage(e.detail.value));
</script>

DOs et DON'TsDOs and DON'Ts

À faireDo

  • Réserver aux réglages à effet immédiat (≤ 5 options)Reserve for immediate-effect settings (≤ 5 options)
  • Nommer le groupe avec labelName the group with label
  • Garder des libellés courtsKeep labels short

À éviterDon't

  • L'utiliser pour un choix de formulaire soumis (→ agtc-radio-group)Use it for a submitted form choice (→ agtc-radio-group)
  • L'utiliser pour changer un panneau de contenu (→ onglets)Use it to switch a content panel (→ tabs)
  • Plus de 5 options ou des libellés longsMore than 5 options or long labels

UX Patterns Reference

Patterns approved via the ux-pattern-review workflow (ADR-036/044). Decision: SG1–SG8 all approved.

PatternSourceAppliedJustification
Single selection, always one activePrimerNo empty state
<button> group + aria-current + immediate effectPrimerDeliberate deviation from radiogroup
2–5 options, short labelsNN/gDocumented guidance
Selected not by color aloneWCAG 1.4.1Solid background + weight 700
Immediate effect (no "apply")PrimerEmits change
:focus-visible per segment, native TabPrimerNative buttons
Equal-width segments, icon + labelNN/gequal-width, icon optional
value API + change eventPrimerIntegration
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