Port of YUI CSS Compressor from Java to NodeJS
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
tests-url Add specific tests for url conversions Oct 19, 2016
tests-yui Don't lose zero on flex Mar 3, 2018
.npmignore Add .npmignore Mar 3, 2018
LICENSE Add license file Aug 4, 2015
README.md Typo Jan 18, 2017
index.js Remove semicolons Feb 24, 2018
package.json version 0.0.29 Mar 21, 2018
tests-url.sh Make script more readable Feb 24, 2018
tests-yui.js Remove semicolons Feb 24, 2018
uglifycss version 0.0.29 Mar 21, 2018


UglifyCSS is a port of YUI Compressor to NodeJS for its CSS part. Its name is a reference to the awesome UglifyJS but UglifyCSS is not a CSS parser. Like YUI CSS Compressor, it applies many regexp replacements. Note that a port to JavaScript is also available in the YUI Compressor repository.

UglifyCSS passes successfully the test suite of YUI compressor CSS.

Be sure to submit valid CSS to UglifyCSS or you could get weird results.


For a command line usage:

$ npm install uglifycss -g

For API usage:

$ npm install uglifycss

From Github:

$ git clone git://github.com/fmarcia/UglifyCSS.git

Command line

$ uglifycss [options] [filename] [...] > output


  • --max-line-len n adds a newline (approx.) every n characters; 0 means no newline and is the default value
  • --expand-vars expands variables; by default, @variables blocks are preserved and var(x)s are not expanded
  • --ugly-comments removes newlines within preserved comments; by default, newlines are preserved
  • --cute-comments preserves newlines within and around preserved comments
  • --convert-urls d converts relative urls using the d directory as location target
  • --debug prints full error stack on error
  • --output f puts the result in f file

If no file name is specified, input is read from stdin.


2 functions are provided:

  • processString( content, options ) to process a given string
  • processFiles( [ filename1, ... ], options ) to process the concatenation of given files

Options are identical to the command line:

  • <int> maxLineLen for --max-line-len n
  • <bool> expandVars for --expand-vars
  • <bool> uglyComments for --ugly-comments
  • <bool> cuteComments for --cute-comments
  • <string> convertUrls for --convert-urls d
  • <bool> debug for --debug

Both functions return uglified css.


var uglifycss = require('uglifycss');

var uglified = uglifycss.processFiles(
    [ 'file1', 'file2' ],
    { maxLineLen: 500, expandVars: true }



UglifyCSS is MIT licensed.