How to Set Up Tailwind UI with Next.js
In celebration of Tailwind CSS v3.0 and Next.js 12, let’s see how easy it is to incorporate Tailwind CSS into our Next.js projects.
1. Set up a Next.js app
Let’s start by creating our Next.js application.
npx create-next-app my-app
Be sure to replace my-app
with your real app name.
Let’s navigate into this directory.
cd my-app
2. Install Tailwind dependencies
To use use Tailwind, we’ll need three dependencies: tailwind
, postcss
, autoprefixer
.
npm install -D tailwindcss@latest postcss@latest autoprefixer@latest
If we plan on using form styles in Tailwind, we’ll likely also need @tailwindcss/forms
.
npm install @tailwindcss/forms
3. Prepare config files
We’ll need config files for tailwind
and postcss
, both of which can be created with this command:
npx tailwindcss init -p
This should create tailwind.config.js
and postcss.config.js
in the root of our application.
4. Update Tailwind config
Tailwind has the ability to purge all unused styles.
We can specify which pages Tailwind should search in tailwind.config.js
.
Let’s replace everything in that file with this:
module.exports = {
purge: ['./pages/**/*.{js,ts,jsx,tsx}'],
darkMode: false, // or 'media' or 'class'
theme: {
extend: {},
},
variants: {
extend: {},
},
plugins: []
}
Here, we want Tailwind to look for styles in all JavaScript and TypeScript folders.
The purge
property is an array, so we can append other folders that may include Tailwind styles (e.g. ./components/**/*.{js,ts,jsx,tsx}
).
If we need to use form styles, we need to require @tailwindcss/forms
in the plugins field.
plugins: [
require("@tailwindcss/forms")
]
5. Import Tailwind in application
Finally, we need to import Tailwind styles into our application.
The easiest place to import this file is in /pages/_app.js
.
import 'tailwindcss/tailwind.css'
const App = ({ Component, pageProps }) => {
return <Component {...pageProps} />
}
export default App;