Aller au contenu principal

En-tête (Header)

Utilisez l’en-tête pour afficher l’identité du site, les accès rapides et les outils principaux.

attention

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

InformationValeur
NiveauPro
Composants Twigdsfr:header, dsfr:header:brand, dsfr:header:tools

Usage

  • Utilisez brandLabel pour le texte du bloc marque, par exemple Gouvernement, et gardez siteName pour le nom du site.
  • Conservez la structure DSFR attendue pour éviter les erreurs JavaScript.
  • Placez les outils dans dsfr:header:tools.

Modes d'utilisation

En-tête · exemple principal
<twig:dsfr:header>
<twig:dsfr:header:brand siteName="info.gouv.fr" brandLabel="Gouvernement" serviceTitle="Tableau de bord" />
<twig:dsfr:header:tools :links="[
{label: 'Aide', href: '/aide', icon: 'fr-icon-question-line'}
]" />
</twig:dsfr:header>

API publique

ComposantRôle
dsfr:headerComposant principal de cette page.
dsfr:header:brandSous-composant public utilisable en composition Twig.
dsfr:header:toolsSous-composant public utilisable en composition Twig.

Configuration

OptionTypeDéfaut / requisValeurs et usage
siteNamestring""Nom du site.
brandLabelstring|nullnullTexte du bloc marque.
siteTaglinestring|nullnullBaseline du site.
serviceTitle / serviceTaglinestring|nullnullTitre et baseline du service.
homepageHref / homepageTitlestring/ / ""Lien et titre du retour accueil.
quickLinksarray|string[]Liens rapides { label, href, icon? }.
operatorLogoboolfalseActive la zone logo opérateur.
operatorLogoSrc / operatorLogoAltstring""Source et alternative du logo opérateur.
navId / menuModalId / menuBtnIdstringValeurs par défautIdentifiants de navigation et menu mobile.

Guide d'intégration

QuestionRéponse
Famille DSFRMise en page
Quand l'utiliserQuand vous composez une page, une zone transverse ou un bloc structurel réutilisable.
Quand éviterPour corriger un espacement local : utilisez d’abord les props et classes utilitaires DSFR prévues.
API publiqueUtilisez uniquement les composants Twig listés sur cette page : dsfr:header, dsfr:header:brand, dsfr:header:tools.
Documentation DSFRConsultez aussi la bibliothèque officielle : Système de Design de l'État.
En-tête : composition avec 2 sous-composants

Variantes de en-tête

  • en-tête avec attributs HTML pass-through pour id, class, data-* et aria-* quand le template le permet.

Points de contrôle propres à ce composant

  • Utilisez brandLabel pour le texte du bloc marque, par exemple Gouvernement, et gardez siteName pour le nom du site.
  • Conservez la structure DSFR attendue pour éviter les erreurs JavaScript.
  • Placez les outils dans dsfr:header:tools.
  • Testez la composition avec dsfr:header:brand, dsfr:header:tools sans copier les templates internes.
  • Renseignez une alternative textuelle utile pour les images informatives et vide pour les images décoratives.

Accessibilité mise en page

  • Le composant ne remplace pas les landmarks de votre page : gardez main, nav, aside, section côté application.
  • Les zones transverses doivent rester identifiables et cohérentes entre les pages.
  • Vérifiez les ruptures responsive sur mobile, tablette et desktop.

Intégration Symfony/Twig pour dsfr:header

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

Checklist de recette

  • rendu mobile sans débordement
  • landmarks présents dans la page
  • comportement thème clair/sombre si concerné
  • 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.