SVGを操作するためのCSSプロパティまとめ

SVGの操作をするとき、普段はあまり使わない(見慣れない)CSSプロパティを使うことになるので、操作しようとする度に忘れてしまいます。
今回は自分の備忘録も兼ねて、SVGを操作するためのCSSプロパティをまとめました。
塗りの指定
fill:塗りの色を指定
fillを使うとSVGの塗りを指定できます。
ただし、SVG自体にfillが指定されていると、CSSで上書きができなくなってしまうので、反映されない場合はSVGのコード内を見て確認するようにしましょう。
他にも、:hoverなどの疑似クラスや、CSSアニメーションで値を変えていくことも可能です。
See the Pen XWrRwaW by Masakazu Saito (@31mskz10) on CodePen.
また、「塗り」であるため、短形や円形だと指定できますが、ラインなどには指定しても反映されないので注意が必要です。
fill-opacity:塗りの透明度を指定
fill-opacityでは塗りの透明度を指定できます。
See the Pen SVG:fill-opacity by Masakazu Saito (@31mskz10) on CodePen.
通常のopacityだと指定した要素全体に加えて、子要素も全て透明になってしまいますが、fill-opacityでは塗りだけが変わります。
アウトラインの指定
stroke:アウトラインの色を指定
fillが塗りなのに対して、strokeはアウトラインの色を設定します。
See the Pen SVG:stroke by Masakazu Saito (@31mskz10) on CodePen.
stroke-opacity:アウトラインの透明度を指定
fill-opacityと同様に、stroke-opacityでアウトラインの透明度指定も可能です。
See the Pen SVG:stroke-opacity by Masakazu Saito (@31mskz10) on CodePen.
stroke-width:アウトラインの太さを指定
stroke-widthではアウトラインの太さを指定できます。
単位なしでも表示され、「px」「em」「%」などひと通りの単位は使えます。
See the Pen SVG:stroke-width by Masakazu Saito (@31mskz10) on CodePen.
あまり太くしすぎると、viewBoxからはみ出して見切れてしまうので注意が必要です。
stroke-dasharray:アウトラインを破線にする
stroke-dasharrayを使うと、アウトラインを点線や破線にできます。
点線の長さと間隔の長さをコンマまたはスペースで区切ることで、設定できます。
See the Pen SVG:stroke-dasharray by Masakazu Saito (@31mskz10) on CodePen.
stroke-dashoffset:パスの最初の位置を指定
stroke-dashoffsetを使うと、アウトラインパスの最初の位置を指定できます。
破線の位置を調整するのにも使用したりしますが、CSSアニメーションでstroke-dashoffset: 0;に向かってアニメーションするように指定すると、パスをその方向から動かすことができます。
See the Pen SVG:stroke-dashoffset by Masakazu Saito (@31mskz10) on CodePen.
stroke-linecap:線の端の設定
stroke-linecapを使うと、線端の設定ができます。
設定できる値は下記の通りです。
| 値 | 形 |
|---|---|
| butt | 端が線の長さと等しくて平ら(デフォルト) |
| round | 端が丸くなる |
| square | 端が四角くなる(線の長さより長くなる) |
See the Pen SVG:stroke-linecap by Masakazu Saito (@31mskz10) on CodePen.

Post Snippetsを使ってWordPressでショートコードをの登録と管理をもっと楽に!!
ウェブ上でLaTeXで数式をキレイにプレビューするJavaScriptライブラリ「MathJax」
Google Maps APIでピンの見た目をカスタマイズする方法
SourceTreeの外部Diff / MergeツールをKaleidoscopeに設定する
スライドを簡単に実装できるJavaScriptライブラリ「Swiper」
属性・Class・IdなどHTMLタグの細かい部分を見ていこう!!
HTMLのpattern属性を使ってフォームのバリデーションチェックを行う方法
コーディング時に「アノテーションコメント」を使ってコードを見やすく管理する
思考したり情報整理したい時はMarkdown記法で文章を書き出そう!!Webデザイナーの情報整理術
様々な作業を自動化するgulpの基礎と導入方法
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
軽量で高速なターミナルエミュレーター「Ghostty」の設定方法
Eagleで実現するクリエイティブ素材の簡単管理
かゆいところに手が届く「Supercharge」でMac環境を便利にカスタマイズする
超軽量なコードエディタ 「Zed」をサブエディタとして活用する
Bartender 6で追加されたWidgets機能で自作メニューバーアイテムを簡単に作成する
Googleカレンダーを便利に活用するための小技集(祝日だけを表示・月末の繰り返しイベントを追加)
Obsidianを使った「自己流PKM」で行う知識トレーニング
テキストエディタ・ノートアプリ関連のショートカットキーをKeyboard Maestroで統一する
Path Finderを使ってキーボードだけでファイル操作する方法(応用編)