Next.js と Tailwind CSS でダークモードの実装
2025-11-23

サイトを実装するときに、企業向けはあまり利用されませんが、それ以外に多いダークモードの実装を、Next.js と Tailwind CSS を利用して実装します。

Next.js のプロジェクトを作成する

まず最初に、Next.js のプロジェクトを作成します。

sh

途中、プロジェクトの名前の確認、またデフォルトの設定でよいか?という確認が出てきます。デフォルトで Tailwind CSS が適用されるので、今回は Yes で進めていきます。

text

作成されたらプロジェクトを実行します。

sh

無事、実行できました。

Image

アイコンライブラリを追加

モードを切り替えるボタンをコンポーネントとして実装します。このコンポーネントで利用するアイコンとしては、今回は Lucide React を利用します。

以下のコマンドを実行します。

sh

これでアイコンをサイトで使えるようになりました。

コンポーネントの追加

続いてコンポーネントを追加します。components フォルダを追加して、ThemeSwitcher.tsx ファイルとして以下のファイルを作成します。

components/ThemeSwitcher.tsx

続いてスタイルシートで darkmode を使えるようにするために、globals.css に以下のサンプルの2行目のコードを追加します。

app/globals.css

これでコンポーネントの準備ができました。

ページにアイコンを実装

本来はナビゲーションにボタンを配置するのが正しい形ですが、今回は動作確認だけのため、pages.tsx にコードを追加します。main の前にコンポーネントを配置して、また作成したコンポーネントをインポートします。

app/page.tsx

これでボタンを配置することができました。実行します。

sh

以下のようにボタンを押下すると、モードが切り替わるようになりました。

Image

まとめ

ダークモードの実装に関して、特にむつかしい手順が割るわけでもなく、公式にもサンプルがあるのでハードルは低いですが、サイトを作るときに毎回作業をするので汎用的なコンポーネントを作っておくのを目的として、今回の記事をまとめました。

サンプルのコードに関しては、以下のリポジトリに公開をしています。