pleeease 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +22 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +23 -0
- data/Rakefile +1 -0
- data/lib/pleeease.rb +9 -0
- data/lib/pleeease/processor.rb +13 -0
- data/lib/pleeease/railtie.rb +10 -0
- data/lib/pleeease/runner.rb +70 -0
- data/lib/pleeease/version.rb +3 -0
- data/node_modules/.bin/pleeease +13 -0
- data/node_modules/.bin/pleeease-compile +20 -0
- data/node_modules/.bin/pleeease-watch +20 -0
- data/node_modules/pleeease/.jshintignore +1 -0
- data/node_modules/pleeease/.jshintrc +28 -0
- data/node_modules/pleeease/.npmignore +2 -0
- data/node_modules/pleeease/README.md +288 -0
- data/node_modules/pleeease/app.min.css.map +1 -0
- data/node_modules/pleeease/bin/pleeease +13 -0
- data/node_modules/pleeease/bin/pleeease-compile +20 -0
- data/node_modules/pleeease/bin/pleeease-watch +20 -0
- data/node_modules/pleeease/jshint.sh +2 -0
- data/node_modules/pleeease/lib/cli.js +136 -0
- data/node_modules/pleeease/lib/index.js +97 -0
- data/node_modules/pleeease/lib/options.js +38 -0
- data/node_modules/pleeease/lib/processors/import.js +123 -0
- data/node_modules/pleeease/lib/processors/pseudoElements.js +24 -0
- data/node_modules/pleeease/node_modules/.bin/autoprefixer +13 -0
- data/node_modules/pleeease/node_modules/.bin/csswring +3 -0
- data/node_modules/pleeease/node_modules/.bin/mkdirp +33 -0
- data/node_modules/pleeease/node_modules/autoprefixer/ChangeLog.md +354 -0
- data/node_modules/pleeease/node_modules/autoprefixer/LICENSE +20 -0
- data/node_modules/pleeease/node_modules/autoprefixer/README.md +565 -0
- data/node_modules/pleeease/node_modules/autoprefixer/bin/autoprefixer +13 -0
- data/node_modules/pleeease/node_modules/autoprefixer/data/browsers.js +53 -0
- data/node_modules/pleeease/node_modules/autoprefixer/data/prefixes.js +323 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/autoprefixer.js +109 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/binary.js +344 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/browsers.js +197 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/declaration.js +152 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/align-content.js +57 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/align-items.js +57 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/align-self.js +55 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/border-image.js +28 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/border-radius.js +56 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/break-inside.js +54 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/display-flex.js +67 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/fill-available.js +41 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/filter.js +29 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/flex-basis.js +47 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/flex-direction.js +71 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/flex-flow.js +35 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/flex-grow.js +41 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/flex-shrink.js +47 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/flex-spec.js +11 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/flex-wrap.js +33 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/flex.js +56 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/fullscreen.js +33 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/gradient.js +217 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/justify-content.js +62 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/order.js +52 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/placeholder.js +39 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/transform-decl.js +59 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/transform-value.js +31 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/hacks/transition.js +37 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/info.js +114 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/keyframes.js +40 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/old-selector.js +68 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/old-value.js +29 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/prefixer.js +88 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/prefixes.js +334 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/processor.js +105 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/selector.js +117 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/updater.js +234 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/utils.js +41 -0
- data/node_modules/pleeease/node_modules/autoprefixer/lib/value.js +99 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/.npmignore +2 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/CHANGELOG.md +126 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/LICENSE +15 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/README.md +371 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/lib/copy.js +79 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/lib/create.js +55 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/lib/ensure.js +4 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/lib/index.js +137 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/lib/json.js +30 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/lib/mkdir.js +8 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/lib/move.js +108 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/lib/output.js +37 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/lib/remove.js +19 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/.bin/mkdirp +33 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/.bin/ncp +48 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/.bin/rimraf +33 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/jsonfile/.npmignore +2 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/jsonfile/CHANGELOG.md +20 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/jsonfile/LICENSE +15 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/jsonfile/README.md +121 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/jsonfile/lib/jsonfile.js +47 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/jsonfile/package.json +44 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/.npmignore +2 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/.travis.yml +5 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/LICENSE +21 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/bin/cmd.js +33 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/bin/usage.txt +12 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/examples/pow.js +6 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/index.js +97 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/.travis.yml +4 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/LICENSE +18 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/example/parse.js +2 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/index.js +187 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/package.json +52 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/readme.markdown +73 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/test/dash.js +24 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/test/default_bool.js +20 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/test/dotted.js +16 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/test/long.js +31 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/test/parse.js +318 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js +9 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/test/short.js +67 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/node_modules/minimist/test/whitespace.js +8 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/package.json +43 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/readme.markdown +100 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/chmod.js +38 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/clobber.js +37 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/mkdirp.js +26 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/opts_fs.js +27 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/opts_fs_sync.js +25 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/perm.js +30 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/perm_sync.js +34 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/race.js +40 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/rel.js +30 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/return.js +25 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/return_sync.js +24 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/root.js +18 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/sync.js +30 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/umask.js +26 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/mkdirp/test/umask_sync.js +30 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/.npmignore +4 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/.travis.yml +6 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/LICENSE.md +21 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/README.md +58 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/bin/ncp +48 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/lib/ncp.js +230 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/package.json +43 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/test/fixtures/src/a +1 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/test/fixtures/src/b +1 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/test/fixtures/src/c +0 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/test/fixtures/src/d +0 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/test/fixtures/src/e +0 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/test/fixtures/src/f +0 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/test/fixtures/src/sub/a +1 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/test/fixtures/src/sub/b +0 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/ncp/test/ncp.js +86 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/AUTHORS +6 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/LICENSE +23 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/README.md +30 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/bin.js +33 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/package.json +58 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/rimraf.js +248 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/test/run.sh +16 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/test/setup.sh +47 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/test/test-async.js +5 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/node_modules/rimraf/test/test-sync.js +3 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/fs-extra/package.json +68 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/ChangeLog.md +46 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/LICENSE +20 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/README.md +784 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/at-rule.js +94 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/comment.js +38 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/container.js +315 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/declaration.js +69 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/lazy.js +18 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/list.js +64 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/map-generator.js +242 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/node.js +189 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/parse.js +496 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/postcss.js +78 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/raw.js +32 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/result.js +26 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/root.js +57 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/rule.js +59 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/syntax-error.js +27 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/lib/vendor.js +27 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/base64-js/.travis.yml +5 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/base64-js/LICENSE.MIT +21 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/base64-js/README.md +31 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/base64-js/bench/bench.js +19 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/base64-js/lib/b64.js +120 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/base64-js/package.json +47 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/base64-js/test/convert.js +51 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/.npmignore +2 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/.tern-port +1 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/.travis.yml +4 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/CHANGELOG.md +137 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/LICENSE +28 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/Makefile.dryice.js +166 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/README.md +446 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/build/assert-shim.js +56 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/build/mini-require.js +152 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/build/prefix-source-map.jsm +20 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/build/prefix-utils.jsm +18 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/build/suffix-browser.js +8 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/build/suffix-source-map.jsm +6 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/build/suffix-utils.jsm +21 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/build/test-prefix.js +8 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/build/test-suffix.js +3 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/lib/source-map.js +8 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/lib/source-map/array-set.js +97 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/lib/source-map/base64.js +42 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/lib/source-map/binary-search.js +81 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/lib/source-map/source-map-consumer.js +478 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/lib/source-map/source-map-generator.js +400 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/lib/source-map/source-node.js +400 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/lib/source-map/util.js +302 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/node_modules/amdefine/README.md +171 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/node_modules/amdefine/intercept.js +36 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/node_modules/amdefine/package.json +39 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/package.json +132 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/run-tests.js +62 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/test-api.js +26 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/test-array-set.js +104 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/test-base64.js +35 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/test-dog-fooding.js +84 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/test-source-map-consumer.js +475 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/test-source-map-generator.js +549 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/test-source-node.js +487 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/test-util.js +127 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/node_modules/source-map/test/source-map/util.js +161 -0
- data/node_modules/pleeease/node_modules/autoprefixer/node_modules/postcss/package.json +46 -0
- data/node_modules/pleeease/node_modules/autoprefixer/package.json +49 -0
- data/node_modules/pleeease/node_modules/autoprefixer/updaters/browsers.js +65 -0
- data/node_modules/pleeease/node_modules/autoprefixer/updaters/prefixes.js +273 -0
- data/node_modules/pleeease/node_modules/chokidar/.npmignore +35 -0
- data/node_modules/pleeease/node_modules/chokidar/CHANGELOG.md +95 -0
- data/node_modules/pleeease/node_modules/chokidar/README.md +121 -0
- data/node_modules/pleeease/node_modules/chokidar/example.js +3 -0
- data/node_modules/pleeease/node_modules/chokidar/index.js +425 -0
- data/node_modules/pleeease/node_modules/chokidar/node_modules/recursive-readdir/README.md +22 -0
- data/node_modules/pleeease/node_modules/chokidar/node_modules/recursive-readdir/index.js +45 -0
- data/node_modules/pleeease/node_modules/chokidar/node_modules/recursive-readdir/package.json +39 -0
- data/node_modules/pleeease/node_modules/chokidar/node_modules/recursive-readdir/test/recursive-raddir-test.js +17 -0
- data/node_modules/pleeease/node_modules/chokidar/node_modules/recursive-readdir/test/testdir/a/a +0 -0
- data/node_modules/pleeease/node_modules/chokidar/node_modules/recursive-readdir/test/testdir/a/beans +0 -0
- data/node_modules/pleeease/node_modules/chokidar/node_modules/recursive-readdir/test/testdir/b/123 +0 -0
- data/node_modules/pleeease/node_modules/chokidar/node_modules/recursive-readdir/test/testdir/b/b/hurp-durp +0 -0
- data/node_modules/pleeease/node_modules/chokidar/node_modules/recursive-readdir/test/testdir/c.txt +0 -0
- data/node_modules/pleeease/node_modules/chokidar/node_modules/recursive-readdir/test/testdir/d.txt +0 -0
- data/node_modules/pleeease/node_modules/chokidar/package.json +55 -0
- data/node_modules/pleeease/node_modules/chokidar/test.js +296 -0
- data/node_modules/pleeease/node_modules/colors/MIT-LICENSE.txt +22 -0
- data/node_modules/pleeease/node_modules/colors/ReadMe.md +77 -0
- data/node_modules/pleeease/node_modules/colors/colors.js +342 -0
- data/node_modules/pleeease/node_modules/colors/example.html +76 -0
- data/node_modules/pleeease/node_modules/colors/example.js +77 -0
- data/node_modules/pleeease/node_modules/colors/package.json +29 -0
- data/node_modules/pleeease/node_modules/colors/test.js +70 -0
- data/node_modules/pleeease/node_modules/colors/themes/winston-dark.js +12 -0
- data/node_modules/pleeease/node_modules/colors/themes/winston-light.js +12 -0
- data/node_modules/pleeease/node_modules/commander/Readme.md +208 -0
- data/node_modules/pleeease/node_modules/commander/index.js +852 -0
- data/node_modules/pleeease/node_modules/commander/package.json +43 -0
- data/node_modules/pleeease/node_modules/css-mqpacker/.npmignore +3 -0
- data/node_modules/pleeease/node_modules/css-mqpacker/.sass-cache/ca3e061f00144e273a11e95ed4eb3170f1f7a328/maps-input.scssc +0 -0
- data/node_modules/pleeease/node_modules/css-mqpacker/.sass-cache/ca3e061f00144e273a11e95ed4eb3170f1f7a328/sourcemap-expected.scssc +0 -0
- data/node_modules/pleeease/node_modules/css-mqpacker/README.md +141 -0
- data/node_modules/pleeease/node_modules/css-mqpacker/index.js +1 -0
- data/node_modules/pleeease/node_modules/css-mqpacker/lib/css-mqpacker.js +43 -0
- data/node_modules/pleeease/node_modules/css-mqpacker/package.json +43 -0
- data/node_modules/pleeease/node_modules/css-mqpacker/test/css-mqpacker_test.js +64 -0
- data/node_modules/pleeease/node_modules/css-mqpacker/test/expected/multi.css +31 -0
- data/node_modules/pleeease/node_modules/css-mqpacker/test/expected/query-order.css +17 -0
- data/node_modules/pleeease/node_modules/css-mqpacker/test/expected/simple.css +37 -0
- data/node_modules/pleeease/node_modules/css-mqpacker/test/fixtures/multi.css +37 -0
- data/node_modules/pleeease/node_modules/css-mqpacker/test/fixtures/query-order.css +19 -0
- data/node_modules/pleeease/node_modules/css-mqpacker/test/fixtures/simple.css +41 -0
- data/node_modules/pleeease/node_modules/csswring/.npmignore +3 -0
- data/node_modules/pleeease/node_modules/csswring/README.md +55 -0
- data/node_modules/pleeease/node_modules/csswring/bin/csswring +3 -0
- data/node_modules/pleeease/node_modules/csswring/index.js +1 -0
- data/node_modules/pleeease/node_modules/csswring/lib/cli.js +93 -0
- data/node_modules/pleeease/node_modules/csswring/lib/csswring.js +110 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/.travis.yml +4 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/LICENSE +18 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/example/parse.js +2 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/index.js +187 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/package.json +52 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/readme.markdown +73 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/test/dash.js +24 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/test/default_bool.js +20 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/test/dotted.js +16 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/test/long.js +31 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/test/parse.js +318 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/test/parse_modified.js +9 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/test/short.js +67 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/minimist/test/whitespace.js +8 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/.gitmodules +3 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/.npmignore +2 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/LICENSE +24 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/Makefile +45 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/README.md +313 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/bin/build.js +29 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/component.json +11 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/demo/demo.css +58 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/demo/demo.js +35 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/demo/index.html +54 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color-namedColors.js +150 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color.js +231 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/CMYK.js +31 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/HSL.js +30 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/HSV.js +94 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/LAB.js +33 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/XYZ.js +65 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/_all.js +25 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/_base.js +6 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/clearer.js +3 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/darken.js +5 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/desaturate.js +5 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/greyscale.js +9 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/lighten.js +5 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/mix.js +17 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/negate.js +4 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/opaquer.js +3 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/rotate.js +3 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/saturate.js +5 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/color/plugins/toAlpha.js +46 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/ender.js +5 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/lib/es5-shim.js +97 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/one-color-all-debug.js +754 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/one-color-all.js +1 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/one-color-debug.js +359 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/one-color-ieshim.js +1 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/one-color.js +1 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/package.json +66 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/README.markdown +5 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/boilerplate.html +55 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/classList.js +116 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/img/rainbow-wood.jpg +0 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/index.html +234 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/license.txt +21 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/logo.png +0 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/logo.svg +52 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/plugins/css-controls.js +40 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/plugins/css-edit.js +132 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/plugins/css-snippets.js +89 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/plugins/incrementable.js +94 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/slideshow.css +288 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/slideshow.js +471 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/talk.css +41 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/3rdparty/CSSS/theme.css +214 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/colorcat/css/colorcat.css +36 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/colorcat/css/demo.css +677 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/colorcat/images/transparent.gif +0 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/colorcat/js/colorcat.js +135 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/colorcat/js/one-color-debug.js +1137 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/1024px-HSV_color_solid_cylinder_alpha_lowgamma.png +0 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/ExtJS.png +0 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/HSL.png +0 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/HSV.png +0 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/Hsl-hsv_models_b.svg +450 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/Pixels.jpg +0 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/PullingHair.png +0 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/RGB.png +0 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/RGB_HSL_HSV_comparison.png +0 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/Space_Rainbow_desktop_background_pictures.jpg +0 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/blog.png +0 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/calendar.png +0 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/images/colorSpace.jpg +0 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/index.html +562 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/talk.css +137 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/slides/CPHJS-Oct2011/theme.css +247 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/test/color-test.js +178 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/test/conversion-test.js +46 -0
- data/node_modules/pleeease/node_modules/csswring/node_modules/onecolor/test/samples.js +147 -0
- data/node_modules/pleeease/node_modules/csswring/package.json +51 -0
- data/node_modules/pleeease/node_modules/csswring/test/csswring_test.js +67 -0
- data/node_modules/pleeease/node_modules/csswring/test/expected/empty-declarations.css +1 -0
- data/node_modules/pleeease/node_modules/csswring/test/expected/extra-semicolons.css +1 -0
- data/node_modules/pleeease/node_modules/csswring/test/expected/issue3.css +1 -0
- data/node_modules/pleeease/node_modules/csswring/test/expected/simple.css +3 -0
- data/node_modules/pleeease/node_modules/csswring/test/expected/single-charset.css +1 -0
- data/node_modules/pleeease/node_modules/csswring/test/expected/value.css +1 -0
- data/node_modules/pleeease/node_modules/csswring/test/fixtures/empty-declarations.css +12 -0
- data/node_modules/pleeease/node_modules/csswring/test/fixtures/extra-semicolons.css +4 -0
- data/node_modules/pleeease/node_modules/csswring/test/fixtures/issue3.css +3 -0
- data/node_modules/pleeease/node_modules/csswring/test/fixtures/simple.css +31 -0
- data/node_modules/pleeease/node_modules/csswring/test/fixtures/single-charset.css +13 -0
- data/node_modules/pleeease/node_modules/csswring/test/fixtures/value.css +14 -0
- data/node_modules/pleeease/node_modules/deep-extend/.npmignore +1 -0
- data/node_modules/pleeease/node_modules/deep-extend/LICENSE +20 -0
- data/node_modules/pleeease/node_modules/deep-extend/README.md +52 -0
- data/node_modules/pleeease/node_modules/deep-extend/index.js +87 -0
- data/node_modules/pleeease/node_modules/deep-extend/package.json +45 -0
- data/node_modules/pleeease/node_modules/deep-extend/test/index.spec.js +44 -0
- data/node_modules/pleeease/node_modules/deep-extend/test/mocha.opts +1 -0
- data/node_modules/pleeease/node_modules/mkdirp/.npmignore +2 -0
- data/node_modules/pleeease/node_modules/mkdirp/.travis.yml +5 -0
- data/node_modules/pleeease/node_modules/mkdirp/LICENSE +21 -0
- data/node_modules/pleeease/node_modules/mkdirp/bin/cmd.js +33 -0
- data/node_modules/pleeease/node_modules/mkdirp/bin/usage.txt +12 -0
- data/node_modules/pleeease/node_modules/mkdirp/examples/pow.js +6 -0
- data/node_modules/pleeease/node_modules/mkdirp/index.js +80 -0
- data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/.travis.yml +4 -0
- data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/LICENSE +18 -0
- data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/example/parse.js +2 -0
- data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/index.js +187 -0
- data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/package.json +52 -0
- data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/readme.markdown +73 -0
- data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/test/dash.js +24 -0
- data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/test/default_bool.js +20 -0
- data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/test/dotted.js +16 -0
- data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/test/long.js +31 -0
- data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/test/parse.js +318 -0
- data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js +9 -0
- data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/test/short.js +67 -0
- data/node_modules/pleeease/node_modules/mkdirp/node_modules/minimist/test/whitespace.js +8 -0
- data/node_modules/pleeease/node_modules/mkdirp/package.json +42 -0
- data/node_modules/pleeease/node_modules/mkdirp/readme.markdown +90 -0
- data/node_modules/pleeease/node_modules/mkdirp/test/chmod.js +38 -0
- data/node_modules/pleeease/node_modules/mkdirp/test/clobber.js +37 -0
- data/node_modules/pleeease/node_modules/mkdirp/test/mkdirp.js +28 -0
- data/node_modules/pleeease/node_modules/mkdirp/test/perm.js +32 -0
- data/node_modules/pleeease/node_modules/mkdirp/test/perm_sync.js +39 -0
- data/node_modules/pleeease/node_modules/mkdirp/test/race.js +41 -0
- data/node_modules/pleeease/node_modules/mkdirp/test/rel.js +32 -0
- data/node_modules/pleeease/node_modules/mkdirp/test/return.js +25 -0
- data/node_modules/pleeease/node_modules/mkdirp/test/return_sync.js +24 -0
- data/node_modules/pleeease/node_modules/mkdirp/test/root.js +18 -0
- data/node_modules/pleeease/node_modules/mkdirp/test/sync.js +32 -0
- data/node_modules/pleeease/node_modules/mkdirp/test/umask.js +28 -0
- data/node_modules/pleeease/node_modules/mkdirp/test/umask_sync.js +32 -0
- data/node_modules/pleeease/node_modules/multi-glob/.npmignore +2 -0
- data/node_modules/pleeease/node_modules/multi-glob/.travis.yml +3 -0
- data/node_modules/pleeease/node_modules/multi-glob/AUTHORS +2 -0
- data/node_modules/pleeease/node_modules/multi-glob/LICENSE +27 -0
- data/node_modules/pleeease/node_modules/multi-glob/Readme.rst +42 -0
- data/node_modules/pleeease/node_modules/multi-glob/autolint.js +20 -0
- data/node_modules/pleeease/node_modules/multi-glob/buster.js +6 -0
- data/node_modules/pleeease/node_modules/multi-glob/lib/multi-glob.js +39 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/async/.travis.yml +3 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/async/LICENSE +19 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/async/README.md +1646 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/async/component.json +11 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/async/lib/async.js +1123 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/async/package.json +45 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/.npmignore +2 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/.travis.yml +4 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/LICENSE +27 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/README.md +250 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/examples/g.js +9 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/examples/usr-local.js +9 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/glob.js +738 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/inherits/LICENSE +16 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/inherits/README.md +42 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/inherits/inherits.js +1 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/inherits/inherits_browser.js +23 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/inherits/package.json +33 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/inherits/test.js +25 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/.npmignore +1 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/LICENSE +23 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/README.md +218 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/minimatch.js +1061 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/.npmignore +1 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS +14 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/LICENSE +23 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/README.md +97 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js +252 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/package.json +33 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/basic.js +369 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/foreach.js +52 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js +50 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/sigmund/LICENSE +27 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/sigmund/README.md +53 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/sigmund/bench.js +283 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/sigmund/package.json +42 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/sigmund/sigmund.js +39 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/node_modules/sigmund/test/basic.js +24 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/package.json +42 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/test/basic.js +399 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/test/brace-expand.js +33 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/test/caching.js +14 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/test/defaults.js +274 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/minimatch/test/extglob-ending-with-state-char.js +8 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/once/LICENSE +27 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/once/README.md +51 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/once/once.js +20 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/once/package.json +42 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/node_modules/once/test/once.js +20 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/package.json +43 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/00-setup.js +176 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/bash-comparison.js +63 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/bash-results.json +354 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/cwd-test.js +55 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/empty-set.js +20 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/error-callback.js +20 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/globstar-match.js +19 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/mark.js +118 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/new-glob-optional-options.js +10 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/nocase-nomagic.js +124 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/pause-resume.js +73 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/readme-issue.js +36 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/root-nomount.js +39 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/root.js +46 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/stat.js +32 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/glob/test/zz-cleanup.js +11 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/lodash/LICENSE.txt +22 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/lodash/README.md +163 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/lodash/dist/lodash.compat.js +7157 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/lodash/dist/lodash.compat.min.js +61 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/lodash/dist/lodash.js +6785 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/lodash/dist/lodash.min.js +56 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/lodash/dist/lodash.underscore.js +4979 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/lodash/dist/lodash.underscore.min.js +39 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/lodash/lodash.js +7179 -0
- data/node_modules/pleeease/node_modules/multi-glob/node_modules/lodash/package.json +102 -0
- data/node_modules/pleeease/node_modules/multi-glob/package.json +46 -0
- data/node_modules/pleeease/node_modules/multi-glob/test/multi-glob-test.js +113 -0
- data/node_modules/pleeease/node_modules/pixrem/.editorconfig +13 -0
- data/node_modules/pleeease/node_modules/pixrem/.gitattributes +1 -0
- data/node_modules/pleeease/node_modules/pixrem/.gitignore +2 -0
- data/node_modules/pleeease/node_modules/pixrem/.jshintrc +22 -0
- data/node_modules/pleeease/node_modules/pixrem/.travis.yml +4 -0
- data/node_modules/pleeease/node_modules/pixrem/LICENSE +22 -0
- data/node_modules/pleeease/node_modules/pixrem/README.md +108 -0
- data/node_modules/pleeease/node_modules/pixrem/lib/pixrem.js +73 -0
- data/node_modules/pleeease/node_modules/pixrem/package.json +50 -0
- data/node_modules/pleeease/node_modules/pixrem/spec/pixrem-spec.js +78 -0
- data/node_modules/pleeease/node_modules/postcss-vars/README.md +84 -0
- data/node_modules/pleeease/node_modules/postcss-vars/lib/index.js +91 -0
- data/node_modules/pleeease/node_modules/postcss-vars/package.json +18 -0
- data/node_modules/pleeease/node_modules/postcss/ChangeLog.md +42 -0
- data/node_modules/pleeease/node_modules/postcss/LICENSE +20 -0
- data/node_modules/pleeease/node_modules/postcss/README.md +732 -0
- data/node_modules/pleeease/node_modules/postcss/lib/at-rule.js +94 -0
- data/node_modules/pleeease/node_modules/postcss/lib/comment.js +38 -0
- data/node_modules/pleeease/node_modules/postcss/lib/container.js +315 -0
- data/node_modules/pleeease/node_modules/postcss/lib/declaration.js +69 -0
- data/node_modules/pleeease/node_modules/postcss/lib/lazy.js +18 -0
- data/node_modules/pleeease/node_modules/postcss/lib/list.js +64 -0
- data/node_modules/pleeease/node_modules/postcss/lib/map-generator.js +242 -0
- data/node_modules/pleeease/node_modules/postcss/lib/node.js +189 -0
- data/node_modules/pleeease/node_modules/postcss/lib/parse.js +496 -0
- data/node_modules/pleeease/node_modules/postcss/lib/postcss.js +76 -0
- data/node_modules/pleeease/node_modules/postcss/lib/raw.js +32 -0
- data/node_modules/pleeease/node_modules/postcss/lib/result.js +22 -0
- data/node_modules/pleeease/node_modules/postcss/lib/root.js +57 -0
- data/node_modules/pleeease/node_modules/postcss/lib/rule.js +59 -0
- data/node_modules/pleeease/node_modules/postcss/lib/syntax-error.js +27 -0
- data/node_modules/pleeease/node_modules/postcss/lib/vendor.js +27 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/base64-js/.travis.yml +5 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/base64-js/LICENSE.MIT +21 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/base64-js/README.md +31 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/base64-js/bench/bench.js +19 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/base64-js/lib/b64.js +120 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/base64-js/package.json +47 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/base64-js/test/convert.js +51 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/.npmignore +2 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/.tern-port +1 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/.travis.yml +4 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/CHANGELOG.md +137 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/LICENSE +28 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/Makefile.dryice.js +166 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/README.md +446 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/build/assert-shim.js +56 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/build/mini-require.js +152 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/build/prefix-source-map.jsm +20 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/build/prefix-utils.jsm +18 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/build/suffix-browser.js +8 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/build/suffix-source-map.jsm +6 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/build/suffix-utils.jsm +21 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/build/test-prefix.js +8 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/build/test-suffix.js +3 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/lib/source-map.js +8 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/lib/source-map/array-set.js +97 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/lib/source-map/base64.js +42 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/lib/source-map/binary-search.js +81 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/lib/source-map/source-map-consumer.js +478 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/lib/source-map/source-map-generator.js +400 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/lib/source-map/source-node.js +400 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/lib/source-map/util.js +302 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/node_modules/amdefine/README.md +171 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/node_modules/amdefine/intercept.js +36 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/node_modules/amdefine/package.json +38 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/package.json +132 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/run-tests.js +62 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/test-api.js +26 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/test-array-set.js +104 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/test-base64.js +35 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/test-dog-fooding.js +84 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/test-source-map-consumer.js +475 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/test-source-map-generator.js +549 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/test-source-node.js +487 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/test-util.js +127 -0
- data/node_modules/pleeease/node_modules/postcss/node_modules/source-map/test/source-map/util.js +161 -0
- data/node_modules/pleeease/node_modules/postcss/package.json +46 -0
- data/node_modules/pleeease/package.json +40 -0
- data/node_modules/pleeease/spec/pleeease-spec.js +112 -0
- data/node_modules/pleeease/spec/prefixes.css +1 -0
- data/node_modules/pleeease/test/.pleeeaserc +7 -0
- data/node_modules/pleeease/test/app.min.css +42 -0
- data/node_modules/pleeease/test/bar.css +11 -0
- data/node_modules/pleeease/test/foo.css +25 -0
- data/node_modules/pleeease/test/import/imported.css +3 -0
- data/package.json +11 -0
- data/pleeease.gemspec +23 -0
- metadata +685 -0
@@ -0,0 +1,50 @@
|
|
1
|
+
{
|
2
|
+
"name": "pixrem",
|
3
|
+
"description": "A CSS post-processor that generates pixel fallbacks for rem units.",
|
4
|
+
"version": "0.1.4",
|
5
|
+
"homepage": "https://github.com/robwierzbowski/node-pixrem",
|
6
|
+
"author": {
|
7
|
+
"name": "Rob Wierzbowski",
|
8
|
+
"email": "hello@robwierzbowski.com",
|
9
|
+
"url": "http://robwierzbowski.com"
|
10
|
+
},
|
11
|
+
"repository": {
|
12
|
+
"type": "git",
|
13
|
+
"url": "git://github.com/robwierzbowski/node-pixrem.git"
|
14
|
+
},
|
15
|
+
"bugs": {
|
16
|
+
"url": "https://github.com/robwierzbowski/node-pixrem/issues"
|
17
|
+
},
|
18
|
+
"licenses": [
|
19
|
+
{
|
20
|
+
"type": "BSD-new"
|
21
|
+
}
|
22
|
+
],
|
23
|
+
"main": "lib/pixrem.js",
|
24
|
+
"engines": {
|
25
|
+
"node": ">=0.10.0",
|
26
|
+
"npm": ">=1.2.10"
|
27
|
+
},
|
28
|
+
"scripts": {
|
29
|
+
"test": "jasmine-node spec"
|
30
|
+
},
|
31
|
+
"dependencies": {
|
32
|
+
"postcss": "~0.3.0"
|
33
|
+
},
|
34
|
+
"devDependencies": {
|
35
|
+
"jasmine-node": "~1.11.0"
|
36
|
+
},
|
37
|
+
"keywords": [
|
38
|
+
"css",
|
39
|
+
"parser",
|
40
|
+
"postproccessor",
|
41
|
+
"rem",
|
42
|
+
"responsive"
|
43
|
+
],
|
44
|
+
"readme": "# Pixrem\n\n[![Build Status](https://travis-ci.org/robwierzbowski/node-pixrem.png?branch=master)](https://travis-ci.org/robwierzbowski/node-pixrem)\n\nA CSS post-processor that generates pixel fallbacks for rem units. \nWritten with [PostCSS](https://github.com/ai/postcss). \nAdd it to your build process with [grunt-pixrem](https://github.com/robwierzbowski/grunt-pixrem). \n\n## Installation\n\n`npm install --save pixrem`\n\n## Usage\n\nPixrem is a CSS post-processor that, given CSS and a root em value, returns CSS with pixel unit fallbacks or replacements. Check the [browser data](http://caniuse.com/rem): if you want to use rem units and support < IE9, Opera Mini, or older Opera Mobile, this post-processor is for you.\n\n### Example\n\n```js\n'use strict';\nvar fs = require('fs');\nvar pixrem = require('pixrem');\nvar css = fs.readFileSync('main.css', 'utf8');\nvar processedCss = pixrem.process(css, '200%');\n\nfs.writeFile('main.with-fallbacks.css', processedCss, function (err) {\n if (err) {\n throw err;\n }\n console.log('IE8, you\\'re welcome.');\n});\n```\n\nPixrem takes this:\n\n```css\n.sky {\n margin: 2.5rem 2px 3em 100%;\n color: blue;\n}\n\n@media screen and (min-width: 20rem) {\n .leaf {\n margin-bottom: 1.333rem;\n font-size: 1.5rem;\n }\n}\n```\n\nAnd returns this:\n\n```css\n.sky {\n margin: 80px 2px 3em 100%;\n margin: 2.5rem 2px 3em 100%;\n color: blue;\n}\n\n@media screen and (min-width: 20rem) {\n .leaf {\n margin-bottom: 42px;\n margin-bottom: 1.333rem;\n font-size: 48px;\n font-size: 1.5rem;\n }\n}\n```\n\n### Parameters\n\n#### css\n\nType: `String` \n\nSome CSS to process.\n\n#### rootvalue\n\nType: `String | Null` \nDefault: `16px` \n\nThe root element font size. Can be px, rem, em, percent, or unitless pixel value.\n\n#### options\n\nType: `Object | Null` \nDefault: `{ replace: false }` \n\n- `replace` replaces rules containing rems instead of adding fallbacks.\n\n## Contribute\n\nReport bugs and feature proposals in the [Github issue tracker](https://github.com/robwierzbowski/node-pixrem/issues). Run tests with jasmine-node. In lieu of a formal styleguide, take care to maintain the existing coding style. \n\n## Release History\n\n0.1.4, March 6, 2014: Code optimization from AI. \n0.1.3, Dec 14, 2013: Fix regex for < 0 values. \n0.1.1, 0.1.2, Dec 14, 2013: Documentation improvements. \n0.1.0, Dec 14, 2013: Initial release. \n\n## License\n\n[MIT](http://en.wikipedia.org/wiki/MIT_License)\n\n\n[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/robwierzbowski/node-pixrem/trend.png)](https://bitdeli.com/free \"Bitdeli Badge\")\n\n",
|
45
|
+
"readmeFilename": "README.md",
|
46
|
+
"_id": "pixrem@0.1.4",
|
47
|
+
"_shasum": "d5a5fd72dcfe86301711372a602994fce442dd5e",
|
48
|
+
"_from": "https://github.com/iamvdo/node-pixrem/tarball/master",
|
49
|
+
"_resolved": "https://github.com/iamvdo/node-pixrem/tarball/master"
|
50
|
+
}
|
@@ -0,0 +1,78 @@
|
|
1
|
+
// Jasmine unit tests
|
2
|
+
// To run tests, run these commands from the project root:
|
3
|
+
// 1. `npm install -g jasmine-node`
|
4
|
+
// 2. `jasmine-node spec`
|
5
|
+
|
6
|
+
'use strict';
|
7
|
+
var fs = require('fs');
|
8
|
+
var pixrem = require('../lib/pixrem');
|
9
|
+
var css = '.rule { font-size: 2rem }';
|
10
|
+
|
11
|
+
console.log(pixrem);
|
12
|
+
|
13
|
+
describe('pixrem', function () {
|
14
|
+
|
15
|
+
it('should generate fallbacks using default settings', function () {
|
16
|
+
var expected = '.rule { font-size: 32px; font-size: 2rem }';
|
17
|
+
var processed = pixrem.process(css);
|
18
|
+
|
19
|
+
expect(processed).toBe(expected);
|
20
|
+
});
|
21
|
+
|
22
|
+
it('should generate fallbacks with a pixel root em value', function () {
|
23
|
+
var expected = '.rule { font-size: 40px; font-size: 2rem }';
|
24
|
+
var processed = pixrem.process(css, '20px');
|
25
|
+
|
26
|
+
expect(processed).toBe(expected);
|
27
|
+
});
|
28
|
+
|
29
|
+
it('should generate fallbacks with a em root em value', function () {
|
30
|
+
var expected = '.rule { font-size: 48px; font-size: 2rem }';
|
31
|
+
var processed = pixrem.process(css, '1.5em');
|
32
|
+
|
33
|
+
expect(processed).toBe(expected);
|
34
|
+
});
|
35
|
+
|
36
|
+
it('should generate fallbacks with a rem root em value', function () {
|
37
|
+
var expected = '.rule { font-size: 56px; font-size: 2rem }';
|
38
|
+
var processed = pixrem.process(css, '1.75rem');
|
39
|
+
|
40
|
+
expect(processed).toBe(expected);
|
41
|
+
});
|
42
|
+
|
43
|
+
it('should generate fallbacks with a percent root em value', function () {
|
44
|
+
var expected = '.rule { font-size: 48px; font-size: 2rem }';
|
45
|
+
var processed = pixrem.process(css, '150%');
|
46
|
+
|
47
|
+
expect(processed).toBe(expected);
|
48
|
+
});
|
49
|
+
|
50
|
+
it('should generate fallbacks with a unitless root em value', function () {
|
51
|
+
var expected = '.rule { font-size: 36px; font-size: 2rem }';
|
52
|
+
var processed = pixrem.process(css, '18');
|
53
|
+
|
54
|
+
expect(processed).toBe(expected);
|
55
|
+
});
|
56
|
+
|
57
|
+
it('should replace rules with fallbacks when option.replace is true', function () {
|
58
|
+
var expected = '.rule { font-size: 40px }';
|
59
|
+
var processed = pixrem.process(css, '20px', { replace: true });
|
60
|
+
|
61
|
+
expect(processed).toBe(expected);
|
62
|
+
});
|
63
|
+
|
64
|
+
it('should generate integer fallbacks, rounded down', function () {
|
65
|
+
var expected = '.rule { font-size: 49px; font-size: 2rem }';
|
66
|
+
var processed = pixrem.process(css, '155%');
|
67
|
+
|
68
|
+
expect(processed).toBe(expected);
|
69
|
+
});
|
70
|
+
|
71
|
+
it('should handle < 1 values and values without a leading 0', function () {
|
72
|
+
var css = '.rule { margin: 0.5rem .5rem 0rem -2rem }';
|
73
|
+
var expected = '.rule { margin: 8px 8px 0px -32px; margin: 0.5rem .5rem 0rem -2rem }';
|
74
|
+
var processed = pixrem.process(css);
|
75
|
+
|
76
|
+
expect(processed).toBe(expected);
|
77
|
+
});
|
78
|
+
});
|
@@ -0,0 +1,84 @@
|
|
1
|
+
postcss-vars
|
2
|
+
============
|
3
|
+
|
4
|
+
Add a "not so bad" CSS custom properties support to your CSS, using [PostCSS](https://github.com/ai/postcss). **This is not a polyfill**. Native custom properties are way more powerful, due to cascade and inheritance.
|
5
|
+
|
6
|
+
Largely inspired by [rework-vars](https://github.com/reworkcss/rework-vars).
|
7
|
+
|
8
|
+
##Install
|
9
|
+
|
10
|
+
```js
|
11
|
+
npm install postcss-vars
|
12
|
+
```
|
13
|
+
|
14
|
+
##Use
|
15
|
+
|
16
|
+
Only variables defined in `:root` (and not in media-queries) will be used. Let's take this css:
|
17
|
+
|
18
|
+
```css
|
19
|
+
:root {
|
20
|
+
--color-one: blue;
|
21
|
+
--color-two: green;
|
22
|
+
--color-three: var(--color-two);
|
23
|
+
}
|
24
|
+
.elem {
|
25
|
+
color: var(--color-one);
|
26
|
+
}
|
27
|
+
.item {
|
28
|
+
background: linear-gradient(var(--color-two), red);
|
29
|
+
}
|
30
|
+
@media (min-width: 50em) {
|
31
|
+
.elem {
|
32
|
+
color: var(--color-two);
|
33
|
+
}
|
34
|
+
}
|
35
|
+
```
|
36
|
+
|
37
|
+
Fix variables, and you will get the following output:
|
38
|
+
|
39
|
+
```css
|
40
|
+
:root {
|
41
|
+
--color-one: blue;
|
42
|
+
--color-two: green;
|
43
|
+
--color-three: var(--color-two);
|
44
|
+
}
|
45
|
+
.elem {
|
46
|
+
color: blue;
|
47
|
+
}
|
48
|
+
.item {
|
49
|
+
background: linear-gradient(green, red);
|
50
|
+
}
|
51
|
+
@media (min-width: 50em) {
|
52
|
+
.elem {
|
53
|
+
color: green;
|
54
|
+
}
|
55
|
+
}
|
56
|
+
```
|
57
|
+
|
58
|
+
##API
|
59
|
+
|
60
|
+
###processor
|
61
|
+
|
62
|
+
This is the core function. Combine it with others PostCSS plugins, such as Autoprefixer:
|
63
|
+
|
64
|
+
```js
|
65
|
+
var autoprefixer = require('autoprefixer'),
|
66
|
+
postcssVars = require('postcss-vars'),
|
67
|
+
postcss = require('postcss');
|
68
|
+
var fixed = postcss().
|
69
|
+
use(postcssVars.processor).
|
70
|
+
use(autoprefixer.postcss).
|
71
|
+
process(css).css;
|
72
|
+
```
|
73
|
+
|
74
|
+
###postcss
|
75
|
+
|
76
|
+
This is the full process function. Pass the `css` as the first argument and grab your fixed CSS.
|
77
|
+
|
78
|
+
```js
|
79
|
+
var postcssVars = require('postcss-vars');
|
80
|
+
var fixed = postcssVars.postcss(css).css;
|
81
|
+
```
|
82
|
+
|
83
|
+
##License
|
84
|
+
MIT
|
@@ -0,0 +1,91 @@
|
|
1
|
+
var postcss = require('postcss');
|
2
|
+
var variables = [];
|
3
|
+
var varStartIdentifier = '--';
|
4
|
+
var refStartIdentifier = 'var(';
|
5
|
+
|
6
|
+
var _process = function (css) {
|
7
|
+
|
8
|
+
// for each rules
|
9
|
+
css.eachRule(function (rule) {
|
10
|
+
|
11
|
+
// if selector is :root
|
12
|
+
if (rule.selectors.length === 1 && rule.selectors[0] === ':root' && rule.parent.type === 'root') {
|
13
|
+
|
14
|
+
rule.each(function (decl) {
|
15
|
+
if (decl.type === 'decl' && decl.prop.indexOf(varStartIdentifier) === 0) {
|
16
|
+
// store all variables
|
17
|
+
variables[decl.prop] = decl.value;
|
18
|
+
}
|
19
|
+
});
|
20
|
+
|
21
|
+
// else, it's not :root
|
22
|
+
} else {
|
23
|
+
|
24
|
+
rule.each(function (decl) {
|
25
|
+
if (decl.type === 'decl' && decl.value.indexOf(refStartIdentifier) !== -1) {
|
26
|
+
decl.value = _replaceValue(decl.value);
|
27
|
+
}
|
28
|
+
});
|
29
|
+
|
30
|
+
}
|
31
|
+
|
32
|
+
});
|
33
|
+
|
34
|
+
return css;
|
35
|
+
|
36
|
+
};
|
37
|
+
|
38
|
+
var _replaceValue = function (value) {
|
39
|
+
|
40
|
+
// matches `var(name[, fallback])`, captures 'name' and 'fallback'
|
41
|
+
var regexpVar = /\bvar\(([\w-]+)(?:\s*,\s*)?(.*)?\)/;
|
42
|
+
// matches `var()`
|
43
|
+
var regexpEmptyVar = /\bvar\(\s*\)/;
|
44
|
+
|
45
|
+
var valueLen = value.length;
|
46
|
+
var beginSlice = value.indexOf(refStartIdentifier);
|
47
|
+
var endSlice = beginSlice + refStartIdentifier.length;
|
48
|
+
var depth = 1;
|
49
|
+
var currentChar;
|
50
|
+
var cssVariable;
|
51
|
+
|
52
|
+
// find the closing `)` of the CSS variable function,
|
53
|
+
// accounting for nested functions
|
54
|
+
while (endSlice < valueLen && depth > 0) {
|
55
|
+
currentChar = value.charAt(endSlice);
|
56
|
+
if (currentChar == '(') depth += 1;
|
57
|
+
if (currentChar == ')') depth -= 1;
|
58
|
+
endSlice += 1;
|
59
|
+
}
|
60
|
+
|
61
|
+
if (depth > 0) throw new Error('postcss-vars: missing closing ")" in the value "' + value + '"');
|
62
|
+
|
63
|
+
cssVariable = value.slice(beginSlice, endSlice);
|
64
|
+
|
65
|
+
if (regexpEmptyVar.test(cssVariable)) throw new Error('postcss-vars: var() must contain a non-whitespace string');
|
66
|
+
|
67
|
+
cssReplacement = cssVariable.replace(regexpVar, function(_, name, fallback){
|
68
|
+
var replacement = variables[name];
|
69
|
+
if (!replacement && !fallback) throw new Error('postcss-vars: variable "' + name + '" is undefined');
|
70
|
+
if (!replacement && fallback) return fallback;
|
71
|
+
return replacement;
|
72
|
+
});
|
73
|
+
|
74
|
+
// resolve the variable
|
75
|
+
value = value.split(cssVariable).join(cssReplacement);
|
76
|
+
|
77
|
+
// recursively resolve any remaining variables
|
78
|
+
if (/\bvar\(/.test(value)) {
|
79
|
+
value = _replaceValue(value);
|
80
|
+
}
|
81
|
+
|
82
|
+
return value;
|
83
|
+
|
84
|
+
};
|
85
|
+
|
86
|
+
var _postcss = function (css, opts) {
|
87
|
+
return postcss().use(this.processor).process(css, opts);
|
88
|
+
};
|
89
|
+
|
90
|
+
exports.processor = _process;
|
91
|
+
exports.postcss = _postcss;
|
@@ -0,0 +1,18 @@
|
|
1
|
+
{
|
2
|
+
"name": "postcss-vars",
|
3
|
+
"version": "0.1.0",
|
4
|
+
"author": {
|
5
|
+
"name": "Vincent De Oliveira"
|
6
|
+
},
|
7
|
+
"description": "\"Not so bad\" CSS custom properties' postprocessor",
|
8
|
+
"main": "./lib/index",
|
9
|
+
"dependencies": {
|
10
|
+
"postcss": "0.3.4"
|
11
|
+
},
|
12
|
+
"readme": "postcss-vars\r\n============\r\n\r\nAdd a \"not so bad\" CSS custom properties support to your CSS, using [PostCSS](https://github.com/ai/postcss). **This is not a polyfill**. Native custom properties are way more powerful, due to cascade and inheritance.\r\n\r\nLargely inspired by [rework-vars](https://github.com/reworkcss/rework-vars).\r\n\r\n##Install\r\n\r\n```js\r\nnpm install postcss-vars\r\n```\r\n\r\n##Use\r\n\r\nOnly variables defined in `:root` (and not in media-queries) will be used. Let's take this css:\r\n\r\n```css\r\n:root {\r\n\t--color-one: blue;\r\n\t--color-two: green;\r\n\t--color-three: var(--color-two);\r\n}\r\n.elem {\r\n\tcolor: var(--color-one);\r\n}\r\n.item {\r\n\tbackground: linear-gradient(var(--color-two), red);\r\n}\r\n@media (min-width: 50em) {\r\n\t.elem {\r\n\t\tcolor: var(--color-two);\r\n\t}\r\n}\r\n```\r\n\r\nFix variables, and you will get the following output:\r\n\r\n```css\r\n:root {\r\n\t--color-one: blue;\r\n\t--color-two: green;\r\n\t--color-three: var(--color-two);\r\n}\r\n.elem {\r\n\tcolor: blue;\r\n}\r\n.item {\r\n\tbackground: linear-gradient(green, red);\r\n}\r\n@media (min-width: 50em) {\r\n\t.elem {\r\n\t\tcolor: green;\r\n\t}\r\n}\r\n```\r\n\r\n##API\r\n\r\n###processor\r\n\r\nThis is the core function. Combine it with others PostCSS plugins, such as Autoprefixer:\r\n\r\n```js\r\nvar autoprefixer = require('autoprefixer'),\r\n\tpostcssVars = require('postcss-vars'),\r\n\tpostcss = require('postcss');\r\nvar fixed = postcss().\r\n\t\t\tuse(postcssVars.processor).\r\n\t\t\tuse(autoprefixer.postcss).\r\n\t\t\tprocess(css).css;\r\n```\r\n\r\n###postcss\r\n\r\nThis is the full process function. Pass the `css` as the first argument and grab your fixed CSS.\r\n\r\n```js\r\nvar postcssVars = require('postcss-vars');\r\nvar fixed = postcssVars.postcss(css).css;\r\n```\r\n\r\n##License\r\nMIT",
|
13
|
+
"readmeFilename": "README.md",
|
14
|
+
"_id": "postcss-vars@0.1.0",
|
15
|
+
"_shasum": "f2f8ae314a471c852f9a9a64235208bf5dca75fa",
|
16
|
+
"_from": "postcss-vars@~0.1.0",
|
17
|
+
"_resolved": "https://registry.npmjs.org/postcss-vars/-/postcss-vars-0.1.0.tgz"
|
18
|
+
}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
## 0.3.4
|
2
|
+
* Better space symbol detect to read UTF-8 BOM correctly.
|
3
|
+
|
4
|
+
## 0.3.3
|
5
|
+
* Remove source map hacks by using new Mozilla’s `source-map` (by Simon Lydell).
|
6
|
+
|
7
|
+
## 0.3.2
|
8
|
+
* Add URI encoding support for inline source maps.
|
9
|
+
|
10
|
+
## 0.3.1
|
11
|
+
* Fix relative paths from previous source map.
|
12
|
+
* Safer space split in `Rule#selectors` (by Simon Lydell).
|
13
|
+
|
14
|
+
## 0.3 “Prince Seere”
|
15
|
+
* Add `Comment` node for comments between declarations or rules.
|
16
|
+
* Add source map annotation comment to output CSS.
|
17
|
+
* Allow to inline source map to annotation comment by data:uri.
|
18
|
+
* Fix source maps on Windows.
|
19
|
+
* Fix source maps for styles in subdirectory (by @nDmitry and @lydell).
|
20
|
+
* Autodetect previous source map.
|
21
|
+
* Add `first` and `last` shortcuts to container nodes.
|
22
|
+
* Parse `!important` to separated property in `Declaration`.
|
23
|
+
* Allow to break iteration by returning `false`.
|
24
|
+
* Copy code style to new nodes.
|
25
|
+
* Add `eachInside` method to recursivelly iterate all nodes.
|
26
|
+
* Add `selectors` shortcut to get selectors array.
|
27
|
+
* Add `toResult` method to `Rule` to simplify work with several input files.
|
28
|
+
* Clean declaration’s `value`, rule’s `selector` and at-rule’s `params`
|
29
|
+
by storing spaces in `between` property.
|
30
|
+
|
31
|
+
## 0.2 “Duke Dantalion”
|
32
|
+
* Add source map support.
|
33
|
+
* Add shortcuts to create nodes.
|
34
|
+
* Method `process()` now returns object with `css` and `map` keys.
|
35
|
+
* Origin CSS file option was renamed from `file` to `from`.
|
36
|
+
* Rename `Node#remove()` method to `removeSelf()` to fix name conflict.
|
37
|
+
* Node source was moved to `source` property with origin file
|
38
|
+
and node end position.
|
39
|
+
* You can set own stringify function.
|
40
|
+
|
41
|
+
## 0.1 “Count Andromalius”
|
42
|
+
* Initial release.
|
@@ -0,0 +1,20 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright 2013 Andrey Sitnik <andrey@sitnik.ru>
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
6
|
+
this software and associated documentation files (the "Software"), to deal in
|
7
|
+
the Software without restriction, including without limitation the rights to
|
8
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
9
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
10
|
+
subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
17
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
18
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
19
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
20
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -0,0 +1,732 @@
|
|
1
|
+
# PostCSS
|
2
|
+
|
3
|
+
PostCSS is a framework for CSS postprocessors,
|
4
|
+
to modify CSS with JavaScript.
|
5
|
+
|
6
|
+
It takes care of most common CSS tool tasks:
|
7
|
+
|
8
|
+
1. parses CSS;
|
9
|
+
2. gives you usable JS API to edit CSS node tree;
|
10
|
+
3. dumps modified node tree into CSS string;
|
11
|
+
4. generates (or modifies existent) source map for your changes;
|
12
|
+
|
13
|
+
You can use this framework to write you own:
|
14
|
+
|
15
|
+
* CSS minifier or beautifizer.
|
16
|
+
* CSS polyfills.
|
17
|
+
* Grunt plugin to generate sprites, include `data-uri` images
|
18
|
+
or any other works.
|
19
|
+
* Text editor plugin to automate CSS routine.
|
20
|
+
* Command-line CSS tool.
|
21
|
+
|
22
|
+
Sponsored by [Evil Martians](http://evilmartians.com/).
|
23
|
+
|
24
|
+
## Built with PostCSS
|
25
|
+
|
26
|
+
* [Autoprefixer] adds vendor prefixes by Can I Use data.
|
27
|
+
* [grunt-pixrem], `rem` unit polyfill.
|
28
|
+
* [CSS MQPacker] joins same media queries.
|
29
|
+
|
30
|
+
[Autoprefixer]: https://github.com/ai/autoprefixer
|
31
|
+
[grunt-pixrem]: https://github.com/robwierzbowski/grunt-pixrem
|
32
|
+
[CSS MQPacker]: https://github.com/hail2u/node-css-mqpacker
|
33
|
+
|
34
|
+
## Quick Example
|
35
|
+
|
36
|
+
Let’s fix forgotten `content` property in `::before` and `::after`:
|
37
|
+
|
38
|
+
```js
|
39
|
+
var postcss = require('postcss');
|
40
|
+
|
41
|
+
var contenter = postcss(function (css) {
|
42
|
+
css.eachRule(function (rule) {
|
43
|
+
if ( rule.selector.match(/::(before|after)/) ) {
|
44
|
+
// In every ::before/::after rule
|
45
|
+
|
46
|
+
// Did we forget content property?
|
47
|
+
var good = rule.some(function (i) { return i.prop == 'content'; });
|
48
|
+
|
49
|
+
if ( !good ) {
|
50
|
+
// Add content: "" if we forget it
|
51
|
+
rule.prepend({ prop: 'content', value: '""' });
|
52
|
+
}
|
53
|
+
|
54
|
+
}
|
55
|
+
});
|
56
|
+
});
|
57
|
+
```
|
58
|
+
|
59
|
+
And then CSS with forgotten `content`:
|
60
|
+
|
61
|
+
```css
|
62
|
+
a::before {
|
63
|
+
width: 10px;
|
64
|
+
height: 10px
|
65
|
+
}
|
66
|
+
```
|
67
|
+
|
68
|
+
will be fixed by our new `contenter`:
|
69
|
+
|
70
|
+
```js
|
71
|
+
var fixed = contenter.process(css).css;
|
72
|
+
```
|
73
|
+
|
74
|
+
to:
|
75
|
+
|
76
|
+
```css
|
77
|
+
a::before {
|
78
|
+
content: "";
|
79
|
+
width: 10px;
|
80
|
+
height: 10px
|
81
|
+
}
|
82
|
+
```
|
83
|
+
|
84
|
+
## Features
|
85
|
+
|
86
|
+
### Source Map
|
87
|
+
|
88
|
+
PostCSS generates source map for its changes:
|
89
|
+
|
90
|
+
```js
|
91
|
+
result = processor.process(css, { map: true, from: 'from.css', to: 'to.css' });
|
92
|
+
result.css // String with processed CSS
|
93
|
+
result.map // Source map
|
94
|
+
```
|
95
|
+
|
96
|
+
And modifies source map from previous step (like Sass preprocessor):
|
97
|
+
|
98
|
+
```js
|
99
|
+
var sassMap = fs.readFileSync('from.sass.css.map');
|
100
|
+
processor.process(css, { map: sassMap, from: 'from.sass.css', to: 'to.css' });
|
101
|
+
```
|
102
|
+
|
103
|
+
### Preserves code formatting and indentations
|
104
|
+
|
105
|
+
PostCSS will not change any byte of a rule if you don’t modify its node:
|
106
|
+
|
107
|
+
```js
|
108
|
+
postcss(function (css) { }).process(css).css == css;
|
109
|
+
```
|
110
|
+
|
111
|
+
And when you modify CSS nodes, PostCSS will try to copy coding style:
|
112
|
+
|
113
|
+
```js
|
114
|
+
contenter.process("a::before{color:black}")
|
115
|
+
// a::before{content:'';color:black}
|
116
|
+
|
117
|
+
contenter.process("a::before {\n color: black;\n }")
|
118
|
+
// a::before {
|
119
|
+
// content: '';
|
120
|
+
// color: black;
|
121
|
+
// }
|
122
|
+
```
|
123
|
+
|
124
|
+
## Why PostCSS Better Than …
|
125
|
+
|
126
|
+
### Preprocessors
|
127
|
+
|
128
|
+
Preprocessors (like Sass or Stylus) give us special language with variables,
|
129
|
+
mixins, statements and compile it to CSS. Compass, nib and other mixins
|
130
|
+
libraries use these languages to work with prefixes, sprites and inline images.
|
131
|
+
|
132
|
+
But Sass and Stylus languages were created to be syntax-sugar for CSS.
|
133
|
+
Writing really complicated programs using preporcessor languages
|
134
|
+
is very difficult. [Autoprefixer] is absolutely impossible to implement
|
135
|
+
on top of Sass.
|
136
|
+
|
137
|
+
PostCSS gives you comfort and power of JS or CoffeeScript to working with CSS.
|
138
|
+
You can do really magic things with wide range of [npm] libraries.
|
139
|
+
|
140
|
+
But postprocessors are not enemies for preprocessors. Sass and Stylus are still
|
141
|
+
the best way to improve readability and add some syntax sugar to CSS.
|
142
|
+
You can easily combine preprocessors and postprocessors
|
143
|
+
(and PostCSS will also update source map from Sass or Stylus).
|
144
|
+
|
145
|
+
[Autoprefixer]: https://github.com/ai/autoprefixer
|
146
|
+
[npm]: https://npmjs.org/
|
147
|
+
|
148
|
+
### RegExp
|
149
|
+
|
150
|
+
Some Grunt plugins modify CSS with regular expressions but using a CSS parser
|
151
|
+
and a node tree is a much safer way to edit CSS. Also, regexps will break
|
152
|
+
source maps generated by preprocessors.
|
153
|
+
|
154
|
+
### CSS Parsers
|
155
|
+
|
156
|
+
There are a lot of good CSS parsers, like [Gonzales]. But they help you only
|
157
|
+
with first step.
|
158
|
+
|
159
|
+
Unlike them PostCSS gives you full source map support and useful high level API
|
160
|
+
(for example, safe iterators).
|
161
|
+
|
162
|
+
[Gonzales]: https://github.com/css/gonzales
|
163
|
+
|
164
|
+
### Rework
|
165
|
+
|
166
|
+
[Rework] and PostCSS are very similar, but they has different targets.
|
167
|
+
|
168
|
+
Rework was created to build new CSS sublanguage to replace Stylus (like [Myth]).
|
169
|
+
PostCSS was created for CSS tools, which works in chain with legacy CSS code
|
170
|
+
(like Autoprefixer).
|
171
|
+
|
172
|
+
Because of this background difference, PostCSS:
|
173
|
+
|
174
|
+
* better works with source map, because it should update map from previous step
|
175
|
+
(like Sass compiling)
|
176
|
+
* saves all your spaces and code style, because it can be worked in text editor
|
177
|
+
plugins
|
178
|
+
* has safer parser, because it can be used for legacy code
|
179
|
+
* has high level API to clean your processor from common tasks
|
180
|
+
|
181
|
+
[Myth]: http://www.myth.io/
|
182
|
+
[Rework]: https://github.com/visionmedia/rework
|
183
|
+
|
184
|
+
## Usage
|
185
|
+
|
186
|
+
### Processor
|
187
|
+
|
188
|
+
The function `postcss(fn)` creates a processor from your function:
|
189
|
+
|
190
|
+
```js
|
191
|
+
var postcss = require('postcss');
|
192
|
+
|
193
|
+
var processor = postcss(function (css) {
|
194
|
+
// Code to modify CSS
|
195
|
+
});
|
196
|
+
```
|
197
|
+
|
198
|
+
If you want to combine multiple processors (and parse CSS only once),
|
199
|
+
you can add several functions using the `use(fn)` method:
|
200
|
+
|
201
|
+
```js
|
202
|
+
var all = postcss().
|
203
|
+
use(prefixer).
|
204
|
+
use(minifing);
|
205
|
+
```
|
206
|
+
|
207
|
+
Processor function can change the current CSS node tree:
|
208
|
+
|
209
|
+
```js
|
210
|
+
postcss(function (css) {
|
211
|
+
css.append( /* new rule */ )
|
212
|
+
});
|
213
|
+
```
|
214
|
+
|
215
|
+
or create a completely new CSS root node and return it instead:
|
216
|
+
|
217
|
+
```js
|
218
|
+
postcss(function (css) {
|
219
|
+
var newCSS = postcss.root()
|
220
|
+
// Add rules and declarations
|
221
|
+
return newCSS;
|
222
|
+
});
|
223
|
+
```
|
224
|
+
|
225
|
+
This generated processor transforms some CSS using `process(css, opts)` method:
|
226
|
+
|
227
|
+
```js
|
228
|
+
var doubler = postcss(function (css) {
|
229
|
+
// Clone each declaration
|
230
|
+
css.eachDecl(function (decl) {
|
231
|
+
decl.parent.prepend( decl.clone() );
|
232
|
+
});
|
233
|
+
});
|
234
|
+
|
235
|
+
var css = "a { color: black; }";
|
236
|
+
var result = doubler.process(css);
|
237
|
+
|
238
|
+
result.css //=> "a { color: black; color: black; }"
|
239
|
+
```
|
240
|
+
|
241
|
+
You can set the original CSS filename via `from` option and make syntax error
|
242
|
+
messages much more helpful:
|
243
|
+
|
244
|
+
```js
|
245
|
+
var wrong = "a {";
|
246
|
+
processor.process(wrong, { from: 'main.css' });
|
247
|
+
//=> Can't parse CSS: Unclosed block at line 1:1 in main.css
|
248
|
+
```
|
249
|
+
|
250
|
+
### Multiple Inputs
|
251
|
+
|
252
|
+
The function `postcss()` generates processor only for one input.
|
253
|
+
If you need to process several inputs (like in files concatenation) you can use
|
254
|
+
`postcss.parse()`.
|
255
|
+
|
256
|
+
Let’s join two CSS with source map support in 5 lines of code:
|
257
|
+
|
258
|
+
```js
|
259
|
+
var file1 = postcss.parse(css1, { from: 'a.css' });
|
260
|
+
var file2 = postcss.parse(css2, { from: 'b.css' });
|
261
|
+
|
262
|
+
file1.rules = file1.rules.concat( file2.rules );
|
263
|
+
|
264
|
+
var result = file1.toResult({ to: 'app.css', map: true });
|
265
|
+
```
|
266
|
+
|
267
|
+
### Source Map
|
268
|
+
|
269
|
+
PostCSS will generate a source map, if you set `map` option to `true`
|
270
|
+
in the `process(css, opts)` method.
|
271
|
+
|
272
|
+
You must set input and output CSS files paths (using `from` and `to`
|
273
|
+
options respectively) to generate correct source map.
|
274
|
+
|
275
|
+
```js
|
276
|
+
var result = processor.process(css, {
|
277
|
+
map: true,
|
278
|
+
from: 'main.css',
|
279
|
+
to: 'main.out.css'
|
280
|
+
});
|
281
|
+
|
282
|
+
result.map //=> '{"version":3,"file":"main.out.css","sources":["main.css"],"names":[],"mappings":"AAAA,KAAI"}'
|
283
|
+
|
284
|
+
fs.writeFileSync('main.out.css.map', result.map);
|
285
|
+
```
|
286
|
+
|
287
|
+
PostCSS can also modify previous source map (for example, from Sass
|
288
|
+
compilation). So if you compile Sass to CSS and then minify this CSS
|
289
|
+
by postprocessor, final source map will contain mapping from Sass code
|
290
|
+
to minified CSS.
|
291
|
+
|
292
|
+
Just set `map` option with an original source map (a string or a JS object):
|
293
|
+
|
294
|
+
```js
|
295
|
+
var result = minifier.process(css, {
|
296
|
+
map: fs.readFileSync('main.sass.css.map'),
|
297
|
+
from: 'main.sass.css',
|
298
|
+
to: 'main.min.css'
|
299
|
+
});
|
300
|
+
|
301
|
+
result.map //=> Source map from main.sass to main.min.css
|
302
|
+
```
|
303
|
+
|
304
|
+
PostCSS try to autodetect previous map file. For example, if you process `a.css`
|
305
|
+
and `a.css.map` is placed in same dir, PostCSS will read previous map and
|
306
|
+
generate new one. You can disable autodetection by `map: false`.
|
307
|
+
|
308
|
+
PostCSS, by default, will add annotation comment with path to new source map
|
309
|
+
file:
|
310
|
+
|
311
|
+
```css
|
312
|
+
a { }
|
313
|
+
/*# sourceMappingURL=main.out.css.map */
|
314
|
+
```
|
315
|
+
|
316
|
+
If you want to remove annotation, set `mapAnnotation` option to `false`.
|
317
|
+
|
318
|
+
Inline maps are also supported. If input CSS will contain annotation
|
319
|
+
from previous step with map in `data:uri`, PostCSS will update source map
|
320
|
+
with yours changes and inine new map back to output CSS.
|
321
|
+
|
322
|
+
Option `inlineMap` will force PostCSS to inline new map to CSS:
|
323
|
+
|
324
|
+
```js
|
325
|
+
var result = minifier.process(css, {
|
326
|
+
from: 'main.css',
|
327
|
+
to: 'main.min.css',
|
328
|
+
inlineMap: true
|
329
|
+
});
|
330
|
+
|
331
|
+
result.map //=> undefined, because map is in CSS
|
332
|
+
result.css //=> "a{}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uY3NzIiwic291cmNlcyI6WyJtYWluLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFLIn0= */"
|
333
|
+
```
|
334
|
+
|
335
|
+
### Helpers
|
336
|
+
|
337
|
+
#### Vendor
|
338
|
+
|
339
|
+
PostCSS contains heigh optimized code to split vendor prefix:
|
340
|
+
|
341
|
+
```js
|
342
|
+
var vendor = require('postcss/lib/vendor');
|
343
|
+
|
344
|
+
vendor.prefix('-moz-tab-size') //=> '-moz-'
|
345
|
+
vendor.unprefixed('-moz-tab-size') //=> 'tab-size'
|
346
|
+
```
|
347
|
+
|
348
|
+
#### List
|
349
|
+
|
350
|
+
To safely split comma- or space-separated values (like in `background-image`
|
351
|
+
or `transform` ) with brackets and quotes support you can use `list` helper:
|
352
|
+
|
353
|
+
```js
|
354
|
+
var list = require('postcss/lib/list');
|
355
|
+
|
356
|
+
list.space(image.value) //=> ['linear-gradient(white, black)', 'blue']
|
357
|
+
list.comma(transform.value) //=> ['color 200ms', 'background 200ms']
|
358
|
+
```
|
359
|
+
|
360
|
+
### Nodes
|
361
|
+
|
362
|
+
Processor function receives `Root` node with CSS node tree inside.
|
363
|
+
|
364
|
+
```js
|
365
|
+
var processor = postcss(function (cssRoot) {
|
366
|
+
});
|
367
|
+
```
|
368
|
+
|
369
|
+
There are 4 types of child nodes: `Comment`, `AtRule`, `Rule` and `Declaration`.
|
370
|
+
All nodes have `toString()` and `clone()` methods.
|
371
|
+
|
372
|
+
You can parse CSS and get a `Root` node by `postcss.parse(css, opts)` method:
|
373
|
+
|
374
|
+
```js
|
375
|
+
var cssRoot = postcss.parse('a { }');
|
376
|
+
```
|
377
|
+
|
378
|
+
All node‘s methods return current node, so you can build nice method chains:
|
379
|
+
|
380
|
+
```js
|
381
|
+
root.append( rule1 ).append( rule2 ).toString();
|
382
|
+
```
|
383
|
+
|
384
|
+
### Node Source
|
385
|
+
|
386
|
+
Every node stores its origin file (if you set `from` option to `process`
|
387
|
+
or `parse` method) and position:
|
388
|
+
|
389
|
+
```js
|
390
|
+
var root = postcss.parse(css, { from: 'main.css' });
|
391
|
+
var rule = root.rules[0];
|
392
|
+
|
393
|
+
rule.source.file //=> 'main.css'
|
394
|
+
rule.source.start //=> { line: 5, position: 1 }
|
395
|
+
rule.source.end //=> { line: 10, position: 5 }
|
396
|
+
```
|
397
|
+
|
398
|
+
### Whitespaces
|
399
|
+
|
400
|
+
All nodes (exclude `Root`) have `before` property with indentation
|
401
|
+
and all earlier spaces.
|
402
|
+
|
403
|
+
Nodes with children (`Root`, `AtRule` and `Rule`) contain also `after` property
|
404
|
+
with spaces after last child and before `}` or end of file.
|
405
|
+
|
406
|
+
Every `Declaration` has `between` property with colon, spaces and comments
|
407
|
+
between property name and value. `Rule` stores spaces and comments between
|
408
|
+
selector and `{` in `between` property. `AtRule` uses `between` also to store
|
409
|
+
spaces and comments before `{` or `;` for bodiless at-rule.
|
410
|
+
|
411
|
+
```js
|
412
|
+
var root = postcss.parse("a {\n color: black;\n}\n");
|
413
|
+
|
414
|
+
root.rules[0].between //=> " " between selector and {
|
415
|
+
root.rules[0].decls[0].before //=> "\n " before color: black
|
416
|
+
root.rules[0].decls[0].between //=> ": " between property name and value
|
417
|
+
root.rules[0].after //=> "\n" before }
|
418
|
+
root.after //=> "\n" from end of file
|
419
|
+
```
|
420
|
+
|
421
|
+
The simplest way to minify CSS is to set `before`, `between` and `after`
|
422
|
+
properties to an empty string:
|
423
|
+
|
424
|
+
```js
|
425
|
+
var minifier = postcss(function (css) {
|
426
|
+
css.eachDecl(function (decl) {
|
427
|
+
decl.before = '';
|
428
|
+
decl.between = ':';
|
429
|
+
});
|
430
|
+
css.eachRule(function (rule) {
|
431
|
+
rule.before = '';
|
432
|
+
rule.between = '';
|
433
|
+
rule.after = '';
|
434
|
+
});
|
435
|
+
css.eachAtRule(function (atRule) {
|
436
|
+
atRule.before = '';
|
437
|
+
atRule.between = '';
|
438
|
+
atRule.after = '';
|
439
|
+
});
|
440
|
+
css.eachComment(function (comment) {
|
441
|
+
comment.removeSelf();
|
442
|
+
});
|
443
|
+
});
|
444
|
+
|
445
|
+
var css = "a {\n color:black\n}\n";
|
446
|
+
minifier.process(css).css //=> "a{color:black}"
|
447
|
+
```
|
448
|
+
|
449
|
+
### Raw Properties
|
450
|
+
|
451
|
+
Some CSS values (selectors, comment text, at-rule params and declaration values)
|
452
|
+
can contain comments. PostCSS will clean them from trailing spaces for you:
|
453
|
+
|
454
|
+
```js
|
455
|
+
var root = postcss.parse("a /**/ b {}");
|
456
|
+
var rule = root.rules[0];
|
457
|
+
|
458
|
+
rule.selector //=> 'a b' trimmed and cleaned from comments
|
459
|
+
rule._selector.raw //=> 'a /**/ b' original raw value
|
460
|
+
```
|
461
|
+
|
462
|
+
But PostCSS saves raw content to be able to stringify it to CSS, if you don’t
|
463
|
+
change origin value. As you can remember, PostCSS tries to save origin CSS
|
464
|
+
byte-to-byte, when it’s possible:
|
465
|
+
|
466
|
+
```js
|
467
|
+
rule.toString() //=> 'a /**/ b {}' with comment
|
468
|
+
|
469
|
+
rule.selector = '.link b';
|
470
|
+
rule.toString() //=> '.link b {}' you change value and origin comment was gone
|
471
|
+
```
|
472
|
+
|
473
|
+
### Containers
|
474
|
+
|
475
|
+
`Root`, `AtRule` and `Rule` nodes can contain children in `rules` or `decls`
|
476
|
+
property.
|
477
|
+
|
478
|
+
There are common method to work with children:
|
479
|
+
|
480
|
+
* `append(newChild)` to add child at the end of children list.
|
481
|
+
* `prepend(newChild)` to add child at the beginning of children list.
|
482
|
+
* `insertBefore(existsChild, newChild)` to insert new child before some
|
483
|
+
existent child.
|
484
|
+
* `insertAfter(existsChild, newChild)` to insert new child after some
|
485
|
+
existent child.
|
486
|
+
* `remove(existsChild)` to remove child.
|
487
|
+
* `index(existsChild)` to return child index.
|
488
|
+
* `some(fn)` to return true if `fn` returns true on any child.
|
489
|
+
* `every(fn)` to return true if `fn` returns true on all children.
|
490
|
+
|
491
|
+
Methods `insertBefore`, `insertAfter` and `remove` can receive child node
|
492
|
+
or child index as an `existsChild` argument. Have in mind that child index works
|
493
|
+
much faster.
|
494
|
+
|
495
|
+
There are two shorcuts to get first and last child:
|
496
|
+
|
497
|
+
```js
|
498
|
+
rule.first //=> First declaration in rule
|
499
|
+
rule.last //=> Last declaration in rule
|
500
|
+
```
|
501
|
+
|
502
|
+
### Children
|
503
|
+
|
504
|
+
`Comment`, `AtRule`, `Rule` and `Declaration` nodes should be wrapped
|
505
|
+
in other nodes.
|
506
|
+
|
507
|
+
All children contain `parent` property with parent node:
|
508
|
+
|
509
|
+
```js
|
510
|
+
rule.decls[0].parent == rule;
|
511
|
+
```
|
512
|
+
|
513
|
+
All children has `removeSelf()` method:
|
514
|
+
|
515
|
+
```js
|
516
|
+
rule.decls[0].removeSelf();
|
517
|
+
```
|
518
|
+
|
519
|
+
But `remove(index)` in parent with child index is much faster:
|
520
|
+
|
521
|
+
```js
|
522
|
+
rule.each(function (decl, i) {
|
523
|
+
rule.remove(i);
|
524
|
+
});
|
525
|
+
```
|
526
|
+
|
527
|
+
### Iterators
|
528
|
+
|
529
|
+
All parent nodes have `each` method to iterate over children nodes:
|
530
|
+
|
531
|
+
```js
|
532
|
+
root = postcss.parse('a { color: black; display: none }');
|
533
|
+
|
534
|
+
root.each(function (rule, i) {
|
535
|
+
if ( rule.type == 'rule' ) {
|
536
|
+
console.log(rule.selector, i); // Will log "a 0"
|
537
|
+
}
|
538
|
+
});
|
539
|
+
|
540
|
+
root.rules[0].each(function (decl, i) {
|
541
|
+
if ( rule.type != 'comment' ) {
|
542
|
+
console.log(decl.prop, i); // Will log "color 0" and "display 1"
|
543
|
+
}
|
544
|
+
});
|
545
|
+
```
|
546
|
+
|
547
|
+
Unlike `for {}`-cycle construct or `Array#forEach()` this iterator is safe.
|
548
|
+
You can mutate children while iteration and it will fix current index:
|
549
|
+
|
550
|
+
```js
|
551
|
+
rule.rules.forEach(function (decl, i) {
|
552
|
+
rule.prepend( decl.clone() );
|
553
|
+
// Will be infinity cycle, because on prepend current declaration become
|
554
|
+
// second and next index will go to current declaration again
|
555
|
+
});
|
556
|
+
|
557
|
+
rule.each(function (decl, i) {
|
558
|
+
rule.prepend( decl.clone() );
|
559
|
+
// Will work correct (once clone each declaration), because after prepend
|
560
|
+
// iterator index will be recalculated
|
561
|
+
});
|
562
|
+
```
|
563
|
+
|
564
|
+
Because CSS have nested structure, PostCSS also contains recursive iterator
|
565
|
+
`eachInside`:
|
566
|
+
|
567
|
+
```js
|
568
|
+
root.eachInside(function (node, i) {
|
569
|
+
console.log(node.type ' inside ' + parent.type);
|
570
|
+
});
|
571
|
+
```
|
572
|
+
|
573
|
+
There are also shortcuts to recursive iterate all nodes of specific type:
|
574
|
+
|
575
|
+
```js
|
576
|
+
root.eachDecl(function (decl, i) {
|
577
|
+
// Each declaration inside root
|
578
|
+
});
|
579
|
+
|
580
|
+
root.eachRule(function (rule, i) {
|
581
|
+
// Each rule inside root and any nested at-rules
|
582
|
+
});
|
583
|
+
|
584
|
+
root.eachAtRule(function (atRule, i) {
|
585
|
+
// Each at-rule inside root and any nested at-rules
|
586
|
+
});
|
587
|
+
|
588
|
+
root.eachComment(function (comment, i) {
|
589
|
+
// Each comment inside root
|
590
|
+
})
|
591
|
+
```
|
592
|
+
|
593
|
+
### Root Node
|
594
|
+
|
595
|
+
`Root` node contains entire CSS tree. Its children can be only `Comment`,
|
596
|
+
`AtRule` or `Rule` nodes in `rules` property.
|
597
|
+
|
598
|
+
You can create a new root using shortcut:
|
599
|
+
|
600
|
+
```js
|
601
|
+
var root = postcss.root();
|
602
|
+
```
|
603
|
+
|
604
|
+
Method `toString()` stringifies entire node tree to CSS string:
|
605
|
+
|
606
|
+
```js
|
607
|
+
root = postcss.parse(css);
|
608
|
+
root.toString() == css;
|
609
|
+
```
|
610
|
+
|
611
|
+
### Comment Node
|
612
|
+
|
613
|
+
```css
|
614
|
+
/* Block comment */
|
615
|
+
```
|
616
|
+
|
617
|
+
PostCSS creates `Comment` nodes only for comments between rules or declarations.
|
618
|
+
Comments inside selectors, at-rules params, declaration values will be stored
|
619
|
+
in Raw property.
|
620
|
+
|
621
|
+
`Comment` has only one property: `text` with trimmed text inside comment.
|
622
|
+
|
623
|
+
```js
|
624
|
+
comment.text //=> "Block comment"
|
625
|
+
```
|
626
|
+
|
627
|
+
You can create a new comment using shortcut:
|
628
|
+
|
629
|
+
```js
|
630
|
+
var comment = postcss.comment({ text: 'New comment' });
|
631
|
+
```
|
632
|
+
|
633
|
+
### AtRule Node
|
634
|
+
|
635
|
+
```css
|
636
|
+
@charset 'utf-8';
|
637
|
+
|
638
|
+
@font-face {
|
639
|
+
font-family: 'Cool'
|
640
|
+
}
|
641
|
+
|
642
|
+
@media print {
|
643
|
+
img { display: none }
|
644
|
+
}
|
645
|
+
```
|
646
|
+
|
647
|
+
`AtRule` has two own properties: `name` and `params`.
|
648
|
+
|
649
|
+
As you see, some at-rules don’t contain any children (like `@charset`
|
650
|
+
or `@import`), some of at-rules can contain only declarations
|
651
|
+
(like `@font-face` or `@page`), but most of them can contain rules
|
652
|
+
and nested at-rules (like `@media`, `@keyframes` and others).
|
653
|
+
|
654
|
+
Parser selects `AtRule` content type by its name. If you create `AtRule`
|
655
|
+
node manually, it will detect own content type with new child type on first
|
656
|
+
`append` or other add method call:
|
657
|
+
|
658
|
+
```js
|
659
|
+
var atRule = postcss.atRule({ name: '-x-animations' });
|
660
|
+
atRule.rules //=> undefined
|
661
|
+
atRule.decls //=> undefined
|
662
|
+
|
663
|
+
atRule.append( postcss.rule({ selector: 'from' }) );
|
664
|
+
atRule.rules.length //=> 1
|
665
|
+
atRule.decls //=> undefined
|
666
|
+
```
|
667
|
+
|
668
|
+
You can create a new at-rule using shortcut:
|
669
|
+
|
670
|
+
```js
|
671
|
+
var atRule = postcss.atRule({ name: 'charset', params: 'utf-8' });
|
672
|
+
```
|
673
|
+
|
674
|
+
### Rule Node
|
675
|
+
|
676
|
+
```css
|
677
|
+
a {
|
678
|
+
color: black;
|
679
|
+
}
|
680
|
+
```
|
681
|
+
|
682
|
+
`Rule` node has `selector` property and contains `Declaration` and `Comment`
|
683
|
+
children in `decls` property.
|
684
|
+
|
685
|
+
There is `selectors` shortcut, which return array:
|
686
|
+
|
687
|
+
```js
|
688
|
+
rule.selector //=> "a, b"
|
689
|
+
rule.selectors //=> ['a', 'b']
|
690
|
+
```
|
691
|
+
|
692
|
+
You can miss `Declaration` constructor in `append` and other insert methods:
|
693
|
+
|
694
|
+
```js
|
695
|
+
rule.append({ prop: 'color', value: 'black' });
|
696
|
+
```
|
697
|
+
|
698
|
+
Property `semicolon` indicates if last declaration in rule has semicolon or not:
|
699
|
+
|
700
|
+
```js
|
701
|
+
var root = postcss.parse('a { color: black }');
|
702
|
+
root.rules[0].semicolon //=> false
|
703
|
+
|
704
|
+
var root = postcss.parse('a { color: black; }');
|
705
|
+
root.rules[0].semicolon //=> true
|
706
|
+
```
|
707
|
+
|
708
|
+
You can create a new rule using shortcut:
|
709
|
+
|
710
|
+
```js
|
711
|
+
var rule = postcss.rule({ selector: 'a' });
|
712
|
+
```
|
713
|
+
|
714
|
+
### Declaration Node
|
715
|
+
|
716
|
+
```css
|
717
|
+
color: black
|
718
|
+
```
|
719
|
+
|
720
|
+
`Declaration` node has `prop`, `value` and `important` properties.
|
721
|
+
|
722
|
+
You can create a new declaration using this shortcut:
|
723
|
+
|
724
|
+
```js
|
725
|
+
var decl = postcss.decl({ prop: 'color', value: 'black' });
|
726
|
+
```
|
727
|
+
|
728
|
+
Or use short form in rule’s `append()` and other add methods:
|
729
|
+
|
730
|
+
```js
|
731
|
+
rule.append({ prop: 'color', value: 'black' });
|
732
|
+
```
|