Package Exports
- purify-css
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (purify-css) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
PurifyCSS
- Detects which CSS selectors your app is using and creates a file without the unused CSS.
Able to also detect dynamically-loaded CSS selectors in your javascript.
PurifyCSS has been designed from the beginning with single-page apps in mind.
This is in addition to working with static page apps.
Potential reduction
- Bootstrap file: ~140k characters.
- Average Bootstrap usage: ~40% (at most)
- Minified Bootstrap: ~117k characters.
- Purified + Minified Bootstrap: ~27k characters
Install
npm install purify-css
#Able to detect
- Anytime your class name is intact in your code.
Example for the class button-active
<!-- html -->
<!-- class directly on element -->
<div class="button-active">click</div>
// javascript
// this example is jquery, but anytime your class name
// is together in your javascript, it will work
$(button).addClass('button-active');
- Dynamically created classes
Example for the class button-active
// can detect even if class is split
var half = 'button-';
$(button).addClass(half + 'active');
// can detect even if class is joined
var dynamicClass = ['button', 'active'].join('-');
$(button).addClass(dynamicClass);
- All javascript frameworks
Example for the class angular-button
<!-- angular template -->
<div ng-class="'angular' + '-button'"></div>
Example for the class commentBox
// react component
var CommentBox = React.createClass({
render: function() {
return (
<div className="commentBox">
Hello, world! I am a CommentBox.
</div>
);
}
});
React.render(
<CommentBox />,
document.getElementById('content')
);
PurifyCSS works with all Javascript frameworks.
API
var purify = require('purify-css');
purify(content, css, options, callback);
content
Type: Array
or String
Array
of filepaths to the files you want to search through for used classes (HTML, Javascripts, Templates, anything that relates to CSS classes)
String
of content you want us to look for used classes.
css
Type: Array
or String
Array
of filepaths to the css files you want us to filter.
String
of css you want us to filter.
##options (optional)
Type: Object
Properties of options object:
minify:
Set totrue
to minify. Default:false
output:
Filepath to write purified css to. Returns raw string iffalse
. Default:false
info:
Logs info on how much css was removed iftrue
. Default:false
##callback (optional)
Type: Function
Example
purify(content, css, options, function(output){
console.log(output, ' is the result of purify');
});
Example without options
purify(content, css, function(output){
console.log('callback without options');
});