DEV Community

Cover image for Comment configurer ReactJS Vite Tailwind Styled components
Vincent
Vincent

Posted on

Comment configurer ReactJS Vite Tailwind Styled components

Dans cet article je vais vous montrer comment installer et configurer pas à pas tailwind et styled components sur une application ReactJS utilisant Vite.

Voici le lien github du projet, en cas de soucis n’hésitez pas à vous y référer :

🔗 https://github.com/Delmotte-Vincent/template-react-vite-tailwind-styled-component

 

Création d’une application ReactJS Typescript avec Vite

Pour commencer, créons un projet React avec Vite. Exécutez la commande suivante pour générer un projet.

npm create vite@latest
Enter fullscreen mode Exit fullscreen mode

Plusieurs questions vous sont posées dans le terminal, répondez en fonction de vos besoins. Dans ce tuto j’ai répondu de la manière suivante :

√ Select a framework: » React
√ Select a variant: » TypeScript
Enter fullscreen mode Exit fullscreen mode

Une fois le projet créé, rendez-vous à la racine de ce dernier, puis installez les différentes dépendances et démarrez l’application.

cd project-name
npm install
npm run dev
Enter fullscreen mode Exit fullscreen mode

Lorsque l’application est lancée (environ 5s, Vite porte bien son nom), rendez-vous sur l’URL suivante : http://localhost:5173/. Vous devriez avoir un écran comme celui-ci :

Image description

 

Installation de tailwind

Passons à l’installation de tailwind. Il faut installer les trois dépendances suivantes :

  • tailwindcss
  • postcss
  • autoprefixer

Exécutez la commande suivante pour télécharger les dépendances.

npm install -D tailwindcss postcss autoprefixer
Enter fullscreen mode Exit fullscreen mode

Une fois l’installation terminée, vous devriez avoir un package.json qui ressemble à cela :

// package.json
"devDependencies": {
    ...
    "autoprefixer": "^10.4.14",
    "postcss": "^8.4.21",
    "tailwindcss": "^3.3.1",
    ...
}
Enter fullscreen mode Exit fullscreen mode

Ensuite il faut créer les fichiers de configuration dédiés de tailwind. Pour cela c’est simple, exécutez la commande suivante :

npx tailwindcss init -p
Enter fullscreen mode Exit fullscreen mode

Cette commande crée un fichier tailwind.config.js et un fichier **postcss.config.js** à la racine du projet. Ces fichiers permettent de piloter tailwind dans votre application et de configurer les différentes options telles que les endroits où tailwind s’applique, paramétrer le thème ou encore ajouter des plugins.

// tailwind.config.js
/** @type {import('tailwindcss').Config} */
export default {
  content: [],
  theme: {
    extend: {},
  },
  plugins: [],
}
Enter fullscreen mode Exit fullscreen mode
// postcss.config.js
export default {
  plugins: {
    tailwindcss: {},
    autoprefixer: {},
  },
}
Enter fullscreen mode Exit fullscreen mode

Nous avons bientôt fini avec l’installation de tailwind, il ne reste plus qu’à ajouter les deux lignes suivantes dans le fichier tailwind.config.js.

// tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
  content: [
        "./index.html", // ✅ ajoutez cette ligne
    "./src/**/*.{js,jsx,ts,tsx}" // ✅ ajoutez cette ligne
  ],
  theme: {
    extend: {},
  },
  plugins: [],
}
Enter fullscreen mode Exit fullscreen mode

Ajoutez les directives tailwind dans le fichier index.css et le tour est joué.

// index.css
@tailwind base;
@tailwind components;
@tailwind utilities;
Enter fullscreen mode Exit fullscreen mode

N’hésitez pas à faire du ménage dans votre projet en supprimant l’intégralité du contenu inutile de index.css ainsi que le contenu du fichier App.tsx comme cela :

// App.tsx
import './App.css'

function App() {
  return (
    <div className="App">
    </div>
  )
}

export default App
Enter fullscreen mode Exit fullscreen mode

 

Vérification du setup de tailwind

A ce stade, tailwind est installé sur votre projet. Avant de passer à la suite assurons nous que tout fonctionne correctement !

Pour tester que tout fonctionne bien, je vous suggère de remplacer le contenu du fichier App.tsx par le code suivant :

// App.tsx
import './App.css'

function App() {
  return (
    <div className="App">
      <h1 className="text-3xl font-bold underline">
        Hello world!
      </h1>
    </div>
  )
}

export default App
Enter fullscreen mode Exit fullscreen mode

Relancez l’application, vous devriez avoir l’écran suivant :

Image description

Félicitation, si vous avez bien l’écran ci-dessus, nous pouvons passer à la suite. Si ce n’est pas le cas, reprenez les premières étapes, vous avez peut-être passé un détail !

 

Installation de styled components

Attaquons-nous à l’installation de styled components. Pour cela, exécutez la commande ci-dessous.

npm install --save styled-components
Enter fullscreen mode Exit fullscreen mode

Comme dans ce tuto nous utilisons TypeScript, nous installons la dépendance des types utilitaires de styled-components.

