A plugin-based CSS preprocessing framework for Node.js that enables custom transformations via AST manipulation.
Plugin framework for CSS preprocessing in Node.js
Plugins are simple JavaScript functions that manipulate the AST, allowing endless customization as demonstrated by the rich ecosystem listed in the README, including variables, calc resolution, and image inlining.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Built on the robust `css` library for parsing and stringifying CSS, ensuring accurate and consistent AST handling without reinventing core functionality.
Offers a wide range of plugins for common tasks, such as color helpers, @import inlining, and custom functions, reducing the need to build transformations from scratch.
The `toString` method can generate inline source maps with the `sourcemap: true` option, facilitating easier debugging of transformed CSS in browsers.
Out of the box, Rework only provides the plugin framework; essential preprocessing features like variables or vendor prefixing require installing and configuring separate plugins, adding setup complexity.
With plugins maintained by various authors, there's risk of inconsistency, breaking changes, or abandonment, as hinted by the diverse plugin list without centralized governance.
Effective use demands understanding of CSS AST structure, which is more complex than template-based preprocessors, requiring developers to refer to external `css` library documentation.
Unlike Sass or Less, it doesn't offer built-in CSS-like syntax; all new features must be implemented via plugins, which can be cumbersome for teams wanting quick syntax upgrades.