Communitygithub.com

Système d'en-tête collant et de barre supérieure

Concevoir, structurer et optimiser des systèmes de barres supérieures fixes et collantes, y compris les barres d'annonce, les en-têtes utilitaires, les en-têtes de navigation principaux, les comportements de rétrécissement au défilement, les motifs de masquage/révélation dynamique, les transitions d'élévation de surface et la conformité WCAG AA.

Qu'est-ce que Système d'en-tête collant et de barre supérieure ?

La compétence **Système d'en-tête collant et de barre supérieure** offre un cadre complet pour concevoir, structurer et configurer le comportement des piles de navigation persistantes en haut de page. Elle couvre les architectures multi-niveaux (barre d'annonce, barre utilitaire, navigation principale) et plusieurs modèles de défilement : toujours collant, rétrécissement au défilement, masquage/révélation dynamique. La compétence produit des spécifications détaillées de mise en page CSS (grille/flexbox), des règles de transition d'état de défilement, des adaptations mobiles (hauteur maximale de 64px) et une conformité WCAG AA (lien d'évitement, `scroll-margin-top`, contrastes). Elle est utile pour les sites e-commerce, les pages marketing SaaS, les portails de contenu et les tableaux de bord d'applications web. Les plateformes cibles incluent tout projet web utilisant du HTML/CSS/JavaScript vanilla ou des frameworks modernes. La compétence guide l'utilisateur à travers un flux de travail en cinq étapes : structurer la hiérarchie des barres, définir le positionnement et les mécanismes de défilement, implémenter les transitions d'état de défilement et les micro-interactions, configurer l'adaptation mobile, et appliquer l'accessibilité WCAG AA avec la gestion du focus.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/coastdigitalgroup/coastai-skills/tree/HEAD/website-design/sticky-header-and-top-bar-system

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait Système d'en-tête collant et de barre supérieure ?

Objectif

Le système d'en-tête collant et de barre supérieure fournit un cadre complet pour concevoir, structurer et configurer le comportement des piles de navigation persistantes en haut de page. Les applications web modernes et les sites marketing utilisent fréquemment des barres supérieures superposées, combinant des bannières promotionnelles, des liens utilitaires secondaires (sélecteurs de devise/langue, liens d'assistance, localisateurs de magasins) et des barres de navigation principales.

Lorsque ces barres restent fixes ou collantes pendant le défilement, des systèmes mal conçus introduisent des problèmes d'utilisabilité critiques : consommation excessive d'espace vertical sur mobile, masquage du contenu cible des ancres (scroll-margin-top inadaptés), création de sauts de mise en page ou de saccades lors des changements d'état de défilement, conflits d'empilement z-index avec les modales ou les menus déroulants, et piégeage du focus clavier ou rupture de la navigation par repères pour les lecteurs d'écran. Cette compétence établit des normes de conception, de composition spatiale, de logique d'état de défilement, de style d'élévation et d'accessibilité pour les en-têtes collants.

Cas d'utilisation

  • En-têtes globaux e-commerce : Barres supérieures multi-niveaux combinant des bannières d'annonce (code promo / progression de livraison gratuite), des liens utilitaires (connexion au compte, sélecteur de région, localisateur de magasin) et une navigation principale collante avec barre de recherche et badge de panier.
  • En-têtes marketing SaaS et de produits : En-têtes propres qui rétrécissent au défilement (réduction du remplissage/logo) ou masquage/révélation dynamique pour maximiser la zone de contenu vertical tout en préservant un accès instantané à la navigation.
  • En-têtes de portails de contenu et de publications : En-têtes collants intégrant des barres de progression de lecture, une navigation par catégories, des indicateurs de titre d'article et des outils flottants de favori/partage rapide.
  • Applications web et shells d'applications SaaS : Barres supérieures fixes contenant le fil d'Ariane, des sélecteurs d'espace de travail actif, des déclencheurs de recherche par commande, des menus de profil utilisateur et des cloches de notification en temps réel.

