postcss-value-parser
TypeScript icon, indicating that this package has built-in type declarations

2.0.0 • Public • Published

Travis CI

postcss-value-parser

Transforms css values and at-rule params into the tree

Usage

var parser = require('postcss-value-parser');

/*{
    nodes: [
      type: 'function',
      value: 'rgba',
      nodes: [
        { type: 'word', value: '233' },
        { type: 'div', value: ',', before: '', after: ' ' },
        { type: 'word', value: '45' },
        { type: 'div', value: ',', before: '', after: ' ' },
        { type: 'word', value: '66' },
        { type: 'div', value: ',', before: ' ', after: '' },
        { type: 'word', value: '.5' }
      ]
    ]
  }*/
parser('rgba(233, 45, 66 ,.5)')
  .walk('rgba', function (fn) {
    var color = fn.filter(function (node) {
      return node.type === 'word';
    }); // [233, 45, 66, .5]
    fn.type = 'word';
    fn.value = convertToHex(color);
  })
  .toString();
  // #E92D42

Prevent walking into function

parser('url(some url) 50% 50%')
  .walk(function (node) {
    // Your code

    if(node.type === 'functon' && node.value === 'url') {
      return false;
    }
  })
  .toString();

Node types

  • { type: 'word', value: 'any' }
  • { type: 'string', value: 'string', quote: '"' || '\'' }
  • { type: 'div', value: '/' || ',' || ':', before: ' ', after: ' ' }
  • { type: 'space', value: ' ' } space as a separator
  • { type: 'function', value: 'name', nodes: [] }

API

var parser = require('postcss-value-parser');

parser.unit(value)

Returns parsed value

// .2rem
{
  number: '.2',
  unit: 'rem'
}

parser.trim(nodes)

Trims space nodes (modifies original array and returns reference on it)

parser.stringify(nodes)

Stringifies node and array of nodes

var p = parser(value)

Returns parsed tree

p.nodes

Root nodes list

p.toString()

Stringify tree to the value

p.walk([name, ]cb[, reverse])

  • name value filter
  • cb(node, index, nodes)
  • reverse walk to the deepest functions firstly

License

MIT © Bogdan Chadkin

Readme

Keywords

Package Sidebar

Install

npm i postcss-value-parser@2.0.0

Version

2.0.0

License

MIT

Last publish

Collaborators

  • beneb
  • trysound
  • evilebottnawi