Skip to content

rrweb-io/CSSOM

This branch is 13 commits ahead of NV/CSSOM:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c92a277 · Oct 14, 2024
Oct 14, 2024
Jul 24, 2024
Jun 20, 2021
Oct 14, 2024
Oct 14, 2024
Oct 14, 2024
Jul 3, 2018
Nov 26, 2015
Feb 18, 2013
Oct 14, 2024
Feb 1, 2016
Apr 18, 2023
Jul 4, 2019
Jul 24, 2024
Oct 14, 2024

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: gray gets 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

About

CSS Object Model implemented in pure JavaScript. Also, a CSS parser.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 98.7%
  • HTML 1.3%