Sass color variable not working inside darken()

2019-01-06 22:18发布

I've got list of colors and I would like to use darken() on them like so:

$innerPagesBgColors: "#6B46C1", "#2980B9", "#FD5456", "#000";

.foo {
    color: darken(nth($innerPagesBgColors, 3), 5%);
}

But I get this error:

$color: "#FD5456" is not a color for `darken'

I tried interpolating the nth() portion but that didn't help either.

标签: sass
2条回答
不美不萌又怎样
2楼-- · 2019-01-06 22:48

The problem is that darken function requires a color as first argument and, instead, you're trying to pass a string.

type-of(#6B46C1); // returns color
type-of("#6B46C1"); // returns string

So you should remove all quotes in $innerPagesBgColors:

$innerPagesBgColors: #6B46C1, #2980B9, #FD5456, #000;
查看更多
Root(大扎)
3楼-- · 2019-01-06 23:04

In my case I solved with this.

@each $name, $color in $set_colors{
  // check type-of before
  @if (type-of($color) == 'color'){
    .color-#{$name}{
      color: #{$color};
    }

    .background-#{$name}{
      background-color: $color;

      &:hover{
        background-color: darken($color, 10%);
      }
    }
  }
}
查看更多
登录 后发表回答