如何通过 HSB 颜色模式构建夜间模式
中国睡眠研究会发布的《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 颜色模式构建夜间模式的更多相关文章
- DKNightVersion的基本使用(夜间模式)
DKNightVersion下载地址: https://github.com/Draveness/DKNightVersion 基本原理就是利用一个单例对象来存储颜色, 然后通过runtime中的ob ...
- Android实现夜间模式
如今非常多App都有夜间模式,特别是阅读类的App.夜间模式如今已经是阅读类App的标配了,其实,日间模式与夜间模式就是给App定义并应用两套不同颜色的主题,用户能够自己主动或者手动的开启,今天用An ...
- Ionic3学习笔记(十)实现夜间模式功能
本文为原创文章,转载请标明出处 目录 创建主题样式 导入 variables.scss 创建 provider 创建 page 在 App 入口处应用主题 效果图 1. 创建主题样式 在 ./src/ ...
- DKNightVersion 的实现 --- 如何为 iOS 应用添加夜间模式
在很多重阅读或者需要在夜间观看的软件其实都会把夜间模式当做一个 App 所需要具备的特性. 而如何在不改变原有的架构, 甚至不改变原有的代码的基础上, 就能为应用优雅地添加夜间模式就成为一个在很多应用 ...
- android简单的夜间模式
现在android项目values下打 attrs.xml <?xml version="1.0" encoding="utf-8"?> <r ...
- Android白天/夜间模式Day/Night Mode标准原生SDK实现
Android白天/夜间模式Day/Night Mode标准原生SDK实现 章节A:Android实现白天/夜间模式主要控制器在于UiModeManager,UiModeManager是Andr ...
- Android 之夜间模式(多主题)的实现
引言 夜间模式其实属于多主题切换的一种,不过是最麻烦的一种.因为在夜间模式下不仅要切换主色调,次要色调等等,还要覆盖一些特殊的颜色,因为在夜间模式下总不能什么都是黑的把,那不得丑死-.-,所以当你夜间 ...
- Android 夜间模式changeskin小结
@author vivian8725118 @CSDN http://blog.csdn.net/vivian8725118 @简书 http://www.jianshu.com/p/832e9776 ...
- Android夜间模式的几种实现
一.直接修改widget颜色,这种方式实现起来最简单,但需要每个控件都去修改,太过复杂.例如: /** * 相应交互,修改控件颜色 * @param view */public void onMeth ...
随机推荐
- Zigbee折腾之旅:(一)CC2530最小系统
最近在倒腾Zigbee,准备参加物联网全国大赛,学校有给我们发Zigbee开发板,但是对于喜欢折腾的我来说,用开发板还是不过瘾,起码也得知道怎么去画一块板子.于是乎,在百度一番后就有了下面这篇文章. ...
- Qt中纯C++项目发布为dll的方法(超详细步骤)
众所周知,我们可以将C++项目中的类以及某些方法导出,形成 .dll 文件,以供其他程序使用,下面将说明Qt环境下的使用方法. 首先创建共享库,步骤如下: 下一步会出现类对话框等等,不用管它,直接点击 ...
- hibernate动态切换数据源
起因: 公司的当前产品,主要是两个项目集成的,一个是java项目,还有一个是php项目,两个项目用的是不同的数据源,但都是mysql数据库,因为java这边的开发工作已经基本完成了,而php那边任务还 ...
- Docker存储驱动之AUFS简介
简介 AUFS是曾是Docker默认的首选存储驱动.它非常稳定.有很多真实场景的部署.很强的社区支持.它有以下主要优点: 极短的容器启动时间. 有效的存储利用率. 有效的内存利用率. 虽然如此,但由于 ...
- TCP四个计数器
持续计时器 TCP 为每一个连接设有一个持续计时器. 只要 TCP 连接的一方收到对方的零窗口通知,就启动持续计时器. 若持续计时器设置的时间到期,就发送一个零窗口探测报文段(仅携带 1 字节的数据) ...
- 使用js在网页上记录鼠标划圈的小程序
Spin-Wheel 实现鼠标在网页上转圈时记录转动圈数的小程序,每转一圈记录一次,同时要是顺时针方向的. 问题分析与实现 这个小程序的难点在于如何知道鼠标完成了一个转圈的动作,而且人工使用鼠标划圈时 ...
- 黑苹果引导工具 Clover 配置详解及Clover Configurator使用
黑苹果引导工具 Clover 配置详解及Clover Configurator使用 2017-03-11 14:01:40 by SemiconductorKING 转自:@三个表哥 简介: 可 ...
- 4063: [Cerc2012]Darts
4063: [Cerc2012]Darts Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 85 Solved: 53[Submit][Status] ...
- UITextField输入限制/小数/首位等
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementS ...
- Apache Flume日志收集系统简介
Apache Flume是一个分布式.可靠.可用的系统,用于从大量不同的源有效地收集.聚合.移动大量日志数据进行集中式数据存储. Flume简介 Flume的核心是Agent,Agent中包含Sour ...