アダプティブ ファビコンを作成する方法の基本的な概要。
この投稿では、SVG を使用してアダプティブ ファビコンを作成する方法についてご紹介します。デモをお試しください。
動画をご覧になる場合は、この投稿の YouTube バージョンをご覧ください。
概要
カスタム ファビコンは、ウェブ プロジェクトを洗練されたものにするための優れた方法です。デスクトップ ブラウザのタブのほか、[後で購入するために保存] の読者、サイトにリンクしている他のブログ投稿などに表示されます。従来、これは .ico
ファイル形式で行われていましたが、最近では、ブラウザではベクター形式である SVG を使用できるようになりました。プログレッシブ エンハンスメントを使用すると、サポートされている .ico
ファビコンを表示できます。また、可能であれば .svg
にアップグレードすることもできます。
SVG は品質を損なうことなくスケールアップ / スケールダウンが可能で、サイズが非常に小さくなる可能性があります。また、CSS を埋め込んだり、メディアクエリを埋め込んだりすることもできます。つまり、リーダーアプリやブックマーク バーで SVG ファビコンを使用すると、SVG 内で提供されるダークモードのスタイルにより、テーマに関連する(ライトまたはダーク)アイコンが表示される可能性があります。SVG は、その埋め込みスタイルを使用して、ライトモードとダークモードのユーザー設定に適応します。
マークアップ
SVG マークアップは、.svg
ファイル形式の拡張子を使用した XML で、より多くの動的なコードタイプを保持できます。
まず、favicon.svg
を作成します。
favicon.svg
という名前の新しいファイルを作成し、以下を追加します。
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400">
</svg>
SVG ファイルは次のとおりです。アートワークに合わせて viewBox
のサイズを調整しました。
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">
</svg>
シェイプとパスの追加
次に、SVG パスコードを追加します。多くの場合、これはコードエディタで SVG を開くことを意味しますが、そのコードは通常、人間にとってわかりやすいものではありません。デザインツールから SVG をエクスポートして最適化するためのガイドをご覧ください。
この GUI Challenge のアートワークは、Adobe Illustrator で制作したデザイナーによるものです。かなり最適化しました。SVGOMG で実行し、不要な部分を手作業で編集しました。
以下は、クリーンアップ後の skull
アートワーク パスグループの例です。
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">
<g id="skull">
<path id="skull-outline" class="favicon-stroke" stroke-linejoin="round" d="M19.62 188.39A166.62 166.62 0 0 1 186.24 21.77c115.25 0 166.61 74.59 166.61 166.62 0 1.83-.08 3.64-.13 5.46h.13s.68 175.09.68 178.65c0 30.11-16.26 41.67-36.32 41.67-12.7 0-35.22-3.93-36.22-32.69h-.2c-1 28.76-16.81 32.69-36.22 32.69-18 0-32.87-6.78-35.77-32.53-2.9 25.75-17.8 32.53-35.8 32.53-20.06 0-36.32-11.56-36.32-41.67 0-2.48.36-24.88.36-24.88A166.68 166.68 0 0 1 19.62 188.39Z" />
<path id="eyes-and-nose" d="M180.77 205.76c0 23.64 12.84 42.81 28.68 42.81s28.68-19.17 28.68-42.81-12.84-42.82-28.68-42.82-28.68 19.17-28.68 42.82M275 205.76c0 23.64 12.84 42.81 28.68 42.81s28.68-19.17 28.68-42.81-12.84-42.82-28.68-42.82S275 182.11 275 205.76M264.51 276.85s-29.26 43.53-20.12 49.23c7.07 4.41 20.49-16.71 20.49-16.71s12.82 22.58 16.76 20c16.24-10.71-17.13-52.5-17.13-52.5"/>
<path id="jawline" class="favicon-stroke" fill="none" stroke-linecap="round" d="M114.92 284.33c22.54-1 22 7 22 62.48" />
</g>
</svg>
#eyes-and-nose
などの人が読める形式の ID セレクタと .favicon-stroke
などのクラスがあります。これらは、CSS の作成に手作業で編集したものです。
SVG をアダプティブ ファビコンにするために、クラスと ID を追加する必要はありません。
HTML からファビコン SVG をリンクする
HTML の <head>
タグで、.ico
ファビコンの後に次のコードを追加します。
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
新しいアイコンが .ico
バージョンと同一に見える可能性があるため、使用されていることを確認してください。DevTools の [Network] パネルを開きます。画像でフィルタしてファビコンを検索します。
スタイル
HTML と同様に、マークアップに <style>
タグを追加して、そのドキュメント スコープに対して使用することができます。
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">
<style>
</style>
…
</svg>
ライトモードのバージョンが、ファビコン SVG のデフォルトの色になります。筆者が書いたスタイルは、主にストロークと塗りつぶしの色でした。
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">
<style>
.favicon-stroke {
stroke-width: 8px;
stroke: #8929ff;
}
#skull-outline { fill: white }
#eyes-and-nose, #hat-outline { fill: #8929ff }
#hat-fill, #hat-bill { fill: #e662e6 }
</style>
…
</svg>
一番楽しいのは、ダークモード版のファビコンのスタイル設定です。そのスタイルは、スタイルタグ内のメディアクエリに組み込まれます。
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">
<style>
…
@media (prefers-color-scheme: dark) {
/* dark theme styles */
}
</style>
…
</svg>
私のものはこうなりました。
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">
<style>
…
@media (prefers-color-scheme: dark) {
.favicon-stroke { stroke: #343a40 }
#skull-outline { fill: #adb5bd }
#hat-outline { fill: #343a40 }
#eyes-and-nose { fill: #343a40 }
}
</style>
…
</svg>
明るい紫の枠線をクールなダークグレー(#343a40
)に交換し、頭蓋骨の骨の色を白から明るいクールなグレー(#adb5bd
)に変更しましたが、ピンクのアクセント ハットを残しました。
おわりに
私のやり方がわかったところで、どうしたらいいですか? 🙂?
多様なアプローチと、ウェブでの構築方法を学んでいきましょう。 デモを作成してツイートのリンクをお願いします。下のコミュニティ リミックス セクションに追加します。