Quand ne PAS l'utiliser

  • Barres d'outils de mise en forme dans le contenu : Pour les barres d'outils d'éditeur de texte enrichi ou les docks d'actions groupées qui flottent au-dessus du contenu ou se fixent à des composants d'éditeur spécifiques, utilisez le système de barre d'outils et de dock d'actions.
  • Barres de navigation inférieure mobile : Pour les onglets principaux d'application mobile épinglés en bas de la fenêtre mobile, utilisez le système de navigation inférieure.
  • Shells de navigation latérale complète : Pour les applications web SaaS complexes où la navigation principale est pilotée par un rail latéral gauche pliable, utilisez le système de navigation latérale.
  • Docks d'actions flottants : Pour les boutons contextuels flottants épinglés aux coins de la fenêtre (par exemple, widgets de chat, FAB de retour en haut), utilisez le système d'interface utilisateur collante et flottante.

Entrées

  1. Architecture des niveaux de barre supérieure : Spécification des niveaux présents (ex. : Niveau 1 : Barre d'annonce, Niveau 2 : En-tête utilitaire, Niveau 3 : Navigation principale).
  2. Modèle de comportement de défilement : Mécaniques collantes souhaitées (toujours-collant, rétrécir-au-défilement, masquer-au-défilement-vers-le-bas / révéler-au-défilement-vers-le-haut, ou statique-à-collant).
  3. Jetons de surface et de thème : Couleurs de fond de surface, jetons de bordure, effets de flou d'arrière-plan (backdrop-filter: blur()) et ombres d'élévation provenant du système d'élévation et de profondeur et du système de couleurs accessibles.
  4. Cibles de fenêtre et d'appareil : Seuils de point de rupture (< 768px, < 1024px, ≥ 1024px) pour réduire les en-têtes de bureau multi-niveaux en barres supérieures mobiles unifiées.

Sorties

  1. Spécification de mise en page et d'empilement de l'en-tête collant : Structures CSS Grid/Flexbox définissant le positionnement fixe/collant, les variables de propriété personnalisées de décalage CSS (--header-height) et les échelles de hiérarchie z-index.
  2. Règles de transition d'état de défilement et de mouvement : Spécification technique pour la logique d'écouteur de défilement, les seuils de décalage, les classes de transition CSS (.is-scrolled, .is-hidden) et les transformations accélérées par le matériel (transform: translateY()).
  3. Spécification de rétractation mobile réactive : Règles de mise en page convertissant les barres supérieures de bureau multi-lignes en un en-tête mobile unique et compact avec déclencheur de tiroir à bascule.
  4. Plan d'accessibilité WCAG AA : Implémentation du lien d'évitement (.skip-link), compensation de décalage scroll-margin-top pour les ancres de titres, évitement du piégeage du focus clavier et structure de repère pour lecteur d'écran (<header>, <nav>, role="banner").

Flux de travail

1. Structurer la hiérarchie d'empilement de la barre supérieure

Déterminer la composition de la barre supérieure multi-niveaux et établir la mise en page HTML sémantique :

  • Conteneur HTML sémantique : Enveloppez toutes les barres supérieures dans une seule balise <header role="banner"> pour maintenir un repère de bannière clair pour les utilisateurs de lecteurs d'écran.
  • Niveau 1 : Barre d'annonce (<aside> ou <div>) : Micro-bannière haute priorité tout en haut (ex. : seuil de livraison gratuite, alerte système).
  • Niveau 2 : Barre utilitaire (<div class="utility-bar">) : Liens secondaires, sélecteurs de langue/monnaie, liens de contact, support client.
  • Niveau 3 : Navigation principale (<nav aria-label="Navigation principale">) : Logo de la marque, liens des sections principales, champ de recherche, lien de compte, panier d'achat ou CTA principal.

2. Définir le positionnement et les mécanismes de défilement

Choisissez l'approche d'implémentation collante en fonction de la densité du contenu et des contraintes de la fenêtre :

  • position: sticky vs position: fixed :
    • Préférez position: sticky; top: 0; z-index: 1000; sur le conteneur pour permettre le flux naturel du document avant de le verrouiller en haut.
    • Utilisez position: fixed; top: 0; left: 0; right: 0; lorsque le contenu du corps utilise explicitement padding-top: var(--header-height);.
  • Stratégie de rétractation multi-niveaux au défilement :
    • Au-delà d'un seuil de défilement (ex. : scrollY > 50px), la barre d'annonce et la barre utilitaire défilent hors de la vue naturellement, tandis que la navigation principale se verrouille (position: sticky; top: 0;) OU l'ensemble de l'en-tête transitionne.
    • Calculez les propriétés personnalisées CSS dynamiquement (ex. : --header-height) pour que le contenu principal de la page et les liens d'ancrage s'ajustent correctement.

3. Implémenter les transitions d'état de défilement et les micro-interactions

Améliorez l'ergonomie de l'en-tête lorsque l'utilisateur fait défiler la page vers le bas :

  • Transition de rétrécissement au défilement :
    • État par défaut (en haut) : Hauteur de l'en-tête 80px, hauteur du logo 40px, remplissage 1.25rem 2rem.
    • État défilé (.is-scrolled) : Hauteur de l'en-tête 60px, hauteur du logo 30px, remplissage 0.75rem 2rem.
    • Animation fluide : Utilisez des transitions CSS accélérées par le matériel (transition: padding 0.25s ease, height 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease;).
  • Masquage/révélation dynamique (En-tête intelligent) :
    • Défilement vers le bas (scrollY > lastScrollY && scrollY > 150px) : Appliquez transform: translateY(-100%); pour faire glisser l'en-tête hors de l'écran, maximisant la zone de lecture visible.
    • Défilement vers le haut (scrollY < lastScrollY) : Appliquez transform: translateY(0); pour révéler immédiatement la navigation.
  • Élévation de surface et flou d'arrière-plan :
    • En haut de page : Fond semi-transparent ou fond plat sans ombre.
    • Au défilement : Ajoutez une surface solide/glassmorphique (background-color: rgba(255, 255, 255, 0.85); backdrop-filter: blur(12px);) et une ombre d'élévation (box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);).

4. Configurer l'adaptation pour la fenêtre mobile

Les fenêtres mobiles (< 768px) ont un espace vertical extrêmement limité :

  • Plafond de hauteur de l'en-tête mobile : Limitez la hauteur de l'en-tête mobile collant à 56px–64px maximum pour éviter de consommer plus de 10 % de la hauteur de l'écran mobile.
  • Réduction des niveaux mobiles : Masquez les barres utilitaires secondaires sur mobile, en transférant les liens utilitaires dans le tiroir de navigation mobile pliable.
  • Consolidation de la barre d'annonce : Compressez le texte de l'annonce en micro-copie concise ou en ticker à rotation automatique, ou conservez-le statique au-dessus de l'en-tête principal collant.

5. Appliquer l'accessibilité WCAG AA et la gestion du focus

  • Lien d'évitement vers le contenu principal : Fournissez un lien d'évitement de premier niveau comme premier élément focusable (<a href="#main-content" class="skip-link">Aller au contenu principal</a>). Lorsqu'il est focusé via Tab, positionnez-le visiblement au-dessus de l'en-tête collant (top: 1rem; left: 1rem; z-index: 9999;).
  • Marge de défilement des cibles d'ancrage (scroll-margin-top) : Empêchez les en-têtes collants de chevaucher les titres lorsque les utilisateurs cliquent sur des liens d'ancrage internes ou des éléments de table des matières :
    :target, [id] {
      scroll-margin-top: calc(var(--header-height) + 1.5rem);
    }
    
  • Navigation clavier et menus déroulants : Assurez-vous que tous les menus déroulants de l'en-tête (méga-menus, menus de compte, bascule hamburger mobile) sont entièrement opérables via Tab, Entrée, Espace et Échap.
  • Préférences de mouvement réduit (prefers-reduced-motion) : Respectez les préférences de mouvement de l'utilisateur en désactivant les transformations de glissement et les transitions de mise en page :
    @media (prefers-reduced-motion: reduce) {
      .site-header { transition: none !important; }
    }
    

Règles de décision

Matrice de sélection des mécaniques de défilement collant

Type de siteComportement de défilement recommandéAdaptation mobileJustification
Boutique e-commerceNav principale collante + Barres supérieures statiquesLa barre promo défile ; la nav principale reste collante (56px)Maintient la recherche, le panier et les catégories accessibles en permanence pour maximiser la conversion.
Page d'accueil / Marketing SaaSRétrécissement au défilement ou Masquage/Révélation intelligentEn-tête unifié de 60px ; masqué au défilement vers le bas, révélé au défilement vers le hautMaximise la zone visuelle du hero et l'espace de lecture tout en offrant un accès instantané à la navigation lors de l'intention.
Blog / Éditorial de contenuMasquage/Révélation intelligent avec progression de lectureBarre supérieure compacte avec indicateur de barre de progression de défilementDonne 100 % de l'espace visible à la lecture longue, retourne la navigation instantanément au défilement inverse.
App web / Tableau de bordEn-tête toujours visible fixeEn-tête fixe à une seule ligne (56px)Fonctionne comme un shell utilitaire d'application ; le masquage dynamique provoque une désorientation pendant le flux de travail.

Échelle de couches Z-Index

Maintenez une orchestration stricte des z-index dans l'ensemble du système de conception global :

z-index: 10000; -> Lien d'évitement vers le contenu (lorsqu'il est focusé)
z-index: 9000;  -> Fenêtres modales / Lightboxes
z-index: 8000;  -> Tiroir de navigation mobile / Superposition
z-index: 7000;  -> Bannières de notifications et de toasts globales
z-index: 1000;  -> Pile d'en-têtes collants / fixes
z-index: 500;   -> Barres d'outils contextuelles et docks flottants
z-index: 1;     -> Cartes de contenu en contexte d'empilement

