A streamlined re-interpretation of CSS Modules
There's an online REPL where you can try out modular-css
without needing to install anything!
Here's a prefilled version showing some modular-css
features.
.red {
color: red;
}
.blue {
composes: red;
background: blue;
}
/* in the output .blue will be combination of both styles */
@value alert: #F00;
.alert {
color: alert;
}
/* will output as */
.alert {
color: #F00;
}
.style {
color: red;
}
:global(.style2) {
color: blue;
}
/* Will output as */
/* Scoped with unique file-based prefix */
.f5507abd_style {
color: red;
}
/* Remains unstyled due to :global() pseudo */
.style2 {
color: blue;
}
/* input.css */
.input {
width: 100%;
}
/* fieldset.css */
.fieldset :external(input from "./input.css") {
width: 50%;
}
More detailed descriptions are available in docs/features.md
$ npm i modular-css-core
$ npm i modular-css-cli
$ npm i modular-cssify
$ npm i modular-css-rollup
$ npm i modular-css-webpack
$ npm i modular-css-svelte
$ npm i postcss-modular-css
$ npm i modular-css-glob
CSS Modules doesn't support the features we need & has bugs blocking our usage. Attempts to fix those bugs have been unsuccessful for a variety of reasons. Thus, a perfect storm of compelling reasons to learn PostCSS was found.
Also because this:
- @JoshGalvin for ideas/encouragement to do this silly thing.
- The CSS modules team for inspiration!