recess

A simple and attractive code quality tool for CSS built on top of LESS

  • Owner: twitter-archive/recess
  • Platform:
  • License:: Apache License 2.0
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

RECESS - NO LONGER MAINTAINED, DOES NOT WORK WITH NEWER LESS VERSIONS Build Status

Developed at Twitter to support our internal styleguide, RECESS is a simple, attractive code quality tool for CSS built on top of LESS.

Incorporate it into your development process as a linter, or integrate it directly into your build system as a compiler, RECESS will keep your source looking clean and super manageable.

GENERAL USE

$ recess [path] [options]

OPTIONS

  • --compile - compiles your code and outputs it to the terminal. Fixes white space and sort order. Can compile css or less.
  • --compress - compress your compiled code.
  • --config - accepts a path, which specifies a json config object
  • --format - control the output format of errors:
    • --format text - the default format, shows errors and context
    • --format compact - show errors one-error-per-line, useful for IDE integration
  • --noSummary - don't output the summary block for each file
  • --includePath - accepts an additional directory path to look for @import:ed LESS files in.
  • --stripColors - removes color from output (useful when logging)
  • --watch - watch filesystem for changes, useful when compiling Less projects
  • --noIDs - doesn't complain about using IDs in your stylesheets
  • --noJSPrefix - doesn't complain about styling .js- prefixed classnames
  • --noOverqualifying - doesn't complain about overqualified selectors (ie: div#foo.bar)
  • --noUnderscores - doesn't complain about using underscores in your class names
  • --noUniversalSelectors - doesn't complain about using the universal * selector
  • --prefixWhitespace - adds whitespace prefix to line up vender prefixed properties
  • --strictPropertyOrder - doesn't looking into your property ordering
  • --zeroUnits - doesn't complain if you add units to values of 0

EXAMPLES

Lint all css files

$ recess *.css

Lint file, ignore styling of IDs

$ recess ./bootstrap.css --noIds false

Lint file with compact output and no color

$ recess ./bootstrap.css --format compact --stripColors

Compile and compress .less file, then output it to a new file

$ recess ./bootstrap.less --compress > ./bootstrap-production.css

Watch a directory for changes and auto compile a css file from the changes. experimental

$ recess input.less:ouput.css --watch watch/this/dir/for/changes

Watch a single file for changes and auto compile a css file from the changes. experimental

$ recess input.less:ouput.css --watch

PROGRAMMATIC API

Recess provides a pretty simple programmatic api.

var recess = require('recess')

Once you've required recess, just pass it a path (or array of paths) and an optional options object and an optional callback:

recess(['../fat.css', '../twitter.css'], { compile: true }, callback)

The following options (and defaults) are available in the programatic api:

  • compile: false
  • compress: false
  • includePath: []
  • noIDs: true
  • noJSPrefix: true
  • noOverqualifying: true
  • noUnderscores: true
  • noUniversalSelectors: true
  • prefixWhitespace: true
  • strictPropertyOrder: true
  • stripColors: false
  • zeroUnits: true

The callback is fired when each instance has finished processessing an input. The callback is passed an array of of instances (one for each path). The instances have a bunch of useful things on them like the raw data and an array of output strings.

When compiling, access the compiled source through the output property:

var recess = require('recess')

recess('./js/fat.css', { compile: true }, function (err, obj) {
  if (err) throw err
  console.log(
  	obj // recess instance for fat.css
  , obj.output // array of loggable content
  , obj.errors // array of failed lint rules
  )
})

INSTALLATION

To install recess you need both node and npm installed.

$ npm install recess -g

AUTHORS

LICENSE

Copyright 2012-2013 Twitter, Inc.

Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0

Overview

Name With Ownertwitter-archive/recess
Primary LanguageCSS
Program languageCSS (Language Count: 3)
Platform
License:Apache License 2.0
Release Count2
Last Release Namev1.1.0 (Posted on 2012-07-10 17:00:50)
First Release Namev1.0.0 (Posted on 2012-04-17 15:06:51)
Created At2012-04-17 21:33:37
Pushed At2016-04-18 11:53:32
Last Commit At2015-07-29 09:34:36
Stargazers Count2.2k
Watchers Count179
Fork Count202
Commits Count88
Has Issues Enabled
Issues Count0
Issue Open Count0
Pull Requests Count25
Pull Requests Open Count0
Pull Requests Close Count29
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private
To the top