102 lines
4.1 KiB
Markdown
102 lines
4.1 KiB
Markdown
# rework [![Build Status](https://travis-ci.org/reworkcss/rework.png)](https://travis-ci.org/reworkcss/rework)
|
||
|
||
CSS manipulations built on [`css`](https://github.com/reworkcss/css), allowing
|
||
you to automate vendor prefixing, create your own properties, inline images,
|
||
anything you can imagine!
|
||
|
||
Please refer to [`css`](https://github.com/reworkcss/css) for AST documentation
|
||
and to report parser/stringifier issues.
|
||
|
||
## Installation
|
||
|
||
$ npm install rework
|
||
|
||
## Usage
|
||
|
||
```js
|
||
var rework = require('rework');
|
||
var pluginA = require('pluginA');
|
||
var pluginB = require('pluginB');
|
||
|
||
rework('body { font-size: 12px; }', { source: 'source.css' })
|
||
.use(pluginA)
|
||
.use(pluginB)
|
||
.toString({ sourcemap: true })
|
||
```
|
||
|
||
## API
|
||
|
||
### rework(code, [options])
|
||
|
||
Accepts a CSS string and returns a new `Rework` instance. The `options` are
|
||
passed directly to `css.parse`.
|
||
|
||
### Rework#use(fn)
|
||
|
||
Use the given plugin `fn`. A rework "plugin" is simply a function accepting the
|
||
stylesheet root node and the `Rework` instance.
|
||
|
||
### Rework#toString([options])
|
||
|
||
Returns the string representation of the manipulated CSS. The `options` are
|
||
passed directly to `css.stringify`.
|
||
|
||
Unlike `css.stringify`, if you pass `sourcemap: true` a string will still be
|
||
returned, with the source map inlined. Also use `sourcemapAsObject: true` if
|
||
you want the `css.stringify` return value.
|
||
|
||
## Plugins
|
||
|
||
Rework has a rich collection of plugins and mixins. Browse all the [Rework
|
||
plugins](https://www.npmjs.org/search?q=rework) available on npm.
|
||
|
||
Plugins of particular note:
|
||
|
||
- [at2x](https://github.com/reworkcss/rework-plugin-at2x/) – serve high resolution images
|
||
- [calc](https://github.com/reworkcss/rework-calc) – resolve simple `calc()` expressions
|
||
- [colors](https://github.com/reworkcss/rework-plugin-colors/) – color helpers like `rgba(#fc0, .5)`
|
||
- [ease](https://github.com/reworkcss/rework-plugin-ease/) – several additional easing functions
|
||
- [extend](https://github.com/reworkcss/rework-inherit/) – `extend: selector` support
|
||
- [function](https://github.com/reworkcss/rework-plugin-function/) – user-defined CSS functions
|
||
- [import](https://github.com/reworkcss/rework-import) – read and inline CSS via `@import`
|
||
- [inline](https://github.com/reworkcss/rework-plugin-inline) – inline assets as data URIs
|
||
- [mixin](https://github.com/reworkcss/rework-plugin-mixin/) – custom property logic with mixins
|
||
- [npm](https://github.com/reworkcss/rework-npm) - inline CSS via `@import` using node's module resolver
|
||
- [references](https://github.com/reworkcss/rework-plugin-references/) – property references like `height: @width`
|
||
- [url](https://github.com/reworkcss/rework-plugin-url/) – rewrite `url()`s with a given function
|
||
- [variables](https://github.com/reworkcss/rework-vars/) – W3C-style variables
|
||
|
||
## Built with rework
|
||
|
||
- [styl](https://github.com/visionmedia/styl)
|
||
- [rework-pure-css](https://github.com/ianstormtaylor/rework-pure-css)
|
||
- [rework-suit](https://github.com/suitcss/rework-suit)
|
||
- [resin](https://github.com/topcoat/resin)
|
||
- [Myth](https://github.com/segmentio/myth)
|
||
|
||
## License
|
||
|
||
(The MIT License)
|
||
|
||
Copyright (c) 2012–2013 TJ Holowaychuk <tj@vision-media.ca>
|
||
|
||
Copyright (c) 2014 Contributors
|
||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||
this software and associated documentation files (the 'Software'), to deal in
|
||
the Software without restriction, including without limitation the rights to
|
||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||
of the Software, and to permit persons to whom the Software is furnished to do
|
||
so, subject to the following conditions:
|
||
|
||
The above copyright notice and this permission notice shall be included in all
|
||
copies or substantial portions of the Software.
|
||
|
||
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||
SOFTWARE.
|