--- title: components.json description: Configuration for your project. --- The `components.json` file holds configuration for your project. We use it to understand how your project is set up and how to generate components customized for your project. Note: The `components.json` file is optional and **only required if you're using the CLI** to add components to your project. If you're using the copy and paste method, you don't need this file. You can create a `components.json` file in your project by running the following command: ```bash npx shadcn@latest init ``` See the CLI section for more information. ## $schema You can see the JSON Schema for `components.json` [here](https://ui.shadcn.com/schema.json). ```json title="components.json" { "$schema": "https://ui.shadcn.com/schema.json" } ``` ## style The style for your components. **This cannot be changed after initialization.** ```json title="components.json" { "style": "new-york" } ``` The `default` style has been deprecated. Use the `new-york` style instead. ## tailwind Configuration to help the CLI understand how Tailwind CSS is set up in your project. See the installation section for how to set up Tailwind CSS. ### tailwind.config Path to where your `tailwind.config.js` file is located. **For Tailwind CSS v4, leave this blank.** ```json title="components.json" { "tailwind": { "config": "tailwind.config.js" | "tailwind.config.ts" } } ``` ### tailwind.css Path to the CSS file that imports Tailwind CSS into your project. ```json title="components.json" { "tailwind": { "css": "styles/global.css" } } ``` ### tailwind.baseColor This is used to generate the default color palette for your components. **This cannot be changed after initialization.** ```json title="components.json" { "tailwind": { "baseColor": "gray" | "neutral" | "slate" | "stone" | "zinc" } } ``` ### tailwind.cssVariables You can choose between using CSS variables or Tailwind CSS utility classes for theming. To use utility classes for theming set `tailwind.cssVariables` to `false`. For CSS variables, set `tailwind.cssVariables` to `true`. ```json title="components.json" { "tailwind": { "cssVariables": `true` | `false` } } ``` For more information, see the theming docs. **This cannot be changed after initialization.** To switch between CSS variables and utility classes, you'll have to delete and re-install your components. ### tailwind.prefix The prefix to use for your Tailwind CSS utility classes. Components will be added with this prefix. ```json title="components.json" { "tailwind": { "prefix": "tw-" } } ``` ## rsc Whether or not to enable support for React Server Components. The CLI automatically adds a `use client` directive to client components when set to `true`. ```json title="components.json" { "rsc": `true` | `false` } ``` ## tsx Choose between TypeScript or JavaScript components. Setting this option to `false` allows components to be added as JavaScript with the `.jsx` file extension. ```json title="components.json" { "tsx": `true` | `false` } ``` ## aliases The CLI uses these values and the `paths` config from your `tsconfig.json` or `jsconfig.json` file to place generated components in the correct location. Path aliases have to be set up in your `tsconfig.json` or `jsconfig.json` file. **Important:** If you're using the `src` directory, make sure it is included under `paths` in your `tsconfig.json` or `jsconfig.json` file. ### aliases.utils Import alias for your utility functions. ```json title="components.json" { "aliases": { "utils": "@/lib/utils" } } ``` ### aliases.components Import alias for your components. ```json title="components.json" { "aliases": { "components": "@/components" } } ``` ### aliases.ui Import alias for `ui` components. The CLI will use the `aliases.ui` value to determine where to place your `ui` components. Use this config if you want to customize the installation directory for your `ui` components. ```json title="components.json" { "aliases": { "ui": "@/app/ui" } } ``` ### aliases.lib Import alias for `lib` functions such as `format-date` or `generate-id`. ```json title="components.json" { "aliases": { "lib": "@/lib" } } ``` ### aliases.hooks Import alias for `hooks` such as `use-media-query` or `use-toast`. ```json title="components.json" { "aliases": { "hooks": "@/hooks" } } ```