1.0.7 • Published 7 years ago
scssfmt v1.0.7
Standard SCSS code formatter
Installation
$ npm install scssfmtInstall to global (If you install scssfmt global, you can use it easily in CLI):
$ npm install -g scssfmtUsage
in Command Line
Simple usage:
$ scssfmt input.css output.css--watch
Watch one file:
$ scssfmt --watch input.cssWatch multiple files by glob:
$ scssfmt --watch 'app/assets/stylesheets/**/*.scss'with --ignore option:
$ scssfmt --watch 'app/assets/stylesheets/**/*.scss' --ignore app/assets/stylesheets/ignore.cssalso 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 --helpUsage: 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.cssNode.js
const fs = require('fs')
const scssfmt = require('scssfmt')
const css = fs.readFileSync('example.css', 'utf-8')
const formatted = scssfmt(css)PostCSS plugin
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
})Rules for formatting
- 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 - 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
!important - require 1 space between
@mixinand mixin name - require 1 space between mixin name and
( - require 1 space between
@extendand base rules - require 1 space between
@includeand mixin name - disallow any spaces between
$variableand: - require 1 space between
:and name of variable - Do not format any spaces before
@else
Examples
See tests.
License
The MIT License (MIT)
Copyright (c) 2017 Masaaki Morishita