Next.js + Tailwind CSS + shadcn/ui

最近話題の、UI コンポーネントの shadcn/ui をこのドキュメントでは評価していきます。shadcn/ui は、UI コンポーネントライブラリとして提供されており、npm パッケージとして提供する形ではないため、使いやすく、カスタマイズ可能なコンポーネントが豊富に揃っています。

主なメリットは以下のようになります。

このドキュメントでは、 Next.js のプロジェクトをベースに、 Pages Router としての利用を評価していきます。

プロジェクトを作成

まず最初に、Next.js のプロジェクトの作成をします。手順に関しては以下のページを参考にして進めて行きます。

それでは早速、プロジェクトを作成して行きます

Image
sh
Image

初期化後に変わっているファイルを確認します。

package.json

これで準備が整いました。

コンポーネントの追加

早速コンポーネントをいくつか追加して行きます。

Button

インストール手順に記載されているボタンを追加します。

sh

プロジェクトの更新を確認すると以下のようになります。

これで利用できるコンポーネントが追加されました。トップページを以下のように変更しました。

src/pages/index.tsx

ボタンが表示されるようになりました。

Image

Button に関しては以下のページでより詳細な利用方法が記載されています。

続いて Web サイトを作る時の練習によく使われる Carousel を追加します。

sh

button.tsx があるが上書きするか?という質問が表示されます。

Image

上書きを選択して、プロジェクトの更新が完了となります。変更点を確認すると以下のようになります。

shadcn/ui の Carousel は embla-carousel-react を利用していることになります。このパッケージの公式サイトは以下の通りです。

作成されたコンポーネントを先ほどと同様にトップページに配置します。

src/pages/index.tsx

実際の動作している模様は、以下のようになります。

Image

Carousel に関しては以下のページでより詳細な利用方法が記載されています。

まとめ

今回は Button と Carousel のみを紹介しましたが、さまざまな UI が用意されており、これを利用することでより簡単にサイトで利用するコンポーネントを利用することが可能となります。

今回、ここで紹介をした Next.js のプロジェクトは以下のリポジトリで公開をしています。

参考情報