PHP JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
plugins Updated syntax. Sep 3, 2017
tests math() now infers unit if none specified. Oct 24, 2017
.eslintrc.js Updated docs and changelog. Added JS api. Sep 3, 2017
.gitattributes Adding travis and git config. Dec 27, 2013
.travis.yml Raise php requirement to >= 5.6 Aug 31, 2017
boilerplate.txt Removing data-modified from default boilerplate. Mar 10, 2014
index.js Added .js error event. Oct 24, 2017
phpunit.xml.dist Adding travis and git config. Dec 27, 2013

Build Status


CSS-Crush is a standards inspired preprocessor designed to enable a modern and uncluttered CSS workflow.

  • Automatic vendor prefixing
  • Variables
  • Import inlining
  • Nesting
  • Functions (color manipulation, math, data-uris etc.)
  • Rule inheritance (@extends)
  • Mixins
  • Minification
  • Lightweight plugin system
  • Source maps

See the docs for full details.

Setup (PHP)

If you're using Composer you can use Crush in your project with the following line in your terminal:

composer require css-crush/css-crush:dev-master

If you're not using Composer yet just download the library into a convenient location and require the bootstrap file:

<?php require_once 'path/to/CssCrush.php'; ?>

Basic usage (PHP)


echo csscrush_tag('css/styles.css');


Compiles the CSS file and outputs the following link tag:

<link rel="stylesheet" href="css/styles.crush.css" media="all" />

There are several other functions for working with files and strings of CSS:

  • csscrush_file($file, $options) - Returns a URL of the compiled file.
  • csscrush_string($css, $options) - Compiles a raw string of css and returns the resulting css.
  • csscrush_inline($file, $options, $tag_attributes) - Returns compiled css in an inline style tag.

There are a number of options available for tailoring the output, and a collection of bundled plugins that cover many workflow issues in contemporary CSS development.

Setup (JS)

npm install csscrush

Basic usage (JS)

// All methods can take the standard options (camelCase) as the second argument.
const csscrush = require('csscrush');

// Compile. Returns promise.
csscrush.file('./styles.css', {sourceMap: true});

// Compile string of CSS. Returns promise.
csscrush.string('* {box-sizing: border-box;}');

// Compile and watch file. Returns event emitter (triggers 'data' on compile).'./styles.css');


If you think you've found a bug please create an issue explaining the problem and expected result.

Likewise, if you'd like to request a feature please create an issue with some explaination of the requested feature and use-cases.

Pull requests are welcome, though please keep coding style consistent with the project (which is based on PSR-2).