CSS Audit
CSS Audit helps identify unused selectors in your CSS. This is designed to help you make an informed decision about whether you can remove a CSS selector from your stylesheet.
This is especially useful on older websites where the original authors of the CSS are no longer available and you are faced with adding new features without knowing what is no longer needed.
Installing
npm install cssaudit
How it works
You provide CSS Audit with a stylesheet, a site map with URLs and/or an array of URLs, it will then extract all the CSS selectors from the stylesheet and check how many times they're used on each URL.
The speed of the test is dependant on your internet connection, page requests are queued and executed in parallel with a maximum of 10 pages being requested at a time.
Limitations
The selectors are checked using PhantomJS which means it won't give you information on selectors that aren't understood by WebKit.
The selectors are tested on page load, so any CSS selectors that are used following user interaction (i.e. JavaScript) will report as having 0 uses.
Example output
CSS Audit outputs a HTML report and a JSON file. For example
How to use
Options
stylesheets
- Required Array - stylesheets you want to auditsitemaps
- Required Array - sitemaps to gather URLs fromurls
- Optional Array - URLs you want in addition to sitemap URLsoutput
- Optional String (default: './output') - path to the directory to output the reportfilename
- Optional String (default: 'cssaudit') - name of the report filestemplate
- Optional String - path to a custom mustache templatequeueSize
- Optional Integer (default: 10) - Amount of PhantomJS instances to run in parallelsampleRun
- Optional Bool (default: false) - When true it will run the audit on 5 URLs
var cssaudit = require('cssaudit'),
myaudit;
myaudit = cssaudit.init({
'urls': ['http://www.david-lewis.com'],
'stylesheets': ['http://www.david-lewis.com/wp-content/themes/davidlewis/style.css'],
'sitemaps': ['http://www.david-lewis.com/sitemap-posttype-post.xml'],
'output': './output/david-lewis',
'filename': 'myreport'
});
myaudit.run().done(function () {
console.log('done');
}, function (err) {
console.log(err);
});