Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

css-values

ben-eb166.5kMIT0.1.0

A work in progress CSS grammar parser & code generator.

css

readme

css-values Build Status NPM version

A work in progress CSS grammar parser & code generator.

This project is in very early alpha stages. At present, around half of the existing CSS specification is covered in a very limited capacity. Please feel free to improve the functionality of this module, and test it out, but don't yet rely on it in production!

The eventual aim of this project is to generate whole modules that can consume CSS property/value pairs and validate them based on the actual CSS specification. This is useful because it brings what is traditionally hidden away in online documentation to automated tools such as linters. Indeed, with this data we can cover all of these use cases (and others):

  • Remove invalid declarations which would be dropped by the browser.
  • Lint properties to ensure correct syntax was being used.
  • Enable text editor autocomplete for CSS values.
  • Compute the Levenshtein distance between valid/invalid property values (did you mean yellow? you entered yrllow).
  • Automatically generate a skeleton W3C specification document based on grammar.

css-values uses specification data gathered from Mozilla, with some overrides that make it easier for the parser to operate smoothly. In addition, css-values uses Autoprefixer to supplement values from the spec with proprietary browser syntax. This is to ensure that tools generated with css-values can let these values pass through as valid, even though they are not to specification.

css-values is parser agnostic which means that it doesn't matter what parser you use for the output module. In practice though, you should be using PostCSS.

Currently, there is no exposed API for templating a project - you will have to change the templates in the run.js file. This is because we would like to cover 100% of CSS properties, i.e. the primary functionality, first and then complete any auxiliary functionality afterwards.

Install

With npm do:

npm install css-values --save-dev

Contributing

Pull requests are welcome. If you add functionality, then please add unit tests to cover it.

License

Template:CSSData by Mozilla Contributors is licensed under CC-BY-SA 2.5.

MIT © Ben Briggs

changelog

Head

  • Adds <clip-path> validator.
  • Adds <mask-reference> validator.
  • Adds support for the non-standard -webkit-mask-position property.
  • Adds support for the non-standard -webkit-mask-composite property.
  • Now prints a message if multiple values were supplied to a property that only expected a single value.

0.1.0

  • This release changes the initial API, to one that takes a property value pair. For more details on this, see https://github.com/ben-eb/css-values/issues/9.
  • css-values supports 247 properties, with improved support for global values such as custom properties, calc functionality and case-insensitivity.

0.0.1

  • Initial release. 218 properties are covered, albeit in a limited capacity.