CSS変数とは何か
CSS変数(Custom Properties)とは、CSSの中で値に名前をつけて使い回せる仕組みです。プログラミングの変数と同じ概念です。
例えば「ゴールド」という色を10箇所で使っている場合、変数を使えば1箇所だけ変えれば全部変わります。変数を使わない場合は10箇所すべてを修正しなければなりません。
AURELIONサイトの:rootを読む
サイトのCSSの先頭には :root というブロックがあります。ここがカラーパレットの定義場所です。
CSSindex.html <style> より
:root {
/* ゴールド系 */
--gold: #c9a84c; /* メインのゴールド */
--gold-light: #e8c96d; /* 明るいゴールド */
--gold-pale: #f5e6b8; /* 薄いゴールド */
/* ダーク系(背景色) */
--dark: #080808; /* 最も暗い(メイン背景) */
--dark2: #111111; /* 少し明るい暗い */
--dark3: #1a1a1a; /* さらに明るい暗い */
/* テキスト系 */
--text: #d4c9b0; /* メインテキスト(温かみのある白) */
--text-dim: #7a7060; /* 薄いテキスト(説明文など) */
--white: #f9f4eb; /* 白(タイトルなど) */
}
カラーパレットの全色
--gold
--gold-light
--gold-pale
--dark
--dark2
--dark3
--text
--text-dim
--white
変数の書き方:定義と使用
定義(:rootの中)
CSS
:root {
--変数名: 値; /* --(ハイフン2つ)で始める */
}
使用(どのCSSプロパティでも)
CSS
body {
background: var(--dark); /* var(--変数名) で呼び出す */
color: var(--text);
}
.nav-logo {
color: var(--gold); /* どこでも同じ変数が使える */
}
.watch-price {
color: var(--gold); /* 同じゴールドを統一して使用 */
}
変数を使うメリット
メリット1:色の変更が一箇所で済む
例えば --gold の値を変えると、サイト全体のゴールド色がすべて一括で変わります。
CSS
/* これを変えるだけで... */
:root {
--gold: #c9a84c; ← ここを #ff6b6b に変えれば...
}
/* ...サイト中のゴールドが全部赤に変わる */
color: var(--gold); /* 自動で #ff6b6b になる */
border-color: var(--gold); /* 自動で #ff6b6b になる */
background: var(--gold); /* 自動で #ff6b6b になる */
メリット2:色に意味のある名前がつく
#c9a84c と書くより var(--gold) と書いた方が、「これはブランドカラーのゴールドだ」とすぐわかります。コードが読みやすくなります。
rgba() と組み合わせた半透明色
AURELIONサイトでは、ボーダーや微妙な背景色に半透明の色を多用しています。CSS変数と rgba() の組み合わせを見てみましょう。
CSSindex.html より
nav.scrolled {
background: rgba(8, 8, 8, .96); /* --dark の値をrgbaで半透明に */
border-bottom: 1px solid rgba(201, 168, 76, .15); /* --gold を15%透明度で */
}
.watch-visual::before {
background: radial-gradient(ellipse at 50% 50%,
rgba(201, 168, 76, .06) 0%, /* ゴールドを6%透明度で */
transparent 70%
);
}
rgba()の第4引数
rgba(R, G, B, A) のAは透明度(0=完全透明、1=完全不透明)。0.15 は15%の不透明度=ほぼ透明。AURELIONでは繊細な境界線を表現するために多用されています。
まとめ
- :root にまとめて定義 → サイト全体で一元管理
- var(--変数名) で呼び出す → どこでも使い回せる
- 変更は定義箇所のみ → メンテナンスが楽
- rgba()と組み合わせると半透明の繊細な表現が可能