在Sass中实施颜色公式以定义调色板

时间:2018-07-24 12:07:23

标签: css colors sass rgb uicolor

因此,通过“图形设计”堆栈交换,我发现需要使用此颜色公式来计算调色板的色度:

Y=255 - P*(255-X) where X is a RGB number, P=opacity (0...1), Y=new RGB number 

基本上,我有多种基色,根据这种颜色在白色背景上的不透明性,我需要在其中找到一些较浅的颜色。这个公式背后的理论应该起作用,但是我不知道该如何在Sass中实现它(我尚未正确测试该公式)。

为了简单起见,假设我有1种基本颜色:

$primary: #FFA789;

,我希望我的颜色与不透明度为50%的输出相同。

$primary-light: rgba(#FFA789, .5);

但是我根本不希望颜色变得不透明。但是我想要与$ primary-light值相同的色彩。 -使用公式应该可以实现。

1 个答案:

答案 0 :(得分:3)

我猜您在获取定义颜色的R,G和B值时遇到了麻烦。您可以使用red(),green()或blue()函数来做到这一点。

所以,您将必须做

$active-color: #0074D9;
$opacity: 0.5;
$sec-color: rgb(255 - $opacity*(255 - red($active-color)), 255 - $opacity*(255 - green($active-color)), 255 - $opacity*(255 - blue($active-color)));

如果您只需要修改一个或两个RGB值,则可以使用change_color()函数,

$secondary-color: change-color($active-color, $blue: 255 - $opacity*(255 - blue($active-color)), $green: 255 - $opacity*(255 - green($active-color)));