コーディング

CSSで色を効率的に管理!currentColorの使い方

ENOWL_Nao

どうも、こんにちは。
Webデザイナーのなお(@ENOWL_Nao)です。

今回は、CSSで色を指定する際に、とっても便利な機能「currentColor」について解説していきます!

「currentColor」を使うと、要素のテキストカラーと同じ色を、他のプロパティ(例えばボーダーや背景など)に簡単に指定できるんです。

CSSの変数(カスタムプロパティ)と似たようなもの、と考えると理解しやすいかもしれません。

「currentColor」って一体なに?

例えば、テキストカラーが赤色(#FF0000)に設定されている要素で、「border: 5px solid currentColor;」と記述すると、ボーダーの色も赤色になります。

テキストの色を変更するだけで、関連する要素の色も一括で変更できるため、非常に便利です!

なぜ「currentColor」が便利なの?

「currentColor」を使うと、こんな良いことがあります!

メリット

保守性の向上
色を変更する際に、colorプロパティを変更するだけで、関連する要素の色もまとめて変更できます。これ、後々の修正がすごく楽になるんです!

コードの削減
同じ色を何度も書く必要がなくなるので、CSSコードがスッキリします。

「currentColor」のデモ

実際にコードを見てみましょう!
※一部を抜粋しているので、実際にデモを見てみてください。

HTML

<div class="box">
  このボックスは青いボーダーを持っています。マウスオーバーすると赤くなります。
</div>

<ul class="list">
  <li>
    <svg class="icon" viewBox="0 0 24 24">
      <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/>
    </svg>
    この文章はダミーテキストです。文字サイズや行間などを確認するために入れています。
  </li>
  <li class="red">
    <svg class="icon" viewBox="0 0 24 24">
      <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/>
    </svg>
    この文章はダミーテキストです。文字サイズや行間などを確認するために入れています。
  </li>
  <li class="blue">
    <svg class="icon" viewBox="0 0 24 24">
      <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/>
    </svg>
    この文章はダミーテキストです。文字サイズや行間などを確認するために入れています。
  </li>
  <li class="green">
    <svg class="icon" viewBox="0 0 24 24">
      <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/>
    </svg>
    この文章はダミーテキストです。文字サイズや行間などを確認するために入れています。
  </li>
</ul>

CSS

.box {
  width: 200px;
  height: 100px;
  padding: 20px;
  color: blue;
  border: 5px solid currentColor;/* ボーダーの色をcurrentColorで指定 */
}

.box:hover {
  color: red; /* ホバーでテキストカラーを赤に変更 */
}

.list{
  list-style: none;
}

.list li{
  display: flex;
  margin: 0.5em 0;
  flex-direction: row;
  align-items: center;
}

.list li.red{
  color: red;
}
.list li.blue{
  color: blue;
}
.list li.green{
  color: green;
}

.icon {
  fill: currentColor;
  margin-right: 0.4em;
  width: 24px;
  height: 24px;
}

この例では、.boxクラスの要素のテキストカラーを青色に設定し、ボーダーの色をcurrentColorで指定しているため、ボーダーも青色になります。

マウスオーバーするとテキストカラーが赤色に変わり、それに連動してボーダーの色も赤色に変わります。

また、リストの例では、SVG要素のfillcurrentColorを指定することで、テキスト色と同じ色でアイコンを表示しています。
これにより、アイコンの色をCSSだけで簡単に変更できます!

実際に上記のコードをブラウザで表示してみると、「currentColor」の動きがよく分かります。ぜひ試してみてくださいね!

まとめ

currentColorは、CSSで色を効率的に管理するための、とっても便利な機能です。

特に、複数の要素で同じ色を使いたい時や、マウスオーバーなどで動的に色を変えたい場合に大活躍します!
ぜひ、あなたのコーディングにも取り入れてみてくださいね!

Xからの読者コメントをお待ちしています。
ブログ更新の励みになります!
個人事業主さまの「Web担当」

そのWebの悩み
一人で抱え込んでいませんか?

「ちょっとここを直したい」「そろそろリニューアルしたい」…。
小さな修正から本格的な制作まで、Webに関する「どうしよう」を私が丸ごと受け止めます。難しい専門用語は使いません。
あなたの事業を支えるパートナーとして、まずは気軽にお話ししませんか?

私について
なお
なお
Webデザイナー
ホームページをご覧いただきありがとうございます! なおと申します。 現在はフリーランスのWebデザイナーとして活動しています。 WebデザインからコーディングからWordPress実装まで一貫してホームページ制作を行うことができます。
記事URLをコピーしました