Tips

開発Tips(2025-11-05)

CSS変数(カスタムプロパティ)を効果的に活用して、テーマの切り替えやコンポーネントの再利用性を高めるためのテクニックです。動的なスタイリングをより柔軟に、メンテナンス性を向上させることができます。

CSS

CSS変数(カスタムプロパティ)を効果的に活用して、テーマの切り替えやコンポーネントの再利用性を高めるためのテクニックです。動的なスタイリングをより柔軟に、メンテナンス性を向上させることができます。

CSS変数のスコープとカスケードを利用したテーマ切り替え

CSS変数は、グローバルスコープだけでなく、要素ごとに定義することもできます。この特性を利用して、テーマを切り替える際に、ルート要素にテーマに応じた変数を定義することで、ページ全体のスタイルを簡単に変更できます。

:root {
  --bg-color: #fff;
  --text-color: #000;
}

[data-theme="dark"] {
  --bg-color: #000;
  --text-color: #fff;
}

body {
  background-color: var(--bg-color);
  color: var(--text-color);
}

説明: 上記の例では、:rootにデフォルトの背景色とテキスト色を定義し、[data-theme="dark"]属性を持つ要素に対して、ダークテーマの変数を定義しています。body要素はvar()関数を使ってCSS変数を参照しているため、data-theme属性の値に応じて自動的にスタイルが切り替わります。

注意点: CSS変数はIE11以前のブラウザではサポートされていません。必要に応じて、postcssなどのツールを使ってフォールバックを提供することを検討してください。

おすすめポイント: JavaScriptと組み合わせることで、ユーザーの操作に応じて動的にテーマを切り替えることが可能です。また、コンポーネントごとに異なるCSS変数を定義することで、より柔軟なスタイリングを実現できます。