Compiles Styled export to CSS at compile time
Some how CSS post processing are little complicated, and do not provide best editing experience and we cannot debug what is being generated.
Compiles a simple JavaScript file that exports default styled.css
object into a CSS file with map file along with nested
and cssnano
plugins for postcss.
npm install -D @web-atoms/styled-compiler
styled-compiler inputFile.css.js
body.css.js
import styled from "@web-atoms/styled-compiler";
const animations = [["div", "yellow"], ["section", "green"]].map(([name, color]) =>
styled.css `
& ${name} {
color: ${color};
}
`);
export default styled.css `
body {
font-weight: 500;
${animations}
}
`;
Command: styled-compiler body.css.js
This will generate following along with map.
body.css
body{font-weight:500}body div{color:#ff0}body section{color:green}
/*# sourceMappingURL=body.css.map */
- We can write most pre css logic in JavaScript where we have the best editing feature.
- Load complex JavaScript objects via imports and write for each or any syntax that is available in JavaScript easily.
- By prefixing tagged template with
styled.css
you get automatic intellisense if styled extensions are installed. - Source maps will correctly point to actual JavaScript that generated the css.
Though we are running this project for production, there may be some bugs or some improvements underway as they happen.
- Watch support
For now since we are using some sort of build tasks to compile files, we currently do not need this, but pull requests are welcome to add any features to support any file processing required for your build tools.