{"id":3319,"date":"2019-11-20T11:26:04","date_gmt":"2019-11-20T09:26:04","guid":{"rendered":"https:\/\/blog.tomayac.com\/2019\/09\/21\/prefers-color-scheme-in-svg-favicons-for-dark-mode-icons\/"},"modified":"2019-11-20T11:26:04","modified_gmt":"2019-11-20T09:26:04","slug":"prefers-color-scheme-in-svg-favicons-for-dark-mode-icons","status":"publish","type":"post","link":"https:\/\/tomayac.com\/wordpress\/2019\/11\/20\/prefers-color-scheme-in-svg-favicons-for-dark-mode-icons\/","title":{"rendered":"`prefers-color-scheme` in SVG favicons for dark mode icons"},"content":{"rendered":"\n\t\t\t<p>\ud83c\udf89 Chrome finally accepts SVG favicons now that <a href=\"https:\/\/crbug.com\/294179\">crbug.com\/294179<\/a>,\nwhere this feature was demanded on September 18, 2013(!), was fixed.\nThis means that you can style your icon with inline <a href=\"https:\/\/web.dev\/prefers-color-scheme\"><code>prefers-color-scheme<\/code><\/a>\nand you'll get two icons for the price of one!<\/p>\n<pre class=\"language-html\"><code class=\"language-html\"><span class=\"token comment\">&lt;!-- icon.svg --><\/span><br><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>svg<\/span> <span class=\"token attr-name\">width<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>100<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token attr-name\">height<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>100<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token attr-name\">xmlns<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>http:\/\/www.w3.org\/2000\/svg<span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">><\/span><\/span><br>  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>style<\/span><span class=\"token punctuation\">><\/span><\/span><span class=\"token style\"><span class=\"token language-css\"><br>    <span class=\"token selector\">circle<\/span> <span class=\"token punctuation\">{<\/span><br>      <span class=\"token property\">fill<\/span><span class=\"token punctuation\">:<\/span> yellow<span class=\"token punctuation\">;<\/span><br>      <span class=\"token property\">stroke<\/span><span class=\"token punctuation\">:<\/span> black<span class=\"token punctuation\">;<\/span><br>      <span class=\"token property\">stroke-width<\/span><span class=\"token punctuation\">:<\/span> 3px<span class=\"token punctuation\">;<\/span><br>    <span class=\"token punctuation\">}<\/span><br>    <span class=\"token atrule\"><span class=\"token rule\">@media<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token property\">prefers-color-scheme<\/span><span class=\"token punctuation\">:<\/span> dark<span class=\"token punctuation\">)<\/span><\/span> <span class=\"token punctuation\">{<\/span><br>      <span class=\"token selector\">circle<\/span> <span class=\"token punctuation\">{<\/span><br>        <span class=\"token property\">fill<\/span><span class=\"token punctuation\">:<\/span> black<span class=\"token punctuation\">;<\/span><br>        <span class=\"token property\">stroke<\/span><span class=\"token punctuation\">:<\/span> yellow<span class=\"token punctuation\">;<\/span><br>      <span class=\"token punctuation\">}<\/span><br>    <span class=\"token punctuation\">}<\/span><br>  <\/span><\/span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>style<\/span><span class=\"token punctuation\">><\/span><\/span><br>  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>circle<\/span> <span class=\"token attr-name\">cx<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>50<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token attr-name\">cy<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>50<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token attr-name\">r<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>47<span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">\/><\/span><\/span><br><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>svg<\/span><span class=\"token punctuation\">><\/span><\/span><\/code><\/pre>\n<pre class=\"language-html\"><code class=\"language-html\"><span class=\"token comment\">&lt;!-- index.html --><\/span><br><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>link<\/span> <span class=\"token attr-name\">rel<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>icon<span class=\"token punctuation\">\"<\/span><\/span> <span class=\"token attr-name\">href<\/span><span class=\"token attr-value\"><span class=\"token punctuation\">=<\/span><span class=\"token punctuation\">\"<\/span>\/icon.svg<span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">><\/span><\/span><\/code><\/pre>\n<p>You can see a demo of this in action at \ud83c\udf12 <a href=\"https:\/\/dark-mode-favicon.glitch.me\/\">dark-mode-favicon.glitch.me<\/a> \u2600\ufe0f.\nUntil this feature will have landed in Chrome Stable\/Beta\/Dev\/Canary, be sure to test it with the last Chromium build\nthat you can download from Fran\u00e7ois Beaufort's <a href=\"https:\/\/download-chromium.appspot.com\/\">Chromium Downloader<\/a>.<\/p>\n<p><img src=\"https:\/\/pbs.twimg.com\/media\/EJzWSAxWsAAdteb?format=png&amp;name=small\" alt=\"Demo app running in dark mode, showing the dark mode favicon being used.\"><\/p>\n<p><img src=\"https:\/\/pbs.twimg.com\/media\/EJzWSAyXYAE624Z?format=png&amp;name=small\" alt=\"Demo app running in light mode, showing the light mode favicon being used.\"><\/p>\n<p>Full credits to <a href=\"https:\/\/twitter.com\/mathias\">Mathias Bynens<\/a>,\nwho <a href=\"https:\/\/bugs.chromium.org\/p\/chromium\/issues\/detail?id=294179#c72\">independently<\/a>\nhas created almost the same <a href=\"https:\/\/numerous-sulfur.glitch.me\/\">demo<\/a> as me that I didn't check,\nbut whose link to <a href=\"https:\/\/twitter.com\/jaffathecake\">Jake Archibald<\/a>'s post\n<a href=\"https:\/\/jakearchibald.com\/2016\/svg-media-queries\/\">SVG &amp; media queries<\/a> I did follow.\nMathias has now filed the follow-up bug <a href=\"https:\/\/crbug.com\/1026539\">crbug.com\/1026539<\/a>\nthat will improve the favicon update behavior (now you still need to reload the page after a color scheme change).<\/p>\n\n\t\t\t<p>\n\t\t\t\t<img alt=\"Thomas Steiner\" width=\"32\" height=\"32\" src=\"https:\/\/blog.tomayac.com\/feed.php?dl=https%3A%2F%2Fblog.tomayac.com%2F2019%2F09%2F21%2Fprefers-color-scheme-in-svg-favicons-for-dark-mode-icons%2F&dp=%2F2019%2F09%2F21%2Fprefers-color-scheme-in-svg-favicons-for-dark-mode-icons%2F&dt=%60prefers-color-scheme%60%20in%20SVG%20favicons%20for%20dark%20mode%20icons\" alt=\"\">\n\t\t\t\t<br\/>This post appeared first on <a href=\"https:\/\/blog.tomayac.com\/2019\/09\/21\/prefers-color-scheme-in-svg-favicons-for-dark-mode-icons\/\">https:\/\/blog.tomayac.com\/2019\/09\/21\/prefers-color-scheme-in-svg-favicons-for-dark-mode-icons\/<\/a>.\n\t\t\t<\/p>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\t\t\t\ud83c\udf89 Chrome finally accepts SVG favicons now that crbug.com\/294179,<br \/>\nwhere this feature was demanded on September 18, 2013(!), was fixed.<br \/>\nThis means that you can style your icon with inline prefers-color-scheme<br \/>\nand you&#8217;ll get two icons for the price of&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"intlwemo_wallet_address":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-3319","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/tomayac.com\/wordpress\/wp-json\/wp\/v2\/posts\/3319","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tomayac.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tomayac.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tomayac.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tomayac.com\/wordpress\/wp-json\/wp\/v2\/comments?post=3319"}],"version-history":[{"count":3,"href":"https:\/\/tomayac.com\/wordpress\/wp-json\/wp\/v2\/posts\/3319\/revisions"}],"predecessor-version":[{"id":3330,"href":"https:\/\/tomayac.com\/wordpress\/wp-json\/wp\/v2\/posts\/3319\/revisions\/3330"}],"wp:attachment":[{"href":"https:\/\/tomayac.com\/wordpress\/wp-json\/wp\/v2\/media?parent=3319"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tomayac.com\/wordpress\/wp-json\/wp\/v2\/categories?post=3319"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tomayac.com\/wordpress\/wp-json\/wp\/v2\/tags?post=3319"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}