Portfolio HTML Tailwind 1jour expliqué simplement (avec schémas et vrai code)

Portfolio HTML Tailwind 1jour : l'essentiel en un article — vrai code, schémas et étapes concrètes, extraits d'un cours de 46 leçons.

Portfolio HTML Tailwind 1jour expliqué simplement (avec schémas et vrai code)

Un guide qui va droit au but : Portfolio HTML Tailwind 1jour décortiqué avec des schémas, des exemples concrets et des commandes testées. Tout vient d'un cours structuré de 11 chapitres — en voici le meilleur.

tl;dr
  • Introduction et Setup Express
  • Bases HTML5 pour Portfolio
  • Tailwind CSS Fondamentaux
  • Section Hero et Navigation
  • Sections About Competences et Projets
~$ cat ./parcours.md # Portfolio HTML Tailwind 1jour — 10 chapitres
01
Introduction et Setup Express
→ Présentation du cours et exemples de portfolios→ Installer VS Code + Live Server + Tailwind IntelliSense+ 1 autres leçons
02
Bases HTML5 pour Portfolio
→ Balises sémantiques HTML5 indispensables→ Structure type d'un portfolio one-page+ 2 autres leçons
03
Tailwind CSS Fondamentaux
→ Utility-first : pourquoi Tailwind change la donne→ Couleurs, spacing et typography Tailwind+ 2 autres leçons
04
Section Hero et Navigation
→ Navbar sticky responsive avec Tailwind→ Section hero avec photo et CTA+ 2 autres leçons
05
Sections About Compétences et Projets
→ Section About avec photo et bio→ Grille de compétences avec icônes Heroicons+ 2 autres leçons
06
Responsive Design
→ Breakpoints Tailwind – sm, md, lg, xl, 2xl→ Approche mobile-first et utility responsive+ 2 autres leçons
07
Dark Mode et Personnalisation
→ Dark mode Tailwind – class strategy→ Toggle dark mode avec localStorage+ 2 autres leçons
08
Formulaire de Contact
→ Formulaire HTML5 + validation native→ Formspree – recevoir les messages par email+ 2 autres leçons
🏁
Projet final (+ 2 chapitres en chemin)
→ Tu repars avec un projet concret et démontrable

Personnaliser tailwind.config.js – couleurs, fonts

NOTEObjectif — Personnaliser le thème Tailwind via tailwind.config.js : ajouter vos propres couleurs de marque, vos polices, et étendre la palette sans casser les utilitaires existants.

Objectifs pédagogiques

TIPÀ l'issue de ce module
  • Comprendre la différence entre theme et theme.extend
  • Ajouter une couleur de marque personnalisée
  • Déclarer une nuance de couleurs (50 à 900)
  • Enregistrer une police custom dans fontFamily
  • Utiliser ces valeurs custom dans vos classes

theme vs theme.extend

Le cœur de la personnalisation Tailwind est l'objet theme. La clé piège est de bien choisir entre écrire directement dans theme (qui remplace tout) ou dans theme.extend (qui ajoute sans rien casser).

ApprocheEffetQuand l'utiliser
theme: {...}Remplace complètement la valeur par défautRare, design system très strict
theme.extend: {...}Ajoute aux valeurs par défautPresque toujours
WARNINGAttention : si vous écrivez vos couleurs directement dans theme.colors sans extend, vous perdez toutes les couleurs Tailwind par défaut (red, blue, gray...). Utilisez presque toujours extend.

Ajouter une couleur de marque

Disons que votre marque utilise un violet spécifique. On l'ajoute dans extend.colors.

Nuance complète

L'objet 50–900 donne bg-marque-50 jusqu'à bg-marque-900.

Enregistrer une police custom

Pour utiliser une police comme Inter ou Poppins, on l'ajoute dans fontFamily. Le nom devient un utilitaire font-....

Filtres de projets avec data-attributes

NOTEObjectif — Ajouter des boutons de filtre (Tous, Web, Mobile, Design...) qui montrent ou cachent les projets selon leur catégorie, grâce aux attributs data-* et un mini script JavaScript de quelques lignes.

Objectifs pédagogiques

