0

私は最近、SASS がコンパイルされたときに実行されるいくつかのデフォルト アクションが必要であると判断し、それを実行するための関数を作成するのに役立つこのスタック オーバーフローの質問を見つけました ( scss ファイルの config.rb で定義された変数を使用します) 。

色の値は正常に取得され、SASS カラー オブジェクトのように処理されます (つまり、'#ff0000' を関数に渡すと、'red' として出力されます)。 shade() 関数。

私が得るエラーは

(137行目:「#ff1122」は「shade」の色ではありません)

しかし、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%));

他の色として機能するため、これが機能しない理由がわかりません。

必要に応じてさらに情報を提供できます

4

1 に答える 1

0

私の問題はこれで終わった

$col_primary : #{custom_color(main)};

例から取ったもの-SASSはそれを文字列として解釈すると思うので、関数が正しい型を返すことは問題ではありません。

于 2013-09-17T12:00:19.503 に答える