Contraintes

  • Accessibilité (WCAG 2.1 AA) :
    • SC 2.4.1 Contournement des blocs : Doit inclure un lien visible "Aller au contenu principal" précédant la navigation de l'en-tête.
    • SC 1.4.3 Contraste : Le texte, les icônes et les déclencheurs de menu de l'en-tête doivent satisfaire un rapport de contraste minimum de 4,5:1 dans les états d'en-tête défilé et non défilé.
    • SC 2.4.7 Focus visible : Les indicateurs de focus doivent rester entièrement visibles et non rognés lors de la tabulation à travers les éléments de l'en-tête collant sur n'importe quelle couleur de fond.
  • Performance et rendu :
    • Les écouteurs de défilement doivent être limités ou liés via requestAnimationFrame ou IntersectionObserver pour éviter les sauts de mise en page synchrones forcés pendant les événements de défilement.
    • Les filtres de flou (backdrop-filter) doivent être soigneusement limités et testés pour le lag GPU sur les appareils mobiles de faible puissance.
  • Protection de la mise en page de la fenêtre : Les en-têtes collants sur les appareils mobiles ne doivent jamais dépasser 64px de hauteur ou 15% de la hauteur de la fenêtre visible lorsqu'ils sont collants.

Modèles d'échec courants

  • Bug de chevauchement du contenu d'ancrage : Cliquer sur un lien interne (#section-2) fait défiler le titre de la section directement sous l'en-tête collant, rendant le titre invisible car scroll-margin-top a été omis.
  • Accaparement de l'écran de la fenêtre : Garder un en-tête de bureau multi-niveaux de 140px collant sur les écrans mobiles, laissant moins de 60 % de l'écran mobile visible pour le contenu réel de la page.
  • Saccade de mise en page au défilement : Interroger header.offsetHeight à l'intérieur d'un écouteur window.onscroll non limité, provoquant des saccades de mise en page et un défilement saccadé à 30 ips.
  • Conflits d'empilement Z-Index : Donner à un en-tête collant z-index: 999999, le faisant s'afficher de manière maladroite au-dessus des superpositions d'arrière-plan de modale ou des lightboxes plein écran.
  • Rognage de l'indicateur de focus : Placer des éléments à l'intérieur d'un conteneur fixe avec overflow: hidden, ce qui fait que les anneaux de focus sur les liens du haut/du bas sont visuellement coupés.

