React

Créer un Dashboard Admin avec React, Tailwind CSS et shadcn/ui

Guide complet pour construire un panneau admin moderne avec React, Tailwind CSS 3 et shadcn/ui : sidebar rétractable, topbar et dark mode.

17 Feb 2026 7 min de lecture 24 vues
24

Lectures

7

Minutes

0

Partages

Introduction

Construire un panneau d'administration moderne ne devrait pas prendre des semaines. Grâce à la combinaison de technologies puissantes telles que React, Tailwind CSS 3 et shadcn/ui, vous pouvez créer une interface admin professionnelle, responsive et personnalisable en quelques heures. Ces outils offrent une flexibilité et une efficacité qui permettent aux développeurs de se concentrer sur la logique métier plutôt que sur la configuration initiale. Dans cet article, nous allons explorer comment construire un dashboard admin complet de zéro, étape par étape. Vous apprendrez à configurer un projet React avec Tailwind CSS 3, à installer et utiliser shadcn/ui, et à créer un layout admin avec une sidebar et une topbar. Nous construirons également des pages essentielles comme le Dashboard, les Utilisateurs, et les Paramètres. Enfin, nous ajouterons un thème sombre pour améliorer l'expérience utilisateur.

Initialisation du Projet

La première étape pour créer notre dashboard admin est d'initialiser un nouveau projet React. Pour cela, nous utiliserons Vite, un outil de build moderne qui offre des temps de démarrage incroyablement rapides et une expérience de développement fluide.

Création du Projet avec Vite

Commencez par créer un nouveau projet avec Vite en utilisant le modèle TypeScript pour React.
npm create vite@latest admin-dashboard -- --template react-ts
cd admin-dashboard
npm install

Installer Tailwind CSS 3

Ensuite, nous devons installer Tailwind CSS 3, un framework CSS qui nous permettra de styliser notre interface de manière rapide et efficace.
npm install -D tailwindcss@3 postcss autoprefixer
npx tailwindcss init -p

Configuration de Tailwind CSS

Pour activer le dark mode et définir des couleurs personnalisées, modifiez le fichier `tailwind.config.js` :
module.exports = {
  darkMode: ["class"],
  content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"],
  theme: {
    extend: {
      colors: {
        border: "hsl(var(--border))",
        background: "hsl(var(--background))",
        foreground: "hsl(var(--foreground))",
        primary: {
          DEFAULT: "hsl(var(--primary))",
          foreground: "hsl(var(--primary-foreground))",
        },
        secondary: {
          DEFAULT: "hsl(var(--secondary))",
          foreground: "hsl(var(--secondary-foreground))",
        },
        muted: {
          DEFAULT: "hsl(var(--muted))",
          foreground: "hsl(var(--muted-foreground))",
        },
        card: {
          DEFAULT: "hsl(var(--card))",
          foreground: "hsl(var(--card-foreground))",
        },
      },
    },
  },
};

Installation et Utilisation de shadcn/ui

Shadcn/ui est une bibliothèque de composants UI qui simplifie le processus de création d'interfaces utilisateur. Elle offre un ensemble de composants prédéfinis qui peuvent être facilement intégrés dans votre projet.

Installation de shadcn/ui

Pour installer shadcn/ui, exécutez la commande suivante :
npm install @shadcn/ui

Utilisation des Composants de shadcn/ui

Une fois installé, vous pouvez commencer à utiliser les composants de shadcn/ui pour construire l'interface de votre dashboard. Par exemple, pour ajouter une sidebar, vous pouvez utiliser le composant `Sidebar` :
import { Sidebar } from '@shadcn/ui';

function AdminSidebar() {
  return (
    
      {/* Ajoutez vos éléments de menu ici */}
    
  );
}

Création d'un Layout Admin

Un layout admin typique comprend une sidebar pour la navigation et une topbar pour les actions globales. Nous allons maintenant mettre en place ce layout.

Création de la Sidebar

La sidebar est un élément crucial de notre dashboard. Elle permet aux utilisateurs de naviguer facilement entre les différentes sections de l'application.
import React from 'react';
import { Sidebar, SidebarItem } from '@shadcn/ui';

function AdminSidebar() {
  return (
    
      
      
      
    
  );
}

export default AdminSidebar;

Ajout de la Topbar

La topbar est utilisée pour afficher des actions globales ou des informations utilisateur. Voici comment vous pouvez l'ajouter :
import React from 'react';
import { Topbar, TopbarItem } from '@shadcn/ui';

function AdminTopbar() {
  return (
    
      
      
    
  );
}

export default AdminTopbar;

Construction des Pages

Maintenant que notre layout est en place, nous allons créer les pages essentielles de notre dashboard : Dashboard, Utilisateurs, et Paramètres.

Page Dashboard

La page Dashboard doit fournir un aperçu rapide des informations clés. Voici un exemple de ce à quoi cela pourrait ressembler :
import React from 'react';

function DashboardPage() {
  return (
    

Dashboard

Bienvenue sur le tableau de bord !

); } export default DashboardPage;

Gestion des Utilisateurs

La page Utilisateurs permet de gérer les utilisateurs de l'application. Vous pouvez l'améliorer en y ajoutant des fonctionnalités telles que l'ajout, la suppression et la modification des utilisateurs.
import React from 'react';

