Sha256: 06f15ce50eaba1830df58ab199dfcd94d008e7e87b6d45aea9e03c6657fca95c

Contents?: true

Size: 878 Bytes

Versions: 2

Compression:

Stored size: 878 Bytes

Contents

module SCSSLint
  # Checks for uses of properties where a Compass mixin would be preferred.
  class Linter::Compass::PropertyWithMixin < Linter::Compass
    include LinterRegistry

    def visit_prop(node)
      prop_name = node.name.join

      if PROPERTIES_WITH_MIXINS.include?(prop_name)
        add_lint node, "Use the Compass `#{prop_name}` mixin instead of the property"
      end

      if prop_name == 'display' && node.value.to_sass == 'inline-block'
        add_lint node,
                 'Use the Compass `inline-block` mixin instead of `display: inline-block`'
      end
    end

  private

    # Set of properties where the Compass mixin version is preferred
    PROPERTIES_WITH_MIXINS = %w[
      background-clip
      background-origin
      border-radius
      box-shadow
      box-sizing
      opacity
      text-shadow
      transform
    ].to_set
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
scss-lint-0.23.1 lib/scss_lint/linter/compass/property_with_mixin.rb
scss-lint-0.23.0 lib/scss_lint/linter/compass/property_with_mixin.rb