Skip to content
/CSSOMPublic

Unmaintained! ⚠️ CSS Object Model implemented in pure JavaScript. Also, a CSS parser.

License

Notifications You must be signed in to change notification settings

NV/CSSOM

Repository files navigation

CSSOM

CSSOM.js is a CSS parser written in pure JavaScript. It is also a partial implementation of CSS Object Model.

CSSOM.parse("body {color: black}") -> { cssRules: [ { selectorText: "body", style: { 0: "color", color: "black", length: 1 } } ] } 

Works well in Google Chrome 6+, Safari 5+, Firefox 3.6+, Opera 10.63+. Doesn't work in IE < 9 because of unsupported getters/setters.

To use CSSOM.js in the browser you might want to build a one-file version that exposes a single CSSOM global variable:

➤ git clone https://github.com/NV/CSSOM.git ➤ cd CSSOM ➤ node build.js build/CSSOM.js is done 

To use it with Node.js or any other CommonJS loader:

➤ npm install cssom 

Why is this not maintained?

  1. I no longer use it in my projects
  2. Even though cssom npm package has 26 million weekly downloads (as of April 17, 2023), I haven't made a dollar from my work.

If you want specific issues to be resolved, you can hire me for $100 per hour (which is 1/2 of my normal rate).

Don’t use it if...

You parse CSS to mungle, minify or reformat code like this:

div { background: gray; background:linear-gradient(to bottom, white 0%, black 100%); }

This pattern is often used to give browsers that don’t understand linear gradients a fallback solution (e.g. gray color in the example). In CSSOM, background: graygets overwritten. It does NOT get preserved.

If you do CSS mungling, minification, or image inlining, considere using one of the following:

To run tests locally:

➤ git submodule init ➤ git submodule update 
close