function UsersPage() {
  return (
    

Utilisateurs

Liste des utilisateurs enregistrés dans le système.

); } export default UsersPage;

Page Paramètres

La page Paramètres permet à l'utilisateur de personnaliser son expérience et de configurer certaines préférences.
import React from 'react';

function SettingsPage() {
  return (
    

Paramètres

Configurez vos préférences ici.

); } export default SettingsPage;

Ajout d'un Thème Sombre

L'ajout d'un thème sombre permet d'améliorer l'accessibilité et le confort visuel. Tailwind CSS facilite l'implémentation de cette fonctionnalité grâce à sa prise en charge intégrée du dark mode.

Activation du Dark Mode

Pour activer le dark mode, utilisez la classe `dark` sur l'élément racine de votre application.
import React, { useState } from 'react';

function App() {
  const [darkMode, setDarkMode] = useState(false);

  return (
    
{/* Autres composants ici */}
); } export default App;

Bonnes Pratiques

Pour garantir que votre dashboard admin est à la fois fonctionnel et maintenable, voici quelques bonnes pratiques à suivre :

Utilisation de Composants Réutilisables

Créez des composants réutilisables pour éviter la duplication de code et faciliter la maintenance.

Suivi des Conventions de Nommage

Utilisez des conventions de nommage claires et cohérentes pour vos composants et fichiers.

Conseil pro : Envisagez d'utiliser des hooks personnalisés pour encapsuler la logique complexe et la réutiliser à travers votre application.

Pièges Courants

Lors de la création d'un dashboard admin, il y a plusieurs pièges courants à éviter :

Mauvaise Gestion de l'État

Une mauvaise gestion de l'état peut mener à des bugs difficiles à déboguer. Utilisez des outils comme Redux ou Context API pour gérer l'état global de votre application.

Ignorer la Responsivité

Assurez-vous que votre interface est responsive et fonctionne correctement sur tous les appareils. Tailwind CSS offre des utilitaires de design responsive faciles à utiliser.

Recapitulatif

En suivant ce guide, vous avez appris à créer un dashboard admin moderne avec React, Tailwind CSS, et shadcn/ui. Nous avons couvert l'initialisation du projet, l'installation des dépendances nécessaires, la création d'un layout admin, et l'ajout de pages essentielles. De plus, nous avons implémenté un thème sombre pour améliorer l'expérience utilisateur. Ces outils combinés vous permettent de développer rapidement une interface utilisateur professionnelle sans sacrifier la flexibilité ou la personnalisation. En appliquant les bonnes pratiques et en évitant les pièges courants, vous vous assurez que votre dashboard est maintenable et évolutif.
Technologie Utilisation Avantages
React Construction de l'interface utilisateur Composants réutilisables, état local
Tailwind CSS Stylisation de l'interface Design responsive, classes utilitaires
shadcn/ui Composants UI Facilité d'utilisation, intégration rapide
En conclusion, la création d'un dashboard admin avec ces technologies est non seulement efficace mais aussi enrichissante. En investissant du temps dans la configuration initiale, vous gagnerez en productivité à long terme. N'hésitez pas à explorer davantage ces outils pour découvrir de nouvelles possibilités d'amélioration et d'extension de votre application.

Intégrer une authentification avec shadcn/ui et React

Un dashboard admin n'est complet qu'avec une couche d'authentification robuste. Voici comment implémenter un système de login protégé avec React, Tailwind et les composants shadcn/ui.

// hooks/useAuth.ts
import { create } from 'zustand';
import { persist } from 'zustand/middleware';

interface AuthState {
  user: User | null;
  token: string | null;
  login: (email: string, password: string) => Promise;
  logout: () => void;
  isAuthenticated: () => boolean;
}

export const useAuth = create()(
  persist(
    (set, get) => ({
      user: null,
      token: null,
      isAuthenticated: () => !!get().token,

      login: async (email, password) => {
        const res = await fetch('/api/auth/login', {
          method: 'POST',
          headers: { 'Content-Type': 'application/json' },
          body: JSON.stringify({ email, password }),
        });
        if (!res.ok) throw new Error('Identifiants incorrects');
        const { user, token } = await res.json();
        set({ user, token });
      },

      logout: () => set({ user: null, token: null }),
    }),
    { name: 'auth-storage' }
  )
);
// components/ProtectedRoute.tsx
import { Navigate } from 'react-router-dom';
import { useAuth } from '../hooks/useAuth';

export function ProtectedRoute({ children }: { children: React.ReactNode }) {
  const { isAuthenticated } = useAuth();

  if (!isAuthenticated()) {
    return ;
  }

  return <>{children};
}

// App.tsx - utilisation

    
  
} />

Conseil pro : Utilisez Zustand avec le middleware persist pour conserver l'authentification après rafraîchissement de la page. Zustand est bien plus léger que Redux pour ce type d'état global simple, et son API est intuitive sans boilerplate.

Tags

React Tailwind CSS

Partagez cet article

Twitter Facebook LinkedIn
JY
Jordane YENO

Developpeur Full Stack passionne par le web et les nouvelles technologies

En savoir plus

Articles similaires