作ってみた

自作WordPressテーマにダークモードを実装してみたらClaude Codeのプランモードが優秀すぎた話

自作WordPressテーマにダークモードを実装してみたらClaude Codeのプランモードが優秀すぎた話のアイキャッチ画像

はじめに:「ダークモード、つけたいな」と思った

自作テーマは完成した。高速化もした。

見た目は気に入っているし、表示速度も改善された。でもふと他のサイトを見ていて、気づいてしまったんです。

最近のサイト、大体ダークモードある。

前回のテーマ自作ではリポジトリを3回作り直したり、アップロードしたらWordPressが死んだり、それなりに苦労しました。だから今回もそれくらいかかるだろうと覚悟していたんですが……。

拍子抜けするほど簡単に終わりました。

前回あんなに苦労したのに、今回は本当にこれだけで終わるモン…?

この記事でわかること

  • ダークモードの仕組み(ざっくり)
  • Claude Codeのプランモードで実装した全手順
  • 設定を覚えておく仕組み(localStorage)
  • つまづき……ほぼなかった話
  • 完成したビフォーアフター

結論:プランモードに聞いて、推奨を選ぶだけだった

先に結論です。正直に書きます。

項目内容
実作業時間約1時間(ほとんど待ち時間)
自分がやったことプランモードで質問 → 推奨を選択 → 計画書を確認 → 実行 → 微修正
自分で書いたコード0行
つまづいたポイントほぼなし
難易度(体感)テーマ自作の10分の1くらい

前回のテーマ自作記事では「リポジトリを3回作り直した」「WordPressが死んだ」と苦労話を書きました。今回はその続編なので、同じくらいの苦労話を期待している人もいるかもしれません。

すみません、今回はほぼ何もしていません。

以下、本当にやったことだけを紹介します。


そもそもダークモードってどう作るの?

実装の話に入る前に、仕組みだけざっくり説明しておきます。これを知っておくと、AIがやってくれたことの意味がわかります。

基本は「色の変数を2セット用意して切り替える」だけ

CSSには「変数(カスタムプロパティ)」という機能があります。色を直接書く代わりに、名前をつけて管理できる仕組みです。

/* ライトモードの色 */
:root {
  --bg-color: #FFFDF7;      /* 背景:クリーム色 */
  --text-color: #333333;     /* 文字:濃いグレー */
  --accent-color: #FF8C00;   /* アクセント:オレンジ */
}

/* ダークモードの色 */
[data-theme="dark"] {
  --bg-color: #1a1a2e;       /* 背景:暗い紺 */
  --text-color: #e0e0e0;     /* 文字:明るいグレー */
  --accent-color: #FFB347;   /* アクセント:やわらかいオレンジ */
}

ライト用とダーク用の色を用意しておいて、data-theme="dark" がつくとダーク用の色に切り替わる。やっていることはこれだけです。

切り替えの流れ

ボタンを押す → HTMLに data-theme="dark" がつく → CSSの色が切り替わる → 画面の色が変わる。

この仕組みを頭に入れておくと、Claude Codeが作った計画書の内容がすんなり理解できます。


実際にやったこと、全部見せます

盛りません。本当にこれだけです。

やったこと①:プランモードで「できる?」と聞いた

Claude Codeには「プランモード」という機能があります。いきなりコードを書き始めるんじゃなくて、まず実装の計画を立ててくれるモードです。

僕がやったのは、こう聞いただけ。

今のブロモンテーマにダークモード追加できる?

これだけです。細かい技術仕様も、ファイル構成の説明も、何も伝えていません。

するとClaude Codeがテーマのコードベースを自動で分析して、こんな報告をしてくれました。

  • style.cssの色は約95%がすでにCSS変数で管理されている(変数化の手間がほぼない)
  • body_class()のフィルターが既にあり、クラス追加の仕組みが整っている
  • localStorageの読み書きパターンも既に実装済みで流用できる
  • ハードコードされた色が40箇所超あるので、そこをダーク用に上書きする必要がある
Claude Codeのプランモードでコードベースを分析した結果の画面スクリーンショット

つまりこのテーマはダークモード実装に非常に向いていますという診断結果。テーマを自作したときに、意図せず土台ができていたみたいです。

やったこと②:聞かれた質問に「推奨」を選んだ

分析のあと、Claude Codeが3つの質問をしてきました。

質問選択肢僕が選んだもの
初回訪問時のデフォルトは?OS設定に追従(推奨) / 常にライトOS設定に追従(推奨)
トグルボタンの設置場所は?ヘッダー右側・検索アイコンの隣(推奨) / フッターヘッダー右側(推奨)
今回の対応範囲は?全UIをしっかり暗く(推奨) / 一部だけ全UI(推奨)

全部「推奨」を選びました。考えた時間、合計30秒くらいです。

すると、これらの選択に基づいた実装計画書(Planエージェント)が自動で作成されました。FOUC対策の早期スクリプト、ダークパレットの設計、ハードコード色の洗い出し……全部入った計画書です。

推奨ボタンを3回押すだけでプロの設計書ができるの、すごいモン!

やったこと③:計画書を読んで、実行した

計画書の内容を一通り読みました。正直、全部は理解できていません。でも大まかに「こういう手順でやるのね」というのはわかりました。

で、実行。

