@brickslab/ui-web
Bouton radio stylisé avec appearance:none et radial-gradient CSS. Radio est contrôlé (checked + onChange). RadioGroup injecte automatiquement name, checked et onChange dans ses enfants via React.Children.map. Focus visible accessible.
Aperçu
RadioGroup vertical — sélection contrôlée
Direction
vertical (défaut) · horizontal
Tailles
sm 14px · md 16px · lg 20px
Option désactivée
disabled — bloque l'interaction sur une option spécifique
Radio standalone
sans RadioGroup — contrôlé manuellement
Props — Radio
| Prop | Type | Défaut | Requis | Description |
|---|---|---|---|---|
value | string | — | ✓ | Valeur de l'option — passée à onChange quand sélectionnée. |
checked | boolean | — | — | État sélectionné — contrôlé par le parent ou RadioGroup. |
onChange | (value: string) => void | — | — | Callback appelé avec la valeur de l'option. |
label | React.ReactNode | — | — | Texte ou JSX affiché à droite du bouton radio. |
name | string | — | — | Attribut name natif — injecté automatiquement par RadioGroup. |
disabled | boolean | false | — | Désactive cette option. |
size | "sm" | "md" | "lg" | "md" | — | Taille du bouton radio (14 / 16 / 20 px). |
Props — RadioGroup
| Prop | Type | Défaut | Requis | Description |
|---|---|---|---|---|
name | string | — | ✓ | Attribut name HTML injecté dans chaque Radio enfant. |
value | string | — | — | Valeur sélectionnée — contrôle quel Radio est coché. |
onChange | (value: string) => void | — | — | Callback appelé avec la valeur de l'option sélectionnée. |
children | React.ReactNode | — | ✓ | Éléments Radio enfants. |
direction | "vertical" | "horizontal" | "vertical" | — | Disposition des options. |
gap | number | 10 | — | Espacement en pixels entre les options. |