以前の投稿では、SVGの色をcssを使って変更する方法についてお話ししました。今回は、SVGに影(ドロップシャドウ)を追加する方法に焦点を当てたいと思います。
divにドロップシャドウを付ける場合は、以下のようにcssのfilter
プロパティでdrop-shadow
関数を使用することができます。
.divShape {
display: block;
width: 500px;
height: 500px;
background: #222;
filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));
}
前回のカスタムシェイプの場合、この方法ではドロップシャドウが適用できません。
この場合、擬似要素を使用します。::before擬似要素をカスタムシェイプに適用し、その親であるdivにドロップシャドウを追加します。
このようにすることで、カスタムシェイプのdivにドロップシャドウを効果的に付けることができます。
.svgShape {
position: relative;
width: 606px;
height: 514px;
filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));
}
.svgShape::before {
display: block;
height: 100%;
content: "";
background: linear-gradient(45deg, black, transparent);
mask-size: contain;
mask-image: url('/img/sample.svg');
}