【初心者向け】shacn/uiを初めて使うときに知りたいことまとめ

Featured image of the post

はじめに

「初めてshadcn/uiを使う人」向けに最初に知っておくとよさそうなことを解説する😊

この記事で伝えたいこと
  • shadcn/uiとは何か
  • 他のUIライブラリと何が違うか
  • メリット、デメリット
  • 使い方
  • どのようなときにshadcn/uiを使うべきか
結論

✅shadcn/uiはReactのUIライブラリの1つ

カスタマイズしやすいのが特徴。

✅使い方はめちゃくちゃ簡単!

shadcn/uiとは何か

ReactのUIライブラリの一つ。

💡
ちなみに読み方は「シャドシーエヌ ユーアイ」

他のUIライブラリと何が違うか

✅コンポーネントを自分のプロジェクトの中に配置してから使う。

従来のUIライブラリ(MUIなど)の場合

UIライブラリ(MUIなど)のコンポーネントを直接使う。

// MUIから読み込む
import Button from '@mui/material/Button';

shadcn/uiの場合

UIライブラリのコンポーネントを自分のプロジェクトの中に配置してから使う。

  1. UIライブラリ(shadcn/ui)のコンポーネントを自分のプロジェクトの中に配置する。
    npx shadcn-ui@latest add button

    →自分のプロジェクトの中に button.tsx が自動生成される!

  2. 自分のプロジェクトの中にあるコンポーネントを読み込んで使う。
    // 自分のプロジェクトの中にあるコンポーネントを読み込む
    import { Button } from "@/components/ui/button";

メリット、デメリット

自分でコンポーネントを管理、カスタマイズできる⭕️

従来のUIライブラリ(MUIなど)はコンポーネントがnode_modulesの中で管理されている💦

shadcn/uiはUIコンポーネントを自分のプロジェクトの中に配置できる✅

(=自由にコンポーネントを触ることができる!)

必要なコンポーネントだけインストールできる⭕️

従来のUIライブラリ(MUIなど)は全コンポーネントをインストールする必要がある💦

shadcn/uiは必要なコンポーネントだけをコマンドでインストールできる

(=軽量!)

(例:ボタンのコンポーネントだけインストール)
npx shadcn-ui@latest add button

カスタマイズにはTailwind CSSの知識が必要❌

shadcn/uiのコンポーネントはTailwind CSSで書かれているので、カスタマイズするにはTailwind CSSの知識が必要💦

使い方

たった3ステップで簡単に使える!

💡
今回はNext.jsの例で解説する!

(ViteやLaravelでも公式ドキュメントのとおりにすれば簡単に使える)

前提

✅Next.jsのプロジェクトは作成済み。

【補足】まだプロジェクトがない場合

以下の手順でプロジェクトを作成する。

  1. コマンドでプロジェクトを作成する。
    npx create-next-app@latest
    Image in a image block

  2. プロジェクトに移動
    cd my-app

  3. 実行
    npm run dev
    Image in a image block

  4. 正常に動作しているか確認

    ブラウザでhttp://localhost:3000/を開いて、何かページが表示されていればOK!

    (ページの見た目はNext.jsのバージョンによって変わる)

    Image in a image block

【手順1】shacn/uiをインストール

コマンドを1つ実行するだけでインストールできる。

(この時点ではコンポーネントはインストールしていない)

npx shadcn@latest init

実行例

Image in a image block

【手順2】使いたいコンポーネントをインストール

コマンドを1つ実行するだけでコンポーネントをインストールできる。

(例:ボタンをインストール)
npx shadcn@latest add button

実行例

Image in a image block

src/components/ui/button.tsx が自動生成されていれば成功✨

Image in a image block

【補足】他にどんなコンポーネントがある?

✅公式ドキュメントを参照。

「コンポーネントの一覧」と「インストール方法」がまとまっている。

【手順3】コンポーネントを使う

✅後は普段の自作コンポーネントを使うときと同じ!importして使うだけ!

💡
今回はトップページでボタンコンポーネントを使ってみる。

  1. ソースコードを編集

    src/app/page.tsx

    (デフォルトで用意されているコードはすべて削除して、以下のコードを貼り付ける)

    import { Button } from "@/components/ui/button";
    
    export default function Home() {
      return (
        <Button>Click Me</Button>
      );
    }
    Image in a image block

  2. 実行
    npm run dev
    Image in a image block

  3. 表示を確認

    ブラウザでhttp://localhost:3000/を開いて、ボタンが表示されていればOK!

    Image in a image block

どのようなときにshadcn/uiを使うべきか

UIを柔軟にカスタマイズしたいとき

従来のUIライブラリ(MUIなど)よりも簡単に見た目をカスタマイズできるので、柔軟にカスタマイズしたいときに便利そう✨

💡
逆に「標準的なUI」で十分なときは、従来のUIライブラリ(MUIなど)を使ってもいいかも!

まとめ・感想

  • shadcn/uiは自分のプロジェクトの中でコンポーネントを管理できるUIライブラリ。

    →柔軟にスタイルをカスタマイズしやすい

  • コマンド1つでコンポーネントをインストールできる。

    →コードをコピペするような感覚で簡単に使える✨

  • スタイルはTailwind CSSで書かれている。

    AIを活用したコーディングとも相性がよさそう✨

参考サイト