When comparing Rework vs Garden (Clojure), the Slant community recommends Rework for most people. In the question“What are the best CSS preprocessors/postprocessors?” Rework is ranked 6th while Garden (Clojure) is ranked 9th. The most important reason people chose Rework is:
Through transforms you can modify existing properties to give them new attributes and options, so instead of managing messy mixins, you can add a simple new attribute where they make the most sense.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Extend native properties
Through transforms you can modify existing properties to give them new attributes and options, so instead of managing messy mixins, you can add a simple new attribute where they make the most sense.
Pro Unrestricted potential
Because Rework plugins are done in code, there are no limits to what they can do, and they tend to provide more advanced functionality that would be harder to implement in other preprocessors, such as file I/O and custom logic.
Pro Built around plugins
Rework isn't a language for compiling to CSS but rather a library around parsing it and transforming it. For example, a vendor prefix plugin will inject prefixes around needed properties so you don't have to muddy up your CSS dealing with it.
Because Rework is built around plugins at its core, it makes for easier plugin writing if you find you want to add in new functionality.
Pro Can work with other preprocessors
Although you don't have to, since Rework works on vanilla CSS, you could use another preprocessor that has a syntax you enjoy more before applying Rework's transforms.
Pro Allows for customized properties
Rework plugins can recognize custom properties and transform them via plugins. This allows you to keep your CSS clean and expand its functionality in a native feeling way, without having to learn a bunch of new language constructs.
Pro Style webpages with a full programming language
With Garden, you have access to all the core features of a powerful programming language to build your scripts, including functions, variables, namespaces, and data manipulation like map merging or concatenation.
Pro Full-stack Clojure with ClojureScript for front-end + Clojure for backend
Garden finishes the full Clojure stack experience — you can have the entire codebase in a single language with ClojureScript on the front-end, Clojure on the backend, and Garden for CSS.
Pro Hot loading
Using the core Garden auto loader or the excellent Garden Gnome plugin, watch your style changes take effect in the browser as soon as you save the code — no reload required.
Pro Styles as data-nesting are obvious
Clojure is a data-oriented programming language with strong emphasis on simple, clear inline data structures. Garden models styles using these same structures, making the cascade visually obvious.
Pro Clean syntax
Other options listed include various pain-points like use of @ symbols or too much cruft; because Garden is just Clojure, and Clojure is a very well-designed language aimed to emphasize simplicity and positive developer experience (without semantic whitespace problems), you have the full benefit of a well-designed and general-purpose syntax.
Pro CSS-engine accessible from front-end
Because Garden is also Clojurescript friendly, this means that you can dynamically effect styles based on app state.
Cons
Con Replaced by PostCSS
Rework basically solves the same problem as the more popular PostCSS.
Con Difficult for beginners
Rework has a more involved setup that can make it an intimidating first option for beginners to css processing. As Rework is built around plugins, the documentation can't be found in one spot. The quality of documentation also varies between plugins.
Con Harder to apply shared styles
Because you are working in Clojure, you can't just paste in raw css style snippets shared elsewhere.