Socket
Socket
Sign inDemoInstall

clean-css

Package Overview
Dependencies
2
Maintainers
1
Versions
211
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    clean-css

A well-tested CSS minifier


Version published
Maintainers
1
Install size
772 kB
Created

Package description

What is clean-css?

clean-css is a fast and efficient CSS optimizer for Node.js and the web. It minifies CSS by removing whitespace, comments, and unnecessary characters, merging identical rules, and applying other optimization techniques. It can be used to reduce the size of CSS files, which can lead to faster page load times and improved performance.

What are clean-css's main functionalities?

Minification

This feature allows you to minify CSS by removing unnecessary characters and whitespace, which results in smaller file sizes.

const CleanCSS = require('clean-css');
new CleanCSS().minify('a { font-weight: bold; }', function (error, output) {
  console.log(output.styles);
});

Source Map Generation

clean-css can generate source maps for the minified CSS, which is useful for debugging minified code in the browser.

const CleanCSS = require('clean-css');
new CleanCSS({ sourceMap: true, sourceMapInlineSources: true }).minify({ 'styles.css': { styles: 'a { color: #000 }' } }, function (error, output) {
  console.log(output.sourceMap.toString());
});

Merging of Identical CSS Rules

This feature merges identical CSS rules into one to reduce file size and redundancy in the code.

const CleanCSS = require('clean-css');
new CleanCSS().minify('a { color: red; } a { color: red; }', function (error, output) {
  console.log(output.styles);
});

Optimizing CSS Properties

clean-css can optimize CSS properties, such as converting hex color codes to shorter names when possible.

const CleanCSS = require('clean-css');
new CleanCSS().minify('a { color: #FF0000; }', function (error, output) {
  console.log(output.styles);
});

Other packages similar to clean-css

Readme

Source

build status

What is clean-css?

Clean-css is a node.js library for minifying CSS files. It does the same job as YUI Compressor's CSS minifier, but much faster thanks to many speed optimizations and node.js' V8 engine.

Usage

What are the requirements?

node 0.6.0+ on UN*X (fully tested on OS X 10.6+ and CentOS)
node 0.8.0+ on Windows

How to install clean-css?

npm install clean-css

How to use clean-css CLI?

Clean-css accepts the following command line arguments (please make sure you use <source-file> as the very last argument to avoid potential issues):

cleancss [options] <source-file>
  • -h, --help output usage information
  • -v, --version output the version number
  • -e, --remove-empty Remove empty declarations (e.g. a{})
  • -b, --keep-line-breaks Keep line breaks
  • --s0 Remove all special comments (i.e. /*! special comment */)
  • --s1 Remove all special comments but the first one
  • -o, --output [output-file] Use [output-file] as output instead of stdout
Examples:

To minify a public.css file into public-min.css do:

cleancss -o public-min.css public.css

To minify the same public.css into the standard output skip the -o parameter:

cleancss public.css

More likely you would like to concatenate a couple of files. If you are on a Unix-like system:

cat one.css two.css three.css | cleancss -o merged-and-minified.css

On Windows:

type one.css two.css three.css | cleancss -o merged-and-minified.css

Or even gzip the result at once:

cat one.css two.css three.css | cleancss | gzip -9 -c > merged-minified-and-gzipped.css.gz

How to use clean-css programmatically?

var cleanCSS = require('clean-css');
var source = "a{font-weight:bold;}";
var minimized = cleanCSS.process(source);

Process method accepts a hash as a second parameter, i.e., cleanCSS.process(source, options) with the following options available:

  • keepSpecialComments - * for keeping all (default), 1 for keeping first one, 0 for removing all
  • keepBreaks - whether to keep line breaks (default is false)
  • removeEmpty - whether to remove empty elements (default is false)
  • debug - turns on debug mode measuring time spent on cleaning up (run npm run bench to see example)

What are the clean-css' dev commands?

First clone the source, then run:

  • npm run bench for clean-css benchmarks (see test/bench.js for details)
  • npm run check to check JS sources with JSHint
  • npm test for the test suite

How do you preserve a comment block?

Use the /*! notation instead of the standard one /*:

/*!
  Important comments included in minified output.
*/

Acknowledgments

  • Vincent Voyer (@vvo) for a patch with better empty element regex and for inspiring us to do many performance improvements in 0.4 release.
  • Isaac (@facelessuser) for pointing out a flaw in clean-css' stateless mode.
  • Jan Michael Alonzo (@jmalonzo) for a patch removing node's old 'sys' package.
  • @XhmikosR for suggesting new features (option to remove special comments and strip out URLs quotation) and pointing out numerous improvements (JSHint, media queries).

License

Clean-css is released under the MIT License.

Keywords

FAQs

Last updated on 19 Mar 2013

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc