はじめに
以前、Qiitaに投稿した巷で噂のshadcn/uiをNext.jsで使ってみたという記事は、多くの方に読んでいただきました。特にこの記事は現在も多くの方にご覧いただいており、大変うれしく思っています。
巷で噂のshadcn/uiをNext.jsで使ってみた - Qiitashadcn/uiとはshadcn/uiとは、これは Radix UIとTailwind CSSを使って書かれた UI コンポーネントをまとめたもので、TailwindCSS を通じてスタイルをカ…qiita.com
そこで今回は、最新のNext.js 15とReact 19に対応したshadcn/uiの使い方を改めて解説していきたいと思います。これから新しいプロジェクトで採用を検討している方や、既存のプロジェクトでのバージョンアップを検討している方のお役に立てれば幸いです。
shadcn/uiとは?
shadcn/uiBeautifully designed components that you can copy and paste into your apps. Accessible. Customizable. Open Source.ui.shadcn.com
Qiitaの記事にも書いているのですが、shadcn/uiとはまず何かを紹介したいと思います。shadcn/uiとは、 Radix UIとTailwind CSSを使って書かれた UI コンポーネントをまとめたもので、Tailwind CSS でスタイルをカスタマイズできます。
shadcn/uiは、柔軟性 と 拡張性 が高く、必要なコンポーネントだけを選択し、自分でカスタマイズすることができます。また、通常のコンポーネントライブラリとは異なり、npmパッケージとして配布されていないので、npmの依存関係に影響しません。また、コンポーネントのコードはCLIでダウンロードすることができます。
環境
この記事では、Next.js 15, React 19で実際にshadcn/ui
をインストールしていきます。執筆時点の shadcn/uiのバージョンは2.1.8
です。また、記事内では、srcディレクトリ、App RouterでNext.jsを実行しておりますが、Pages Routerやsrcディレクトリを使わない場合、Next.js 15・React 19以前のバージョンでも同じようにインストールは可能です。
インストール
npx shadcn@latest init
をターミナルで叩いてインストールします。
ちなみに、スタイルについては、 https://ui.shadcn.com/docs/components/accordion でコンポーネントごとに、defaultとNewYorkの例をみることができます。また、テーマについては、https://ui.shadcn.com/themes でプレビューを確認することができます。
初期化が完了すると、components.json
とsrc/lib/utils.ts
が作成されます。
componentsを導入する
ここではNext.jsで試しに accordion
をインストールする。
すると、components/ui/accordion.tsx
が作成されます。
インストールしたAccordion
を以下のようにpage.tsxからインポートします。
npm run dev
して、https://localhost:3000/sample にアクセスすると以下のように表示されます。
そのほかのコンポーネントも同様にインストール可能です。どのようなコンポーネントが存在するかは https://ui.shadcn.com/docs/components/accordion に詳細が全て載っています。
chartを導入する
Rechartという機能を使って、さまざまなグラフを簡単に導入することができます。どのようなグラフがあるかは、 https://ui.shadcn.com/charts で確認することができます。
chartを導入する場合は、package.json
を以下を追記します。
npm install --legacy-peer-deps
をして、あとは上記のcomponentsを導入する と同じくnpx shadcn@latest add chart
をターミナルで叩けば使用可能です。
終わりに
他にもFigmaとの連携やCSS変数やユーティリティクラスの使い方、ダークテーマの使い方について知りたい方は、Qiitaの記事の巷で噂のshadcn/uiをNext.jsで使ってみたを参考にしてみてください。
巷で噂のshadcn/uiをNext.jsで使ってみた - Qiitashadcn/uiとはshadcn/uiとは、これは Radix UIとTailwind CSSを使って書かれた UI コンポーネントをまとめたもので、TailwindCSS を通じてスタイルをカ…qiita.com