在系統功能逐漸完善的同時,我們也將目光轉向了產品的視覺呈現與品牌識別(Brand Identity)。一個優秀的系統不僅需要功能強大,其視覺元素的細緻度同樣是建立使用者信任感的重要關鍵。在這個開發迭代中,我們的核心任務是全面升級系統內部的圖標與品牌標誌資源。過去,我們為了貪圖方便,使用了許多網路上免費取得或是早期由設計師匯出的點陣圖檔(PNG)。這次的目標是將所有的品牌圖形資源汰舊換新,替換為高解析度、可縮放的向量圖形(Vector Graphics),讓整個介面看起來更加現代且專業。這項更新預期將能顯著提升系統整體的質感,並確保在各種螢幕尺寸上都能完美呈現。
然而,在執行這項看似簡單的圖檔替換任務時,我們卻遭遇了意想不到的品質災難。原本我們大量依賴傳統的 img 標籤並直接載入 PNG 圖片作為圖標。隨著我們將系統放上具備高像素密度(High DPI)的 Retina 螢幕上進行檢視,問題徹底原形畢露。那些在一般螢幕上看起來還算清晰的 PNG 圖標,到了 Retina 螢幕上,邊緣出現了嚴重的鋸齒與模糊現象(Blurring)。這是因為高解析度螢幕會在相同的物理尺寸內塞入更多的像素,原本的點陣圖檔被迫強制放大,導致畫質嚴重劣解。這使得我們的系統介面在高端裝置上顯得極度廉價且缺乏專業度,完全違背了我們升級品牌識別的初衷。為了解決這個視覺上的嚴重缺陷,我們不得不重新審視圖片資源的載入與彩現策略。
為了徹底根除這個問題,團隊決定全面放棄使用 PNG 點陣圖作為介面圖標,轉而全面擁抱 SVG(Scalable Vector Graphics)技術。與點陣圖不同,SVG 是以數學公式來描述圖形的形狀與路徑,因此無論放大或縮小多少倍,邊緣都能保持絕對的銳利。在診斷過程中,我們發現將 SVG 直接作為 img 的來源雖然能解決模糊問題,但在樣式控制上卻顯得十分死板。我們無法透過 CSS 輕鬆改變圖標的顏色或套用互動特效。為了解決這項痛點,我們進一步優化了實作方式,採用了內嵌 SVG(Inline SVG)與正確處理 viewBox 屬性的技術。我們將圖標的 SVG 程式碼直接嵌入到 HTML 結構中,這不僅讓我們能夠透過 CSS 變數(CSS Variables)動態且精確地控制圖標的顏色與尺寸,更大幅減少了外部圖片請求的次數,進一步提升了頁面的載入效能。同時,我們嚴格規範了所有 SVG 圖標都必須具備正確的 viewBox,確保它們在任何容器大小內都能完美等比縮放,避免圖形變形或被裁切。
這項品牌識別與圖標資源的更新,為使用者體驗(UX)帶來了立竿見影的提升。不論使用者是使用傳統的桌面顯示器,還是最新的高解析度手機與平板,他們所看到的每一個圖標、每一個品牌標誌都無比清晰銳利。更重要的是,由於我們可以透過 CSS 輕鬆實作圖標的互動效果,整個介面變得更加生動且具備活力。下方展示了我們是如何從傳統的 PNG 圖片寫法,進化為靈活且高畫質的 SVG 實作方式:
<!-- 傳統 PNG 圖片載入方式 -->
<div class="brand-logo">
<img src="assets/images/logo-main.png" alt="系統標誌" width="150" height="50">
</div>
<!-- CSS 無法更改圖片內部顏色 -->
.icon-home {
background-image: url('assets/icons/home.png');
width: 24px;
height: 24px;
}
/* 在 Retina 螢幕上會嚴重模糊與產生鋸齒 */
<!-- 現代化 Inline SVG 與 viewBox 設定 -->
<div class="brand-logo">
<svg viewBox="0 0 150 50" xmlns="http://www.w3.org/2000/svg" class="svg-logo">
<path d="M10,25 Q40,5 75,25 T140,25" fill="none" stroke="currentColor" stroke-width="4"/>
<!-- 向量路徑定義 -->
</svg>
</div>
<!-- 透過 CSS 動態控制顏色與狀態 -->
.svg-logo {
color: var(--brand-primary);
width: 150px;
height: auto;
transition: color 0.3s;
}
.svg-logo:hover {
color: var(--brand-highlight);
}
這次的重構經驗讓我們明白,視覺資產的管理絕非小事。選擇正確的圖片格式與載入策略,不僅關乎產品的美觀程度,更直接影響到網頁效能與跨平台的相容性。這次的向量化升級,成功地將我們的系統介面推向了下一個專業的層次。