Less提供了很多实用的函数专门用于定义和操作色彩。本文将介绍如何使用这些函数来

帮助你控制色彩,创造合适的色彩搭配,并且保持网站的一致性和专业性

  •   color spinning

spin()函数允许我们调整一个基础色以便达到色带轮的任何一点。该函数非常有用,比如,当我们在

创建一个配色方案时就会很有用。你可能度过一些基础的色彩理论,比如需要色彩搭配和谐:比如互补色理论,组合等。有很多实用的工具帮助你达成目标,比如adobe color cc(kuler),利用该工具你就可以创建遵循上述理论的配色方案。但是我们如何实用Less创建自己的配色呢?

  • Complementary

我们将通过创建最简单的色彩结构:complementary(互补方案)来开始我们的介绍。这种方案中强调有两个在色带轮相对180度方向的两个色彩作为基色。

首先,我们需要定义一个base color作为引用second color的基点。选择任何一个你喜欢的颜色,比如blue-ish #3bafda

使用spin函数旋转180度,取得第二个颜色

@color-base       : #3bafdA;
@color-complement : spin(@color-base, 180);

这样就生成两个精确的,漂亮的色彩,他们互为补充。

  • Triadic

三元色方案是由三个颜色来组成的。我们通常通过对色轮分为三部分来取三色,调整spin函数的参数就可以达到目的。

// Triadic structure
@color-base : #3bafdA;
@triadic-secondary : spin(@color-base, -(360 / 3));
@triadic-tertiary : spin(@color-base, (360 / 3));

这将形成下面的配色:

  • colors mixing

另外一种创建配色的方法是混合两种基色形成新的颜色,这就好比我们在小学艺术课堂中学习到的:如果我们将红色和黄色混合将形成一个橙色。使用Less,我们可以使用mix()函数达到同样的目的。

div {
color: mix(red, yellow);
}

上面的例子将生成#ff8000

注意:避免混合相同光谱(spectrum)的颜色,比如基色#3bafda这个颜色居于蓝色光谱区域,你如果将该色和其对立的色彩混合将得到一个比较满意的混合色,比如mediumvioletred,或者lightseagreen。

@color-base      : #3bafdA;
@color-primary : mix(@color-base, mediumvioletred);
@color-secondary : mix(@color-base, lightseagreen);
@color-tertiary : mix(@color-base, mintcream);

通过这个方法将得到和基色和谐共存的色彩搭配

  • Color Shades and Saturation

shade定义了一个颜色亮和暗的程度(light and dark)在web设计中,一个色彩的shade通常用于辨别元素的不同状态。比如:一个button,当hover或者focus时,其颜色通常使用一个更亮或更暗的背景色。使用Less,我们可以使用darken(),lighten()函数轻易得到这个darker/lighter。

@color-base  : #3bafdA;
@color-hover : lighten(@color-primary, 10%); //#9c84c1
@color-focus : darken(@color-primary, 10%); //#684b94

另一方法,我们可以通过调整饱和度saturation而不是Lightness来实现类似代表不同状态的功能。饱和度定义了一个色彩的深度;更大的饱和度则色彩更亮丽,更低的饱和度则更灰暗。

上面的例子中,我们通过saturate(),desaturate()函数来实现类似的功能:

@color-base    : #3bafdA;
@color-hover : saturate(@color-primary, 10%);
@color-focus : desaturate(@color-primary, 10%);
@color-disable : lightness(desaturate(@color-primary, 100%), 30%);

更进一步我们通过调整上述通过饱和度调整后形成的色彩的亮度直到达到我们的要求。

我们通过上述调整饱和度及亮度得到的基色变种色系将会给我们定制button style时省去大量时间,当我们调整base color时,其他的几个颜色变种将自动变更。

  • Intelligent color output

Less允许我们的样式更加聪明。例如,我们可以让我们的样式自己思考并且决定在特定清形下使用什么颜色。假设我们在创建一个网页的模板,这是衣蛾基础的样式button,我们计划将来扩充为不同的颜色和样式。我们如何控制颜色的输出呢?我们一定不希望一个亮的文本色(color text)放在亮的背景色上,也不希望暗色的文本放到暗色背景上去。我们得确保文本和背景永远保持足够的对比度,这样才便于阅读,这里contrast()函数将有了用武之处。

@body-bg: #000;

body {
background-color: @body-bg;
color: contrast(@body-bg);
}

在上面的例子中,我们通过contrast()函数设置color。这将确保text的color和背景的颜色有足够的对比。如果背景为0,则前景返回fff,如果背景为fff,则前景就为0.如果你设置背景为一个其他的亮色,比如white,whitesmoke或者skyblue,那么text color就将返回0

