CSS・見た目をもっと自由に

CSS変数で色をまとめて管理

テーマカラーを変えたくなったら、30か所ぜんぶ書き直し?いいえ、1か所で済む方法があります。色に「名前」をつけて使い回すCSS変数を覚えよう。

サイトのテーマカラーを、オレンジから緑に変えたくなったとします。colorbackgroundに書いたオレンジは、ページのあちこちに30か所——ぜんぶ探して書き直すのは大変です。色に名前をつけて1か所で管理する方法があります。それがCSS変数です。

書き方は「しまう」と「取り出す」

:root {
  --main-color: #ff8a3d;
}

h2 {
  color: var(--main-color);
}
.button {
  background: var(--main-color);
}
部分意味
:rootページ全体を指す特別なセレクタ(変数の置き場所の定番)
--main-color変数の名前--で始めて、自分で好きにつける
var( )しまった値を取り出すいれもの

h2の文字も.buttonの背景も、正体は同じ--main-color:rootの1行を#2ec46fに変えれば、両方が一度に緑になります

動きを見てみよう

見出しの色・ボタン・バッジ——ぜんぶvar(--main-color)で書いたミニページです。ボタンで変数の中身だけを切りかえます。

ボタンがやっているのは、--main-color中身の書きかえだけ。下線もバッジもボタンも全部var(--main-color)で書かれているので、1か所の変更がページ全体に届きます。

色以外もしまえる

変数にしまえるのは色だけではありません。余白や文字サイズなど、くり返し使う値は何でもしまえます。

:root {
  --main-color: #ff8a3d;
  --content-width: 800px;
  --card-radius: 12px;
}

「サイト全体の設定表」が、CSSの先頭にできあがるイメージです。あとから見返す自分にも、やさしい書き方です。

べんりワザ配色サイトで色に迷わないそもそものテーマカラー選びに迷ったら、配色サイトのまとめへ

このレッスンのまとめ

  1. :rootの中に--名前: 値;しまいvar(--名前)取り出す
  2. 同じ色をvar()で使い回せば、1か所の変更がページ全体に効く
  3. 色だけでなく、余白・幅などくり返し使う値は何でもしまえる

やってみよう

今回学んだ「CSS変数」は、しまちゃんのページには使いません(ページが小さいうちは、そのまま書くほうがシンプルです)。ページが育って同じ色を何十か所も使うようになったら、思い出してください。いちばん頼りになる道具です。