1.2.3 • Published 3 years ago

parcel-plugin-css-object v1.2.3

Weekly downloads
19
License
MIT
Repository
github
Last release
3 years ago

parcel-plugin-css-object

Parcel loader to load CSS into an object. The object has keys that are selectors from the CSS file; the value of each selector are the rules converted to camelCase properties (see Style Object Properties). This object is compatible with React Inline Styles.

Install

npm install -D parcel-plugin-css-object

Usage:

Requiring CSS rules:

p {
  font-size: 14px;
}
h1 {
  text-indent: 20px;
}
.centered {
  width: 100%;
  margin: 0 auto;
}
import style from "./rules.css";
console.log(style);
// Output:
// {
//    p: {
//      fontSize: '14px'
//    },
//    h1: {
//      textIndent: '20px'
//    },
//    centered: {
//      width: '100%',
//      margin: '0 auto'
//    }
// }

Now you can use those rules however you like:

React
const MyComponent = ({ children }) => (
  <div style={selectors.centered}>{children}</div>
);
DOM
function applyStylesToNode(styles, node) {
  Object.keys(styles).forEach(key => {
    node.style[key] = styles[key];
  });
}
applyStylesToNode(selectors.centered, document.querySelector("#some-div"));

Use Case

  1. You want to inline all your styles, but you still want to write your CSS into CSS files.
  2. You want to use a CSS preprocessor to write your inline styles.

Implementation

This library uses reworkcss/css to parse CSS to an AST. The AST is then traversed to find rule declarations and populate them into an object. Media queries are ignored.

Source code from pl12133/css-object-loader

Contributing

Questions, criticism and pull requests are always welcome.

1.1.9

3 years ago

1.2.3

3 years ago

1.2.2

3 years ago

1.2.1

3 years ago

1.1.8

4 years ago

1.1.7

5 years ago

1.1.6

6 years ago

1.1.5

6 years ago

1.1.4

6 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago