中国睡眠研究会发布的《2017 年中国青年睡眠现状报告》显示,大约 90% 的人在睡前离不开电子产品。

不知道大家有没有感觉到普通的亮色界面会让我们在夜间使用的时侯感到刺眼,长时间使用会感觉眼睛疼痛,对眼睛的伤害也非常大。(当然睡前不玩手机是最好的解决方法)

所以对于阅读性或者社交娱乐等等 APP,打造夜间模式的功能会让我们得到更好的体验,减少对眼睛的伤害。

夜间模式 UI 与深色风格 UI 的区别

我们平时使用的不少音乐或视频类产品都采用了深色风格 UI 的设计,深色风格 UI 容易承托娱乐类产品的品牌特性以及氛围感。但深色 UI 并没有针对夜间情景下专门去考虑,在白天与夜间情景下都可以使用。

而夜间模式更加针对夜间无照明的情景下设计,更加全面考虑用户在夜间无照明情景下的体验。并且都是由白天 (亮色) 模式切换成夜间模式,兼顾两种模式设计。

当然这里一般会考虑到成本问题,不少产品直接用深色 UI 当夜间模式。不过作为设计师,必须理解二者的不同。

下面我们来了解一下应该如何设计一个夜间模式:

设计夜间模式的流程

夜间模式的设计主要通过色彩的调性,整体色彩的亮度,整体色彩的对比度,色彩的通用性等不同维度来设计。

1、明确色彩调性

首先,从调性图上来看,低短调(色调深暗,对比微弱),在黑暗的环境中看起来没那么刺眼,比较适合作为夜间模式的使用。

2、选择亮度低的颜色

尼特值 (nit) ,它是用于量化亮度强度的专业术语,意思每平方米烛光的强度:1nit=1 坎德拉/平方米;

其实可以将尼特值简单理解为亮度值。
白天,人的眼睛能适应亮度的值高于 3.4 尼特;夜晚,主体颜色接近 0.034 尼特,最亮元素低于 3.4 尼特的亮度眼睛会比较舒适。

将尼特值换算成 HSB 颜色模式。也就是说主色调颜色(一般指背景色或最暗的颜色)的亮度不超过 20(0<B<20),避免使用极端颜色(纯黑),最亮的颜色亮度尽量不超过 50。

3、选择低纯度的颜色

使用柔和,低纯度的色彩可以使界面看起来更舒服,增加用户的使用时长。

而且低纯度的色系对于色弱以及色盲人群来说,和普通人群的辨色差异不大,更适合大众。

4、选择对比度微弱的颜色

以下图为例:

白天模式

无纯度夜间模式

两个模式的亮度对比:

亮色版本的亮度是(100,90,80,60,10),颜色的对比跳跃比较大,对比强,明亮。

夜间模式的亮度是(10,15,30,40,50),最接近的颜色对比度不小于 5 ,保证颜色的差异辨识度。 颜色的对比跳跃比较小,对比微弱。

内容颜色与背景颜色的比对是 10:50 与 10:30 。

5、彩色明度降低为 B:50 左右,元素添加 50% 黑色遮罩。

6、改变色相,使品牌色更凸显

同样以这张图为例,将整体的颜色的纯度上加了 20 蓝色——色相: 216,整体会感觉加了一个蓝色的滤镜,视觉上看上去就不是无色相的黑白灰颜色。

小结

以上只是举了示例,具体的情况再具体分析。这些原则是为了帮助设计师更明确的做设计,并非限制设计师发挥的条条框框。

