node package manager
Easy collaboration. Discover, share, and reuse code in your team. Create a free org »

css2stylus

css2stylus.js NPM version

JavaScript utility to convert CSS into Stylus.

Node/Browser compatible.

Demo

Try it online css2stylus.com

Usage

Node

Install the module

$ npm install -g css2stylus
$ css2stylus
 
Usage: css2stylus [options] <file1.css> <file2.css>
 
Supports bash-style piping from stdin to stdout, e.g. `cat myFile.css | css2stylus` outputs myFile.css as stylus. Useful for integrating into an editor of choice.
 
Examples:
  css2stylus -u -i 4 file1.css         Use 4 space ndent and convert file1.css while unprefixing
  css2stylus -c file1.css file2.css    Preserve CSS syntax while converting multiple files
  css2stylus file1.css -o styl         Save processed files files into the `styl` directoy
 
 
Options:
  -u, --unPrefix     Un-prefix any property with vendor prefixes
  -c, --cssSyntax    Keep CSS syntax punctuation
  -f, --force        Overwrite existing .styl files
  -i, --indent       Set indentation level
  -o, --out          Specify an output directory
  -:, --keep-colons  Keep colons: in rules

Convert any css file:

$ css2stylus myfile.css

The output will be saved to myfile.styl.

The binary is also capable of piping from stdin, stdout. This is useful for integrating the binary with Vim or another editor of your choice.

Bash pipe

Supports bash-style piping from stdin to stdout. Useful for integrating into an editor of choice.

$ cat myFile.css | css2stylus

Vim mapping

To convert the selected CSS to stylus inside vim use the following mapping:

" CSS2Stylus
:vnoremap <leader>cs :!css2stylus -u<cr><esc>

Browser

<!doctype html>
  <title>Demo</title>
  <script src="css2stylus.js"></script> 
  <script>
  (function () {
    var css = 'body { color: red; }';
    var converter = new Css2Stylus.Converter(css);
    converter.processCss();
    // output 
    var stylus_output = converter.getStylus();
    // body 
    //   color red 
  }());
  </script> 

Keep CSS syntax

To keep CSS punctuation {:;} just pass --cssSyntax option from command line.

Or pass options object when processing a CSS file from JavaScript converter.processCss({ cssSyntax: true });

nib support

Unprefix any CSS snippet with vendor prefixes by passing --unPrefix option from command line.

Or pass an options object when processing a CSS file from JavaScript converter.processCss({ unPrefix: true });

Development

To contribute, clone the repo, create a new branch and submit a PR.

Run tests

$ npm t

License

See LICENSE.txt