SVG Webアイコン 最短手順 レスポンシブ HTMLインライン書き込み CSS content読み込み
SVGはHTMLインライン書き込みもしくはCSS content読み込み
SVGはインライン spanで囲んでマークアップ
当然、HTMLはバカでかくなる
下記SVGアイコンサンプルの「chevrons-right」から「share-2」までの24個、および最後の「heart-handshake」はHTMLインライン処理
それ以外は「bookmark」から「paperclip」までがCSSのSVGコードを読み込み
SVGのカラー設定/変更は線のstrokeと塗りつぶしのfill
⌘ なお、Material Symbols and Icons はサイズもカラーもCSSで変更はイージー
SVGはHTML内インラインのコードで、width/heightを削除してCSSで変更可能、カラーもstrokeを削除してCSSで変更可能、fillはCSSのカラー設定は難しい(つまりsvgやpathのfillカラー設定は運次第…)
今回のようにHTML内インラインのコードを直接変更するなら、サイズやカラーも変更できる
SVGの設定はサイズ 線 塗りつぶし
SVGの最短手順の活用は、幅(width)と高さ(height)、描画線(stroke)、塗りつぶし(fill)の設定/変更
CSVコードのwidth / height / stroke / fill
を直接編集するか、CSSで記述する
chevrons-right
pencil
calendar-time
clock
clock-2
category
tag
square-plus
circle-plus
heart-filled
heart
sitemap
home
home-2
star-filled
bookmark
star-half-filled
star-half
brand-apple
brand-android
brand-wordpress
world-www
browser
share-2
bookmark
coin-yen
currency-yen
credit-card
coin
currency-dollar
device-desktop
layout-grid
layout-grid-add
square-circle
paperclip
heart-handshake
SVGのカラーはコード直接または可能なかぎりCSSで
上記のSVGアイコンサンプルで、「star-half-filled」はHTML内インラインのコードで、2番目のpathのfillに直接カラー設定している
また「heart-handshake」は、CSS読み込みではうまくいかず、HTMLインラインでfillカラーを記述してやっと表示されるようになっている
SVG Webアイコン
レスポンシブで悩まないのがSVG(そのはず…)
Tabler Icons: over 4800 vector icons for web design
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-seo" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M7 8h-3a1 1 0 0 0 -1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-3"></path>
<path d="M14 16h-4v-8h4"></path>
<path d="M11 12h2"></path>
<path d="M17 8m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z"></path>
</svg>

これを、下記ページで圧縮
<?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-seo" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<path d="M7 8h-3a1 1 0 0 0 -1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-3"/>
<path d="M14 16h-4v-8h4"/>
<path d="M11 12h2"/>
<path d="M17 8m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z"/>
</svg>
HTMLインライン書き込み
上記の圧縮SVGコードの赤の箇所と青の箇所・紫(バイオレット)の箇所を削除してHTMLの所定の箇所に貼り付ける
CSSでサイズ変更するためにspanでマークアップする
<span><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-seo" viewBox="0 0 24 24" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<path d="M7 8h-3a1 1 0 0 0 -1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-3"/>
<path d="M14 16h-4v-8h4"/>
<path d="M11 12h2"/>
<path d="M17 8m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z"/>
</svg></span>
HTMLインラインSVGのサイズやカラーのCSS記述は
要素名 span {
display: inline-block;
width: 48px;
height: 48px; }
要素名 span svg {
fill: #EA4335;
stroke: #4285F4; }
CSS content読み込み
圧縮SVGコードの紫(バイオレット)の箇所(stroke)は、CSSのcontent側でstrokeカラー設定のために残して、下記のように記述
要素名 { content: url( 'data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-seo" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<path d="M7 8h-3a1 1 0 0 0 -1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-3"/>
<path d="M14 16h-4v-8h4"/>
<path d="M11 12h2"/>
<path d="M17 8m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z"/>
</svg>' ); }
strokeのところは「stroke=”red”」やら「stroke=”#FF0000″」などカラーコードに書き換え
HTMLインライン書き込みがおすすめのSVG活用法
SVGのインライン書き込みであれば、サイズ設定はもとより、strokeのカラー設定もほぼ可能、fillも設定できる可能性があり、ダメな場合はHTMLインラインのSVGコードを書き直すだけ
SVGはGoogleアイコンやロゴも
これらのSVGの取り扱い、サイズやカラー設定などは、SVG本体はもとより、Material Symbols and IconsもCSV(pngも)を提供しており、いろいろなロゴはSVGが提供されていることも多い
SVGはテキストベースのベクター画像なので、4K・DPR:3や、レスポンシブなどで表示も画質?も悩まない
ちなみに、上述の見出しアイコン「HTML」と「CSS」は、Material Symbols and Iconsのアイコンフォントでは意図したとおりの表示にならないので、緊急避難措置としてMaterial Symbols and IconsのSVGで height/width/fillを設定し、HTML内インラインで仕込んでいる
また「SVG」は、そもそもMaterial Symbols and Iconsにはないので、SVGを記述している
SVGは、脱レガシーWeb、モダンWeb最適のツールとなる
モダンWeb! WP最新テーマ
レガシーWeb? 掃討作戦!!
【モダンWebとは】
モバイルファースト・最新HTML/CSS3・スマホアプリ・WebP・JSON-LD・4K(Retina)・マテリアルデザイン・grid/flexbox
【レガシーWebとは】
table、float、position(relative / absolute)による位置決めが特徴
モバイルファースト
モバイルファーストの対象は、Googleのインデックスなのか、スマートフォンデバイスなのか、スマートフォンユーザーなのか
スマートフォンアプリ ビジュアル再現
ZOZOTOWN型スタイル、メルカリ型スタイル、Instagram型スタイル、およびYahooニュース/不動産紹介スタイル
4K / DPR:3 レスポンシブ イメージ
同一サイズの同一画像ファイルをCSSで伸縮させるのが、レスポンシブWebデザイン(レガシーレスポンシブ)
複数サイズの複数画像ファイルをビューポート(もしくはボックスサイズ)のDPRに合わせて最適な画像ファイルを、ブラウザーが選択表示するのがレスポンシブイメージ(モダンレスポンシブ)
モダンWebで
ビジュアルSEO