TIPÀ l'issue de ce module
  • Comprendre ce qu'est un attribut data-* et à quoi il sert
  • Catégoriser chaque card de projet via data-categorie
  • Créer une barre de boutons de filtre
  • Écrire le JavaScript qui montre/cache les cards
  • Gérer l'état actif du bouton sélectionné

Qu'est-ce qu'un data-attribute ?

Un data-attribute est un attribut HTML personnalisé qui commence par data-. Il sert à stocker une information sur un élément sans affecter son affichage. Par exemple, data-categorie="web" indique à JavaScript que cette card appartient à la catégorie "web". C'est un moyen propre et standard de lier vos données à vos éléments.

AttributExempleAccès en JS
data-categoriedata-categorie="web"el.dataset.categorie
data-filtredata-filtre="mobile"el.dataset.filtre
data-anneedata-annee="2026"el.dataset.annee
NOTENote : en JavaScript, data-categorie se lit via element.dataset.categorie. Le préfixe data- disparaît et le tiret devient du camelCase si le nom est composé (data-ma-cledataset.maCle).

Étape 1 : catégoriser les cards

On ajoute un data-categorie sur chaque card de projet construite au module précédent.

TIPConseil : pour une transition douce, remplacez hidden par un jeu de classes opacity-0 scale-95 + transition, et gérez l'apparition avec un petit délai. L'effet est plus élégant qu'une disparition brutale.
WARNINGAttention : placez toujours votre <script> juste avant la balise </body> ou utilisez l'attribut defer. Sinon le script s'exécute avant que les boutons existent et querySelectorAll renvoie une liste vide.

Images responsive et picture element

NOTEObjectif — Servir la bonne image à la bonne taille d'écran grâce à srcset et à la balise <picture>, pour un portfolio rapide qui ne fait pas télécharger une image 4K à un téléphone.

Objectifs pédagogiques

TIPÀ l'issue de ce module
  • Comprendre pourquoi une seule image pour tous les écrans est un problème
  • Utiliser srcset et sizes pour des résolutions multiples
  • Utiliser <picture> pour l'art direction
  • Garder un ratio fixe avec Tailwind (aspect-)
  • Éviter le layout shift (CLS) avec width et height

Le problème d'une image unique

Si vous servez la même image 2000px de large à tout le monde, le téléphone télécharge des mégaoctets inutiles pour les afficher dans 375px. C'est lent, ça coûte de la data à l'utilisateur, et ça plombe votre score Lighthouse.

La solution moderne : fournir plusieurs versions de la même image et laisser le navigateur choisir la plus adaptée à la taille réelle d'affichage et à la densité de l'écran.

srcset et sizes : plusieurs résolutions

L'attribut srcset liste plusieurs fichiers avec leur largeur intrinsèque (en w). L'attribut sizes indique au navigateur la largeur d'affichage prévue selon l'écran.

picture

Images différentes selon une media query. Pour l'art direction (recadrage, orientation).

Garder un ratio propre avec Tailwind

Pour éviter que vos images se déforment, Tailwind propose les utilitaires aspect- et object-cover.

va-plus-loin

Cet article couvre les extraits les plus utiles — le cours complet Portfolio HTML Tailwind 1jour (11 chapitres, 46 leçons, exercices corrigés et projet final) t'emmène jusqu'au bout.

./acceder-au-cours-complet cours gratuit : Vibe Coding

FAQ

Combien de temps pour apprendre Portfolio HTML Tailwind 1jour ?
Avec une progression structurée (11 chapitres, 46 leçons courtes et pratiques), on atteint un niveau opérationnel en quelques semaines à raison de 30 à 60 minutes par jour. L'important est de pratiquer chaque notion immédiatement.
Faut-il des prérequis ?
Aucun prérequis : le cours part de zéro, chaque notion est introduite avant d'être utilisée.
Par où commencer concrètement ?
Reproduis les commandes de cet article, puis suis le cours complet Portfolio HTML Tailwind 1jour : il enchaîne les 46 leçons dans l'ordre, avec exercices et projet final.

📬 Tu veux recevoir ce type de guide chaque semaine ? Abonne-toi gratuitement — code réel, zéro blabla.