打造自動調整網站小圖示

概略說明如何建構自動調整網站小圖示。

透過本文,我想分享如何使用 SVG 建構自動調整網站小圖示。試試示範

瀏覽器分頁顯示會配合 MacOS 的淺色和深色主題變更進行調整。 立即試用

如果你偏好使用影片,也可以觀看這篇 YouTube 文章:

總覽

自訂網站小圖示是微調網站專案的好方法。會顯示在電腦版瀏覽器分頁中,以及「儲存供稍後閱讀」讀者、其他連結至您網站的網誌文章等。一般來說,這項作業是透過 .ico 檔案類型完成,但最近瀏覽器允許使用向量格式 SVG。使用漸進式強化功能,可以提供完善支援的 .ico 網站小圖示,並升級至 .svg (如有)。

SVG 可以向上擴充及縮減資源,而不會造成品質下降;而且大小可能非常小,也可能嵌入 CSS,甚至是內嵌媒體查詢。這表示,如果在閱讀器應用程式或書籤列中使用了 SVG 網站小圖示,使用者很可能會因為 SVG 內提供的深色偏好設定樣式,而看到與主題相關的 (淺色或深色) 圖示。然後,SVG 會根據淺色和深色使用者的偏好設定調整內嵌樣式。

易於區分的大型和深色網站小圖示範例。

每個瀏覽器的淺色和深色分頁都會由上往下依序顯示自動調整圖示:Safari、Firefox、Chrome。
每個瀏覽器的淺色和深色分頁都會由上而下顯示自動調整圖示總覽:Safari、Firefox、Chrome。

標記

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 挑戰的圖片來自於 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>

請注意,使用者可理解的 ID 選取器,例如 #eyes-and-nose類別,例如 .favicon-stroke。這些是我手動編輯的內容,為 CSS 做準備。 可擴充向量圖形不需要新增類別和 ID,就能做為自動調整網站小圖示。

在 HTML 的 <head> 標記中 .ico 網站小圖示後方,新增下列程式碼:

<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">

由於新圖示的外觀可能與 .ico 版本相同,請驗證是否正在使用該圖示。開啟開發人員工具的「Network」面板。依圖片篩選及搜尋網站小圖示:

開發人員工具「網路」窗格的螢幕截圖,其中含有搜尋網站小圖示的篩選器,並醒目顯示「favicon.svg」資源。

風格

和 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 的眼睛和鼻子顏色。

我的礦場最後看起來像這樣:

<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),但把粉紅色加重帽變成左。

淺色和深色網站小圖示的預覽畫面。

結論

現在既然你已經知道我怎麼做,你會怎麼做‽ 🙂?

讓我們帶您更多元的方法,並瞭解運用網路打造網站的所有方式。 請建立示範並透過 Twitter 推文連結,我就能將這項工具新增至下方的「社群重混」部分!

社群重混作品