When comparing Sass vs Rework, the Slant community recommends Sass for most people. In the question“What are the best CSS preprocessors/postprocessors?” Sass is ranked 1st while Rework is ranked 6th. The most important reason people chose Sass is:
You are able to declare custom functions with Sass (for example, converting units) which can be easily invoked, even when using shorthand properties. This results in cleaner, more reusable code.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Powerful advanced function features
You are able to declare custom functions with Sass (for example, converting units) which can be easily invoked, even when using shorthand properties. This results in cleaner, more reusable code.
Pro Nested selectors
Sass allows you to nest selectors which results in code that is both faster to write and cleaner to read.
For example, this:
.parent
color: blue
.child
color: yellow
Will compile to this:
.parent {
color: blue;
}
.parent .child {
color: yellow;
}
Pro Rapid development
Another big advantage for Sass is the very active community pushing the development forward at a rapid pace. Sass is constantly coming out with bug fixes, and are often the first to come out with improvements.
This is an important factor to keep in mind when picking a preprocessor to invest your time into.
Pro Extends CSS maintaining compatibility with CSS standards specification
It comes with two possible syntaxes:
- Sass - No parens or semicolons allowed and the nesting is dictated with whitespace.
- SCSS - SCSS syntax is a superset of CSS – which means SCSS can be written as CSS, but has been expanded to include the features of Sass as well.
SCSS is easier to pick up for beginners and Sass has a cleaner syntax. Having both syntaxes means you can pick the one that best suits your coding style.
The mandatory syntax rules for both SCSS and Sass results in a more consistent code. For a more detailed analysis between Sass and SCSS go here. To see a nice comparison of the Sass syntax against CSS and SCSS go here.
Pro Output minified CSS
Sass simplifies minifying CSS files by offering a one-line command that will output a minified version.
Pro Easy to learn
It's very comfortable and easy to write/learn Sass, even for beginners.
Pro Compass framework provides added features
Sass can be used with a framework called Compass, which provides additional functions and mixins which can reduce the amount of code you have to write.
For example, Compass will take care of vendor prefixes.
This:
div {
background-image: -webkit-linear-gradient(#F00, #000);
background-image: -moz-linear-gradient(#F00, #000);
background-image: -o-linear-gradient(#F00, #000);
background-image: linear-gradient(#F00, #000);
}
Can be written as:
.gradient {
@include background-image(linear-gradient(#F00, #000));
}
For a full list of features, check out the Compass documentation.
Pro Source maps support
Rather than being limited to editing the outputted CSS file in devtools, with source maps you are able to manipulate the original .scss file.
Pro Libsass - C/C++ port of Sass
There is also a C/C++ port of the Sass CSS precompiler called Libsass that decouples Sass from Ruby. It is very fast, portable and easy to build and integrate with a variety of platforms and languages.
Pro New sass package means you no longer need external dependencies
The latest implementation of Sass is written in Dart, and compiles to pure JS with no native code or external dependencies, means you no longer need Ruby or libSass.
Pro Easy to use with ruby apps
Since it's written in Ruby, it's easier and faster to use with Ruby apps.
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.
Cons
Con Requires Ruby or libSass
To compile Sass, it needs either Ruby or libSass installed locally.
Con Noisy syntax
There is many unnecessary characters when using the SCSS syntax.
{}:;@
However using the Sass syntax eliminates them.
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.