node package manager
We need your input. Help make JavaScript better: Take the 2017 JavaScript Ecosystem survey »

tidify

Tidify Build Status

Tidify is a fast and simple formatter for CSS and SCSS code.

Tidify can format following code:

  • Vanilla CSS
  • SCSS syntax of Sass

and Tidify is 3 to 4 times faster than Stylefmt.

Tidify'd code is:

  • easier to write : never worry about minor formatting concerns while hacking away.
  • easier to read : when all code looks the same you need not mentally convert others' formatting style into something you can understand.
  • easier to maintain : mechanical changes to the source don't cause unrelated changes to the file's formatting; diffs show only the real changes.
  • uncontroversial : never have a debate about spacing or brace position ever again!

Installation

via npm:

$ npm install tidify

via yarn:

$ yarn add --dev tidify

Usage

in Command Line

If you install Tidify global, you can use it easily in CLI.

$ npm install -g tidify

Simple usage:

$ tidify input.css output.css

--watch

Watch one file:

$ tidify --watch input.css

Watch multiple files by glob:

$ tidify --watch 'app/assets/stylesheets/**/*.scss'

with --ignore option:

$ tidify --watch 'app/assets/stylesheets/**/*.scss' --ignore app/assets/stylesheets/ignore.css

also can use specify multiple files by glob:

$ tidify --watch 'app/assets/stylesheets/**/*.scss' --ignore 'app/assets/stylesheets/ignore/**/*'

--recursive

Format multiple files by glob:

$ tidify --recursive 'app/assets/stylesheets/**/*.scss'

--diff

Show diff (don't change code):

$ tidify input.css --diff

--help

CLI help:

$ tidify --help
Usage: tidify [options] input-name [output-name]
 
Options:
 
  -w, --watch            Watch directories or files
  -d, --diff             Output diff against original file
  -r, --recursive        Format list of space seperated files(globs) in place
  -v, --version          Output the version number
  -h, --help             Output usage information
  --stdin-filename       A filename to assign stdin input.

Use stdin as inputs

Tidify can also read a file from stdin if there are no input-file as argument in CLI.

$ cat input.css | tidify --stdin-filename input.css

Node.js

const fs = require('fs')
const tidify = require('tidify')
 
const css = fs.readFileSync('example.css', 'utf-8')
const formatted = tidify(css)

PostCSS plugin

const fs = require('fs')
const tidify = require('tidify')
 
const css = fs.readFileSync('example.css', 'utf-8')
postcss([tidify.plugin()])
  .process(css, {syntax: scss})
  .then(result => {
    const formatted = result.css
  })

Examples

See tests.

License

The MIT License (MIT)

Copyright (c) 2017 Masaaki Morishita