components.json

components.json

components.json 파일에는 프로젝트에 대한 설정이 담겨 있어요. 프로젝트가 어떻게 구성되어 있고, 프로젝트에 맞게 컴포넌트를 어떻게 생성할지를 이 파일을 통해 파악해요.

출처: 문서

본문

components.json 파일은 프로젝트 설정을 담고 있어요.

프로젝트가 어떻게 구성되어 있는지, 그리고 프로젝트에 맞게 컴포넌트를 어떻게 생성할지를 이해하는 데 사용해요.

참고: `components.json` 파일은 선택 사항이며, **CLI를 사용해** 프로젝트에 컴포넌트를 추가할 때만 필요해요. 복사·붙여넣기 방식으로 사용한다면 이 파일이 필요 없어요.

다음 명령어를 실행하면 프로젝트에 components.json 파일을 생성할 수 있어요:

npx shadcn@latest init

자세한 내용은 CLI 섹션을 참고해 주세요.

$schema

components.json의 JSON Schema는 여기에서 볼 수 있어요.

{
  "$schema": "https://ui.shadcn.com/schema.json"
}

style

컴포넌트의 스타일이에요. 초기화 후에는 변경할 수 없어요.

{
  "style": "default" | "new-york"
}

tailwind

CLI가 프로젝트에서 Tailwind CSS가 어떻게 구성되어 있는지 파악하도록 돕는 설정이에요.

Tailwind CSS를 설정하는 방법은 설치 섹션을 참고해 주세요.

tailwind.config

tailwind.config.js 파일이 위치한 경로예요.

{
  "tailwind": {
    "config": "tailwind.config.js" | "tailwind.config.ts"
  }
}

tailwind.css

Tailwind CSS를 프로젝트로 가져오는 CSS 파일의 경로예요.

{
  "tailwind": {
    "css": "styles/global.css"
  }
}

tailwind.baseColor

컴포넌트의 기본 색상 팔레트를 생성하는 데 사용돼요. 초기화 후에는 변경할 수 없어요.

{
  "tailwind": {
    "baseColor": "gray" | "neutral" | "slate" | "stone" | "zinc"
  }
}

tailwind.cssVariables

테마링을 위해 CSS 변수를 쓸지, Tailwind CSS 유틸리티 클래스를 쓸지 선택할 수 있어요.

테마링에 유틸리티 클래스를 사용하려면 tailwind.cssVariables를 false로 설정하세요. CSS 변수를 사용하려면 tailwind.cssVariables를 true로 설정하면 돼요.

{
  "tailwind": {
    "cssVariables": `true` | `false`
  }
}

자세한 내용은 테마링 문서를 참고해 주세요.

초기화 후에는 변경할 수 없어요. CSS 변수와 유틸리티 클래스 사이를 전환하려면 컴포넌트를 삭제하고 다시 설치해야 해요.

tailwind.prefix

Tailwind CSS 유틸리티 클래스에 사용할 접두사(prefix)예요. 컴포넌트에 이 접두사가 붙어서 추가돼요.

{
  "tailwind": {
    "prefix": "tw-"
  }
}

rsc

React Server Components 지원 여부예요.

true로 설정하면 CLI가 클라이언트 컴포넌트에 자동으로 use client 지시문을 추가해요.

{
  "rsc": `true` | `false`
}

tsx

TypeScript 또는 JavaScript 컴포넌트 중에서 선택해요.

이 옵션을 false로 설정하면 컴포넌트가 .jsx 확장자로 JavaScript로 추가돼요.

{
  "tsx": `true` | `false`
}

aliases

CLI는 이 값들과 tsconfig.json 또는 jsconfig.json 파일의 paths 설정을 사용해 생성된 컴포넌트를 올바른 위치에 배치해요.

경로 별칭(path aliases)은 tsconfig.json 또는 jsconfig.json 파일에 설정되어 있어야 해요.

**중요:** `src` 디렉터리를 사용한다면, `tsconfig.json` 또는 `jsconfig.json` 파일의 `paths`에 포함되어 있는지 확인해 주세요.

aliases.utils

유틸리티 함수의 import 별칭이에요.

{
  "aliases": {
    "utils": "@/lib/utils"
  }
}

aliases.components

컴포넌트의 import 별칭이에요.

{
  "aliases": {
    "components": "@/components"
  }
}

aliases.ui

ui 컴포넌트의 import 별칭이에요.

CLI는 aliases.ui 값을 사용해 ui 컴포넌트를 어디에 배치할지 결정해요. ui 컴포넌트의 설치 디렉터리를 커스텀하고 싶다면 이 설정을 사용하세요.

{
  "aliases": {
    "ui": "@/app/ui"
  }
}

aliases.lib

format-date나 generate-id 같은 lib 함수의 import 별칭이에요.

{
  "aliases": {
    "lib": "@/lib"
  }
}

aliases.hooks

use-media-query나 use-toast 같은 hooks의 import 별칭이에요.

{
  "aliases": {
    "hooks": "@/hooks"
  }
}

더 알아보기 (Learn more)

  • 설치 (Installation) — Tailwind CSS와 프로젝트를 설정하는 방법이에요.
  • 테마링 (Theming) — CSS 변수와 유틸리티 클래스 기반 테마링이에요.
  • CLI — shadcn CLI 사용 방법이에요.