Installation
Install Tailwind CSS with Nuxt.js
Setting up Tailwind CSS in a Nuxt.js project.
Create your project
Start by creating a new Nuxt.js project if you don’t have one set up already. The most common approach is to use Create Nuxt App.
Terminalnpx create-nuxt-app my-projectcd my-project
Install Tailwind CSS
Using npm, install
tailwindcss
and its peer dependencies, as well as@nuxt/postcss8
, and then run the init command to generate thetailwind.config.js
file.Using
@latest
is required because Nuxt installs PostCSS v7 and Autoprefixer v9 by default.Terminalnpm install -D tailwindcss postcss@latest autoprefixer@latest @nuxt/postcss8npx tailwindcss init
Enable the Nuxt.js PostCSS plugin
In your
nuxt.config.js
file, enable the@nuxt/postcss8
plugin.nuxt.config.jsexport default { buildModules: [ '@nuxt/postcss8', // ... ], }
Add Tailwind to your PostCSS configuration
Add
tailwindcss
andautoprefixer
to thebuild.postcss.plugins
object of yournuxt.config.js
file.nuxt.config.jsexport default { build: { postcss: { plugins: { tailwindcss: {}, autoprefixer: {}, }, }, } }
Configure your template paths
Add the paths to all of your template files in your
tailwind.config.js
file.tailwind.config.jsmodule.exports = { content: [ "./components/**/*.{js,vue,ts}", "./layouts/**/*.vue", "./pages/**/*.vue", "./plugins/**/*.{js,ts}", "./nuxt.config.{js,ts}", ], theme: { extend: {}, }, plugins: [], }
Add the Tailwind directives to your CSS
Create an
./assets/css/main.css
file and add the@tailwind
directives for each of Tailwind’s layers.main.css@tailwind base; @tailwind components; @tailwind utilities;
Import the CSS file
Add the newly-created
./assets/css/main.css
file to thecss
array in thenuxt.config.js
file.nuxt.config.jsexport default { css: [ '@/assets/css/main.css', ], }
Start your build process
Run your build process with
npm run dev
.Terminalnpm run dev
Start using Tailwind in your project
Start using Tailwind’s utility classes to style your content.
App.vue<template> <h1 class="text-3xl font-bold underline"> Hello world! </h1> </template>