npm i --save-dev @types/styled-components
Enter fullscreen mode Exit fullscreen mode

Votre package.json devrait ressembler à cela :

// package.json
"dependencies": {
    ...
    "styled-components": "^5.3.9"
    ...
},
"devDependencies": {
    ...
    "@types/styled-components": "^5.1.26",
    ...
}
Enter fullscreen mode Exit fullscreen mode

 

Vérification du setup de styled-component

Comme pour tailwind, vérifions que tout fonctionne correctement avant de passer à la suite. Ajouter le code suivant dans le App.tsx afin de vérifier que styled components est bien installé.

// App.tsx
import './App.css'
import styled from 'styled-components'

const Button = styled.button`
  background: transparent;
  border-radius: 3px;
  border: 2px solid palevioletred;
  color: palevioletred;
  margin: 0 1em;
  padding: 0.25em 1em;
`

function App() {
  return (
    <div className="App">
      <h1 className="text-3xl font-bold underline">
        Hello world!
      </h1>
      <Button>Button</Button>
    </div>
  )
}

export default App
Enter fullscreen mode Exit fullscreen mode

Sauvegardez le projet, vous devriez avoir le titre et un bouton qui s’affichent à l’écran comme ceci :

Image description

Si tout s’affiche correctement vous pouvez passer à la suite ! Pour les autres, ça sera les rattrapages et il faudra repasser l’épreuve de styled components !

 

Setup de tailwind et styled components

Passons à l’étape importante de cette installation. Installer tailwind n’est pas compliqué, de même pour styled-components, mais utilisez les deux en harmonie est beaucoup moins trivial.

Avant d’utiliser ce superbe outils, il va falloir faire encore un peu d’installation et de setup mais ne perdez pas patience, tout cela en vaut largement le coût !

Pour commencer il faut installer les dépendances suivantes :

  • tailwind-styled-components
  • twin.macro
  • vite-plugin-babel-macros
  • postcss-import
npm install tailwind-styled-components twin.macro vite-plugin-babel-macros postcss-import
Enter fullscreen mode Exit fullscreen mode

Une fois les dépendances installées, commençons pas ajouter macrosPlugin à la liste plugins de vite.config.ts.

// vite.config.ts
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import macrosPlugin from 'vite-plugin-babel-macros'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react(), macrosPlugin()],
})
Enter fullscreen mode Exit fullscreen mode

Ensuite, effectuez les actions suivantes sur le fichier postcss.config.js :

  • Renommez le fichier avec une extension .cjs
  • Ajoutez aux plugins postcss-import
  • Changez l’export du fichier avec module.exports

Vous obtenez le fichier suivant :

// postcss.config.cjs
module.exports = {
  plugins: {
    'postcss-import': {},
    tailwindcss: {},
    autoprefixer: {},
  },
}
Enter fullscreen mode Exit fullscreen mode

Faites les actions suivantes sur le fichier tailwind.config.js :

  • Renommez le fichier avec une extension .cjs
  • Changez l’export du fichier avec module.exports

Vous obtenez le fichier suivant :

// tailwind.config.cjs
/** @type {import('tailwindcss').Config} */
module.exports = {
  content: [
    "./index.html",
    "./src/**/*.{js,jsx,ts,tsx}"
  ],
  theme: {
    extend: {},
  },
  plugins: [],
}
Enter fullscreen mode Exit fullscreen mode

Voilà, c’est tout, vous êtes arrivé au bout du périple ! Passons à la vérification.

 

Vérification du setup tailwind styled component

Ne faisons pas durer le suspense, vérifions que tout ce beau monde coexiste en harmonie dans notre projet.

Pour effectuer la vérification, modifiez le code du fichier App.tsx comme cela :

import './App.css'
import tw from 'twin.macro'
import styled from 'styled-components'

const Button = styled.button`
  ${tw`
    bg-transparent
    rounded-sm
    border
    border-blue-500
    text-blue-500
    border-solid
    m-1
    px-4
    py-1
  `}
`

function App() {
  return (
    <div className="App">
      <h1 className="text-3xl font-bold underline">
        Hello world!
      </h1>
      <Button>Button</Button>
    </div>
  )
}

export default App
Enter fullscreen mode Exit fullscreen mode

Sauvegardez le projet et savourez le fruit de vos efforts. Si l’écran suivant s’affiche sur votre ordinateur, c’est gagné !

Image description

 

Conclusion

Pour conclure, nous avons vu comment installer tailwind et styled-components. Nous avons également vu comment configurer l’ensemble afin d’utiliser la puissance de tailwind et styled-components combiner.

Ces outils vous permettrons de construire un frontend de qualité dont le code sera plus lisible et concis.

N’hésitez pas à tester ces outils et me faire des retours afin de faire un partage d’expérience !

Je vous remet le lien du Github afin que vous puissiez avoir un projet fonctionnel avec l’ensemble du setup.

🔗 https://github.com/Delmotte-Vincent/template-react-vite-tailwind-styled-component

Top comments (0)