forked from XavierGeerinck/shadcn-ui
-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs(www): add api reference for components.json (shadcn-ui#982)
* docs: add api reference for component.json file * docs: use Link for internal links in component.json * docs(www): update docs for components.json --------- Co-authored-by: shadcn <[email protected]>
- Loading branch information
1 parent
75c1404
commit 3c4631b
Showing
3 changed files
with
175 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,163 @@ | ||
--- | ||
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. | ||
|
||
<Callout className="mt-6"> | ||
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. | ||
</Callout> | ||
|
||
You can create a `components.json` file in your project by running the following command: | ||
|
||
```bash | ||
npx shadcn@latest init | ||
``` | ||
|
||
See the <Link href="/docs/cli">CLI section</Link> 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": "default" | "new-york" | ||
} | ||
``` | ||
|
||
<ComponentPreview name="card-with-form" /> | ||
|
||
## tailwind | ||
|
||
Configuration to help the CLI understand how Tailwind CSS is set up in your project. | ||
|
||
See the <Link href="/docs/installation">installation section</Link> for how to set up Tailwind CSS. | ||
|
||
### tailwind.config | ||
|
||
Path to where your `tailwind.config.js` file is located. | ||
|
||
```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 <Link href="/docs/theming">theming docs</Link>. | ||
|
||
**This cannot be changed after initialization.** To switch between CSS variables and utility classes, you'll have to delete and re-install your components. | ||
|
||
## 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. | ||
|
||
<Callout className="mt-6"> | ||
**Important:** If you're using the `src` directory, make sure it is included | ||
under `paths` in your `tsconfig.json` or `jsconfig.json` file. | ||
</Callout> | ||
|
||
### 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" | ||
} | ||
} | ||
``` |