GH GambleHub

黑暗模式和視覺舒適

1)為什麼一個黑暗的主題

眼睛舒適度低,眩光少,「閃光燈」。
能源:在OLED/AMOLED上,深色屏幕花費的電池更少。
專註於數據:專註於內容而不是背景。
用戶期望:「prefers-color-scheme」系統標誌是事實上的標準。

2)原則

1.深灰色背景>UI表面的純黑色(可讀性和等級更好)。
2.內容對比:不是「黑色白色」,而是長文本的柔和色調。
3.謹慎的「亮度」:背光/重音柔和但可區分。
4.深度≠陰影:工作光度/模糊陰影而不是銳利對比。
5.可用性:WCAG AA(最低),可見焦點和可理解的狀態。
6.系統設置為主要設置:自動切換和「降低運動」。

3)調色板和令牌(示例)

JSON令牌:
json
{
"mode": "dark",
"color": {
"bg": { "base": "#0E1116", "elev1": "#141821", "elev2": "#1A1F2B", "subtle": "#0B0E13" },
"fg": { "primary": "#E6E8EB", "muted": "#A6AEB8", "inverse": "#11131A" },
"accent": { "primary": "#6EA0FF", "warning": "#FFB547", "critical": "#FF6A6A", "success": "#66D19E" },
"border": { "soft": "#2A2F37", "strong": "#3A4150" },
"chart": { "a": "#6EA0FF", "b": "#66D19E", "c": "#FFB547", "d": "#C58CFF", "e": "#7DD3FC" }
},
"radius": { "sm": 8, "md": 12, "lg": 16 },
"shadow": { "sm": "0 1px 2px rgba(0,0,0,.35)", "md": "0 6px 18px rgba(0,0,0,.45)" }
}
CSS變量(簡化):
css
@media (prefers-color-scheme: dark) {
:root {
--bg-base:#0E1116; --bg-elev1:#141821; --bg-elev2:#1A1F2B;
--fg-primary:#E6E8EB; --fg-muted:#A6AEB8;
--accent:#6EA0FF; --warning:#FFB547; --critical:#FF6A6A; --success:#66D19E;
--bd-soft:#2A2F37; --bd-strong:#3A4150;
}
}
建議:
  • 深色模式的口音比+8-12%淺。
  • 使用灰度(4-5步)避免大面積的絕對#000 (AMOLED模式例外)。

4)文本和可讀性

基本文本:淺灰色「#E6E8EB」在「#0E1116」(對比度~ 12:1)。
次要文本:「#A6AEB8」;提示-甚至更暗/更透明。
長讀數:略微溫暖的色調(減少「光環」)。
鏈接-重音+默認下劃線;顏色≠唯一的意義載體。

5)表面、深度和玻璃

Elevations: `base` → `elev1` → `elev2`;每層較淺/較熱2-4%。
陰影柔軟,寬闊,不透明度低。避免「發光」筆畫。
中位數面板(blur)適中;使文本與基板形成對比。
分隔符是半色調「-bd-soft」或幾乎看不見的「hairs」邊界。

6)狀態和重點

Hover:+2-3%淺背景;Active: − 2-3%(較暗)。
焦點:一個清晰的戒指(例如'outline:2px solid# 6EA0FF;outline-offset: 2px;'),在重音按鈕上也可以看到。
失明:輕輕降低對比;不要低於文本的可讀水平。

7)按鈕、表格和表格

小學:背景「-accent」,文字「#0E 1116」。
中學:背景「-.bg-elev1」,寄宿生「--bd-strong」,文本「--fg-primary」。
輸入字段:背景「--bg-elev1」,焦點為邊框重音;placeholder更暗淡,但我們讀。
表格:斑馬背景幾乎看不見,hover行突出顯示為+2-3%輕。

8)插圖、標識和照片

徽標和象形圖是深色上的反轉版本;避免在飽和的背景上出現細細的淺色線條。
照片:在上面添加一個深色面具(40-60%),用於對比鮮明的標題。
圖標:單一厚度,輪廓+填充-截至,非「有毒」顏色。

9)黑暗主題中的數據可視化

系列的顏色是中等飽和度;至少5個可區分的音調。
網格和軸是靜音的(alpha 20-30%),簽名是「--fg-muted」。
註釋/事件-明亮但可讀的;用形狀/標記下劃線,而不僅僅是顏色。
空數據/空白是軟的「霧」而不是白色的字段。

10)性能和電池

在OLED上,它確實節省了純黑色(#000)-在AMOLED模式下使用用戶選項。
避免在弱的GPU上固體大蠟燭/斑點。
尊重「prefers-reduced-motion」:簡化動畫/過渡。

11)行為與切換

