Layouts responsifs avec Tailwind CSS
Ce prompt génère des layouts responsifs complets avec Tailwind CSS, adaptés du mobile au desktop. Il couvre les patterns les plus courants : dashboard avec sidebar, grilles de cartes, navigation mobile, et headers adaptatifs.
Le prompt
Crée un layout responsif complet pour [type de page].
<stack>
Framework: [Next.js App Router / React / autre]
CSS: [Tailwind CSS v4 / v3]
Composants UI: [shadcn/ui / Radix / Base UI / aucun]
</stack>
<layout-requis>
Type de layout: [dashboard avec sidebar / landing page / blog / e-commerce / documentation]
Décris la structure souhaitée:
- Header: [fixe en haut / disparaît au scroll / transparent sur hero]
- Navigation: [sidebar permanente / hamburger mobile / tabs en bas sur mobile]
- Contenu principal: [une colonne / grille de cartes / deux colonnes]
- Footer: [simple / multi-colonnes / sticky]
Breakpoints souhaités:
- Mobile: < 640px (sm)
- Tablette: 640px - 1024px (sm à lg)
- Desktop: > 1024px (lg+)
</layout-requis>
<instructions>
Pour chaque composant du layout:
1. Structure HTML sémantique
- Utilise les balises appropriées (header, nav, main, aside, footer)
- Landmarks ARIA pour l'accessibilité
- Structure logique pour le SEO
2. Design mobile-first
- Commence par le mobile puis ajoute les breakpoints
- Navigation hamburger sur mobile avec menu plein écran
- Sidebar collapser en overlay sur mobile
- Grilles: 1 colonne mobile → 2 colonnes tablette → 3-4 colonnes desktop
3. Interactions responsives
- Menu mobile: ouverture/fermeture avec state React
- Sidebar collapsible: transition smooth, icônes seules en mode compact
- Scroll: header qui change de style au scroll (si applicable)
- Touch-friendly: zones cliquables min 44x44px sur mobile
4. Patterns Tailwind
- Flexbox pour les layouts 1D (header, footer, nav)
- Grid pour les layouts 2D (contenu principal, cartes)
- Container avec max-width et padding responsif
- Spacing cohérent avec l'échelle Tailwind
</instructions>
<contraintes>
- Mobile-first obligatoire (classes de base = mobile, sm: = tablette, lg: = desktop)
- Pas de CSS custom sauf si absolument nécessaire
- Les images/médias sont responsifs (w-full, aspect-ratio)
- Le contenu ne déborde jamais horizontalement (pas de scroll horizontal)
- La navigation est accessible au clavier (focus visible, tab order logique)
- Les transitions sont subtiles (duration-200, ease-in-out)
</contraintes>
Exemple d'utilisation
Variables remplies
- Type de page : dashboard SaaS
- Framework : Next.js App Router
- CSS : Tailwind CSS v4
- Header : fixe en haut avec logo et menu utilisateur
- Navigation : sidebar permanente sur desktop, hamburger sur mobile
- Contenu : grille de cartes statistiques + tableau de données
Résultat attendu
Claude Code crée un composant DashboardLayout avec une sidebar de 256px sur desktop qui se transforme en overlay sur mobile (contrôlé par un state isSidebarOpen). Le header est fixe avec sticky top-0 z-50. La zone de contenu utilise une grille grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 pour les cartes stats, suivie d'un tableau scrollable horizontalement sur mobile. La navigation mobile utilise un bouton hamburger avec une transition translate-x pour l'entrée de la sidebar.
Conseils
- Décrivez précisément le layout souhaité, ou mieux, fournissez une capture d'écran ou un lien vers un design similaire
- Testez sur de vrais appareils en plus du mode responsive du navigateur
- Utilisez les classes
min-h-screenetflex flex-colsur le body pour que le footer reste en bas même avec peu de contenu - Pour les sidebars, préférez
transform translate-xauxdisplay none/blockpour des transitions fluides