COMPONENT
IntentSurfaceCard
Surface item (Card) intent-first: media/header/footer optionnels, padding adaptable, mode interactif.
🧱 SurfaceSince v0.2.7
DESIGN SYSTEM
Mode
Intent
Variant
Glow
Intensity
State
PLAYGROUND
Card
Padding
Structure
Header mode
auto utilise eyebrow/title/subtitle/meta/actions.
custom passe un node via header.
PREVIEW
MEDIA
image, video, cover, map snapshot…
Item
IntentSurfaceCard
Card = item container (rythme compact)
2 min
Contenu
mode=dark, variant= elevated, intent= informed, padded= sm, interactive= true, pressed= false
Bloc A
Détail secondaire
Bloc B
Détail secondaire
Tip: une Card = un item. Un Panel = une section. Tu peux empiler des Cards dans un Panel, comme des constellations dans une galaxie 🪐
RESOLVED
{
  "mode": "dark",
  "intent": "informed",
  "variant": "elevated",
  "intensity": "medium",
  "toneStep": 500,
  "toneEffective": "blue",
  "glowKey": null,
  "glowBackground": null,
  "style": {
    "--intent-bg": "var(--ids-color-blue-500)",
    "--intent-ring": "var(--ids-color-blue-700)",
    "--intent-text": "var(--ids-color-blue-200)",
    "--intent-bg-opacity": "0.16",
    "--intent-ring-opacity": "0.304",
    "--intent-border": "var(--ids-color-blue-700)",
    "--intent-glow-fill-opacity": "0",
    "--intent-glow-border-opacity": "0",
    "--intent-glow-filter": "none"
  },
  "classes": {
    "base": "intent-surface inline-flex items-center gap-2",
    "surface": "intent-bg",
    "border": "intent-ring",
    "text": "intent-text",
    "ring": "",
    "shadow": "intent-shadow-soft",
    "glow": "",
    "disabled": ""
  },
  "warnings": []
}
PROPS
PropTypeDefault
PROPS SYSTÈME
intent
Intent sémantique (informed/empowered/warned/threatened/themed/toned/glowed).
IntentDEFAULT_INTENT
variant
Variant visuel (flat/outlined/elevated/ghost).
VariantDEFAULT_VARIANT
tone
Override de tone (n’a d’effet que si intent='toned').
ToneDEFAULT_TONE (si toned)
toneStep
Step Tailwind (50..950) pour éclaircir/assombrir les teintes (autour du step canonique 500).
ToneStepDEFAULT_TONE_STEP
glow
Glow normal (true/false) ou glow esthétique (uniquement si intent='glowed').
boolean | Glowfalse (ou glow par intent)
intensity
Intensité (soft/medium/strong).
IntensityDEFAULT_INTENSITY
mode
Mode colorimétrique (dark/light).
ModeDEFAULT_MODE
disabled
Désactive l’état visuel (hooks + styles).
booleanfalse
PROPS LOCALES
as
Élément HTML rendu (polymorphique).
T extends React.ElementTypearticle
className
Classes CSS additionnelles sur le root.
string
children
Contenu principal de la card.
React.ReactNode
fullWidth
Étire la card en largeur.
booleanfalse
padded
Padding interne.
"none" | "xs" | "sm" | "md"sm
bleed
Désactive le padding du body (utile si le contenu gère déjà ses espacements).
booleanfalse
media
Zone media en haut (cover).
React.ReactNode
header
Header custom (override du header auto).
React.ReactNode
footer
Footer de la card.
React.ReactNode
eyebrow / title / subtitle
Header auto: eyebrow, titre, sous-titre.
React.ReactNode
meta
Zone meta (header, à droite).
React.ReactNode
actions
Zone actions (header, à droite).
React.ReactNode
divider
Séparateurs entre zones.
booleantrue
interactive
Ajoute un polish hover/focus (item cliquable).
booleanfalse
pressed
État sélectionné/actif (ex: item courant).
booleanfalse
(native props)
Props natives du tag (id, style, onClick, aria-*, data-*…).
React.ComponentPropsWithoutRef<T>
TYPES & CONSTANTES
APIValeur / 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