Aller au contenu principal

Carte (Card)

Utilisez une carte pour présenter une ressource, une démarche ou un contenu cliquable.

attention

Ce composant nécessite une licence Pro valide en production.

InformationValeur
NiveauPro
Composants Twigdsfr:card, dsfr:card:header, dsfr:card:body, dsfr:card:content, dsfr:card:title, dsfr:card:description, dsfr:card:footer

Usage

  • Composez la carte avec ses sous-composants plutôt qu’avec des blocs Twig nommés.
  • Le lien peut être agrandi avec la classe DSFR prévue.

Modes d'utilisation

Carte · exemple principal
<twig:dsfr:card horizontal>
<twig:dsfr:card:header src="/images/service.jpg" alt="" />
<twig:dsfr:card:body>
<twig:dsfr:card:content>
<twig:dsfr:card:title href="/services/permis">Demande de permis</twig:dsfr:card:title>
<twig:dsfr:card:description>Suivre l’instruction d’un dossier.</twig:dsfr:card:description>
</twig:dsfr:card:content>
<twig:dsfr:card:footer>
<twig:dsfr:link label="Voir le dossier" href="/services/permis" />
</twig:dsfr:card:footer>
</twig:dsfr:card:body>
</twig:dsfr:card>

API publique

ComposantRôle
dsfr:cardComposant principal de cette page.
dsfr:card:headerSous-composant public utilisable en composition Twig.
dsfr:card:bodySous-composant public utilisable en composition Twig.
dsfr:card:contentSous-composant public utilisable en composition Twig.
dsfr:card:titleSous-composant public utilisable en composition Twig.
dsfr:card:descriptionSous-composant public utilisable en composition Twig.
dsfr:card:footerSous-composant public utilisable en composition Twig.

Configuration

OptionTypeDéfaut / requisValeurs et usage
titlestring""Titre de la carte. Vide = mode composition avec sous-composants.
hrefstring|nullSelon composantURL de destination. Les URL sont normalisées.
descriptionstring|nullnullDescription courte.
sizeenum|nullnullsm, lg
titleTagenumh3h1, h2, h3, h4, h5, h6, p
horizontalboolfalseDisposition horizontale.
enlargebooltrueLien agrandi sur toute la carte.
noIconboolfalseMasque l’icône de lien.
download / externalboolfalseVariantes téléchargement ou lien externe.
detailsarray|string[]Métadonnées { label, icon? }.

Guide d'intégration

QuestionRéponse
Famille DSFRContenu
Quand l'utiliserQuand vous présentez, organisez ou approfondissez un contenu éditorial ou métier.
Quand éviterPour les contrôles de formulaire ou la navigation principale, sauf si le composant expose explicitement cette interaction.
API publiqueUtilisez uniquement les composants Twig listés sur cette page : dsfr:card, dsfr:card:header, dsfr:card:body, dsfr:card:content, dsfr:card:title, dsfr:card:description, dsfr:card:footer.
Documentation DSFRConsultez aussi la bibliothèque officielle : Système de Design de l'État.
Carte : composition avec 6 sous-composants

Variantes de carte

  • tailles disponibles via size quand le DSFR expose une variante compacte ou large.

Points de contrôle propres à ce composant

  • Composez la carte avec ses sous-composants plutôt qu’avec des blocs Twig nommés.
  • Le lien peut être agrandi avec la classe DSFR prévue.
  • Testez la composition avec dsfr:card:header, dsfr:card:body, dsfr:card:content, dsfr:card:title, dsfr:card:description, dsfr:card:footer sans copier les templates internes.
  • Contrôlez le rendu lien/action selon la présence de href et le libellé annoncé au clavier.

Accessibilité contenu

  • Respectez la hiérarchie de titres de la page.
  • Les images informatives ont un alt utile ; les images décoratives ont un alt vide.
  • Les contenus masqués ou ouverts doivent rester pilotables au clavier.

Intégration Symfony/Twig pour dsfr:card

  • Composez avec les sous-composants publics dsfr:card:header, dsfr:card:body, dsfr:card:content, dsfr:card:title, dsfr:card:description, dsfr:card:footer quand le rendu doit être plus précis que les props.
  • Ajoutez vos attributs applicatifs (data-controller, data-action, aria-*, class) sur dsfr:card quand ils concernent son nœud racine.

Checklist de recette

  • ordre de lecture cohérent
  • titres dans le bon niveau
  • contenu disponible sans souris
  • rendu vérifié en thème clair et sombre ;
  • rendu vérifié sur mobile, tablette et desktop ;
  • aucune erreur dans le profiler DSFR ni dans l'inspecteur d'accessibilité du navigateur.

Erreurs fréquentes

SymptômeCorrection
Les classes DSFR semblent incomplètesUtilisez les props du composant plutôt que des classes ajoutées à la main.
Le composant rend en local mais pas en productionVérifiez la licence avec php bin/console dsfr:license:validate.