Sitemap

Do you know how to set up favicon for light / dark mode ?

3 min readJun 9, 2025

--

Introduction

favicon 一直都是至關重要的小細節,早期 web page performance tunning 甚至都會拿它出來說嘴,如果頁面資訊拿不到 favicon 的資訊,瀏覽器通常都直接從 root address 下去找,若找不到或者時間過久就會一直佔用著一條連線,所以儘可能地準備好可靠且 access able 的 favicon 是至關重要的細節之一。

favicon 是個非常重要的引導元素,試想那種開著一堆 tab 的瀏覽器中,如果 web page 能有個代表自己的 icon 的話,便能讓 user 可以快速照找到對應的 tab,不會因此感到徬徨且不知所措~

RWD 以及 light / dark mode support 嚴然已是 web design 101 等級的訴求了,今天想跟大家介紹一下兩種讓 favicon 支援 light / dark mode 的方法,讓 favicon 依照當前環境展示出最適宜的樣貌~

Issue

我們先來看看在 web page 設定 favicon 的方式:

如上所示,只要在 <head /> 裡頭新增 link tag 即可,我個人偏好 SVG 向量格式,因為不曉得瀏覽器會在何處用多大的尺寸進行繪製呈現,儘可能的避免因為縮小 / 放大造成的模糊失真發生。

Solution 1

相信大家對於 [media] 都不陌生吧!web developers 可以透過 media attribute 來設置套用條件,一但滿足所設置的條件,瀏覽器便會直接使用其設定。也就是說我們可以先準備 light / dark mode 的 favicon,並且依照 media attribute 設置不同的宣告式,剩下的就交給瀏覽器選擇囉~

  • Line 3:設置 media=”(prefers-color-scheme: light)”,當當前環境為 light mode 時,便會 render 此行設置的 favicon。
  • Line 4:設置 media=”(prefers-color-scheme: dark)”,當當前環境為 dark mode 時,便會 render 此行設置的 favicon。

Solution 2

基於 SVG 支援 CSS 的特性,所以 web developer 其實也可以直接在 SVG 裡頭下 CSS 宣告,讓不同的區塊可以依照當前環境繪製不同顏色,如此一來便可以讓單一 SVG 檔案支援 light / dark 雙模態的支援。

如上所示,由於 favicon 的組成軍相對單純簡單,所以筆者把它分成幾個不同的 class,每個 class 再下不同的 media query 條件式,所以當 light / dark mode 切換時,便會直接套用不同的顏色。如果一來便能達成雙模態支援。

最後再設置 link,把 href 指向我們方才做好的雙模態 SVG 位址即可。

Conclusion

以上便是兩種讓 favicon 支援 light / dark mode 的設置方法。筆者自己偏好 Solution 2,儘可能的讓 html code 可以更加簡約好維護,web developers 可以依照自身偏好選用~希望今天的分享對大家有所助益!!

--

--

Paul Li
Paul Li

Written by Paul Li

Paul is the lead programmer of the AMP project at Yahoo Taiwan and is always eager for modern web technologies. He is also focusing on UX for vivid user flow.

No responses yet