Transforms css values and at-rule params into the tree
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
parser('url(some url) 50% 50%')
.walk(function (node) {
// Your code
if(node.type === 'functon' && node.value === 'url') {
return false;
}
})
.toString();
{ 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: [] }
var parser = require('postcss-value-parser');
Returns parsed value
// .2rem
{
number: '.2',
unit: 'rem'
}
Trims space nodes (modifies original array and returns reference on it)
Stringifies node and array of nodes
Returns parsed tree
Root nodes list
Stringify tree to the value
-
name
value filter cb(node, index, nodes)
-
reverse
walk to the deepest functions firstly
MIT © Bogdan Chadkin