Standard SCSS code formatter
npm install scssfmt> Standard SCSS code formatter
alt="Dependency Status">
alt="License">
```
$ npm install scssfmt
Install to global (If you install scssfmt global, you can use it easily in CLI):
``
$ npm install -g scssfmt
Simple usage:
``
$ scssfmt input.css output.css
#### --watch
Watch one file:
``
$ scssfmt --watch input.css
Watch multiple files by glob:
``
$ scssfmt --watch 'app/assets/stylesheets/*/.scss'
with --ignore option:
``
$ scssfmt --watch 'app/assets/stylesheets/*/.scss' --ignore app/assets/stylesheets/ignore.css
also can use specify multiple files by glob:
``
$ scssfmt --watch 'app/assets/stylesheets//.scss' --ignore 'app/assets/stylesheets/ignore//'
#### --recursive
Format multiple files by glob:
``
$ scssfmt --recursive 'app/assets/stylesheets/*/.scss'
#### --diff
Show diff (don't change code):
``
$ scssfmt input.css --diff
#### --help
CLI help:
``
$ scssfmt --help
`
Usage: scssfmt [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
scssfmt can also read a file from stdin if there are no input-file as argument in CLI.
``
$ cat input.css | scssfmt --stdin-filename input.css
`js
const fs = require('fs')
const scssfmt = require('scssfmt')
const css = fs.readFileSync('example.css', 'utf-8')
const formatted = scssfmt(css)
`
`js
const fs = require('fs')
const scssfmt = require('scssfmt')
const css = fs.readFileSync('example.css', 'utf-8')
postcss([scssfmt.plugin()])
.process(css, {syntax: scss})
.then(result => {
const formatted = result.css
})
`
- 2 spaces indentation
- require 1 space between a simple selector and combinator
- require new line between selectors
- require 1 space between selectors and {{
- require new line after :
- disallow any spaces between property and :
- require 1 space between and values;
- require a new line after declarations at least
- require in last declaration!important
- require 1 space between values and !important
- Do not format any spaces between rules
- Do not format any spaces between a rule and a comment
- require 1 space between a value and @mixin
- require 1 space between and mixin name(
- require 1 space between mixin name and @extend
- require 1 space between and base rules@include
- require 1 space between and mixin name$variable
- disallow any spaces between and ::
- require 1 space between and name of variable@else`
- Do not format any spaces before
See tests.
The MIT License (MIT)
Copyright (c) 2017 Masaaki Morishita