Communitygithub.com

Système de Mise en Page de Tableau de Bord

Concevez un framework de mise en page systématique pour les applications web multi-panneaux verrouillées sur la zone d'affichage et les tableaux de bord SaaS, établissant le confinement du défilement, les panneaux repliables et des adaptations responsives robustes.

Qu'est-ce que Système de Mise en Page de Tableau de Bord ?

Ce système fournit une méthodologie de conception complète pour créer des interfaces web verrouillées sur la zone d'affichage avec plusieurs panneaux, souvent appelées shells d'application ou espaces de travail. Contrairement aux pages web classiques qui défilent indéfiniment, un shell de tableau de bord verrouille la hauteur de la fenêtre à 100dvh et divise l'espace de travail en zones fonctionnelles distinctes. L'approche systématique résout les problèmes courants comme les 'défilement dans le défilement', les à-coups lors du repli des panneaux et les pièges de focus des boîtes de dialogue, assurant une expérience utilisateur fluide et accessible. Le système détaille les règles de conception pour le confinement du défilement, les transitions animées avec accélération matérielle, les points d'ancrage ARIA pour l'accessibilité, et les adaptations responsives pour les écrans de bureau, tablette et mobile. Il est idéal pour les espaces de travail SaaS, les tableaux de bord d'analyse de données et les interfaces d'édition de contenu riches, en veillant à ce que la mise en page reste stable et performante sur tous les appareils.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/coastdigitalgroup/coastai-skills/tree/HEAD/website-design/dashboard-layout-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 de Mise en Page de Tableau de Bord ?

Objectif

Le Système de Mise en Page de Tableau de Bord fournit une méthodologie de conception systématique pour les interfaces web multi-panneaux verrouillées sur la zone d'affichage (souvent appelées shells d'application ou espaces de travail). Contrairement aux pages web standard qui défilent indéfiniment dans un seul conteneur de défilement, un shell de tableau de bord verrouille la hauteur de la fenêtre principale à exactement 100vh (ou 100dvh) et partitionne l'espace de travail en zones fonctionnelles distinctes.

Une approche systématique résout les points de friction spatiaux courants — tels que les blocages 'défilement dans le défilement', l'effet de rebond de la zone d'affichage, les décalages de mise en page lors des transitions de repli des panneaux et les pièges de focus des boîtes de dialogue qui se chevauchent. Elle comble le fossé entre la conception visuelle esthétique et le confinement CSS technique, résultant en un espace de travail cohérent, hautement fonctionnel et accessible.

Cas d'utilisation

  • Espaces de travail principaux B2B SaaS : Plateformes web nécessitant des vues simultanées de barres latérales, filtres, contrôles de liste et panneaux de détails de contenu.
  • Tableaux de bord d'analyse de données : Grilles multi-panneaux à haute densité présentant des données en direct, des métriques, des graphiques et des barres latérales de contrôle dans une vue unifiée.
  • Panneaux d'administration et d'opérations : Logiciels opérationnels lourds nécessitant des en-têtes d'actions fixes et des tiroirs de détails contextuels adjacents à des grilles de données étendues.
  • Interfaces d'édition de contenu riche : Mises en page avec des tiroirs latéraux de formatage/propriétés repliables flanquant un canevas central ou un espace de travail de texte enrichi (par exemple, éditeurs CMS, constructeurs d'e-mails et outils de canevas de conception).