Claude Codeが計画に沿ってファイルを編集していく様子を眺めていただけです。style.cssにダーク用のカラーパレットが追加されて、header.phpに切り替えボタンが設置されて、JavaScriptが組み込まれて……。

数分で、ダークモードが動いていました。

やったこと④:気になるところだけ修正を頼んだ

ほぼ完成していたんですが、2点だけ気になるところがありました。

  • 吹き出し内の文字がダークモードで読めなくなっていた
  • 「学生の成長記録ブログ」セクションの背景の緑色がダークモードと相性が悪かった

これもスクリーンショットを撮って「ここだけ修正してほしい」と伝えたら、すぐに直してくれました。

以上です。本当にこれで終わりました。

ダークモード実装後は、吹き出しやボタンの文字色も必ずチェックするのがおすすめだモン!

地味に大事な「設定を覚えておく」仕組み

せっかくなので、Claude Codeが実装してくれた中で「これは知っておくと良いな」と思った仕組みを紹介します。

ダークモードに切り替えても、ページを移動したりリロードすると元に戻ってしまったら不便ですよね。これを解決するのがlocalStorageです。

// ユーザーの選択を保存
localStorage.setItem('theme', 'dark');

// ページ読み込み時に復元
const savedTheme = localStorage.getItem('theme');
if (savedTheme) {
  document.documentElement.setAttribute('data-theme', savedTheme);
}

ブラウザにデータを保存しておく仕組みで、ページを閉じてもデータが残ります。「ユーザーが選んだモードを保存 → 次のページ読み込みで復元」。これだけで設定が維持されます。

ちなみに今回のテーマでは、初回訪問時はOS設定に追従する仕組みにもなっています(Windowsのダークモード設定がオンなら、初回からダークで表示される)。こういう細かい配慮も、Claude Codeが計画に含めてくれていました。


つまづきポイントは……ほぼなかった

正直に書きます。

前回のテーマ自作記事では「つまづいたポイント3つ」を紹介しました。あの記事ではリポジトリを3回作り直したし、WordPressが死んだし、それなりに修羅場がありました。

今回はほぼつまづいていません

強いて言えば、さっき書いた「吹き出しの文字が読めない」「背景の緑がダークと合わない」の2点くらい。でもこれもスクショを送ったら一発で直ったので、「つまづいた」というほどでもないです。

なぜ今回はスムーズだったのか?

理由は2つあると思っています。

1つ目は、テーマの設計がよかった(らしい)。

Claude Codeの分析によると、ブロモンテーマは色のCSS変数化が約95%できていて、クラス追加の仕組みも整っていたそうです。テーマ自作のときに意図してやったわけじゃないんですが、結果的にダークモード実装の土台ができていました。

2つ目は、プランモードの力。

いきなりコードを書き始めるんじゃなくて、まずコードベースを分析して、質問をして、計画を立ててから実行する。この手順のおかげで、「やってみたら動かない → やり直し」のサイクルがほぼ発生しませんでした。

テーマ自作のときは「画像を渡してテンプレート作って」とざっくり投げて、出てきたものを見て「違う」を繰り返していました。プランモードを使うかどうかで、こんなに変わるんだなと実感しました。

前回の苦労があったからこそ、今回の楽さが際立つんだモン!経験値ってやつだモン!

完成!ビフォーアフター

実装完了後のビフォーアフターです。

状態ライトモードダークモード
背景クリーム色(#FFFDF7)暗い紺(#1a1a2e)
文字濃いグレー明るいグレー
アクセント鮮やかなオレンジやわらかいオレンジ
ブロモンそのままドロップシャドウ追加
切り替えボタン☀️ 表示🌙 表示
ライトモードとダークモードのトップページを横に並べた比較スクリーンショット

切り替えた瞬間の気持ちよさ、やばいです。スッと色が変わって、

一気にそれっぽいサイトになったという実感がありました。

正直、機能的には必須じゃないかもしれません。でもダークモード対応しているだけで、サイトの「ちゃんと作ってる感」がかなり上がる。夜にブログを読む読者にとっても、目に優しい選択肢を用意できている。

これが実作業1時間で実装できたのは、ちょっと衝撃でした。


まとめ:バイブコーディングは「慣れる」ともっと楽になる

やったこと所要時間
プランモードで質問1分
推奨を3つ選ぶ30秒
計画書を読む10分
実行を見守る数分
微修正を2箇所依頼10分
合計約30分〜1時間

テーマ自作記事では「20~30時間かかった」と書きました。

今回は1時間以下。この差は、AIとの付き合い方がわかってきたことと、プランモードの存在が大きいです。

バイブコーディングのコツは、最初から完璧を求めないこと。

でもそれ以上に大事なのは、AIに良い聞き方をすること

「ダークモード追加できる?」と聞くだけで、AIが現状分析して、質問して、計画を立てて、実行してくれる。自分は判断するだけ。

テーマ自作 → 高速化 → ダークモード。やるたびにAIとの連携がスムーズになってきている実感があります。次は何を実装しようかな。

テーマ自作→高速化→ダークモード、どんどん成長してるモン!次も一緒にがんばるモン!

・関連記事

テーマ改善シリーズの第1回。こっちは苦労話多めです!ぜひ読んでみてください!

テーマ改善シリーズの第2回ページ読み込みの最適化の記事はこちら!

ClaudeCodeの始め方ガイドはこちら!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA