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çu Preview
Quand l'utiliser When to use
Composant Component Usage Usage
agtc-segmentedRéglage à effet immédiat (langue, densité, vue) — Tab + aria-current Immediate-effect setting (language, density, view) — Tab + aria-current
agtc-radio-groupChoix de formulaire soumis — radiogroup + flèches Submitted form choice — radiogroup + arrows
agtc-toggleRéglage binaire on/off Binary on/off setting
Règles absolues Absolute rules
Toujours exactement un segment actif (aria-current="true") Always exactly one active segment (aria-current="true")
2 à 5 options, libellés courts ; au-delà → select 2 to 5 options, short labels; beyond → select
État sélectionné = fond plein + poids 700 (pas la couleur seule) Selected state = solid fill + weight 700 (not color alone)
Jamais role="radiogroup" ni tablist pour un effet immédiat Never role="radiogroup" or tablist for immediate effect
Jamais sans aria-label de groupe Never without a group aria-label
Tokens de composant Component tokens
Token CSS Référence Reference Valeur Value
--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
role="group" + aria-label sur le railrole="group" + aria-label on the track
Segment actif : aria-current="true" ; boutons natifs (Tab, Entrée/Espace) Active segment: aria-current="true"; native buttons (Tab, Enter/Space)
:focus-visible tokenisé par segmentTokenized :focus-visible per segment
Contraste sélectionné (blanc sur teal) ≥ 4.5:1 Selected contrast (white on teal) ≥ 4.5:1
Implémentation Implementation
<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'Ts DOs and DON'Ts
À faire Do
Réserver aux réglages à effet immédiat (≤ 5 options) Reserve for immediate-effect settings (≤ 5 options)
Nommer le groupe avec label Name the group with label
Garder des libellés courts Keep labels short
À éviter Don'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 longs More 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 .
Pattern Source Applied Justification Single selection, always one active Primer ✅ No empty state <button> group + aria-current + immediate effectPrimer ✅ Deliberate deviation from radiogroup 2–5 options, short labels NN/g ✅ Documented guidance Selected not by color alone WCAG 1.4.1 ✅ Solid background + weight 700 Immediate effect (no "apply") Primer ✅ Emits change :focus-visible per segment, native TabPrimer ✅ Native buttons Equal-width segments, icon + label NN/g ✅ equal-width, icon optionalvalue API + change eventPrimer ✅ Integration
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
Haut Top