CSSで色を効率的に管理!currentColorの使い方
どうも、こんにちは。
Webデザイナーのなお(@ENOWL_Nao)です。
今回は、CSSで色を指定する際に、とっても便利な機能「currentColor」について解説していきます!
「currentColor」を使うと、要素のテキストカラーと同じ色を、他のプロパティ(例えばボーダーや背景など)に簡単に指定できるんです。
CSSの変数(カスタムプロパティ)と似たようなもの、と考えると理解しやすいかもしれません。
「currentColor」って一体なに?
例えば、テキストカラーが赤色(#FF0000)に設定されている要素で、「border: 5px solid currentColor;」と記述すると、ボーダーの色も赤色になります。
テキストの色を変更するだけで、関連する要素の色も一括で変更できるため、非常に便利です!
なぜ「currentColor」が便利なの?
「currentColor」を使うと、こんな良いことがあります!
「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要素のfillにcurrentColorを指定することで、テキスト色と同じ色でアイコンを表示しています。
これにより、アイコンの色をCSSだけで簡単に変更できます!
実際に上記のコードをブラウザで表示してみると、「currentColor」の動きがよく分かります。ぜひ試してみてくださいね!
まとめ
currentColorは、CSSで色を効率的に管理するための、とっても便利な機能です。
特に、複数の要素で同じ色を使いたい時や、マウスオーバーなどで動的に色を変えたい場合に大活躍します!
ぜひ、あなたのコーディングにも取り入れてみてくださいね!


