--- title: Remix description: Install and configure Remix. --- ### Create project Start by creating a new Remix project using `create-remix`: ```bash npx create-remix@latest my-app ``` ### Run the CLI Run the `shadcn-ui` init command to setup your project: ```bash npx shadcn-ui@latest init ``` ### Configure components.json You will be asked a few questions to configure `components.json`: ```txt showLineNumbers Would you like to use TypeScript (recommended)? no / yes Which style would you like to use? › Default Which color would you like to use as base color? › Slate Where is your global CSS file? › app/tailwind.css Do you want to use CSS variables for colors? › no / yes Where is your tailwind.config.js located? › tailwind.config.js Configure the import alias for components: › ~/components Configure the import alias for utils: › ~/lib/utils Are you using React Server Components? › no ``` ### App structure **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. ### Install Tailwind CSS ```bash npm add -D tailwindcss@latest autoprefixer@latest ``` Then we create a `postcss.config.js` file: ```js export default { plugins: { tailwindcss: {}, autoprefixer: {}, }, } ``` And finally we add the following to our `remix.config.js` file: ```js {4-5} /** @type {import('@remix-run/dev').AppConfig} */ export default { ... tailwind: true, postcss: true, ... }; ``` ### Add `tailwind.css` to your app In your `app/root.tsx` file, import the `tailwind.css` file: ```js {1, 4} import styles from "./tailwind.css" export const links: LinksFunction = () => [ { rel: "stylesheet", href: styles }, ...(cssBundleHref ? [{ rel: "stylesheet", href: cssBundleHref }] : []), ] ``` ### That's it You can now start adding components to your project. ```bash npx shadcn-ui@latest add button ``` The command above will add the `Button` component to your project. You can then import it like this: ```tsx {1,6} showLineNumbers import { Button } from "~/components/ui/button" export default function Home() { return (
) } ```