hover時、ナビのカレント時など同じアイコンで色だけ変えたいときに、別の色にした別画像で書き出すのが面倒で悩み続けてきました。
useタグを使う方法もありましたが、何故かうまくできず、、、
そこで出会ったmask-image
がかなり優秀だったので備忘録です。
mask-image
の使い方
基本的にbackground-image
と同じように扱えます。
mask-image
にSVGのファイルパスを指定し、mask-position
、mask-repeat
、mask-size
をそれぞれ指定します。
SCSS
.nav-item {
display: inline-block;
width: 32px;
height: 32px;
// mask関連の指定
mask-position: center center;
mask-repeat: no-repeat;
mask-size: contain;
mask-image: url(../img/icon-home.svg);
background: navy; // 背景色でSVGの色を指定
&--green {
background: green; // 背景色でSVGの色を指定
}
&:hover {
background: red; // 背景色でSVGの色を指定
}
}
HTML
<a class="nav-item"></a>
<a class="nav-item nav-item--green"></a>
::befoer
::after
にももちろん使えるのでかなり便利です!!