Interface Pro avec shadcn-ui
À l'issue de cette leçon, le stagiaire comprend le principe d'incorporation de shadcn-ui, installe la CLI sur un projet React/Next, ajoute son premier composant et l'adapte à sa charte.
Le principe shadcn-ui — incorporer plutôt qu'installer
shadcn-ui n'est pas une bibliothèque de composants au sens traditionnel. C'est un catalogue de composants React, sobres et accessibles, dont vous copiez le code source dans votre projet. Vous ne les installez pas comme une dépendance npm. Vous les incorporez.
Propriétaire du code
Le code est dans votre projet, vous pouvez le modifier sans contourner une API rigide. Approche proche de l'esprit open source classique : du code qu'on lit, qu'on comprend, qu'on modifie.
Pas de dépendance fragile
Pas d'éditeur tiers qui pourrait abandonner sa bibliothèque ou changer son modèle de licence. Votre application ne dépend que de ce que vous avez réellement incorporé.
Adapté à votre charte
Vous modifiez les composants pour les aligner sur votre identité visuelle. Pas de surcouches CSS pour contourner des styles imposés.
Accessibilité native
Les composants reposent sur Radix UI en sous-couche, qui gère les primitives d'accessibilité (focus, ARIA, navigation clavier). Vous héritez de cette qualité sans y penser.
Pré-requis techniques
shadcn-ui s'appuie sur trois fondations : React (framework de composants), Tailwind CSS (utilitaires de style), et Radix UI (primitives accessibles). La CLI shadcn installe automatiquement les pièces manquantes au moment où vous ajoutez un composant.
Pour un projet Next.js ou Vite déjà en place, l'intégration prend quelques minutes. Pour un projet HTML statique, shadcn n'est pas adapté — restez sur du HTML/CSS direct ou passez à une stack React si vous voulez en bénéficier.
Pour la plupart des projets, une demi-douzaine de composants couvre 80 % des besoins : Button, Input, Form pour les formulaires ; Card, Dialog, Sheet pour les structures de page ; Table, Tabs, Toast pour les interactions courantes. Installez-les au fur et à mesure de vos besoins, pas tous d'un coup.
Démo — initialiser et ajouter un composant
Lancer l'initialisation dans le terminal du projet :
npx shadcn@latest init. La CLI pose quelques questions (style de base, palette, support TypeScript). Les réponses par défaut conviennent pour démarrer.La CLI fait son travail. Tailwind est installé s'il manquait. Un fichier
components.jsonapparaît à la racine — c'est la configuration de shadcn dans votre projet. Un dossiercomponents/ui/est créé pour accueillir les composants.Ajouter le premier composant :
npx shadcn@latest add button. Le fichiercomponents/ui/button.tsxapparaît. Vous pouvez l'ouvrir : c'est du code lisible, pas une boîte noire.Importer et utiliser dans une page React (par exemple
app/page.tsx) :import { Button } from '@/components/ui/button', puis<Button>Cliquer</Button>. Lancer le serveur (npm run dev), voir le bouton sobre, accessible, fonctionnel.
Adapter à votre charte
Pour adapter shadcn-ui à votre identité visuelle, vous éditez les variables CSS du projet — généralement dans app/globals.css ou équivalent selon le framework.
/* app/globals.css */ @layer base { :root { --primary: 15 65% 41%; /* terre cuite */ --primary-foreground: 40 30% 96%; /* ivoire */ --background: 40 30% 96%; /* fond ivoire */ --foreground: 40 8% 10%; /* texte encre */ --accent: 160 12% 35%; /* sage */ --ring: 15 65% 41%; /* focus terre cuite */ } }
Quelques minutes suffisent à aligner shadcn-ui sur votre palette. Les composants s'adaptent automatiquement : boutons, formulaires, dialogues prennent votre identité sans modification supplémentaire.
Ce que shadcn-ui change concrètement
Vitesse de développement
Un formulaire de contact, un dialogue de confirmation, un tableau filtrable : 10 à 30 minutes au lieu de plusieurs heures de bricolage CSS. Le composant est là, testé, accessible.
Cohérence visuelle
Tous vos composants suivent la même grammaire de design. Espacement, contraste, comportements interactifs cohérents. Pas d'effort spécifique pour y arriver.
Effort d'apprentissage modeste
Une fois Tailwind compris (utilitaires de style), shadcn-ui s'apprend en lisant les composants. Moins de jargon qu'une bibliothèque type Material-UI.
Pas de couplage fort
Vous pouvez quitter shadcn-ui à tout moment sans réécrire votre app : le code est dans votre projet. Bonne assurance contre l'obsolescence.
Recomposer un écran avec shadcn-ui
Choisissez UN écran existant de votre projet, ou un nouveau écran à concevoir (formulaire d'inscription, fiche produit, écran de profil). Recomposez-le avec 4 à 6 composants shadcn-ui. Comparez le rendu avant/après en termes de : (1) cohérence visuelle, (2) accessibilité, (3) temps de développement. Documentez votre choix de palette dans le CLAUDE.md.
Cet exercice est à conserver dans votre dossier de stagiaire. Il n'est pas évalué mais il est tracé.
- ui.shadcn.com site officiel, catalogue de composants et documentation
- radix-ui.com bibliothèque de primitives accessibles utilisée en sous-couche par shadcn-ui
- tailwindcss.com framework CSS utilisé par shadcn-ui pour le style
Vous savez initialiser shadcn-ui, ajouter un composant, l'utiliser, et adapter sa charte ?