Button
BetaRSC-safeL2 — '<'button'>' natif stylable : variantes primary/secondary/ghost/danger, tailles sm/md/lg, états disabled/loading. Touch-target ≥44px. RSC-safe (props-driven).
import { Button } from "@lyra/tokens/components";Playground
Démo interactive — réglages du playground (props ajustables en direct) à venir.
<Button onClick={save}>Enregistrer</Button>
<Button variant="ghost" size="sm">Annuler</Button>
<Button variant="danger" onClick={remove}>Supprimer</Button>
<Button loading loadingLabel="Enregistrement…">Enregistrer</Button>Documentation
- primary
- danger
- loading
- disabled
variant, size, type, disabled, loading, loadingLabel, fullWidth, onClick<Button onClick={save}>Enregistrer</Button>
<Button variant="ghost" size="sm">Annuler</Button>
<Button variant="danger" onClick={remove}>Supprimer</Button>
<Button loading loadingLabel="Enregistrement…">Enregistrer</Button>- '<'button type="button"'>' natif — nom accessible + clavier (Entrée/Espace) gratuits.
- disabled : attribut natif, retiré du tab order, onClick jamais appelé.
- loading : aria-busy='true' + disabled implicite + spinner aria-hidden — l'état est porté par loadingLabel (texte), pas l'icône seule (WCAG 1.4.1).
- Touch-target ≥ 44px (WCAG 2.5.5) sur toutes les tailles.
- focus-visible : anneau tokens, jamais outline:none sans remplacement.