Add TailwindCSS JIT to your Nuxtjs site

TailwindCSS just released a feature called Just-In-Time. The TailwindCSS blog published an article about it here. It's available (for now, since it will be added in TailwindCSS v3.0) on NPM. I dedicated another blogpost to this, so I wont go deeper into that topic here. But what is interesting here, is that it changes the whole way how you use TailwindCSS with Nuxtjs

Upgrading nuxtjs/tailwindcss

adding TailwindCSS became really easy since nuxtjs/tailwindcss v4.0.0. Before (like explained on the Tailwind Install Docs), you needed to install a great deal of packages to be able to use TailwindCSS with Nuxt. Also they were outdated versions of packages. Now it's just the @nuxtjs/tailwindcss module and PostCSS. So first install those.

yarn add -D @nuxtjs/tailwindcss [email protected]

Then add the module to your buildModules in nuxt.config.js

// nuxt.config.js
export default {
  buildModules: [
    '@nuxtjs/tailwindcss'
  ]
}

The modules requires some additional configurations if you're not using the default location for the ~/assets/css/tailwind.css or the ./tailwind.config.js files. You can read more about options on the nuxtjs/tailwindcss module website.

Now TailwindCSS should work if you created the files!

Adding @tailwindcss/jit

Now adding jit to TailwindCSS is just as easy as configuring it in your nuxt.config.js file.

// nuxt.config.js
export default {
    tailwindcss: {
        jit: true
    }
}

that's litterally it...

You can add a lot of options here, if you'd like, you can even include your whole configuration (which you normally put in tailwind.config.js) in here. You can read more about all available options on the nuxtjs/tailwindcss module website

Using with Sass preprocessor

If you've read more than 2 articles on this blog, you'll know that I'm a fan of using TailwindCSS @apply classes with Sass. It's easier to maintain, clearly readable and just cooler!

But to take advantage of this together with Nuxtjs, it requires some additional configuration. But don't worry, I'll guide you trough it!

If you're using @nuxtjs/tailwindcss v^4.0.0 or followed my guide above, you probably have installed [email protected]. If you haven't, do so, because you'll need it.

Then we just need to install some additional packages to tell PostCSS what we're expecting of it.

yarn add -D postcss-easy-import sass

Now we have all packages ready to go, we'll just need to configure our nuxt.config.js file so it uses them.

// nuxt.config.js
export default {
  tailwindcss: {
    cssPath: '~/assets/scss/tailwind.scss',
    jit: true
  },
  build: {
    postcss: {
      plugins: {
        'postcss-easy-import': { prefix: '_', extensions: ['.css', '.scss'] },
        'postcss-nested': {},
      },
    }
  },
}

You can also disable the viewer option in the config for faster build times!

That should be it! I hope you received some value out of it!