メタタグまたはmanifest.jsonを介して、テーマカラーをサポートするブラウザーに別のファビコンを設定する方法はありますか?私は真っ黒なテーマバーを持っていますが、デスクトップブラウザで使用するためのほとんど黒のファビコンです。モバイルブラウザー用の別の白いファビコンが欲しいのですが、モバイルブラウザーが===テーマカラーをサポートしているとは思わないでください。常にそうなるとは限りません。
デスクトップファビコンの例:
ブラウザのテーマには、prefers-color-scheme
メディアクエリを通じてアクセスできます。残念ながら、ファビコンはページ要素ではないため、CSSファイルでメディアクエリを使用して、たとえば2つの画像を切り替えることはできません。
解決策はprefers-color-scheme
とCSSを埋め込むことができるSVGを組み合わせることです。 SVGファビコンを宣言します。
<link rel="icon" href="my_icon.svg">
SVG自体でメディアクエリを使用します。
<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg">
<style>
circle {
fill: yellow;
stroke: black;
stroke-width: 3px;
}
@media (prefers-color-scheme: dark) {
circle {
fill: black;
stroke: yellow;
}
}
</style>
<circle cx="50" cy="50" r="47"/>
</svg>
ソース tomoyac.com
SVGファビコンはまだ高度な機能です。 Firefox および Chrome はすでにサポートされていますが、他のブラウザ まだサポートされていません です。