CSS カスタムプロパティ(変数)を使うと、値を一度保存して何度も再利用できます。プリプロセッサ(Sass)の変数と異なり、実行時に動作 — カスケード、継承し、JavaScript またはメディアクエリで変更可能です。
css
{
: ;
: ;
: ;
}
{
: (--color-primary);
: (--spacing);
: (--radius);
}
color: var(--text-color, black); /* use black if --text-color isn't defined */
.card { --padding: 1rem; }
.card.compact { --padding: 0.5rem; } /* override locally — children using var() update */
継承するため、親要素に設定された変数はすべての子孫で利用でき、サブツリーで上書きできます — コンパイルされてしまう Sass 変数ではできないことです。
:root { --bg: white; --text: black; }
@media (prefers-color-scheme: dark) {
:root { --bg: #111; --text: #eee; } /* redefine the SAME vars for dark mode */
}
body { background: var(--bg); color: var(--text); }
少数の変数を再定義するだけでテーマ全体を切り替えられます — ルールの重複なし。JS でも実行できます:
document.documentElement.style.setProperty("--color-primary", "#e11d48");
これはその変数を使うすべての要素を即座に更新します — コンパイルされた Sass 変数では不可能です。
CSS 変数は、現代的なテーミングとデザイントークンの基盤です:色/間隔を一度定義し、どこでも再利用し、メディアクエリまたは JavaScript で実行時にテーマ(ダークモード、ブランドバリエーション)を切り替えられます。
プレーン CSS に DRY で動的な値をもたらします — ビルドステップ不要です。
ジュニアからシニアまで、詳細な回答付きのIT面接質問ライブラリ。
寄付する