某些SASS函数未将SASS::Script::Color解释为颜色

某些SASS函数未将SASS::Script::Color解释为颜色,sass,compass-sass,Sass,Compass Sass,最近,我决定在编译SASS时运行一些默认操作,并发现了这个堆栈溢出问题,它帮助我编写了一个函数来完成它() 颜色值被精细地拉过,并被视为SASS颜色对象(即,如果我将“#ff0000”传递到函数中,它将显示为“红色”,这很好),但它在tint()和shade()函数中不起作用 我得到的错误是 (第137行:“#ff1122”不是“阴影”的颜色) 但是,如果我注释掉所有的tint()和shade()实例,那么它就可以完美地工作 下面是正在使用的所有代码: config.rb(取自前面提到的堆栈溢出

最近,我决定在编译SASS时运行一些默认操作,并发现了这个堆栈溢出问题,它帮助我编写了一个函数来完成它()

颜色值被精细地拉过,并被视为SASS颜色对象(即,如果我将“#ff0000”传递到函数中,它将显示为“红色”,这很好),但它在tint()和shade()函数中不起作用

我得到的错误是

(第137行:“#ff1122”不是“阴影”的颜色)

但是,如果我注释掉所有的tint()和shade()实例,那么它就可以完美地工作

下面是正在使用的所有代码:

config.rb(取自前面提到的堆栈溢出链接)

style.scss(第5行)

style.scss(错误中提到的第137行)

我看不出这有什么理由不起作用,因为它在其他地方可以作为一种颜色


如果需要,我可以提供更多信息

我的问题是

$col_primary : #{custom_color(main)};

这是我从示例中得到的-我认为SASS将其解释为字符串,因此函数是否返回正确的类型并不重要。

如果没有真正的解决方案,可以使用mix而不是tint/shade,因为所有这些函数实际上都是将指定的颜色与白色/黑色混合。我在使用混合时也会遇到同样的错误-我想这是有道理的,因为它可能只是在内部使用该函数
$col_primary : #{custom_color(main)};
@include background-with-css2-fallback(linear-gradient(-45deg, transparent 51%, shade($col_primary, 10) 50%, $col_primary 75%, $col_primary 0%));
$col_primary : #{custom_color(main)};