暗黑模式要是只做个颜色反转,那基本可以预见过渡突兀、对比刺眼、图片发光三连翻车。分享我们产品暗黑模式从 0 到 1 的完整方法论。
【一、用语义色阶,不要用固定色】
把颜色抽象成 surface / text-primary / border / accent 等语义 token,明暗两套映射。所有组件只认 token,切主题才有单点开关。
【二、色阶重新校准,而非反相】
深色背景上降低大面积饱和度(低饱和的灰紫比纯灰高级),主色在暗底上提亮一档保对比度。所有文本对齐 WCAG AA,正文对比至少 4.5:1。
【三、海拔用亮度表达】
浅色模式靠阴影表达层级,深色模式阴影几乎不可见——改用表面提亮:层级越高底色越亮,这是 Material 的思路,实践证明非常有效。
【四、图片与富媒体处理】
照片加 8% 左右的暗色蒙层防刺眼;插画准备双版本;logo 在暗底上换成单色亮版本。品牌色大面积色块务必降饱和。
【五、切换体验细节】
跟随系统 + 手动三态;切换时用 View Transitions 做圆形扩散动效;用户手动选择优先于系统,且持久化。
【六、 QA 清单】
高频页面逐屏截图对比、真机 OLED 测试、网页在夜间场景实拍检查。
评论区聊聊:你见过哪些暗黑模式的翻车现场?
暗黑模式设计指南:不只是反色那么简单
暗黑模式要是只做个颜色反转,那基本可以预见过渡突兀、对比刺眼、图片发光三连翻车。分享我们产品暗黑模式从 0 到 1 的完整方法论。
【一、用语义色阶,不要用固定色】
把颜色抽象成 surface / text-primary / border / accent 等语义 token,明暗两套映射。所有组件只认 token,切主题才有单点开关。
【二、色阶重新校准,而非反相】
深色背景上降低大面积饱和度(低饱和的灰紫比纯灰高级),主色在暗底上提亮一档保对比度。所有文本对齐 WCAG AA,正文对比至少 4.5:1。
【三、海拔用亮度表达】
浅色模式靠阴影表达层级,深色模式阴影几乎不可见——改用表面提亮:层级越高底色越亮,这是 Material 的思路,实践证明非常有效。
【四、图片与富媒体处理】
照片加 8% 左右的暗色蒙层防刺眼;插画准备双版本;logo 在暗底上换成单色亮版本。品牌色大面积色块务必降饱和。
【五、切换体验细节】
跟随系统 + 手动三态;切换时用 View Transitions 做圆形扩散动效;用户手动选择优先于系统,且持久化。
【六、 QA 清单】
高频页面逐屏截图对比、真机 OLED 测试、网页在夜间场景实拍检查。
评论区聊聊:你见过哪些暗黑模式的翻车现场?
【一、用语义色阶,不要用固定色】
把颜色抽象成 surface / text-primary / border / accent 等语义 token,明暗两套映射。所有组件只认 token,切主题才有单点开关。
【二、色阶重新校准,而非反相】
深色背景上降低大面积饱和度(低饱和的灰紫比纯灰高级),主色在暗底上提亮一档保对比度。所有文本对齐 WCAG AA,正文对比至少 4.5:1。
【三、海拔用亮度表达】
浅色模式靠阴影表达层级,深色模式阴影几乎不可见——改用表面提亮:层级越高底色越亮,这是 Material 的思路,实践证明非常有效。
【四、图片与富媒体处理】
照片加 8% 左右的暗色蒙层防刺眼;插画准备双版本;logo 在暗底上换成单色亮版本。品牌色大面积色块务必降饱和。
【五、切换体验细节】
跟随系统 + 手动三态;切换时用 View Transitions 做圆形扩散动效;用户手动选择优先于系统,且持久化。
【六、 QA 清单】
高频页面逐屏截图对比、真机 OLED 测试、网页在夜间场景实拍检查。
评论区聊聊:你见过哪些暗黑模式的翻车现场?
你喜欢暗黑模式吗?
52 participantsLog in to vote
Topics:
#设计
Comments (5)
تسجيل الدخول to comment
小白用户
2026-08-15
感谢分享,收藏了
宋涛37
2026-08-27
补充一点个人经验...
UFO研究者
2026-08-28
感谢分享,收藏了
科技达人
2026-09-09
暗黑模式的层级确实很重要,学习了。
程序员老王
23 days ago
这个问题我也研究过
Comments (5)