SASS :: Script ::某些SASS函数不会将颜色解释为颜色

时间:2013-09-16 18:16:45

标签: sass compass-sass

我最近决定要在编译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%));

我看不出这个因为它在其他地方起作用的原因不起作用的原因。

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

1 个答案:

答案 0 :(得分:0)

我的问题最终成了这个

$col_primary : #{custom_color(main)};

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