Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 3b6758e5a6
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 91 lines (68 sloc) 2.1 kb

grunt-css

Grunt plugin for linting and minifying CSS

Getting Started

Install the module with: npm install grunt-css

Then load it from your own grunt.js file:

grunt.loadNpmTasks('grunt-css');

Documentation

This plugin provides two tasks: cssmin and csslint. Both area multi tasks, meaning that grunt will automatically iterate over all cssmin and csslint targets if a target is not specified.

cssmin

This works just like the built-in min task, so check docs for that.

csslint

This is similar to the built-in lint task, though the configuration is different. Here's an example:

csslint: {
    base_theme: {
        src: "themes/base/*.css",
        rules: {
            "import": false,
            "overqualified-elements": 2
        }
    }
}

src specifies the files to lint, rules the rules to apply. A value of false ignores the rule, a value of 2 will set it to become an error. Otherwise all rules are considered warnings.

For the current csslint version, these rules are available:

import
adjoining-classes
important
box-sizing
box-model
known-properties
duplicate-background-images
compatible-vendor-prefixes
display-property-grouping
overqualified-elements
fallback-colors
duplicate-properties
empty-rules
errors
rules-count
ids
font-sizes
font-faces
gradients
floats
outline-none
qualified-headings
regex-selectors
shorthand
text-indent
unique-headings
universal-selector
unqualified-attributes
vendor-prefix
zero-units

For an explanation of those rules, check the csslint wiki.

Side note: To update this list, run this:

node -e "require('csslint').CSSLint.getRules().forEach(function(x) { console.log(x.id) })"

Contributing

Please use the issue tracker and pull requests.

License

Copyright (c) 2012 Jörn Zaefferer Licensed under the MIT license.

Something went wrong with that request. Please try again.