Scalable and Modular Architecture for CSS
smacss.com
smacss.com
It's not obvious that Base, Layout, Modules and State are separate articles when you've already defined them under Four Types. I assumed the links in the ToC were anchor links (I was on an Android). You also define Module before Layout in Four Types.
You need to do something about the flow between the chapters. First of all: A big link to the next chapter at the bottom. Some of the chapters also ended a little abruptly (e.g. Applicability). Even though the chapters are quite small, it's still important to have some kind of "conclusion". It could be just one or two sentences, but you need to show that "I'm finished with this topic for now".
I'd love to see more examples about different of modules. What modules do you almost always need in a project? When do you split one module into two? How small can a module be? How big?
This seems very similar to OOCSS: http://www.slideshare.net/stubbornella/object-oriented-css. I can't find the right presentation right now, but Stubbornella had a great slide where she showed how often the Media-module is used in Facebook (it's everywhere!) and how much code was reduced by introducing it. That would be a great example for you too :-)
Did you really work on Yahoo! Mail? Well, don't wait until chapter 2 to say it! I have no idea who you even are in the introduction. I mean, your name is only in the footer. Move your name to be a part of the title and tell what proper projects you've been working on (so I know I can trust you)!
I'll definitely work on the rest. All of your input is spot on, I think.
Thank you for the very thoughtful feedback.
Only include a selector that includes semantics. A span or div holds none. A heading has some. A class defined on an element has plenty. [...] The more semantically generic the HTML element (like a span or div), the more likely it will create a conflict down the road. Elements with greater semantics like headings are more likely to appear by themselves within a container and you're more likely able to use an element selector successfully.
SASS makes it extremely easy to generate loads of really complex selectors that are very tightly coupled to the HTML they are styling.
Mixins also makes it very easy to end up with badly bloated CSS. When a mixin defines a gradient and you apply it to different selectors, you'll get the whole bunch of browser prefixed gradient declarations repeated in lots of different places of your final css. A simple class with the gradient defined used in the HTML will make the final CSS much leaner.
Personally I've decided to limit my use of SASS/compass far more and follow a style much closer to what's described in this article.
If you have any additional categorization that you think would be applicable, however, I'm open to feedback.
Guess my underbelly feeling may simply be wrong then :)