DarkMode(1):产品应用深色模式分析
为什么Dark Mode变得越来越流行
2018 年的 macOS Mojave 率先支持了深色外观,紧接着 Windows 10 在 2018 年的 10 月份大版本更新中,也引入了 Dark Mode。
iOS 13 的发推出了深色模式(Dark Mode),不仅可以大幅减少电量的消耗,减弱强光对比,还能提供更好的可视性和沉浸感。
Android Q 重点推出了Dark Mode
目前主流的操作系统也都在逐步支持 Dark Mode。
像Facebook 、Slack、WhatsApp、Chrome 等等软件都支持Dark Mode
那么,增加暗黑模式的目的是什么呢?
夜间使用时不那么刺眼
Google 提出了「Digital Wellbeing(数字健康)」的概念,注重在科技设备与使用者之间,找到一个健康的平衡点。
夜览模式让屏幕在晚上减少蓝光,帮助我们更好地睡眠;
隐式推送减少了各类通知打扰我们的次数,使手机不会频繁打断我们的注意力
虽然有许多 app 已经支持了夜间模式,但还远远不够。首先,每个 app 的支持程度不尽相同,同时由于缺乏系统级的 API 支持,每个 app 的开发适配工作也比较烦琐。
让使用者沉浸于内容
将 Dark Mode 翻译为「夜间模式」,是因为前者的使用场景更广,因此使用「深色模式」这样的翻译更恰当。
黑色更有利于我们沉浸于内容本身,无论是生产内容还是消费内容。如果你细心观察,你会发现许多专业级的多媒体内容生产软件,一直以来都是黑色的界面。不管是 Adobe 系列的软件,还是苹果的 Final Cut Pro,或者是 Pixelmator、Affinity 系列软件,都是深色的主界面基调。同样的道理,你会发现许多视频网站或者影音播放工具,都是使用深色作为主基调。
OLED 屏幕节电
大多旗舰机的手机屏幕都抛弃了 LCD 材质,转而使用 OLED 材质的屏幕,例如,从 iPhone X 到 iPhone XS,搭配 Dark Mode,这样就能更加省电。
LCD 屏幕分两层:像素层不发光,另外有背光面板照亮像素。
OLED 屏幕只有一层,像素本身是自发光的。这样,在显示黑色时,OLED 的屏幕像素只需要关闭,就是纯正的黑色了。
在 macOS 的深色模式中,基底色并不是纯黑,而是带有一定灰度的黑色。
在 iOS 上,苹果设计 Dark Mode 的基底色就是纯黑,这样一方面来可以省电,另一方面也与「刘海」的衔接更加自然。
Dark Mode 的设计难点在哪?
既然 Dark Mode 有不少吸引人的优点,为什么 Google 和苹果,一直等到2019年才正式推出系统级的 Dark Mode
Dark Mode 并不像想像中的那么简单。
Dark Mode 并不是简单的颜色反转
在界面色彩复杂一些的情况下,直接的颜色反转就完全没法用了。以下面的桌面为例,绿色的反转色是粉色,红色的反转色是青蓝色,而原本就是黑色的桌面被反转成了白色,最终得到的效果惨不忍睹。
任意颜色可以由三原色组成,在电子设备上,一个色彩也可以表示成 RGB 值,即红绿蓝三种颜色的比例。每种颜色的取值范围是 0-255 之间,例如,白色可以表示为(255,255,255),黑色可以表示为(0,0,0)。那么,颜色反转实际上,是把一种颜色(R,G,B),自动变换到它的对立面,成为新的颜色(255-R,255-G,255-B)。
更多相关内容推荐阅读:《色彩空间RGB/CMYK/HSL/HSB/HSV/Lab/YUV基础理论及转换方法:RGB与YUV》、《水煮RGB与CMYK色彩模型—色彩与光学相关物理理论浅叙》、《三色视者与四色视者身后的理论基础:色彩原理》
所以Android与iOS的开启颜色反转,并不能开启暗黑模式。
要重新考虑色彩对比度
内容与背景之间的色彩对比度问题,两者之间必须保持才能使内容具有可读性。要衡量这一点,其实是有一个明确的指标的:
色彩对比率(Color Contrast Ratio),它能够提供两种颜色之间,相对亮度的一个衡量关系。
色彩对比率的取值范围在 1:1 到 21:1 之间,数值越大,表示对比度越强烈,内容的可辨认度越高。
Web 标准制定组织 W3C 在其 Web 内容无障碍指南(WCAG)中建议
对比一般的文本,其对比率应该不小于 4.5:1,
对于图像和界面元素来说,对比率应该不小于 3:1
要如何计算色彩对比率呢?
它的计算相对比较复杂,感兴趣的同学可以在这个页面搜索「Contrast Ratio」查看具体的计算方法。一般情况下,你可以使用各种现成的工具,只需要数入两种颜色的数值,就可以直接看到最终的计算结果了。
界面的层级与明暗关系
除了色彩对比度的关系外,还有一个更深层次的界面层级带来的问题,是通过颜色反转无法解决的。
论是浅色还是深色外观下,我们都应该在界面层级中,让离用户在逻辑关系上更近的颜色更亮一些。
再让我们看一看实际 iOS 13 版本中 Dark Mode 的效果。你会发现,Dark Mode 的界面配色,并不是简单的颜色反转,可操作区域的颜色更浅一些,而背景色才是全黑的。这样,不管是浅色还是深色外观下,始终都保持了逻辑上的统一:离用户逻辑关系上越近的层级,颜色越浅越亮一些。
界面层级与明暗的逻辑关系,本质上是与颜色反转不兼容的。
苹果是如何为 iOS 设计 Dark Mode 的?
苹果在今年 WWDC 的「What's New in iOS Design」专题中,花了不少的篇幅专门用来介绍如何升级适配 Dark Mode。
引入语义色彩(semantic color)
在以往的界面设计与开发过程中,需要单独针对每一个元素,指定一个颜色。既然不能简单地通过颜色反转来实现 Dark Mode,那么最简单的方式就是:为浅色外观和深色外观分别设计两套配色方案。
然而,这样的做法带来了一系列问题,尤其是 iOS 作为一个平台,需要考虑平台化的统一标准,以及尽可能地方便第三方开发者的适配工作。如果单纯地使用两套配色方案,那么每改动一处界面,都不能忘了要改动两个颜色值。同时,界面和界面之间,同样的页面元素,需要重复地指定具体的颜色,也造成了不必要的工作。
因此,苹果引入了语义色彩(Semantic Color)这个概念。如同字面意思一样,不再通过 RGB 的值来描述一个颜色,而是通过 LabelColor、SeparatorColor 这样的文字描述,来说明这里应该使用文字标签的颜色、分隔线的颜色……例如,在深浅两种模式下,系统界面的背景色会自动地去对应 SystemBackground,在浅色外观下 SystemBackground=#FFFFFF(白色),在深色外观下 SystemBackground=#000000(黑色)。
语义色彩带来了两个显而易见的好处:
语义色彩带来了两个显而易见的好处:
趋动设计师规划全局的配色方案:在 Dark Mode 的设计难点中我们提到了,一套完整而悦目的 Dark Mode,需要设计师深入地调整明暗关系下色彩的搭配。通过引入语义色彩,设计师可以自上而下地进行框架性设计,首先定义好界面中一共存在哪些元素,然后,为这些元素规划好相应的配色方案,以确保在深浅外观中都获得最佳显示效果。
更容易复用:通过语义色彩,无论是对于设计师还是程序员,都可以实现「一次声明,处处使用」。通过语义色彩,设计师可以整理出配色模板,程序员可以在不同界面的同类型元素中,直接使用语义色彩,而不用重复地去指定相同的颜色。
苹果在系统层面整理出了一套配色方案,其中包含了背景色、文字标签色、填充色等等,大多提供了四种不同醒目程度的层级,从应用在标题上的一级,到提示或说明性文字的四级。当然,除了系统内置的这些色彩,开发者也可以根据自己的需要创建和声明新的语义色彩。
背景色区分基底色(Base)与提亮色(Elevated)
在设计难点中我们提到了,层级上离用户越近的区域,应该在视觉上更明亮一些。苹果在设计 Dark Mode 时,也充分考虑到了这一点。
iOS 深色外观的背景色,是纯正的黑色(#000000),苹果称之为基底色(Base)。不过,这个背景色会随着界面层级的变化,而变成提亮色(Elevated)。下图就是一个例子:在左边的通讯录 app 中,背景色就是纯正的黑色。而到了右边的电话 app 中,有些操作会需要弹出浮层供你选择联系人,这时候浮在上方的界面背景色,就变成了亮一些的提亮色。
材质(Material)与系统控件的原生支持
苹果在介绍 Dark Mode 时,还提到了材质(Material)。在我们常见的说法中,就是自 iOS 7 中引入的毛玻璃效果,常用于系统的文件夹、下拉菜单、通知、Dock 栏等处。苹果为这些材质设计了深浅两套配色方案,并提供了从厚到薄的四种感观效果。
更重要的是,苹果还为材质上的内容颜色进行了单独的鲜活化(Vibrancy)处理。以下图为例,第一行的文字「Solid Color」为固定色彩,随着背景颜色的变更,到最后两幅图中几乎不可辨识了。第二行的「Vibrant」则为经过了鲜活化处理的文字效果,在背景色变亮时,也能保证文字的可读性。
此外,苹果还更新了 UIKit 中的系统级控件,以适配深浅两种颜色外观。值得注意的是,在浅色模式下,许多元素是存在投影的,例如开关按钮、拖动条的拉动点……而到了深色外观中,这些投影被统统移除了,这也是苹果设计的细微精致之处。
引入字体化图标
在 iOS 13 中,苹果还为了 Dark Mode 引入了多达 1500 余个字体化图标 SF Symbols。
前面我们已经看到了,苹果通过语义色彩解决了界面与内容的色彩管理,同时通过更新一系列的系统级控件确保适应两种不同的配色方案。然而,界面中还存在着一个重要元素,就是图标。如果我们希望获得良好的效果,往往需要针对深浅外观重新填充图标的颜色,准备两套图标素材。
而字体化图标彻底解决了这个问题,还带来了一系列的优势。什么是字体化图标呢?简而言之,你可以对文字进行的处理,也可以针对图标做到。所以,字体化图标可以像文字一样修改颜色、粗细、大小、对齐。前面提到的语义色彩、鲜活化处理等技术,也一样可以运用在图标上。
以上四点,就是苹果如何为 iOS 设计 Dark Mode 的。你可以在这里下载苹果官方提供的 iOS 13设计模板的 Sketch 文件,其中包含了 iOS 13 的最新范式、内置语义色彩、材质等元素。
Dark Mode 在 iOS 13 上的呈现感不错,但距离完美还有一定距离。这其中既有客观因素,也有系统的主观原因。例如,iOS 的 Dark Mode 针对图像不会进行特别的处理,如果你的备忘录中有一张白色的照片,就会变得十分刺眼。而 Instapaper 在深色外观下,会自动暗化(Dimmed)处理内容中的图片元素。
此外,从客观因素上来说,许多网页还没有针对 Dark Mode 进行适配,导致打开时会一片惨白刺眼。同时,在 Power+ 1.0 中的《深色模式对视疲劳和效率的影响》这篇文章,对 Dark Mode 也提出了许多非常有深度的论述。例如,深色模式其实未必适合文字的阅读,以及即使开启了深色模式,在昏暗环境中使用电子设备对视力的伤害也不容小觑。
但不管怎么说,Dark Mode 都给我们提供了额外的选择,数字健康(Digital Wellbeing)不仅仅只体现在硬件的迭代与软件的更新上,更应该成为每一位使用者与开发者的主动意识,借此也希望所有的 app 和 web 开发者,尽早适配 Dark Mode。
参考文章:
Dark Mode 的设计要点 https://zhuanlan.zhihu.com/p/141465632
写给设计师的指南:如何为即将到来的Dark Mode做好准备 https://zhuanlan.zhihu.com/p/67583152
转载本站文章《DarkMode(1):产品应用深色模式分析》,
请注明出处:https://www.zhoulujun.cn/html/webfront/style/darkMode/8557.html
DarkMode(1):产品应用深色模式分析的更多相关文章
- 你学会UI设计了吗?
你学会UI设计了吗? UI设计师如何前驱? 关于产品 作为一个UI设计师,我们还在干巴巴的等着产品经理甚至交互提供的需求和原型再开始动手吗?这样被动的工作是永远无法提升自己的,当然你也永远只能拿到几千 ...
- 大白话抽象工厂模式(Abstract Factory Pattern)
实例分析 大白话工厂方法模式(Factory Method)一文中,我们讲解了日产4S店工厂规模的扩大,创建了针对不同车型的工厂,减少了工厂的工作内容,提高了效率.下面我们继续以4S店的故事讨论抽象工 ...
- 手机刷机软件与ROM的盈利模式分析
一. 智能手机的兴起不过短短几年时间,更新迭代已经让实体键盘成为回忆.智能手机带来的是人们生活习惯的改变,对于手机的重度依赖,是好是坏不去评价.智能手机相对于之前的手机最大的改变不仅仅是屏幕的飞速变大 ...
- [ Office 365 开发系列 ] 开发模式分析
前言 本文完全原创,转载请说明出处,希望对大家有用. 在正式开发Office 365应用前,我们先了解一下Office 365的开发模式,根据不同的应用场景,我们选择最适合的开发模式. 阅读目录 Of ...
- SaaS系列介绍之十二: SaaS产品的研发模式
1 产品研发模式慨述 产品研发模式是企业战略的重点.产品研发路线决定了一系列的管理手段和团队建设问题.也是企业的整理策略和经营思路.产品研发模式贯穿着整个产品的生命周期,从市场调研.立项.需求分析.慨 ...
- 浅谈AndroidGPU过度绘制、GPU呈现模式分析及相关优化
在真机设备下有一个开发者选项,这个大家都知道,我们最常用的就打开'USB调试'功能,方便真机调试. 在这开发者选项中还有个选项,'调试GPU过度绘制' 这里选择第二个选项'显示过度绘制区域' 可以看到 ...
- 做一个新产品需求,体验的分析文档?(例:喜马拉雅FM)
2.1 战略层 2.11 产品定位: 一款产品覆盖面广,收听节目种类齐全,资源丰富的电台APP. 以PGC为主流,通过合作方式吸纳专业的电台人,节目人,行业名人分享内容. 融合UGC,满足人们在空闲时 ...
- NFV产品如何才能走向规模商用
作者简介:王晔,烽火通信科技股份有限公司ICT网络产品线NFV产品总监,高级工程师,研究方向为SDN\NFV\MEC\AI\光通信. 自2013年AT&T率先提出DOMAIN 2.0网络转型计 ...
- 多线程设计模式——Read-Write Lock模式和Future模式分析
目录 多线程程序评价标准 任何模式都有一个相同的"中心思想" Read-Write Lock 模式 RW-Lock模式特点 冲突总结 手搓RW Lock模式代码 类图 Data类 ...
随机推荐
- Linux Command Line_1_Shell基础
引言 图形用户界面(GUI)让简单的任务更容易完成,命令行界面(CLI)使完成复杂的任务成为可能. 第一部分:Shell 本部分包括命令行基本语言,命令组成结构,文件系统浏览.编写命令行.查找命令 ...
- Ubuntu16.04安装搜狗输入法报错:dkpg:处理归档sogoupinyin.deb(--install)时出错,安装sogoupinyin将破坏fcitx-ui-qimpanel
系统:ubuntu16.04 事件:安装搜狗拼音时报错 报错信息(ubuntu语言是英文的报错信息): dpkg: regarding sogoupinyin_2.3.2.07_amd64-831.d ...
- 考研党其实可以用思维导图MindManager做考研复习计划
近年由于就业压力,个人学历提升等各种原因,考研的人数越来越多了,相对难度也越来越大了,尽管今年研究生招生规模同比去年增加18.9万,但也无法掩盖考研的竞争逐年激烈. 身为考研大军中的预备选手之一,小编 ...
- guitar pro 系列教程(十一):Guitar Pro菜单工具之MIDI效果的提升
对于新手的一些朋友,看谱,编曲时使用Guitar Pro时,因为对其功能不是很了解而显得困难重重,导致出现的音频效果不是很理想,因此,小编今天要做的便是,单独把Guitar Pro里的MIDI效果如果 ...
- leetcode187. 重复的DNA序列
所有 DNA 都由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:"ACGAATTCCG".在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助.编写一个函数 ...
- 01-01.单一职责原则(Single Responsibility)
1.基本介绍 对于类来说的,就是一个类,应该只负责一项职责(一个类只管一件事). 如类A负责两个不同职责:职责1,职责2. 当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解 ...
- 使用Python开发鸿蒙设备程序(0-初体验)
到目前为止,鸿蒙设备开发的"官方指定语言"还是C语言! 这看起来是一件正常的事,毕竟鸿蒙设备开发还是属于嵌入式开发的范畴,而在嵌入式开发中C语言又是当之无愧的首选,所以,大家也都接 ...
- 【树形dp】【CF161D】distance on a tree + 【P1352】没有上司的舞会
T1题面: 输入点数为N一棵树 求树上长度恰好为K的路径个数 (n < 1e5, k < 500) 这是今天的考试题,也是一道假的紫题,因为我一个根本不会dp的蒟蒻只知道状态就一遍A掉了- ...
- 使用zabbix监控Jenkins
一.监控架构图 二.实现思路 在 Jenkins 上安装 Metrics 插件,使 Jenkins 暴露 metrics api: 编写python代码从api抓取数据,并将数据解析为zabbix可以 ...
- 自动化运维工具之Puppet常用资源(一)
前文我们聊到了puppet的架构,单机模型和master/agent模型的工作流程以及puppet的基础使用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14 ...