Critères de validation

  • Le conteneur d'en-tête utilise le <header role="banner"> sémantique avec la sous-navigation enfermée dans <nav aria-label="...">.
  • Le lien "Aller au contenu principal" est présent, accessible comme première cible de tabulation clavier, et se positionne visiblement au-dessus de l'en-tête collant lorsqu'il est focusé.
  • Les éléments cibles des liens d'ancrage internes définissent scroll-margin-top égal ou supérieur à la hauteur maximale de l'en-tête collant.
  • La hauteur de l'en-tête collant mobile ne dépasse pas 64px, les barres supérieures secondaires étant rétractées dans le tiroir mobile.
  • Les transitions d'état de défilement (rétrécissement ou masquage/révélation) utilisent des propriétés CSS accélérées par le matériel (transform, opacity) et limitent les calculs de défilement.
  • Le contraste du texte et des icônes à travers les états transparent, défilé ou flou de verre satisfait WCAG AA (rapport ≥4,5:1).
  • La superposition des z-index adhère à l'échelle du système (en-tête à z-index: 1000, en dessous des modales et des tiroirs).

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for progressive disclosure using accordions, ensuring structural integrity, visual affordances, and accessibility across different content densities and devices.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for long-form content, managing readability, vertical rhythm, and information density to ensure a superior reading experience.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for informational elements that communicate state (Badges) and categorization (Tags) with clarity and accessibility.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for non-overlay notifications, managing global announcements and contextual inline alerts to communicate system states without interrupting the user's flow.

