Installation
Remix Install and configure shadcn/ui for Remix.
Note: The following guide is for Tailwind v4. If you are using Tailwind
v3, use [email protected] .
Note: This guide is for Remix. For React Router, see the React Router guide.
Start by creating a new Remix project using create-remix:
npx create-remix@latest my-app Run the shadcn-ui init command to setup your project:
You will be asked a few questions to configure components.json:
Which style would you like to use? › New York
Which color would you like to use as base color? › Zinc
Do you want to use CSS variables for colors? › no / yes
Note : This app structure is only a suggestion. You can place the files wherever you want.
Place the UI components in the app/components/ui folder.
Your own components can be placed in the app/components folder.
The app/lib folder contains all the utility functions. We have a utils.ts where we define the cn helper.
The app/tailwind.css file contains the global CSS.
npm install -D tailwindcss@latest autoprefixer@latest Then we create a postcss.config.js file:
export default {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}; And finally we add the following to our remix.config.js file:
/** @type {import('@remix-run/dev').AppConfig} */
export default {
...
tailwind: true ,
postcss: true ,
...
}; In your app/root.tsx file, import the tailwind.css file:
import styles from './tailwind.css?url' ;
export const links : LinksFunction = () => [
{ rel : 'stylesheet' , href : styles },
... (cssBundleHref ? [{ rel: 'stylesheet' , href: cssBundleHref }] : []),
]; You can now start adding components to your project.
npx shadcn@latest add button The command above will add the Button component to your project. You can then import it like this:
import { Button } from '~/components/ui/button' ;
export default function Home () {
return (
< div >
< Button >Click me</ Button >
</ div >
);
}