add-namespace-css

1.0.0 • Public • Published

Namespace CSS Selectors

const namespaceCSS = require('namespace-css-selectors');
const css = `div { color: red }`;

namespaceCSS(css, '.marshmallow');
// .marshmallow div { color: red }

This module provides you and your family with a function that prefixes CSS selector. It's useful when you want to accept user input for styles, but you don't want them to be applied globally.

Here is an example:

<style>
  p { color: blue };
</style>

<p>Outside</p>

<div class="inside">
  <style>
    p { color: red; }
  </style>
  <p>Inside</p>
</div>

In this situation, both paragraphs are going to be red. Gross. What if we rewrote the CSS inside of the div so that the global p selector was .inside p instead?

const scopeCSS = require('namespace-css-selectors');

const inside = document.querySelector('.inside style');

inside.innerText = scopeCSS(inside.innerText, '.inside');

The result would now be:

<style>
  p { color: blue };
</style>

<p>Outside</p>

<div class="inside">
  <style>
    .inside p { color: red; }
  </style>
  <p>Inside</p>
</div>

Pretty cool.

Readme

Keywords

Package Sidebar

Install

npm i add-namespace-css

Weekly Downloads

0

Version

1.0.0

License

ISC

Unpacked Size

9.77 kB

Total Files

9

Last publish

Collaborators

  • panxiaoli