coastdigitalgroup/coastai-skills

Design and implement a systematic, asymmetrical bento-grid layout framework to organize diverse content types cohesively while maintaining strict visual hierarchy, logical focus order, and responsive flexibility.

coastdigitalgroup/coastai-skills

Design a responsive, mobile-first bottom navigation bar and persistent action dock system for mobile websites and web applications, establishing spatial anchors, tab bar anatomy, badge indicators, thumb-zone ergonomics, safe area inset handling, active/inactive state contrast, and desktop responsive adaptation rules.

coastdigitalgroup/coastai-skills

Design a mobile-first bottom sheet overlay system with configurable detents, drag affordances, safe area padding, responsive desktop modal/popover adaptation, and WCAG AA accessibility compliance.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for secondary navigation trails that provide orientation, context, and one-click access to parent levels in deep information architectures.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for buttons and interactive triggers, managing visual hierarchy, variant logic, and action grouping to ensure clear intent and accessible interaction.

coastdigitalgroup/coastai-skills

Design a systematic framework for date and time selection, managing calendar grids, range pickers, and scheduling interfaces to ensure precision and accessibility.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for modular content containers that maintain hierarchy, structural integrity, and action alignment across variable content and responsive viewports.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for horizontal discovery components, managing navigation affordances, scroll behavior, and accessibility to ensure effective content density without compromising usability.

coastdigitalgroup/coastai-skills

Design a systematic, highly accessible, and developer-friendly UI layout framework for code blocks, snippet showcases, multi-file code tabs, line-highlighting, diff views, and syntax token contrast in technical documentation and developer platforms.

coastdigitalgroup/coastai-skills

Design a systematic framework for global command menus (Cmd+K panels) that combines keyboard-driven navigation, command execution, and shortcut discovery into an accessible, responsive overlay.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for threaded conversations, managing nesting depths, action hierarchies, and community signaling to foster engagement and readability.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for side-by-side comparison interfaces, managing high attribute density and responsive complexity to support informed decision-making.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for user privacy, managing consent banners, preference centers, and persistent privacy controls to balance legal compliance with user trust.

coastdigitalgroup/coastai-skills

Design and implement a systematic, highly accessible, and responsive visual layout framework for conversational chat widgets, live chat boxes, and chatbot panels that ensures clear message scannability, native focus flow, and seamless mobile keyboard adaptation.

coastdigitalgroup/coastai-skills

Design a systematic, accessible, and high-conversion framework for custom select dropdowns and comboboxes, defining anatomy, states, search-filtering, and responsive mobile-adaptive patterns.

coastdigitalgroup/coastai-skills

Design and implement a systematic color palette that ensures WCAG 2.2 accessibility compliance. Trigger this skill when asked to define brand colors, create UI themes, or establish a visual system for a website.

Skills associés