Skip to content
This repository has been archived by the owner before Nov 9, 2022. It is now read-only.

twitter-archive/recess

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
bin
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published