我最近决定要在编译SASS时运行一些默认操作,并发现这个堆栈溢出问题帮助我写了一个函数来执行它(Use variable defined in config.rb in scss files)
颜色值被拉得很好并被视为SASS颜色对象(即如果我将'#ff0000'传递给函数,它出现'红色',这很好)但它在色调中不起作用()和shade()函数。
我得到的错误是
(第137行:“#ff1122”不是“阴影”的颜色)
但是如果我注释掉tint()和shade()的所有实例,那么它就可以完美地运行。
以下是所有正在使用的代码:
config.rb(取自之前提到的堆栈溢出链接)
sass_options = {:custom => { :custom_colors => {"main" => "#ff1122"} } }
module Sass::Script::Functions
def custom_color(value)
rgb = options[:custom][:custom_colors][value.to_s].scan(/^#?(..?)(..?)(..?)$/).first.map {|a| a.ljust(2, a).to_i(16)}
Sass::Script::Color.new(rgb)
end
end
style.scss(第5行)
$col_primary : #{custom_color(main)};
style.scss(错误中提到的第137行)
@include background-with-css2-fallback(linear-gradient(-45deg, transparent 51%, shade($col_primary, 10) 50%, $col_primary 75%, $col_primary 0%));
我看不出这个因为它在其他地方起作用的原因不起作用的原因。
如果需要,我可以提供更多信息
答案 0 :(得分:0)
我的问题最终成了这个
$col_primary : #{custom_color(main)};
我从示例中得到了 - 我认为SASS将其解释为字符串,因此函数返回正确的类型并不重要。