Sass Style Guide
css-tricks.com
css-tricks.com
But I really welcome these technologies, because anything that makes CSS more maintainable is welcome.
In case what I'm saying makes no sense: http://codepen.io/seraphzz/pen/ByEcx
https://developers.google.com/speed/docs/best-practices/rend...
See Github's slide deck on CSS performance, and what they gained by being smart about refactoring, and how they use selectors:
instead of the below which is just recreating the dom. This allows you to meaningfully target the elements you want instead of just blindly applying styles everywhere.
div { a {} div {} }
> List "Regular" Styles Next
> List @include(s) Next
Depends on what the @include gives you, I would either treat @include the same as @extend and put @include after @extend, or just treat @include as regular styles and mix them together. The reason for this is that I generally organize my styles by listing block styles first and then the text styles. It would mess up this organization if all @includes that set only 1 property are listed the last.
Hunting through this to set fonts and colors (the original intent of CSS) is a bit of a nightmare now. Could we solve this by creating a design only CSS style sheet that defines the variables that plug into this more complex system?
This way designers can tweak live code without hunting through long and difficult to read stylesheets that point to 50?! nested objects.
The number 50 you refer to is max number of lines of code the autor recommends inside of a nested rule, specifically so that you don't have to dig to far in to tweak a rule.
CSS preprocessors were scary to me at first, but I once I started digging in a bit I realized I could never ever go back.
The opposite approach is more useful: don't start using ID's unless you have a good reason. Classes can do anything (CSS-wise) that id's can, and lack the downsides (namely reusability and dealing with increased specificity, here's a pretty good write up: http://csswizardry.com/2011/09/when-using-ids-can-be-a-pain-...)
1. Large web applications will eventually demand this of you to break the large solution into smaller chunks (components/modules).
See this methodology: http://coding.smashingmagazine.com/2012/04/16/a-new-front-en...
SASS will help you follow whatever standard/methodology your team may be following.
2. And having multiple files will ease development on a large team. Having multiple frontend developers checking in code, it helps to organize, and alleviate one developer stepping on another when checking in SASS files into source control. No conflicts, if developer A is working on the footer, and developer B is working on the header, which are separate SASS files.
I don't agree that it slows down refactoring, and would argue it speeds it up. In the end, the multiple SASS files will probably (depending on how you do it, and your situation), compile down into one file. SASS also has options that allow you to say what the output looks like too (nested, expanded, compressed).
It's not like we are doing c or java under cvs, we don't have to split in minuscule files, therefore maybe we shouldn't, in python, js, or css dialects.
I also find Compass, Bourbon and Susy to be great assets.
The Chrome dev tools support is outstanding.
The biggest drawback is that there's no client side evaluation like less.js. This occasionally makes working with other people a bit tricky. I usually make a sandbox.css for them to fiddle with, and then incorporate their changes every so often.
I've seen less.js make its way into live sites enough times that this almost counts as a positive for Sass for me.
For beginners/designers to the whole precompiling CSS scene, setting up Ruby for the SASS/Compass toolchain could possibly be daunting. Although there are nice GUI alternatives: http://mac.appstorm.net/roundups/internet-roundup/5-mac-apps...
However I agree with other comments that it seems there are more tools/frameworks built on SASS (with Compass), that make it more appealing to me.