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 It is 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:
npx headcn@latest init
See the CLI section for more information.
$schema
You can see the JSON Schema for components.json here.
{
"$schema": "https://ui.headcn.site/schema.json"
}
style
The style for your components. Will support more styles in future versions.
{
"style": "default"
}
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.css
Path to the CSS file that imports Tailwind CSS into your project.
{
"tailwind": {
"css": "styles/global.css"
}
}
tailwind.prefix
The prefix to use for your Tailwind CSS utility classes. Components will be added with this prefix.
{
"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
.
{
"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.
{
"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.components
Import alias for your components.
{
"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.
{
"aliases": {
"ui": "@/app/ui"
}
}
aliases.lib
Import alias for lib
functions such as utils
.
{
"aliases": {
"lib": "@/lib"
}
}