CSS, Web Design
We Preprocess our CSS with Sass and So Should You
What is Sass?
Sass is a CSS preprocessor. It greatly expands on the capabilities of vanilla CSS, allowing us to use features that aren’t going to make it into the CSS spec anytime soon. The best part is, we don’t have to wait. We can use these features today, because Sass is processed and output as a vanilla CSS file that is readable by all modern browsers.
This allows Sass to be continually expanded upon using add ons & extensions without worrying about browser support (the bane of any web designers existence). I’m not going to go into great detail about how to start using Sass, as there are already some great resources out there for beginners. I will list a few of my favorites at the bottom of this post to get you started.
Why do we use Sass?
Sass Has Improved the Speed of Our Workflow.
Here Are a Few of the Reasons Why:
Variables reduce redundancy and allow us to store common values in variables that can be easily called on a large number of elements. A normal CSS file requires a lot of repetition. Colors, font families …etc all have to be declared on multiple elements. Worse, when we want to change those values, we have to track down every instance that they appear in the stylesheet. Utilizing Sass variables, we can store that value in one place, and can easily call it elsewhere in the stylesheet. Change the variable, and every element that calls it will change with it, all at once.
Mixins are similar to variables, except that they can store large blocks of css instead of just one value. For example, if you have a button style that needs to be recreated multiple times throughout your stylesheet, you can store the code in a mixin, and call all the css code that makes up that button on each instance that requires it, modifying small aspects of that button using parameters.
Organization: Sass helps keep us organized. We can use multiple Sass files, one for layout, one for variables, one for mixins… etc, without worrying about having to call multiple CSS files in the DOM, helping our sites load faster with less bloat. Since you can configure Sass to combine all files into one flattened css file, we can use as many Sass files as we need to keep organized, knowing that when it comes time to render in browser, there will be only one CSS call.
Sass also let’s us nest our styles. Nesting is a great way to keep organized and reduce repetition. It allows us to nest elements inside other elements, reducing the amount of code we have to write, and providing a clear visual as to how the styles are laid out.
Modularity: Mixins allow us to write blocks of code that are reusable elsewhere in the stylesheet, or even between projects. Using Sass, it is easy to write a number of heavily modular styles that can be imported into every new project, allowing us to create our own css libraries and frameworks, based on our own custom needs.
Expandable: Smart people are creating things for Sass all the time and giving it away for free. Here is a great resource for Sass extensions. As of this writing, they are hosting over 100 extensions that expand what you can do with Sass. Everything from allowing you to create grids to writing vendor prefixes for you. We have a few favorites here at Zen Den, and I will provide some links at the bottom of this post.
Getting into Sass
Use as Little or as Much as You Want
Sounds great. So how do you get started? The best place is the official guide on the Sass website:
You can get started right away without knowing much. You can write vanilla CSS in a Sass file. If you want to write your stylesheets as normal, maybe using a few variables here and there, it’s not a problem. You can add-on to your knowledge as you go without having to dive in fully all at once.
Zen Den Recommended Extensions:
Breakpoint – Simplifies writing media queries.