我们也可以对亮和暗的对比度来定制颜色。下例中,将返回999或者777以替代fff,000

@body-bg     : #f0f0f0;
@color-light : #999;
@color-dark : #777; body {
background-color: @body-bg;
color: contrast(@body-bg, @color-dark, @color-light);
}

使用Less color函数创建专业网站配色方案的更多相关文章

  1. html+css学习笔记:实用LessColor函数搭建配色方案

    http://www.zcool.com.cn/article/ZMTUyNDc2.html 前言:用LESS CSS框架进行编码会简化代码结构,提高我们的工作效率,但是试验后你会发现,默认情况下,L ...

  2. VSCode自定义配色方案

    说明 本文更新于2017-07-24,使用VSCode 1.14.1,操作系统为Windows. 配置文件 "文件-首选项-颜色主题"即可显示所有可用的颜色主题,上下选择后Ente ...

  3. 转:Eclipse配色方案

    http://www.cnblogs.com/arci/archive/2011/01/23/1942646.html 参考配色方案: http://www.cs.cmu.edu/~maverick/ ...

  4. VisualStudio配色方案

    最近发现一个很神奇的网站,可以方便的为VisualStudio配色:Studio Styles - Visual Studio color schemes 可以下载一份自己喜欢的配色方案 如果还不满意 ...

  5. 好看的IDE配色方案让代码看起来不再那么凶猛了

    写这篇小文的初衷是,笔者是原教旨主义者,一直坚持用IDE默认的配色方案.另外也觉得网上黑色系的配色方案太过bling bling了.但今天尝试用新的配色方案后,兴奋地发现对代码的好感度大幅提升. 嗯, ...

  6. vim配色方案设置(更换vim配色方案)

    vim配色后,我的 设定底色为黑色,字体为绿色,然后将文件夹设为洋红,默认的注释换为淡黄:其实有一种简单的方法,就是设定为系统配置好的配色方案:转载文章如下:   ---------------- ( ...

  7. RColorBrewer包---R语言的配色方案

    // RColorBrewer包介绍 RColorBrewer包提供了3套很好的配色方案.用户只需要指定配色方案的名称,就可以用包中的brewer.pal()函数生成颜色.这3套配色方案包括: 连续型 ...

  8. mac下使用Solarized配色方案

    Solarized配色方案不用多介绍了.具体点击这里:http://ethanschoonover.com/solarized 我们首先搞定macvim 你需要下载solarized.vim配色文件, ...

  9. SecureCRT配色方案

    SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件.作为一款经常使用的终端软件,一个好的配色方案可以大大的提高学 ...

随机推荐

  1. GCD创建一个单例

    1.+(id)shareInstance{ static ClassA *A=nil; static dispatch_once_t onceToken; dispatch_once(&onc ...

  2. kerberos+ladp+hadoop-ha 安全认证部署配置

    随着hadoop集群里的数据量越来越大,各业务数据都集中了里面,自然要为各业务都要提供数据支持,又希望各业务数据是相对独立安全的,这最时候就需要做安全认证了 hadoop ha 测试集群部署规划 ha ...

  3. java多线程基础知识

    1.ThrTest.java 继承Thread类方式 public class ThrTest extends Thread { private String name; public ThrTest ...

  4. Javascript 事件冒泡

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  5. java 继承类与接口问题

    java 先extends 继承类,再implements 继承接口 public class DataBase extends ClassBase implements Ijiekou { }// ...

  6. ida GDB 远程调试

    在看雪上回答的问题,有人问在WinDbg下断KiDebugRoutine或者KdEnterDebugger函数会引发蓝屏!因为是在调试Windows的内核调试引擎,我给出的解决办法是用不依赖Windo ...

  7. 深入Java集合学习系列:HashMap的实现原理--转

    原文出自:http://www.cnblogs.com/xwdreamer/archive/2012/06/03/2532832.html 1. HashMap概述: HashMap是基于哈希表的Ma ...

  8. 华为上机:求2的N次幂的值

    求2的N次幂的值 描述: 求2的N次幂的值(N最大不超过31,用位运算计算,结果以十六进制进行显示). 运行时间限制: 无限制 内存限制: 无限制 输入: 数字N 输出: 2的N次方(16进制,需要按 ...

  9. python_ftplib实现通过FTP下载文件

    1.  Ftplib常用函数介绍 Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件,本次主要介绍连接FTP并且进行文件下载功能,可 ...

  10. jQuery年月日(生日)选择器

    我们在编辑用户资料时经常会遇到选择生日选项的问题,今天我给大家介绍如何使用js来实现年月日(生日)选择器,能够准确计算闰年的年月日,方便表单处理. 文章:http://www.helloweba.co ...