Quand ne PAS l'utiliser

  • Pages marketing et d'atterrissage : Là où des parcours de défilement linéaire et vertical optimisés pour la narration et les appels à l'action sont requis. Utilisez hero-design-system et section-composition-system à la place.
  • Articles éditoriaux et de blog : Là où les lecteurs s'attendent à un défilement natif standard du navigateur avec un flux de texte linéaire unique. Utilisez article-layout-system et table-of-contents-system.
  • Pages de listes de produits e-commerce (PLP) : Là où le défilement infini ou les mises en page paginées standard fonctionnent mieux pour un balayage continu des produits.
  • Outils utilitaires simples : Utilitaires à entrée unique (par exemple, un convertisseur de fichiers simple ou un redimensionneur d'images) qui ne bénéficient pas d'un shell de mise en page multi-panneaux.

Entrées

  1. Inventaire des panneaux de l'espace de travail : Liste des régions spatiales requises par l'application (par exemple, Barre de navigation latérale, Barre d'actions de l'espace de travail, Espace de travail de contenu central, Tiroir de propriétés droit).
  2. Disposition des contrôles interactifs : Spécifications pour les panneaux repliables, les volets redimensionnables et les zones de déclenchement.
  3. Jetons de typographie et d'espacement : Systèmes de typographie fluide et d'espacement relatif (fluid-spacing-system et fluid-typography-system) pour établir des grilles d'alignement propres.
  4. Points de rupture cibles : Définitions de mise en page des appareils issues de responsive-grid-system pour déterminer le pliage des panneaux, le repli des rails et les transitions des tiroirs mobiles.

Sorties

  1. Plan de confinement de la zone d'affichage : Spécifications spatiales HTML et CSS grid/flexbox verrouillant les dimensions parentes à 100dvh et isolant le défilement à des sous-conteneurs spécifiques.
  2. Spécification de composition des panneaux : Définition visuelle, contraintes de largeur et lignes de bordure partitionnant la navigation, les en-têtes utilitaires et les espaces de travail.
  3. Modèle de transition et de mouvement : Directives d'animation CSS accélérées par le matériel (transform, opacity) pour des transitions de panneaux repliables fluides et sans décalage.
  4. Règles de pliage responsive : Spécifications détaillant l'adaptation de la mise en page sur les limites de zone d'affichage de bureau, tablette et mobile.
  5. Carte des points de repère d'accessibilité : Régions de rôles ARIA définies et paramètres du flux de navigation au clavier.

Flux de travail

1. Établir le verrouillage de la zone d'affichage et le confinement du défilement

Verrouillez la zone d'affichage principale du navigateur pour empêcher le défilement global de la page et l'effet de rebond. Tous les composants de mise en page doivent tenir dans ce conteneur de zone d'affichage rigide, et le défilement doit être délégué strictement à des panneaux de contenu isolés :

  • Définissez le conteneur parent (par exemple, .app-shell) avec width: 100vw et height: 100dvh (hauteur de zone d'affichage dynamique) avec overflow: hidden.
  • Partitionnez le .app-shell à l'aide d'une grille de mise en page à 2 niveaux :
    • Niveau 1 (Grille externe) : Sépare la barre latérale gauche de l'espace de travail de contenu droit.
    • Niveau 2 (Grille interne) : Sépare la barre d'outils/en-tête de l'espace de travail du canevas de contenu défilant.
  • Pour les panneaux défilables, appliquez overflow-y: auto et -webkit-overflow-scrolling: touch pour garantir un défilement inertiel fluide sur Safari mobile.

2. Définir les ancres visuelles et les bordures des panneaux

Utilisez des limites visuelles claires pour organiser les tableaux de bord à haute densité sans ajouter de bruit visuel :

  • Séparation par bordure : Évitez les ombres portées lourdes entre les panneaux adjacents persistants. Utilisez plutôt des séparateurs de bordure propres et à faible contraste de 1px (par exemple, 1px solid var(--border-neutral-muted)) pour partitionner les sections.
  • Contraste d'arrière-plan : Utilisez des différences subtiles de teinte d'arrière-plan pour distinguer la navigation du contenu actif. Définissez la barre latérale de navigation sur une teinte légèrement plus foncée ou plus claire (par exemple, une teinte neutre) tandis que l'espace de travail de contenu principal utilise un canevas blanc propre ou une surface sombre profonde.
  • Ombres de défilement : Pour les zones de contenu défilantes, implémentez des superpositions de dégradé linéaire subtiles aux limites supérieure et inférieure pour signaler visuellement à l'utilisateur que plus de contenu se trouve au-delà du pli.

3. Concevoir les mécanismes de panneaux repliables

Les panneaux repliables (tels que les barres latérales ou les tiroirs de détails droits) doivent changer d'état en douceur sans introduire de décalage de mise en page cumulatif (CLS) ou de saccades visuelles :

  • Évitez les transitions de largeur : Animer la propriété CSS width force le navigateur à recalculer les mises en page de tous les éléments enfants à chaque image, entraînant de faibles taux d'images par seconde.
  • Préférez les transformations : Positionnez les tiroirs latéraux de manière absolue ou hors des limites du canevas, et animez leur visibilité à l'aide de la propriété CSS transform: translateX() combinée à des transitions accélérées par le matériel.
  • Masquage du contenu : Utilisez overflow: hidden sur les blocs conteneurs pour que les panneaux coulissants se masquent proprement derrière les vues adjacentes.

4. Coder et transmettre les points de repère d'accessibilité

Les modèles de mise en page de tableau de bord doivent fournir des hiérarchies de points de repère sémantiques structurées pour les lecteurs d'écran et les utilisateurs du clavier :

  • Attribution des points de repère : Assurez-vous que chaque panneau correspond à une balise sémantique HTML5 appropriée :
    • Barre latérale de navigation globale : <nav aria-label="Navigation principale">
    • Barre d'outils/en-tête de l'espace de travail : <header>
    • Espace de travail central : <main>
    • Tiroir de propriétés/contexte : <aside aria-label="Propriétés et métadonnées">
  • Gestion du focus : Lorsqu'un panneau repliable est fermé, déplacez programmatiquement le focus vers le bouton déclencheur qui l'a fermé. Lorsqu'un tiroir mobile est ouvert, piégez le focus de tabulation du clavier dans ce panneau.
  • Attribut inert : Basculez l'attribut HTML inert sur le panneau principal central lorsqu'un panneau modal ou un tiroir latéral mobile est actif, empêchant les utilisateurs du clavier de tabuler accidentellement hors de la superposition d'écran visible.

5. Planifier les adaptations responsives (règles de pliage)

Adaptez l'espace de travail du tableau de bord avec grâce sur divers appareils :

  • Plage de bureau (>1200px) : Mise en page multi-panneaux entièrement dépliée. Barre latérale de navigation gauche fixe, en-tête d'espace de travail fixe, canevas central à défilement automatique, tiroir de propriétés droit déplié.
  • Plage tablette (768px-1200px) : Repliez la barre latérale de navigation gauche en un "Rail" compact (affichant uniquement les icônes). Faites pivoter le tiroir de propriétés droit d'une colonne de grille persistante à une feuille de superposition déclenchée par un bouton d'action.
  • Plage mobile (<768px) : Cachez à la fois la barre latérale et le tiroir de propriétés derrière des tiroirs de superposition. La mise en page principale se simplifie en une vue à colonne unique composée d'un en-tête de barre d'outils mobile contenant un déclencheur de menu hamburger, un bouton d'action et l'espace de travail de contenu défilant isolé.

Règles de décision

Grille vs. Flexbox pour la structure du shell

AspectUtiliser CSS GridUtiliser CSS Flexbox
Axe principalBidimensionnel (lignes et colonnes sont dynamiques/rigides).Unidimensionnel (piles de lignes linéaires ou piles de colonnes).
Objectif de mise en pageStructure du cadre externe (Colonne de la barre latérale + Colonne du contenu principal).Alignement du contenu de l'en-tête interne (Logo à gauche + Actions à droite).
Repli des panneauxLorsque les colonnes de la barre latérale se replient dynamiquement à exactement 0 de largeur.Lorsque les enfants doivent grandir, rétrécir et s'enrouler naturellement.

Gestion du défilement : Défilement global vs. Défilement spécifique au panneau

  • Défilement global de la page (À ne PAS utiliser dans les tableaux de bord) : Provoque le défilement de l'ensemble de l'en-tête, de la barre latérale et du cadre du tableau de bord hors de l'écran, forçant l'utilisateur à remonter pour accéder à la navigation.
  • Défilement isolé du panneau (Modèle standard de tableau de bord) : Maintient le cadre externe (en-têtes, rails, actions) parfaitement ancré aux bords de l'écran tandis que seul le tableau de données, le flux de graphiques ou l'éditeur de document défile indépendamment dans leurs cellules de zone d'affichage.

Contraintes

  • Hauteur de zone d'affichage dynamique : Utilisez toujours les unités dvh (100dvh) au lieu de vh (100vh) pour le conteneur parent externe. Sur les navigateurs mobiles, l'unité vh standard ne tient pas compte du déploiement/rétractation des chrome du navigateur (barres d'adresse, contrôles de navigation), ce qui provoque le rognage du bas du tableau de bord hors de portée.
  • Indicateurs de focus : Assurez-vous que les anneaux de focus sont hautement visibles sur les déclencheurs de panneaux interactifs. Ils doivent respecter les règles de contraste WCAG 2.2 et ne jamais être rognés par les bords du conteneur overflow: hidden.
  • Pas de doubles barres de défilement : Assurez-vous que les marges, les paddings et les limites de hauteur du conteneur sont calculés exactement (à l'aide de calc() CSS ou de contraintes automatiques Flex/Grid) afin qu'un panneau défilant ne déclenche jamais de doubles barres de défilement imbriquées côte à côte.
  • Tailles minimales des cibles tactiles : Les gestionnaires pour les panneaux redimensionnables, les boutons de dépliage de la barre latérale et les bascules d'onglets doivent fournir une cible tactile d'au moins 24x24px (WCAG 2.2 SC 2.5.8), avec 44x44px préféré.

Modèles de défaillance courants

  • Le rognage de la barre d'adresse (Mobile) : Utiliser 100vh sur mobile, ce qui fait que le pied de page du profil utilisateur ou les boutons de soumission principaux en bas de la barre latérale se cachent derrière les barres d'action du navigateur mobile.
  • La saccade de mise en page : Animer la propriété width sur un menu de navigation, provoquant des sauts et des rendus rapides des cartes, graphiques et grilles à l'intérieur de l'espace de travail principal lors des transitions de repli.
  • Le piège à défilement / Fuite de défilement : Ne pas parvenir à isoler les événements de défilement dans un panneau de superposition ouvert, ce qui provoque le défilement du contenu d'arrière-plan principal en dessous lorsque l'utilisateur glisse sur un tiroir de navigation mobile.
  • Conteneurs de défilement non étiquetés : Ajouter overflow: auto à un conteneur de page sans rôle ou chemin de focus au clavier associé, ce qui empêche les utilisateurs uniquement clavier de faire défiler les données dans ce conteneur.
  • Chaos de double barre de défilement : Créer des wrappers imbriqués sans limites de hauteur strictes, ce qui provoque l'affichage de doubles barres de défilement à la fois dans la fenêtre du navigateur principal et dans le conteneur interne, perturbant la navigation.

Critères de validation

  • La hauteur du conteneur de mise en page externe est verrouillée à 100dvh (ou 100vh de secours) avec overflow du document principal défini sur hidden.
  • Aucune double barre de défilement n'est visible lors de l'interaction avec des listes de données défilantes ou des espaces de travail.
  • Les états responsives sont définis sur les plages de bureau, tablette et mobile avec des transformations appropriées de tiroir et de rail.
  • Les panneaux coulissants et les barres latérales sont animés à l'aide de propriétés CSS accélérées par le matériel (transform: translateX()).
  • L'espace de travail utilise des points de repère sémantiques HTML5 appropriés (<nav>, <header>, <main>, <aside>).
  • Lorsqu'un tiroir de superposition ou un panneau est ouvert sur mobile, les éléments d'arrière-plan sont définis sur inert ou cachés du flux de focus du clavier.
  • Les cibles tactiles sur les déclencheurs de panneaux, les bascules et les poignées répondent à l'exigence de taille minimale de 24x24px (44px préféré).
  • Les éléments de panneau d'arrière-plan inactifs ne défilent pas lors du balayage/défilement dans les feuilles de superposition actives de la couche supérieure (prévention des fuites de défilement).

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