Less 基于背景颜色变量的条件CSS

Less 基于背景颜色变量的条件CSS,less,Less,是否可以根据较小变量的明暗度设置颜色 目前我有以下代码: li { color: darken(@bodyBackground, 10%); } 如果@bodyBackground为浅色,则此项工作正常。但是,如果它是深色,我希望使用加亮(@bodyBackground,10%)。这是否可能用更少的资源实现?有功能,例如: li { color: contrast(@bodyBackground, lighten(@bodyBackground, 13%

是否可以根据较小变量的明暗度设置颜色

目前我有以下代码:

li {
    color: darken(@bodyBackground, 10%);
}
如果
@bodyBackground
为浅色,则此项工作正常。但是,如果它是深色,我希望使用
加亮(@bodyBackground,10%)
。这是否可能用更少的资源实现?

有功能,例如:

li {
    color: contrast(@bodyBackground,
            lighten(@bodyBackground, 13%),
             darken(@bodyBackground, 13%));
}

你可以比这聪明得多。您可以进行混音以检查提供的颜色,并根据其颜色执行变暗或变亮:

.smart-text-color (@a) when (lightness(@a) >= 50%) {
  // Its a light color return a dark output
  color: darken(@a, 60%);
}
.smart-text-color (@a) when (lightness(@a) < 50%) {
  // Its a dark color return a dark output
  color: lighten(@a, 60%);
}
.smart text color(@a)when(亮度(@a)>=50%){
//它是一个浅颜色返回一个暗输出
颜色:较深(@a,60%);
}
.智能文本颜色(@a)当(亮度(@a)<50%){
//它是一种深色,返回深色输出
颜色:浅色(@a,60%);
}
下面是一个mixin示例,它将背景颜色作为变量,并计算出要使用的文本颜色。返回亮或暗输出


参见函数。是的,就是这样。您可以添加它作为答案吗?它如何比对比度函数更智能?它更智能,因为您可以一次调整多个属性。@gco,所以您只需将混音硬编码到特定属性集,然后必须为每个新属性集复制粘贴相同的代码即可?每个属性都是重复的?这怎么会更聪明呢?