深色模式為什麼重要

2026 年,大多數主流作業系統和瀏覽器都支援深色模式偏好設定,且多數用戶在晚間瀏覽時會開啟深色模式。

根據 Android 的官方數據,約有 81.9% 的用戶使用深色模式(當功能可用時)。在台灣,深色模式偏好在 18–35 歲族群中尤其普遍。

對品牌網站來說,提供辦色模式有幾個好處:

  • 提升長時間閱讀的舒適度
  • 在 OLED 螢幕上節省電量
  • 給品牌更高端、科技感的形象

深色模式的 3 大常見錯誤

錯誤 1:把白色直接換成純黑(#000000)

純黑背景 + 白色文字的對比度太強,長時間閱讀反而造成眼睛疲勞——就像在黑暗中看刺眼的光。

正確做法: 使用深灰藍,例如 #0f1117、#1a1d27、#121316,而不是純 #000000。

錯誤 2:忽視陰影和邊框在深色模式的問題

淺色模式的陰影(shadow)在深色背景中完全不可見。邊框顏色也需要調整——原本 gray-200 的邊框在深色背景上看不出來。

正確做法: 深色模式要重新定義陰影(通常改用邊框代替陰影,或使用 glow 效果)。

錯誤 3:顏色飽和度沒有降低

亮色模式的飽和高色彩(例如鮮綠、亮紅),在深色背景上看起來會過於刺眼。

正確做法: 深色模式中,主色和強調色的飽和度應略低於淺色模式版本。

深色模式的顏色層次

一套好的深色模式色彩系統,通常有 3–4 個深色層次:

  • 背景(Background):最深的顏色,例如 #0f1117
  • 表面(Surface):比背景略亮,用於卡片、面板,例如 #1a1d27
  • 表面高亮(Surface Elevated):hover 狀態或懸浮元素,例如 #21262d
  • 邊框:微妙的邊框,例如 #30363d

這樣的層次讓頁面在深色背景上仍有視覺深度,而不是一片漆黑。

文字的對比度設定

WCAG AA 標準要求最低 4.5:1 的對比度。

常見的深色模式文字顏色:

  • 主要文字:#e6edf3(略帶藍的白,比純白柔和)
  • 次要文字:#8b949e
  • 禁用文字:#484f58

永遠不要在深色模式中用純白 #ffffff 作為大量文字顏色——它在 OLED 螢幕上過於刺眼。

在 Tailwind CSS 中實作深色模式

Tailwind 有內建的 dark: 修飾符,讓你為深色模式定義不同的樣式。

首先在 tailwind.config 中設定 darkMode: 'class'(跟隨 class)或 'media'(跟隨系統設定)。

使用 'class' 模式,你可以在 html 元素加上 dark class 來手動控制。

樣式範例(在元素上同時定義淺色和深色兩種樣式):

div 的 class 同時包含 bg-white 和 dark:bg-gray-900,以及 text-gray-900 和 dark:text-gray-100。

在 Next.js 中整合 next-themes

next-themes 是目前 Next.js 最常用的主題切換解決方案:

安裝:npm install next-themes

在根 layout 中包裹 ThemeProvider,然後用 useTheme hook 在任何地方切換主題。

品牌色在深色模式的調整

如果你的品牌主色是彩色(例如橘色 #e8820a),在深色模式中可能需要調整:

  • 略微提亮(增加 10–15% 的亮度)
  • 略微降低飽和度
  • 確保在深色背景上的對比度符合 WCAG

工具推薦:whocanuse.com 可以快速確認任意顏色組合的 WCAG 合規性。

何時不需要深色模式

深色模式不是每個品牌都需要的。以下情況可以暫時不做:

  • 品牌以大量彩色圖片為主(深色模式會讓圖片色調顯得不自然)
  • 目標受眾是中老年人(對深色模式偏好較低)
  • 預算有限,先把其他更重要的事做好

如果要做,就做對;做不好的深色模式比沒有更傷品牌形象。