クリックでテーマカラー変更

インタラクション Easy #js #color #theme #picker

パレットの色を押すと、見出しやボタンのアクセントカラーが一斉に切り替わる設定 UI です。仕掛けの中心は CSS カスタムプロパティ(変数)で、配色を --acc という一つの変数にまとめておきます。

▶ プレビュー

解説

パレットの色を押すと、見出しやボタンのアクセントカラーが一斉に切り替わる設定 UI です。仕掛けの中心は CSS カスタムプロパティ(変数)で、配色を --acc という一つの変数にまとめておきます。短い JavaScript が、押されたボタンの data-c に入った色を読み取り、root.style.setProperty--acc を上書きします。色を参照している箇所はすべて変数経由なので、一度の書き換えで関連する見た目がまとめて変わります。

使う場面

テーマカラー設定、商品のカラーバリエーション選択、ブランドキットのプレビューなど、ユーザーに見た目を選ばせたい画面に向きます。選択中のボタンには is-on クラスで枠を付け、今どれを選んでいるかが一目で分かります。

  • 色を増やす:パレットにボタンを足し data-c に色を書くだけで選択肢が増えます。
  • 反映先:新たに色を効かせたい要素も var(--acc) で書けば、自動で連動します。
  • 注意:CSS のみではこの一括切替は難しく、色の出し分けに短い JavaScript が必要です。選択状態を保存したい場合は別途記憶の仕組みを足します。

よくある質問

選べる色を増やすには
パレットにボタンを 1 つ追加し、その data-c 属性に使いたい色コードを書くだけです。クリック処理は全ボタンへまとめて割り当てているので、追加分も自動で反応します。
新しい要素にもこの色を効かせたいです
色を当てたいプロパティの値を var(--acc) と書けば連動します。変数を一括で書き換える仕組みなので、参照しておけば色変更のたびに自動で追従します。
追加日:2026-05-13
← すべてのスニペットへ戻る