Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. CSS
  3. Rework

Rework

MITJavaScript

A plugin-based CSS preprocessing framework for Node.js that enables custom transformations via AST manipulation.

GitHubGitHub
2.7k stars120 forks0 contributors

Overview

Plugin framework for CSS preprocessing in Node.js

Use Cases

Not Ideal For

  • Teams needing an all-in-one CSS framework with pre-styled components and utilities
  • Projects requiring out-of-the-box integration with modern bundlers like Vite or Webpack
  • Developers who prefer writing CSS extensions in a Sass-like syntax rather than JavaScript
  • Large organizations prioritizing vendor-supported tools with guaranteed long-term maintenance

Pros & Cons

Pros

Extensible Plugin Architecture

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.

Reliable AST Foundation

Built on the robust `css` library for parsing and stringifying CSS, ensuring accurate and consistent AST handling without reinventing core functionality.

Comprehensive Plugin Ecosystem

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.

Built-in Source Map Support

The `toString` method can generate inline source maps with the `sourcemap: true` option, facilitating easier debugging of transformed CSS in browsers.

Cons

Minimal Core Features

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.

Plugin Ecosystem Fragmentation

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.

AST Knowledge Overhead

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.

No Native Syntax Extensions

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.

Frequently Asked Questions

Quick Stats

Stars2,745
Forks120
Contributors0
Open Issues0
Last commit4 days ago
CreatedSince 2012

Tags

#frontend-tooling#nodejs#vendor-prefixing#ast-manipulation#css-preprocessor#build-tool#plugin-framework

Built With

J
JavaScript
N
Node.js

Included in

CSS5.5k
Auto-fetched 1 day ago

Related Projects

PostCSSPostCSS

Transforming styles with JS plugins

Stars28,958
Forks1,591
Last commit20 days ago
CSSTreeCSSTree

A tool set for CSS including fast detailed parser, walker, generator and lexer based on W3C specs and browser implementations

Stars2,108
Forks114
Last commit3 months ago
Gonzales PEGonzales PE

CSS parser with support of preprocessors

Stars328
Forks66
Last commit4 months ago
ParserLibParserLib

Collection of parsers written in JavaScript

Stars294
Forks81
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub