CSS Parser 
===============================
CSS 2.1/3.0 compliant parser generated by <a href="http://zaach.github.io/jison/">jison</a>.

[![npm version][npm-badge]][npm]
[![dependency status][dep-badge]][dep-status]

[npm]: https://www.npmjs.org/package/css-js
[npm-badge]: https://img.shields.io/npm/v/css-js.svg?style=flat-square
[dep-status]: https://david-dm.org/yahoo/css-js
[dep-badge]: https://img.shields.io/david/yahoo/css-js.svg?style=flat-square

## Quick Start

Install the npm css-js from the npm repo.
```shell
npm install css-js
```

### Server-side Use (node.js)

Parse the full CSS.

```js
/* create the css parser */
var CSSParser = require("css-js");

var config = {};
config.ver = "3.0"; /* CSS 3.0 */
parser = new CSSParser(config);

var cssString = "...";
var ast = parser.parse(cssString);

```
The returned AST structure
```js
{
    { charset: '...' },
    { imports: [ { import: '...', mediaqueries: [ { prefix: '...', media_type: '...', expression: { media_feature: '...', value: '...' }, ... } ] } ] },
    { rulesets: [ { selector: '...', declaration: [ { key: '...', value: '...' }, { key: '...', value: '...' } ] } ] },
    { medias: { mediaqueries: [ { prefix: '...', media_type: '...', expression: { media_feature: '...', value: '...' }, ... } ], rulesets: [ { selector: '...', declaration: [ { key: '...', value: '...' } ] } ] },
    { pages: { pseudo_class: '...', declaration: [ { key: '...', value: '...' } ] } },
}
```

Parse the CSS string in style attribute value of HTML5 page.
```js
/* create the css parser */
var CSSParser = require("css-js");

var config = {};
config.ver = "3.0"; /* CSS 3.0 */
parser = new CSSParser(config);

var cssString = "...";
var result = parser.parseCssString(cssString);

```
The returned result array
```js
[ { key: '...', value: '...' }, { key: '...', value: '...' } ]
```

## Development

### Build

```shell
grunt
```

### How to test
```shell
grunt test
```

## Future Work
Continue to enhance the grammar to support the CSS 3.0 and its future extension.

## License

This software is free to use under the BSD license.
See the [LICENSE file](./LICENSE) for license text and copyright information.
