Créer des composants Vue 3 avec Tailwind CSS
Mary Gathoni
21 février 2023
0 minutes de lectureVue est un framework JavaScript populaire qui permet de créer des interfaces web polyvalentes. Parmi ses fonctionnalités les plus intéressantes figurent son intégration facile aux bases de code existantes et sa légèreté, qui permettent aux développeurs de l’adopter facilement dans leurs projets front-end.
Au cœur de Vue se trouve une approche de création d’interfaces web fondée sur des composants composables. Les composants sont des fragments de code réutilisables qui servent de briques de base à vos applications. Le modèle de composants de Vue vous permet de créer des composants autonomes regroupant logique, contenu et styles en un même endroit.
Pour styliser ces composants, vous pouvez utiliser un framework comme Tailwind CSS afin d’intégrer directement les styles au balisage et d’encapsuler encore davantage le composant. Tailwind CSS est un framework CSS qui regroupe des classes réutilisables pour styliser les éléments d’interface utilisateur (UI). Vous pouvez utiliser ces classes pour appliquer des styles aux polices, aux couleurs, aux marges intérieures et extérieures, aux animations et aux transitions. Par exemple, l’attribut text-black affiche en noir tout le texte d’un élément. Ces classes sont composables et peuvent être combinées pour mettre en œuvre n’importe quel design.
Dans ce tutoriel, vous apprendrez à créer des composants Vue 3 avec Tailwind CSS en réalisant une carte d’article adaptative. Le code complet du projet est disponible ici.
Prérequis
Pour suivre ce tutoriel, vous aurez besoin des éléments suivants :
Une version à jour de Node.js et npm installés
Un éditeur de texte comme Visual Studio Code (VS Code)
Une connaissance de la ligne de commande
Une familiarité avec Vue et CSS
Créer vos propres composants Vue 3 avec Tailwind
Pour commencer, créez un nouveau projet Vue 3. Exécutez la commande suivante dans votre terminal pour installer et lancer create-vue, l’outil officiel de création de projets Vue permettant de générer des projets basés sur vite :
Une invite s’affiche avec une liste de fonctionnalités facultatives. Nommez le projet vue-tailwindcss et choisissez No pour toutes les autres options.
Accédez ensuite au dossier du projet à l’aide de cd vue-tailwindcss, puis exécutez npm install pour installer depuis npm les dépendances open source du projet.
Exécutez npm run dev pour lancer l’application dans un environnement de développement.
Cette commande devrait lancer l’application sur le serveur localhost :

Accédez à l’URL locale indiquée pour afficher l’application :

Il est maintenant temps de configurer Tailwind CSS dans l’application Vue.
Configurer Tailwind avec Vue
Pour commencer, exécutez la commande suivante dans le terminal :
Cette commande installe Tailwind CSS et ses dépendances associées (autoprefixer et postcss) via npm.
Générez ensuite les fichiers tailwind.config.js et postcss.config.js en exécutant la commande ci-dessous. Vous utiliserez ces fichiers pour configurer et personnaliser Tailwind :
Cette commande devrait créer le fichier tailwind.config.js à la racine du projet avec les paramètres suivants :
Vous avez également créé le fichier postcss.config.js et configuré les plugins tailwindcss et autoprefixer :
Dans tailwind.config.js, modifiez le tableau content pour y inclure tous les chemins vers vos pages et composants. Tailwind pourra ainsi supprimer les classes CSS inutilisées du résultat final et réduire la taille du fichier.
Votre fichier tailwind.config.js devrait maintenant ressembler à ceci :
Créez ensuite un fichier nommé index.css dans le dossier src du projet, puis ajoutez le contenu suivant :
Vous avez utilisé la directive @tailwind pour inclure dans votre projet les styles de base, de composants et d’utilitaires de Tailwind. Plus tard, lors de la compilation du projet, Tailwind remplacera automatiquement ces directives par les styles que vous lui aurez indiqués.
Importez maintenant index.css dans notre fichier ./src/main.js pour commencer à l’utiliser :
Notez que vous devez supprimer la ligne qui importe le fichier assets/main.css. Cela vous empêchera d’utiliser du CSS natif.
Vous pouvez maintenant créer des composants avec Tailwind.
Créer des composants Vue
Pour apprendre à utiliser Tailwind dans les composants Vue, créez un composant carte pour un article.
Créez ensuite un fichier nommé ArticleCard.vue dans le dossier src/components. Ajoutez le code suivant :
Le code ci-dessus crée un modèle nommé ArticleCard, qui définit un composant carte composé d’une image et d’un résumé de l’article.
Pour l’afficher dans le navigateur, nettoyez la page d’accueil en supprimant tout le contenu du fichier App.vue. Importez ensuite le composant ArticleCard dans la section script de App.vue :
Utilisez-le ensuite dans le modèle :
L’étape suivante consiste à styliser la carte à l’aide des classes utilitaires de Tailwind CSS.
Explication des classes utilitaires
Avec du CSS natif — et quelques autres frameworks CSS —, vous pouvez utiliser des classes CSS personnalisées pour styliser les éléments d’une page.
Voici un exemple d’élément de lien stylisé à l’aide des classes link-wrapper et link :
Pourquoi utiliser Tailwind CSS ?
Le problème avec cette approche, c’est que vous devez trouver des noms de classes pertinents chaque fois que vous souhaitez styliser un élément. Vous devez aussi mémoriser des noms extrêmement longs et descriptifs dès que vous voulez réutiliser une classe. En outre, vous devez écrire beaucoup de CSS, car chaque nom de classe ajouté à une page s’accompagne de styles. Ainsi, à mesure que votre application se développe, vos fichiers CSS s’alourdissent, ce qui augmente la taille du bundle et ralentit le chargement.
Avec Tailwind CSS, en revanche, vous pouvez utiliser des classes CSS prédéfinies appelées classes utilitaires. Elles proposent des options de style courantes, comme flex, l’alignement du texte, les bordures, les marges, les espacements intérieurs et les couleurs. Vous pouvez ainsi styliser des pages sans écrire de CSS.
Voyons à quoi ressemblerait l’exemple de lien précédent s’il était stylisé avec Tailwind CSS :
Vous avez remplacé l’objet de styles et les classes personnalisées par les classes utilitaires suivantes :
p-8définit l’espacement intérieur sur 8 px.font-mediumdéfinit l’épaisseur de la police sur 500.text-xldéfinit la taille de police sur 1.125rem et la hauteur de ligne sur 1.75rem.text-blackdéfinit la couleur du texte sur noir.
L’utilisation de classes utilitaires réduit la quantité de CSS et permet à toute personne qui consulte le code de comprendre facilement l’intention derrière le style des éléments, sans avoir à consulter une feuille de style.
Tailwind propose de nombreuses classes utilitaires, que vous trouverez dans sa documentation sur les utilitaires.
Styliser un composant carte avec Tailwind CSS
Maintenant que vous connaissez les classes utilitaires, il est temps de styliser le composant carte.
Commencez par modifier le fichier src/components/ArticleCard.vue pour utiliser les classes utilitaires de Tailwind :
Avec ces nouveaux styles, le composant carte devrait ressembler à ceci :