默認情況下,遵循「prefers-color-scheme」。
給用戶一個顯式開關(Light/Dark/System),存儲選擇(cookie/localStorage)。
更改主題時,不閃爍:預先將主題類添加到渲染中。

Snippet:
html
<script>
const saved = localStorage. getItem('theme');
const sysDark = window. matchMedia?.('(prefers-color-scheme: dark)'). matches;
document. documentElement. dataset. theme = saved?? (sysDark? 'dark': 'light');
</script>

12)可用性(A11y)

文本對比≥ 4。5:1(普通),≥ 3:1(大)。
不要僅用顏色編碼狀態:使用圖標/模式/簽名。
焦點樣式和鍵盤導航是必需的。
VoiceOver/TalkBack:角色、標簽、禁忌排序。

13)反模式

在大面積的絕對黑色背景上的絕對白色文本是「閃爍」和疲勞。
黑暗的霓虹燈口音是「光噪聲」。
高對比度陰影(帶有剛性邊界的「黑色灰色」)。
照片中的透明文字沒有面具。
消失的placeholder(alpha太低)。

14)組件示例

按鈕

css
.button {
background: var(--accent); color: var(--bg-base);
border-radius: 12px; padding: 10px 16px;
box-shadow: 0 1px 2px rgba(0,0,0,.35);
}
.button:hover { filter: brightness(1. 06); }
.button:active { filter: brightness(.94); }
.button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

卡片

css
.card {
background: var(--bg-elev1); border: 1px solid var(--bd-soft); border-radius: 12px;
box-shadow: 0 6px 18px rgba(0,0,0,.45);
}

15)測試計劃

燈光:黑暗的房間/日光/街頭之夜。
Devays: OLED和IPS,移動/臺式機,不同的密度。
A11y:對比檢查器,鍵盤通道,可讀性placeholder's。
感知:ab測試「眼睛疲勞」和夜間輸入錯誤。
穿孔:包含黑暗主題後的RUM度量(INP/CLS);GPU負載(光澤/陰影效應)。

16)質量指標

Contrast Violations/1k元素(目標:→ 0)。
Complaint Rate在「太暗/明亮」上。
Night Session Completion(晚上10:00-06:00的會議行為指標)。
INP/CLS p 75在Dark Mode vs Light中(不低於基礎)。
Opt-in Dark Mode並保留選擇主題的用戶。

17)發射支票清單

  • 帶有4-5層曲面的黑暗主題調色板
  • 文本/圖標/邊界的對比度對應於WCAG AA
  • 可見焦點樣式和狀態(hover/active/disabled)
  • 徽標/圖標/照片改編,照片中的面具添加
  • 圖形-靜音網格,可讀簽名,非「有毒」行列
  • Light/Dark/System開關,保持選擇而不出現「閃光」
  • 尊重「prefers-color-scheme」和「prefers-reduced-motion」
  • RUM/perf-dashbord,按回歸排序

18)實施計劃(3次叠代)

叠代1-基礎(1-2周)

調色板/令牌、基本曲面(base/elev1/elev2)、文本/邊界、按鈕/字段/表格、主題開關。

叠代2-細節(3-4周)

深色圖形和插圖,照片遮罩,焦點/狀態,帶有重定向動作的動畫,筆試。

叠代3-優化(連續)

AMOLED模式作為選項,微調對比,夜間可用性測試,Light vs Dark RUM比較,定期品牌/UX審核。

19)迷你常見問題

做純粹的黑色背景嗎?
對於UI,較深的深灰色。使用「AMOLED模式」選項保留#000。

是否需要增加口音飽和度?
在黑暗中-通常相反,它們略微變亮並減少飽和度,以免發光。

如何處理橫幅圖像?
添加深色基板/蒙版,檢查文本和徽標的對比度。

底線

深色主題不是顏色的倒置,而是獨立的設計模式:經過深思熟慮的調色板,表面水平,可讀性,正確狀態,調整後的圖形和媒體以及尊重系統設置。依靠令牌,控制對比度和穿孔-黑暗模式將成為夜間和白天用戶的舒適,穩定和美麗的工具。

Contact

與我們聯繫

如有任何問題或支援需求,歡迎隨時聯絡我們。我們隨時樂意提供協助!

Telegram
@Gamble_GC
開始整合

Email 為 必填。Telegram 或 WhatsApp 為 選填

您的姓名 選填
Email 選填
主旨 選填
訊息內容 選填
Telegram 選填
@
若您填寫 Telegram,我們將在 Email 之外,同步於 Telegram 回覆您。
WhatsApp 選填
格式:國碼 + 電話號碼(例如:+886XXXXXXXXX)。

按下此按鈕即表示您同意我們處理您的資料。