CSS:カスタム変数でユニットの装飾を手軽に変更する方法

CSSのカスタム変数(カスタムプロパティ)は、--で始まる名前を持ち、特定の値を再利用するために使用されます。これにより、スタイルの一貫性を保ちつつ、メンテナンスが簡単になります。

HTML

<section class="cp-sec cp-sec--1">
  <h2 class="cp-sec__heading">第1カラー</h2>
  <p>再利用性: 一度定義した変数を何度も使えるので、コードの重複を減らせます。</p>
</section>

<section class="cp-sec cp-sec--2">
  <h2 class="cp-sec__heading">第2カラー</h2>
  <p>保守性: 値を変更したい場合、変数を定義した部分だけを変更すれば全体に反映されます。</p>
</section>

<section class="cp-sec cp-sec--3">
  <h2 class="cp-sec__heading">第3カラー</h2>
  <p>ダイナミックなスタイル: JavaScriptで変数の値を変更することもでき、動的なスタイル調整が可能です。</p>
</section>

CSS

.cp-sec {
  --c-base: #333;
  --c-border: #9d9d9d;
  --c-base-bg: #F0F2FA;
  border-radius: 10px;
  background-color: var(--c-base-bg);
  border: 3px solid var(--c-border);
  padding: 15px 25px;
  margin-bottom: 20px;
}
.cp-sec--1 {
  --c-base: #C92C2C;
  --c-border: #E27575;
  --c-base-bg: #FDEAEA;
}
.cp-sec--2 {
  --c-base: #3A905C;
  --c-border: #80C09A;
  --c-base-bg: #EFFBF4;
}
.cp-sec--3 {
  --c-base: #1E55AB;
  --c-border: #75A0E2;
  --c-base-bg: #E9F2FF;
}
.cp-sec__heading {
  font-size: 20px;
  font-weight: bold;
  color: var(--c-base);
}

また、背景画像なども同様にカスタム変数に格納し利用できます。

&--1 {
  --b-iconURL: url("../images/icon01.svg");
}
&--2 {
  --b-iconURL: url("../images/icon02.svg");
}
&--3 {
  --b-iconURL: url("../images/icon03.svg");
}
...
&:before {
  background: var(--b-iconURL) no-repeat 0 0;
}

執筆者

astroboy

Webデザイナー&コーダー。HTML/CSS/JavaScript/Vue.js/WebGL/ECサイトなど手広くWeb制作に従事する。現在は東京で活動中。

この記事を気に入りましたら、ぜひ「いいね」「シェア」をお願いします。

関連タグ