从正常颜色和深色中获取 alpha
Getting alpha from normal and darken color
给定
darkColor = darken(normalColor, alpha)
darkColor
和 normalColor
已知,alpha
未知。
如何计算 alpha
?
如果出现多个颜色元组(normalColor
、darkColor
),我应该如何插入 alpha?
根据 Less 文档,下面是 darken()
函数的定义方式:
Decrease the lightness of a color in the HSL color space by an absolute amount.
所以给定正常颜色及其变暗版本,找到百分比的逻辑是找出两者的亮度正常颜色,深色,然后从前者中减去后者。 Less 有一个内置函数来计算给定颜色的 lightness()
,所以它可以直接使用。
@normalColor: #AAAAAA;
@darkColor: #6A6A6A; /* this is darken(@normalColor, 25%) */
#dummy{
percentage: lightness(@normalColor) - lightness(@darkColor);
}
备注:
- 计算是正常颜色的明度-深色的明度随着
darken
减少的明度。
- 输出的是一个近似值,并不准确。例如,在上述情况下,输出为 25.09803922% 而不是 25%。我们也不能向下舍入输出值,因为偏差可以是正的也可以是负的。例如深色为
#919191
(=darken(@normalColor, 10%)
),计算出的输出为9.80392157%.
- 只有当深色实际上是正常颜色的加深版时,此方法才有效。即两种颜色的
hue
和saturation
应该是一样的,因为darken
函数只修改了lightness
.
给定
darkColor = darken(normalColor, alpha)
darkColor
和 normalColor
已知,alpha
未知。
如何计算 alpha
?
如果出现多个颜色元组(normalColor
、darkColor
),我应该如何插入 alpha?
根据 Less 文档,下面是 darken()
函数的定义方式:
Decrease the lightness of a color in the HSL color space by an absolute amount.
所以给定正常颜色及其变暗版本,找到百分比的逻辑是找出两者的亮度正常颜色,深色,然后从前者中减去后者。 Less 有一个内置函数来计算给定颜色的 lightness()
,所以它可以直接使用。
@normalColor: #AAAAAA;
@darkColor: #6A6A6A; /* this is darken(@normalColor, 25%) */
#dummy{
percentage: lightness(@normalColor) - lightness(@darkColor);
}
备注:
- 计算是正常颜色的明度-深色的明度随着
darken
减少的明度。 - 输出的是一个近似值,并不准确。例如,在上述情况下,输出为 25.09803922% 而不是 25%。我们也不能向下舍入输出值,因为偏差可以是正的也可以是负的。例如深色为
#919191
(=darken(@normalColor, 10%)
),计算出的输出为9.80392157%. - 只有当深色实际上是正常颜色的加深版时,此方法才有效。即两种颜色的
hue
和saturation
应该是一样的,因为darken
函数只修改了lightness
.