创造一门语言不是什么大事,一种常见的误解是,把新语言的诞生想象成某种新文明的兴起,似乎预示着旧时代的结束,并蕴含着某种开创性的精神,迎接新的未来。 实际上,往往是现有语言的扩展或变体,或者为了解决某些现有问题而提出的改进。 语言,只是一种工具。


颜色渐变与色彩空间

颜色也是一个复杂的问题,我们用RGB三个维度编码颜色,实际上完全是因为人类的视网膜只有三种感受颜色的细胞,所以只用这三个维度就能编码人类看到的所有颜色。 题外话,这三种感光并不是均匀分布的,稍后我们会看到这带来的问题。 所以说,我们看到的颜色并不天然存在。

图:RGB三维空间,色彩空间图

那么颜色过渡就是从三维空间中的一点移动到另一点,这样的路径并不是唯一的。 如果我们简单的在RGB空间中直线移动,也就是线性插值渐变,颜色看起来会这样变化:

图:RGB渐变,从黄色到紫色

中间颜色好像消失了,其实是经过了灰色(均值)。

图:HSL渐变,看起来好多了

如果我们分别沿着每一轴渐变。

图:先R、再G、最后B渐变

看起来会像是廉价的小彩灯。


动效的选择

显然,动画并不是越多越好,动效符合人们的心理预期是十分重要的。

想象一下,你在餐厅吃饭,你叫了服务员,他立刻到你身边为你服务,对你说“请慢用”,后退,然后才转身离开。或者是,你叫了很久他都没来,听你点餐后转身就走了。这两种服务态度肯定是不一样的。

我们的UI动效也要考虑这样的问题,如果我们需要在用户的光标进入时显示菜单,离开后隐藏。那么最好是出现动画尽可能快速,看起来响应非常快,而消失的动画相对慢一点,好像是给用户重新决定的时间。

体验:不同动效对操作的影响

虽然我们的系统的实际响应速度并没有变,用户体验却天差地别。