この記事では、 shadcn/ui の概要と、Vite環境でのインストール手順、基本的な使い方をまとめます。
概要: shadcn/ui とは?
shadcn/ui
は、Tailwind CSS をベースに構築されたUI コンポーネントライブラリです。
shadcn/ui公式サイト:
特徴
- Radix UI による高品質なアクセシビリティ
- Tailwind CSS による完全なカスタマイズ性
- TypeScript 対応済みで、型安全な開発が可能
- コンポーネントはプロジェクト内にインストールされる=ソースコードが手元にある
- テーマ(ライト/ダーク)切替やカスタマイズが容易
インストール手順(Vite)
基本的には公式ドキュメント通りに進行:https://ui.shadcn.com/docs/installation/vite
1. Viteプロジェクトを作成
まずはViteプロジェクトを作成します。(作成済みなら次へ)
必要に応じて、フォルダ構成やCSSファイル等の整理もここで行っておくと良いかもしれません。
npm create vite@latest
※この記事では、TypeScript実装のReact環境を選択しています。
2. TailWindCSSの追加
- viteプロジェクトフォルダへ移動し、tailwindcssをインストール
npm install tailwindcss @tailwindcss/vite
src/index.css
次の内容に置き換える
(デフォルトのCSSはすべて消すか、別ファイルにバックアップしておく)
@import "tailwindcss";
index.css
の @import "tailwindcss";
は、追記ではなく置き換えによる対応を推奨します。
shadcnの初期化 (init
実行)時に、内容が更新されるため、既存CSSに同名のクラスがあると構成がずれたりして後で大変です
tsconfig.json
を編集
{
"files": [],
"references": [
{ "path": "./tsconfig.app.json" },
{ "path": "./tsconfig.node.json" }
],
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}
}
}
- IDE のパスを解決するため、ファイル
tsconfig.app.json
にも次のコードを追加します。
{
"compilerOptions": {
// ...(デフォルトで存在する設定群)
/* shadcn用設定 */
"baseUrl": ".",
"paths": {
"@/*": [
"./src/*"
]
}
}
}
Vite設定ファイル 補足
tsconfig.json
は、プロジェクト全体のエントリーポイント設定ファイル。
ここで参照する設定ファイルを指定する。
各プロパティの意味:
baseUrl
モジュール解決の基準ディレクトリを指定します。"."
を指定することで、プロジェクトルートを基準にモジュールを解決できます。paths
import 文で使用するパスエイリアスを定義します。
この例では次のような置き換えが行われます:
import Foo from "@/components/Foo"
は
./src/components/Foo
と解決されます。
@/*
→ ./src/*
というマッピングを定義したので、src/
内のファイルを簡単に import できるようになるわけです。
❓ なぜ tsconfig.app.json
も編集するのか?
tsconfig.json
は参照のルートで、実際にコンパイル対象になるのは tsconfig.app.json
(アプリ用)や tsconfig.node.json
(Node 用)です。
そのため、compilerOptions
を tsconfig.json
に追加するだけでは不十分 で、tsconfig.app.json
にも同じ設定(baseUrl
と paths
)を追加しておく必要があります。
つまり:
tsconfig.json
に書く → プロジェクト全体の共通設定tsconfig.app.json
に書く → アプリケーションコードの解決に実際に反映される
- アプリがパスを解決できるように、次のコードを
vite.config.ts
に追加
import path from "path"
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import tailwindcss from "@tailwindcss/vite"
// https://vite.dev/config/
export default defineConfig({
plugins: [
react(), // React の JSX/TSX を変換・最適化する
tailwindcss(), //tailwindcss
],
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
},
},
})
3. shadcn セットアップ
- 以下コマンドを実行して
shadcn
プロジェクトをセットアップ
npx shadcn@latest init
- コマンド起動時の質問はそれぞれ以下のように回答
Need to install the following packages:
shadcn@2.10.0
Ok to proceed? (y) y
-> パッケージインストールの確認。 「y」を入力し、続行でOK
? Which color would you like to use as the base color? » - Use arrow-keys. Return to submit.
> Neutral
Gray
Zinc
Stone
Slate
→https://ui.shadcn.com/colors を参考に選択

- 以下メッセージが出力されていればOK
Success! Project initialization completed.
You may now add components.
- 設定ファイル
components.json
の追加(詳細については以下参照https://ui.shadcn.com/docs/components-json index.css
(@import "tailwindcss";
の置き換えを行ったCSSファイル)の更新
→確認すると、各テーマ設定等が追記更新されていることを確認できます。
shadcnコンポーネントの導入・使用
以降は、使用したいコンポーネントを適宜追加・利用していきます。
基本的な導入・使用手順:
- 使いたいコンポーネントのドキュメントページを確認:公式Docコンポーネント一覧
- ドキュメントページ「Installation」セクションに記載のコマンドを実行して導入
例:Buttonの場合、
npx shadcn@latest add button
※ shadcn コンポーネントは、scr/components/ui
の中に追加されていきます。
(ファイル形式で追加されるため、ここでカスタマイズも可能です)

- ドキュメントページ「Usage」セクションで、基本的な用法が確認できます。
