【CSS】修正地獄とはサヨナラ!「CSS変数」で色を一括管理する方法

Webサイトを作り終わった後、こんな修正依頼が来たらどう思いますか?

「このサイトのテーマカラーの『水色』だけど、やっぱり全部『ピンク』に変えてくれない?」

もしCSS変数を​​使っていなければ、何百行もあるCSSの中から色コード(#00bcd4など)を探し出し、一つ一つ書き換えなければなりません。
これはまさに修正地獄です。

しかし、「CSS変数(カスタムプロパティ)」を使っていれば、たった1箇所書き換えるだけで、サイト全体の色が一瞬で変わります。
今回は、未来の自分を救うための「賢いCSSの書き方」を学びましょう。

CSS変数って何?

数学の「x = 10」と同じで、「ある値に名前をつけて保存しておく箱」のことです。
一度箱を作ってしまえば、あとはその「箱の名前」を呼び出すだけで使い回せます。

書き方のルール

  • 宣言(箱を作る): --(ハイフン2つ)で始めます。例:--main-color
  • 使用(箱を使う): var() で囲みます。例:var(--main-color)

実践:色を一括管理してみよう

変数はどこにでも定義できますが、サイト全体で使いたい場合は :root という特別な場所に書くのが鉄則です。

/* 1. まず「:root」で変数を定義する */
:root {
    /* テーマカラーを定義 */
    --main-color: #00bcd4;  /* メインの水色 */
    --text-color: #333333;  /* 文字のグレー */
    --bg-color: #f0f0f0;    /* 背景の薄いグレー */
}

/* 2. 定義した変数を使う */
body {
    background-color: var(--bg-color); /* #f0f0f0 になる */
    color: var(--text-color);          /* #333333 になる */
}

h1 {
    color: var(--main-color);          /* #00bcd4 になる */
    border-bottom: 2px solid var(--main-color);
}

button {
    background-color: var(--main-color);
}

こうしておけば、もし「色をピンクにしたい!」と言われても、:root の中の --main-color を書き換えるだけで、h1もボタンも全てピンクに変わります。

色だけじゃない!便利な使い方

変数に入れられるのは色コードだけではありません。
サイズや余白、フォント名なども管理できます。

:root {
    --content-width: 1000px; /* サイトの最大幅 */
    --base-spacing: 20px;    /* 基本の余白サイズ */
}

.container {
    max-width: var(--content-width);
    padding: var(--base-spacing);
}

.card {
    margin-bottom: var(--base-spacing);
}

「余白をもう少し広げたいな」と思った時も、--base-spacing を変えるだけでサイト全体のバランスを一気に調整できます。

【応用】ダークモード実装への布石

今どきのWebサイトやアプリでよく見る「ダークモード」。
これもCSS変数を使えば簡単に作れます。

「メディアクエリ(スマホ対応で使ったやつ)」を使って、変数の中身だけを入れ替えるのです。

/* デフォルト(ライトモード) */
:root {
    --bg-color: white;
    --text-color: black;
}

/* ユーザーの端末が「ダークモード」設定の時 */
@media (prefers-color-scheme: dark) {
    :root {
        --bg-color: #1a1a1a; /* 背景を黒く上書き */
        --text-color: white; /* 文字を白く上書き */
    }
}

/* 使う側は何も変えなくていい! */
body {
    background-color: var(--bg-color);
    color: var(--text-color);
}

これだけで、OSの設定に合わせて自動で色が切り替わるサイトが作れます。
変数の凄さが分かりましたか?

まとめ:プロは「変更」に備える

初心者は「今、表示されればいい」と考えがちですが、プロは「後で変更があっても楽なように」と考えます。

  • よく使う色は :root で変数にする。
  • 共通のサイズも変数にしておく。

この習慣をつけるだけで、あなたのコードの品質(保守性)はグッと上がります。
次のプロジェクトからは、ぜひCSSの冒頭に :root を書く癖をつけてみてください!

タイトルとURLをコピーしました