Plan d'implémentation : Navigation Mobile & Affichage Responsive (Style Astro)
1. Contexte & Objectifs
Section titled “1. Contexte & Objectifs”L’objectif de cette tâche est d’aligner l’expérience mobile du blog AMN (/blog) et des pages de détails de post (/blog/[slug]) sur les standards de conception du site officiel d’Astro (astro.build) :
- Header Mobile avec Menu Burger : Affichage d’un bouton burger accessible à trois barres horizontales basculant sur une croix de fermeture
✕lors de l’ouverture. - Tiroir de Navigation Mobile (Drawer) : Panneau plein écran sombre reprenant l’intégralité des éléments du header :
- Liens directs (
Blog) - Accordéons repliables avec chevrons animés (
Resources,Community,Enterprise) - Rangée inférieure : Liens vers les réseaux sociaux adaptés au thème sombre + Bouton d’action pilule dégradé (Read the docs).
- Liens directs (
- Ordre d’affichage responsive sur
/blog:- Sur mobile, la liste des articles de blog s’affiche immédiatement sous le Hero (Welcome, world), avant les éléments secondaires (sidebar réorganisée en bas de page).
- Affichage responsive des détails d’article (
/blog/[slug]) :- Estrade visuelle avec encoches responsives (
clip-path), métadonnées centrées et lecture calibrée du contenu.
- Estrade visuelle avec encoches responsives (
2. Analyse de l’intégration native Astro
Section titled “2. Analyse de l’intégration native Astro”Constat technique
Section titled “Constat technique”- Astro ne propose pas de composant de menu burger pré-packagé ou “natif” dans son runtime core.
- En revanche, la philosophie officielle d’Astro (zéro JavaScript inutile) privilégie l’utilisation de composants Astro standards (
.astro), de balises HTML5 sémantiques et accessibles (<details>,<summary>,<button aria-expanded>), et d’un script scoped vanilla très léger. - Cette approche garantit des performances maximales sans ajouter de librairie externe lourde.
3. Architecture Technique
Section titled “3. Architecture Technique”3.1 Gestion centralisée dans Sanity
Section titled “3.1 Gestion centralisée dans Sanity”- Schéma
headerSettings: Ajout du champctaButton(label et lien URL) pour piloter le bouton pilule dégradé depuis le Studio Sanity. - Récupération unifiée : Le layout
MainLayout.astrotransmet à<Header />les éléments de navigation (navItems), le bouton d’action (ctaButton), et les liens sociaux (socialLinkspartagés avecfooterSettings).
3.2 Composant Header.astro
Section titled “3.2 Composant Header.astro”- Bouton burger mobile (
#mobile-menu-btn) avec icônes SVG commutables (3 barres / croix). - Tiroir fixe (
#mobile-menu) enfixed inset-x-0 top-16 h-[calc(100dvh-4rem)] z-50 bg-[#0b0d13]. - Balises HTML
<details>et<summary>avec chevrons animés (group-open:rotate-180) pour les sous-menus accordéons. - Gestion du blocage du défilement d’arrière-plan (
document.body.classList.toggle('overflow-hidden')).
3.3 Réorganisation responsive sur /blog/index.astro
Section titled “3.3 Réorganisation responsive sur /blog/index.astro”- Structure flexbox adaptative :
- Mobile (
< lg) :<section>des articles enorder-1,<aside>(BlogSidebar) enorder-2. - Desktop (
lg:flex-row) :<aside>enlg:order-1(colonne gauche),<section>enlg:order-2(colonne droite).
- Mobile (
4. Validation visuelle & Tests
Section titled “4. Validation visuelle & Tests”- Résolution testée : 390x844 (Mobile standard).
- Page
/blog: Affichage immédiat du Hero puis du premier article avec ses tags et sa couverture. - Tiroir mobile : Déploiement fluide à l’ouverture, chevrons d’accordéons fonctionnels, icônes sociales contrastées et bouton dégradé conforme.
- Détail d’article : Image avec effet d’estrade adaptée, typographie de lecture fluide et navigation liée.