如何通过 HSB 颜色模式构建夜间模式的更多相关文章

  1. DKNightVersion的基本使用(夜间模式)

    DKNightVersion下载地址: https://github.com/Draveness/DKNightVersion 基本原理就是利用一个单例对象来存储颜色, 然后通过runtime中的ob ...

  2. Android实现夜间模式

    如今非常多App都有夜间模式,特别是阅读类的App.夜间模式如今已经是阅读类App的标配了,其实,日间模式与夜间模式就是给App定义并应用两套不同颜色的主题,用户能够自己主动或者手动的开启,今天用An ...

  3. Ionic3学习笔记(十)实现夜间模式功能

    本文为原创文章,转载请标明出处 目录 创建主题样式 导入 variables.scss 创建 provider 创建 page 在 App 入口处应用主题 效果图 1. 创建主题样式 在 ./src/ ...

  4. DKNightVersion 的实现 --- 如何为 iOS 应用添加夜间模式

    在很多重阅读或者需要在夜间观看的软件其实都会把夜间模式当做一个 App 所需要具备的特性. 而如何在不改变原有的架构, 甚至不改变原有的代码的基础上, 就能为应用优雅地添加夜间模式就成为一个在很多应用 ...

  5. android简单的夜间模式

    现在android项目values下打 attrs.xml <?xml version="1.0" encoding="utf-8"?> <r ...

  6. Android白天/夜间模式Day/Night Mode标准原生SDK实现

     Android白天/夜间模式Day/Night Mode标准原生SDK实现 章节A:Android实现白天/夜间模式主要控制器在于UiModeManager,UiModeManager是Andr ...

  7. Android 之夜间模式(多主题)的实现

    引言 夜间模式其实属于多主题切换的一种,不过是最麻烦的一种.因为在夜间模式下不仅要切换主色调,次要色调等等,还要覆盖一些特殊的颜色,因为在夜间模式下总不能什么都是黑的把,那不得丑死-.-,所以当你夜间 ...

  8. Android 夜间模式changeskin小结

    @author vivian8725118 @CSDN http://blog.csdn.net/vivian8725118 @简书 http://www.jianshu.com/p/832e9776 ...

  9. Android夜间模式的几种实现

    一.直接修改widget颜色,这种方式实现起来最简单,但需要每个控件都去修改,太过复杂.例如: /** * 相应交互,修改控件颜色 * @param view */public void onMeth ...

随机推荐

  1. extjs 基础部分

    创建对象的方法: 使用new 关键字创建对象. new  classname ([config]) 使用Ext.create方法创建. Ext.create(classname,[config]) n ...

  2. .Net异步编程知多少

    1. 引言 最近在学习Abp框架,发现Abp框架的很多Api都提供了同步异步两种写法.异步编程说起来,大家可能都会说异步编程性能好.但好在哪里,引入了什么问题,以及如何使用,想必也未必能答的上来. 自 ...

  3. linux安装python3

    使用root账号 wget https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tgz tar -zxf Python-3.4.4.tgz cd ...

  4. 怎么用php语言来做文件缓存

    使用缓存能够让我们的程序访问起来更加快速,缓存可以减少对数据库的操作,体验起来更好一些,对服务器的压力也小一些,当然服务速度很快 php文件执行完之后产生的解析完的数据,保存成静态的网页,下次打开的这 ...

  5. oracle目录操作

    1.创建目录 create directory dir_name as 'dir_path'  (dir_path必须事先手动创建) 2.授权 grant read,write on director ...

  6. JavaScript实现评论点赞功能

    通过分析评论功能的逻辑关系,学会如何使用JavaScript实现评论.回复.点赞等各种功能 1.学会JavaScript处理日期和时间. 2.掌握Dom操作中的添加/删除子节点方法. 3.使用setT ...

  7. enum类型的本质(转)

    原地址:http://www.cppblog.com/chemz/archive/2007/06/05/25578.html 至从C语言开始enum类型就被作为用户自定义分类有限集合常量的方法被引入到 ...

  8. 1084: [SCOI2005]最大子矩阵

    1084: [SCOI2005]最大子矩阵 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1325  Solved: 670[Submit][Stat ...

  9. CoreAnimation 寄宿图

    #CoreAnimation 寄宿图 寄宿图:图层中所包含的图 by:旭宝爱吃鱼 针对于寄宿图我在这里只讨论contents属性以及Custom Drawing. contents content:内 ...

  10. loadrunner:Auto Correlate自动定位瓶颈

    Auto correlate可以根据数据趋势,自动分析出可能影响目标性能的数据项,通过它可以很方便地找出哪些数据之间有明显的相互依赖性. 下面以分析影响平均响应时间的windows资源为例,讲解Aut ...