中国睡眠研究会发布的《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. 纪中集训 Day 6

    今天他们回去了,就剩我和DWJ(一位初三大大(后来问云神才知道的ORZ))一起在做题,不得不说他真的是太厉害了,一个升初三大大在各种方面都比我强QAQ 让我突然感觉到自己的高一还是不够努力啊QAQ 连 ...

  2. Android学习20--OpenGL的"mapPoints"

    在OpenGL中有时会需要求一个3维空间中的点在平移(缩放,旋转)后坐标是多少.需求相当于二维的mapPoints.可以通过这个函数实现 void multiplyMV (float[] result ...

  3. php分页查询

    1.先把数据库里所有的数据分页显示在页面,并在显示数据的表格上方加上查询表单. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit ...

  4. 【Java基础】反射机制

    反射 反射可以使我们很方便的创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代码链接.反射允许我们在编写和执行时,使我们的代码能够接入装载到JVM中的类的内部信息,而不是源代码中选定的类 ...

  5. Linux 下查看CPU的使用情况

    1.top使用权限:所有使用者使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]说明:即时显示process的动态d :改变显示的更新速度,或是在交谈 ...

  6. 详细领悟ThreadLocal变量

    关于对ThreadLocal变量的理解,我今天查看一下午的博客,自己也写了demo来测试来看自己的理解到底是不是那么回事.从看到博客引出不解,到仔细查看ThreadLocal源码(JDK1.8),我觉 ...

  7. jquery ajax标准写法

    $.ajax({ url:url,                      //地址 type:'post', //请求方式 还可以是get type不可写成Type 不让会导致数据发送不过去,使用 ...

  8. MySQL Sniffer

    MySQL Sniffer 是360开源的一个基于 MySQL 协议的抓包工具, 能实时抓取客户端端请求,并格式化输出操作语句,操作十分简单.对于问题的定位,操作的审核是个不错的利器. Github地 ...

  9. Vmware虚拟机设置静态IP地址

    一.安装好虚拟后在菜单栏选择编辑→ 虚拟网络编辑器,打开虚拟网络编辑器对话框,选择Vmnet8 Net网络连接方式,随意设置子网IP,点击NAT设置页面,查看子网掩码和网关,后面修改静态IP会用到. ...

  10. 使用Visual Studio 2017作为Linux C++开发工具

    Visual Studio 2017 微软的宇宙第一IDE Visual Studio 2017正式版出来了,地址是:https://www.visualstudio.com/vs/whatsnew/ ...