【问题标题】:Best way to create color palette in sass with opacity values or translate opaque colors to base colors在 sass 中使用不透明度值创建调色板或将不透明颜色转换为基色的最佳方法
【发布时间】:2018-12-30 17:16:53
【问题描述】:

我正在为客户重组整个 sass 设置,为了他们的调色板,我创建了一个包含调色板的地图。为了客户,我在这个问题中插入了一些虚假的颜色值。

$foundation-palette: (
    primary: (
        blue: (
            base: rgba(155, 177, 255, 1),
            light: rgba(155, 177, 255, 75%),
            lighter: rgba(155, 177, 255, 50%),
            lightere: rgba(155, 177, 255, 25%),
            lightest: rgba(155, 177, 255, 15%),
        ),
        beige: (
            base: rgba(255, 233, 155, 1),
            light: rgba(255, 233, 155, 75%),
            lighter: rgba(255, 233, 155, 50%),
            lightere: rgba(255, 233, 155, 25%),
            lightest: rgba(255, 233, 155, 15%),
        ),
    ),
    secondary: (
        base: rgba(233, 151, 144, 1),
        light: rgba(233, 151, 144, 80%),
    ),
    tertiary: (
        green: (
            base: rgba(109, 192, 102, 1),
            light: rgba(109, 192, 102, 75%),
            lighter: rgba(109, 192, 102, 50%),
            lightere: rgba(109, 192, 102, 25%),
            lightest: rgba(109, 192, 102, 15%),
        ),
        ....
    ),
    white: #fff
);

问题是,调色板包含许多颜色,这些颜色都有不同的阴影,并用不透明度值定义。

在当前设置下,不透明度值不会被注册,这意味着当我尝试使用主要蓝色最亮的颜色时,它只会被编译成该颜色的基色(没有不透明度值)。

但是,如果我什至应该用不透明度值声明调色板,我会徘徊。即使它在客户端的设计原则中,我想知道这在您的 sass 设置中是多么好的实践。例如,如果我想要浅灰色,它将是黑色的不透明版本。

根据这一点,我要么想声明不透明的颜色,但是如何找到与不透明版本匹配的 rgb 值的正确颜色值?

如果在调色板中使用不透明度很好,我想知道为什么“最轻”值会编译成基色。这里的指导方针是什么?我应该怎么做?

感谢任何意见

编辑:我通过 map-get 访问颜色:

$primary-blue-lightest: map-get(map-get(map-get($foundation-palette, primary), blue), lightest);

【问题讨论】:

    标签: css colors sass opacity color-palette


    【解决方案1】:

    另一种简单的方法是创建一个function 并将基色和不透明度作为参数传递:

    @function colorPalette($RGBColor, $opacityLevel) {
      @return rgba($RGBColor, $opacityLevel);
    }
    

    然后你可以从这个函数中创建一个变量:

    $green: colorPalette(rgb(0,255,0), .9);
    

    并使用它:

    .section { background-color: $green; }
    

    【讨论】:

    • 这行得通,但我还需要质疑这样的不透明值是好还是坏?你对此有什么意见吗?
    • 老实说,我从未有过这个用例,但 Sass 已经有内置的 lightendarken 方法,所以也许你不想重新发明它。 sass-lang.com/documentation/Sass/Script/Functions.html也许如果它变得古怪,你应该重新考虑你的方法(当我觉得我不在可理解的轨道上时我会这样做)
    • 你知道 lighten(color, 50%) 结束 op 的颜色是否与 rgba(color, .5) 相同吗?只是不透明?我想这是我的问题,如果输出颜色或多或少相同
    • 老实说我不知道​​,但你应该很容易在你的项目或网络上找到
    猜你喜欢
    • 2012-11-05
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    • 2016-04-24
    • 2011-02-25
    • 1970-01-01
    相关资源
    最近更新 更多