Nuxt

Install and configure Nuxt.

Create project

Start by creating a new Nuxt project using create-nuxt-app:

pnpm create nuxt@latest 

Add Tailwind CSS

pnpm add tailwindcss @tailwindcss/vite 

or install @nuxtjs/[email protected] or newer

pnpm add tailwindcss @nuxtjs/[email protected] 

For Nuxt v4: app/assets/css/tailwind.css
For Nuxt v3: assets/css/tailwind.css

Replace everything in tailwind.css with the following:

css
@import "tailwindcss";

Update nuxt.config.ts with the following:

ts
import tailwindcss from '@tailwindcss/vite'  export default defineNuxtConfig({  // ...  css: ['~/assets/css/tailwind.css'],  vite: {  plugins: [  tailwindcss(),  ],  }, })

Add Nuxt module

Skipping this step triggers numerous console warnings due to Nuxt's auto-import feature.

Install the package below.

pnpm dlx nuxi@latest module add shadcn-nuxt 

Add a Nuxt Plugin for providing ssrWidth

Some components require a ssrWidth to be set through VueUse to avoid Hydration errors on mobile.

Add the following plugin to your Nuxt application:
For Nuxt v4: app/plugins/ssr-width.ts
For Nuxt v3: plugins/ssr-width.ts

Read more about useSSRWidth

ts
import { provideSSRWidth } from '@vueuse/core'  export default defineNuxtPlugin((nuxtApp) => {  provideSSRWidth(1024, nuxtApp.vueApp) })

Configure nuxt.config.ts

ts
export default defineNuxtConfig({  // ...  modules: ['shadcn-nuxt'],  shadcn: {  /**  * Prefix for all the imported component  */  prefix: '',  /**  * Directory that the component lives in.  * @default "./components/ui"  */  componentDir: './components/ui'  }, })

Run Nuxt Prepare

If you are initiating a new project, you need to run the command so that Nuxt generates the necessary .nuxt folder:

pnpm dlx nuxi prepare 

Run the CLI

Run the shadcn-vue init command to setup your project:

pnpm dlx shadcn-vue@latest init 

You will be asked a few questions to configure components.json.

txt
Which color would you like to use as base color? › Neutral

Add Components

You can now start adding components to your project.

pnpm dlx shadcn-vue@latest add button 

The command above will add the Button component to your project. Nuxt autoImport will handle importing the components, you can just use it as such:

vue
<template>  <div>  <Button>Click me</Button>  </div> </template>
Edit this page on GitHub