Theme / v2.15.0

UI UX Pro Max

把模糊需求變成可實作、可驗收的介面

實戰範例

實戰範例 006:優化品牌字體與 CLS

從字重盤點、fallback 設計到慢速網路測試,改善品牌字體載入造成的文字閃爍和累積佈局偏移。

優化品牌字體與 CLS

問題

設計稿使用兩種字體和六種字重,但實際頁面只用到標題 700、正文 400 和數字 600。所有字重一起載入會拖慢首屏,fallback 與品牌字體寬度不同也會推動按鈕和標題。

1. 盤點真正使用的字重

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&family=Noto+Sans+TC:wght@400;700&display=swap');

繁中文章要確認字符覆蓋和授權;不能因為設計稿使用一個英文字體,就假設中文會自動有同樣字形。

2. 先讓文字可讀

@font-face {
  font-family: 'Brand Fallback';
  src: local('Arial');
  size-adjust: 92%;
  ascent-override: 88%;
  descent-override: 22%;
  line-gap-override: 0%;
}

:root {
  font-family: 'Inter', 'Noto Sans TC', 'Brand Fallback', system-ui, sans-serif;
}

size-adjust 等數值要用實際標題和正文比較,不是複製固定答案。字體載入失敗時仍要可閱讀。

3. 測量而非猜測

在快取清除、慢速 4G 和低階裝置下測試:首屏文字出現時間、字體替換後的標題高度、按鈕是否位移,以及 CLS 是否變差。用 DevTools Performance 和 Lighthouse 記錄前後數值。

常見錯誤

  • font-display: block 讓整段文字等待字體。
  • 為了避免閃爍把文字設成透明。
  • 只測英文頁面,忽略繁中字符和 fallback 寬度。
  • 只看 Lighthouse 分數,沒有檢查真實裝置的閱讀體驗。

驗收與練習

提供字體清單、字重用途、fallback 策略和慢網路截圖。接著將一個標題換成較寬的 fallback,觀察 CLS 如何變化,再用 size-adjust 把位移降到可接受範圍。