COMPONENT
IntentControlButton
Bouton intent-first (controls) : hooks CSS stables + variables résolues via resolveIntent().
🕹️ ControlSince v0.1.0
DESIGN SYSTEM
PLAYGROUND
Size
Layout
State
Icons
leftIcon est ignoré si loading=true.
Astuce: click sur le bouton toggle pressed.
PREVIEW
PROPS
| Prop | Type | Default |
|---|---|---|
| PROPS SYSTÈME | ||
intent Intent sémantique (informed/empowered/warned/threatened/themed/toned/glowed). | Intent | DEFAULT_INTENT |
variant Variant visuel (flat/outlined/elevated/ghost). | Variant | DEFAULT_VARIANT |
tone Override de tone (n’a d’effet que si intent='toned'). | Tone | DEFAULT_TONE (si toned) |
toneStep Step Tailwind (50..950) pour éclaircir/assombrir les teintes (autour du step canonique 500). | ToneStep | DEFAULT_TONE_STEP |
glow Glow normal (true/false) ou glow esthétique (uniquement si intent='glowed'). | boolean | Glow | false (ou glow par intent) |
intensity Intensité (soft/medium/strong). | Intensity | DEFAULT_INTENSITY |
mode Mode colorimétrique (dark/light). | Mode | DEFAULT_MODE |
disabled Désactive l’état visuel (hooks + styles). | boolean | false |
| PROPS LOCALES | ||
className Classes CSS additionnelles appliquées au root. | string | — |
children Contenu du bouton (label). | React.ReactNode | — |
size Taille du bouton (affecte padding, hauteur, typo). | "xs" | "sm" | "md" | "lg" | "xl" | md |
fullWidth Étire le bouton sur toute la largeur disponible. | boolean | false |
loading Affiche un spinner et force disabled (préserve l’état). | boolean | false |
pressed État “pressed” (aria-pressed + hook visuel). | boolean | false |
leftIcon Icône à gauche du label (ignorée si loading=true). | React.ReactNode | — |
rightIcon Icône à droite du label. | React.ReactNode | — |
(native props) Toutes les props natives du button (type, onClick, aria-*, data-*…). | Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'className' | 'children'> | — |
TYPES & CONSTANTES
| API | Valeur / Référence |
|---|---|
| TYPES | |
IntentNametype Type union des intents sémantiques. | "informed" | "empowered" | "warned" | "threatened" | "themed" | "toned" | "glowed" |
VariantNametype Type union des variants visuels. | "flat" | "outlined" | "elevated" | "ghost" |
ToneNametype Type union des tones (familles Tailwind + theme + black). | ("slate" | "gray" | ... | "theme" | "black") |
GlowNametype Type union des aesthetic glows (utilisable quand intent='glowed'). | "aurora" | "ember" | "cosmic" | "mythic" | "royal" | "mono" |
Intensitytype Intensité des effets (glow/contraste). | "soft" | "medium" | "strong" |
ModeNametype Mode colorimétrique. | "dark" | "light" |
| CONSTANTES | |
DEFAULT_INTENTconst Intent par défaut si aucun intent n’est fourni. | informed |
DEFAULT_VARIANTconst Variant par défaut si aucun variant n’est fourni. | elevated |
DEFAULT_GLOW_BY_INTENTconst Mapping intent → glow par défaut (quand glow est implicite). | DEFAULT_GLOW_BY_INTENT |