UNPKG

next

Version:

The React Framework

174 lines (132 loc) 3.99 kB
--- title: How to install Tailwind CSS v3 in your Next.js application nav_title: Tailwind CSS v3 description: Style your Next.js Application using Tailwind CSS v3 for broader browser support. --- {/* The content of this doc is shared between the app and pages router. You can use the `<PagesOnly>Content</PagesOnly>` component to add content that is specific to the Pages Router. Any shared content should not be wrapped in a component. */} This guide will walk you through how to install [Tailwind CSS v3](https://v3.tailwindcss.com/) in your Next.js application. > **Good to know:** For the latest Tailwind 4 setup, see the [Tailwind CSS setup instructions](/docs/app/getting-started/css#tailwind-css). ## Installing Tailwind v3 Install Tailwind CSS and its peer dependencies, then run the `init` command to generate both `tailwind.config.js` and `postcss.config.js` files: ```bash package="pnpm" pnpm add -D tailwindcss@^3 postcss autoprefixer npx tailwindcss init -p ``` ```bash package="npm" npm install -D tailwindcss@^3 postcss autoprefixer npx tailwindcss init -p ``` ```bash package="yarn" yarn add -D tailwindcss@^3 postcss autoprefixer npx tailwindcss init -p ``` ```bash package="bun" bun add -D tailwindcss@^3 postcss autoprefixer bunx tailwindcss init -p ``` ## Configuring Tailwind v3 Configure your template paths in your `tailwind.config.js` file: <AppOnly> ```js filename="tailwind.config.js" /** @type {import('tailwindcss').Config} */ module.exports = { content: [ './app/**/*.{js,ts,jsx,tsx,mdx}', './pages/**/*.{js,ts,jsx,tsx,mdx}', './components/**/*.{js,ts,jsx,tsx,mdx}', ], theme: { extend: {}, }, plugins: [], } ``` Add the Tailwind directives to your global CSS file: ```css filename="app/globals.css" @tailwind base; @tailwind components; @tailwind utilities; ``` Import the CSS file in your root layout: ```tsx filename="app/layout.tsx" switcher import './globals.css' export default function RootLayout({ children, }: { children: React.ReactNode }) { return ( <html lang="en"> <body>{children}</body> </html> ) } ``` ```jsx filename="app/layout.js" switcher import './globals.css' export default function RootLayout({ children }) { return ( <html lang="en"> <body>{children}</body> </html> ) } ``` </AppOnly> <PagesOnly> ```js filename="tailwind.config.js" /** @type {import('tailwindcss').Config} */ module.exports = { content: [ './pages/**/*.{js,ts,jsx,tsx,mdx}', './components/**/*.{js,ts,jsx,tsx,mdx}', './app/**/*.{js,ts,jsx,tsx,mdx}', ], theme: { extend: {}, }, plugins: [], } ``` Add the Tailwind directives to your global CSS file: ```css filename="styles/globals.css" @tailwind base; @tailwind components; @tailwind utilities; ``` Import the CSS file in your `pages/_app.js` file: ```jsx filename="pages/_app.js" import '@/styles/globals.css' export default function MyApp({ Component, pageProps }) { return <Component {...pageProps} /> } ``` </PagesOnly> ## Using classes After installing Tailwind CSS and adding the global styles, you can use Tailwind's utility classes in your application. <AppOnly> ```tsx filename="app/page.tsx" switcher export default function Page() { return <h1 className="text-3xl font-bold underline">Hello, Next.js!</h1> } ``` ```jsx filename="app/page.js" switcher export default function Page() { return <h1 className="text-3xl font-bold underline">Hello, Next.js!</h1> } ``` </AppOnly> <PagesOnly> ```tsx filename="pages/index.tsx" switcher export default function Page() { return <h1 className="text-3xl font-bold underline">Hello, Next.js!</h1> } ``` ```jsx filename="pages/index.js" switcher export default function Page() { return <h1 className="text-3xl font-bold underline">Hello, Next.js!</h1> } ``` </PagesOnly> ## Usage with Turbopack As of Next.js 13.1, Tailwind CSS and PostCSS are supported with [Turbopack](https://turbo.build/pack/docs/features/css#tailwind-css).