readme.md
css-what 
a CSS selector parser
Example
require('css-what')('foo[bar]:baz')
~> [ [ { type: 'tag', name: 'foo' },
    { type: 'attribute',
      name: 'bar',
      action: 'exists',
      value: '',
      ignoreCase: false },
    { type: 'pseudo',
      name: 'baz',
      data: null } ] ]
API
CSSwhat(selector, options) - Parses str, with the passed options.
The function returns a two-dimensional array. The first array represents selectors separated by commas (eg. sub1, sub2), the second contains the relevant tokens for that selector. Possible token types are:
| name | attributes | example | output | 
|---|---|---|---|
tag | 
name | 
div | 
{ type: 'tag', name: 'div' } | 
universal | 
- | * | 
{ type: 'universal' } | 
pseudo | 
name, data | 
:name(data) | 
{ type: 'pseudo', name: 'name', data: 'data' } | 
pseudo | 
name, data | 
:name | 
{ type: 'pseudo', name: 'name', data: null } | 
pseudo-element | 
name | 
::name | 
{ type: 'pseudo-element', name: 'name' } | 
attribute | 
name, action, value, ignoreCase | 
[attr] | 
{ type: 'attribute', name: 'attr', action: 'exists', value: '', ignoreCase: false } | 
attribute | 
name, action, value, ignoreCase | 
[attr=val] | 
{ type: 'attribute', name: 'attr', action: 'equals', value: 'val', ignoreCase: false } | 
attribute | 
name, action, value, ignoreCase | 
[attr^=val] | 
{ type: 'attribute', name: 'attr', action: 'start', value: 'val', ignoreCase: false } | 
attribute | 
name, action, value, ignoreCase | 
[attr$=val] | 
{ type: 'attribute', name: 'attr', action: 'end', value: 'val', ignoreCase: false } | 
child | 
- | > | 
{ type: 'child' } | 
parent | 
- | < | 
{ type: 'parent' } | 
sibling | 
- | ~ | 
{ type: 'sibling' } | 
adjacent | 
- | + | 
{ type: 'adjacent' } | 
descendant | 
- | { type: 'descendant' } | 
Options:
xmlMode: When enabled, tag names will be case-sensitive (meaning they won't be lowercased).
License: BSD-2-Clause