Projet 2 — Dashboard admin (Niv. ⭐⭐)
⏱️ TL;DR — Un back-office : navbar supérieure, sidebar latérale (offcanvas sur mobile), rangée de cartes statistiques, un tableau de données avec actions, et une zone de graphiques (placeholders). Objectif : composer une vraie mise en page d’application.
🎯 Cahier des charges
- Layout : navbar en haut (
sticky-top), sidebar à gauche en desktop, offcanvas en mobile. - Cartes stats : 4 cartes (Utilisateurs, Ventes, Revenu, Taux) avec valeur, libellé et petite tendance.
- Tableau : liste d’éléments (rayé, hover, responsive), colonne d’actions avec un dropdown par ligne.
- Zone graphiques : deux blocs avec des placeholders (squelettes) en attendant les données.
- Dark mode : un interrupteur dans la navbar.
🔍 Endroits à visiter
| Besoin | Chapitre |
|---|---|
| Sidebar + offcanvas responsive | 5.4 |
| Cartes stats | 4.3, 7.2 |
| Tableau | 3.4 |
| Dropdown d’actions | 5.3 |
| Placeholders | 4.5 |
| Dark mode | 9.1, 9.3 |
| Layout flex | 2.5 |
Jalons
- La sidebar devient un offcanvas sous
lg. - Les 4 cartes stats sont sur une ligne en desktop, empilées en mobile.
- Le tableau défile horizontalement sur petit écran.
- Chaque ligne a un menu d’actions.
- L’interrupteur bascule tout le dashboard en sombre.
💡 Indice de layout
<div class="d-flex">
<!-- sidebar desktop -->
<aside class="d-none d-lg-block border-end" style="width:250px">…</aside>
<!-- contenu -->
<main class="flex-grow-1 p-4">
<div class="row row-cols-1 row-cols-sm-2 row-cols-xl-4 g-3">
<div class="col"><div class="card"><div class="card-body">…</div></div></div>
</div>
<div class="table-responsive mt-4">
<table class="table table-hover align-middle">…</table>
</div>
</main>
</div>La même sidebar est dupliquée en offcanvas pour le mobile, déclenchée par un bouton de la navbar.
Pour aller plus loin
- Rendez les cartes stats cliquables (filtrent le tableau).
- Ajoutez une pagination sous le tableau (5.2).
Projet suivant : Projet 3 — Formulaire multi-étapes