grunt-css-count
v0.3.2
Published
Count CSS selectors, declarations and rules in CSS files.
Downloads
104
Maintainers
Readme
grunt-css-count
Count CSS selectors, nesting depth, declarations and rules in CSS files.
- To monitor simplicity of CSS files (depth/nesting of selectors and etc.)
- To watch for 4096 selector limit in IE9.
Getting Started
This plugin requires Grunt.
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-css-count --save-dev
Sample Output
test/style.css
Selectors: 17 | Declr: 16 | Rules: 11 | S/R: 1.5 | D/R: 1.5 || 1k (1k gzip)
| D1: 7 (41%) | D2: 3 (18%) | D3: 4 (24%) | D4: 2 (12%) | D6: 1 (6%) || * 4
Line 1: Location of the CSS file being counted.
Line 2: General statistics and size of file.
S/R: selectors to rules ratio D/R: declarations to rules ratio
Line 3: Depth of selectors (nesting count) and number of used global CSS selectors (*).
Nesting depth explanation:
D1:
.selector-1 { ... }
D2:
.selector-1 .selector-2 { ... }
D3:
.selector-1 .selector-2 .selector-3 { ... }
...
Examples
Example of a Grunt config (Gruntfile.js) containing the csscount task.
grunt.initConfig({
csscount: {
dev: {
src: [
'css/compiled/styles.css',
'assets/styles/*.min.css'
],
options: {
maxSelectors: 4000,
maxSelectorDepth: 5
}
}
}
});
grunt.loadNpmTasks('grunt-css-count');
grunt.registerTask('default', ['csscount']);
Options
maxSelectors
Type: Number
Default: ∞
Maximum number of selectors within CSS file. (IE9 limit is 4096)
maxSelectorDepth
Type: Number
Default: ∞
Maximum depth (nesting) within selectors.
beForgiving
Type: Boolean
Default: false
Whether Grunt to fail or not on 'maxSelectors' and 'maxSelectorDepth' errors.
Credits
- @visionmedia for the great css-parse library.
- Original work from @phamann's grunt-css-metrics