class SCSSLint::Linter::ColorKeyword

Checks for uses of a color keyword instead of the preferred hexadecimal form.

Public Instance Methods

visit_script_color(node) click to toggle source
# File lib/scss_lint/linter/color_keyword.rb, line 7
def visit_script_color(node)
  word = source_from_range(node.source_range)[/([a-z]+)/i, 1]
  add_color_lint(node, word) if color_keyword?(word)
end
visit_script_string(node) click to toggle source
# File lib/scss_lint/linter/color_keyword.rb, line 12
def visit_script_string(node)
  return unless node.type == :identifier

  remove_quoted_strings(node.value).scan(/(^|\s)([a-z]+)(?=\s|$)/i) do |_, word|
    add_color_lint(node, word) if color_keyword?(word)
  end
end

Private Instance Methods

add_color_lint(node, original) click to toggle source
# File lib/scss_lint/linter/color_keyword.rb, line 22
def add_color_lint(node, original)
  hex_form = Sass::Script::Value::Color.new(color_keyword_to_code(original)).tap do |color|
    color.options = {} # `inspect` requires options to be set
  end.inspect

  add_lint(node,
           "Color `#{original}` should be written in hexadecimal form " \
           "as `#{hex_form}`")
end