En plus des classes utilitaires, vous avez utilisé des modificateurs pour styliser la carte. Notez la classe hover:underline de la balise <a/> : hover est le modificateur.
Dans Tailwind, placez les modificateurs au début du nom d’une classe utilitaire pour indiquer l’état à cibler. Dans l’exemple ci-dessus, vous avez ciblé le survol, mais vous pourriez aussi cibler l’état de focus avec la classe focus:text-violet-200, ou l’état actif avec active:text-violet-600.
Vous pouvez utiliser différents modificateurs Tailwind CSS selon la condition à cibler. Pour consulter la liste complète, rendez-vous dans la documentation Tailwind CSS.
Jusqu’ici, le composant carte s’affiche très bien sur les grands écrans. Mais à mesure que la taille de l’écran diminue, la mise en page devient de plus en plus encombrée :

Heureusement, vous pouvez modifier la mise en page de la carte en fonction de la largeur de l’écran.
Gérer les points de rupture dans Tailwind CSS
Tailwind CSS vous permet d’appliquer conditionnellement une classe utilitaire à différents points de rupture. Par défaut, il en existe cinq, chacun prenant effet à partir d’une largeur minimale donnée :
sm— 640 pxmd— 768 pxlg— 1 024 pxxl— 1 280 px2xl— 1 536 px
Pour gérer un point de rupture, ajoutez-le en préfixe à la classe utilitaire, suivi de deux-points (:).
Prenons le bouton suivant :
Tailwind applique la classe w-16 aux petits écrans, w-32 aux écrans moyens et w-48 aux grands écrans.
Vous pouvez utiliser les points de rupture pour modifier la mise en page, la taille, la couleur ou toute autre propriété sans recourir aux media queries. Vous pouvez également personnaliser les tailles d’écran dans tailwind.config.js si les valeurs par défaut ne répondent pas à vos besoins en matière de design.
Par exemple, le code suivant remplacera la taille d’écran lg :
Dans votre composant carte d’article, utilisez les points de rupture pour modifier sa mise en page et ajuster la taille de l’image :
Voici le code modifié. Notez les premières balises <div/> et <img/> :
Voici les modifications apportées :
Les modificateurs
md:flexetmd:max-w-2xltransforment le composant carte en conteneur flex d’une largeur maximale de 48 rem sur les écrans moyens et grands. Sur les petits écrans, la classemax-w-mddéfinit une largeur de 28 rem.Dans l’élément
<img/>,md:h-fullaffiche l’image en pleine hauteur sur les écrans moyens et grands, tandis que la classeh-48définit une hauteur de 12 rem sur les petits écrans.
Voici le résultat du composant sur un petit écran :

Et voilà ! Vous pouvez maintenant créer des composants Vue avec Tailwind CSS.
Une fois votre application Vue terminée, découvrez comment la déployer sur Netlify avec les mises à jour de sécurité automatiques de Snyk. Créez un compte gratuit et importez votre projet dans Snyk dès aujourd’hui pour détecter et corriger les vulnérabilités susceptibles de se cacher dans ses dépendances, et protéger votre application contre les attaques XSS et autres menaces de sécurité.
Conclusion
Ce tutoriel vous a montré comment créer un composant Vue 3 avec Tailwind CSS. Tailwind CSS est un framework utilitaire qui rend le processus de création de composants UI plus efficace et plus fluide. Vous pouvez utiliser des classes utilitaires pour créer des designs adaptatifs sans consulter de feuilles de style externes ni mémoriser des dizaines de noms de classes. Tailwind vous permet de créer votre propre système de design en personnalisant les classes par défaut. De plus, il supprime automatiquement toutes les classes inutilisées lors de la compilation de production, ce qui réduit la quantité de code dans le produit final.



