Forme DS

Composants

Card

Le conteneur de regroupement. Trois variantes de surface et quatre pas d'espacement pour cadrer du contenu — d'une tuile KPI cliquable à un simple bloc discret. Rayon de conteneur --radius-container (12 px).

import { Card } from "@forme-ch/ui/controls";

<Card variant="surface">…</Card>
<Card variant="quiet">…</Card>
<Card variant="outline">…</Card>

Espacement

La prop padding couvre none, sm, md (défaut) et lg.

<Card padding="none">…</Card>
<Card padding="sm">…</Card>
<Card padding="md">…</Card>
<Card padding="lg">…</Card>

Carte interactive

isInteractive active les états hover/focus et le curseur pointeur ; combine-le avec onClick.

<Card variant="surface" padding="lg" isInteractive onClick={open}>
  …
</Card>

Props

PropTypeDéfautDescription
children ReactNode — Contenu de la carte.
variant CardVariant "surface" surface (pleine) · quiet (fond discret) · outline (bordure seule).
padding CardPadding "md" none · sm · md · lg — pas d'espacement mappés sur les SpacingStep Astryx.
isInteractive boolean — Ajoute hover/focus et cursor: pointer pour une carte cliquable (KPI, ligne).
onClick () => void — Gestionnaire de clic (généralement combiné à isInteractive).
className string — Classe CSS additionnelle.
style CSSProperties — Styles inline (fusionnés après les styles internes).

Accessibilité

Une carte isInteractive se comporte comme un élément cliquable : elle doit rester atteignable et actionnable au clavier, et son contenu doit annoncer clairement la destination ou l'action. Pour une navigation, préfère envelopper un vrai lien plutôt que de reposer sur le seul onClick.

Do & Don't

✓ À faire

Réserver isInteractive aux cartes réellement cliquables. Utiliser quiet pour regrouper sans surcharger.

✕ À éviter

Imbriquer des cartes surface les unes dans les autres. Mettre onClick sans isInteractive (aucun affordance visuel).