This month's Denver Drupal meetup was the first in a long time focused on the front end. Possibly related, we also had a lot of new attendees this month. Yay.
Before we got into our main presentation, I asked everyone to answer the old "Good, Fast, Cheap, pick two" question. After some creative answers (e.g. picking just one, picking one twice), good has 29 votes, while cheap and fast tied at 14 each.
After that excitement, John Ferris talked about Scalable Stylesheets. As Drupal sites get bigger, we have more CSS and more people touching the CSS, so having a plan to organize CSS is increasingly important. John talked about a few different approaches organizing CSS, including SMACSS (pronounced "smacks"), OOCSS (pronounced "ox"), and what he called "Drupal CSS," or DCSS (maybe just don't say it out loud). The particular approach to organizing CSS isn't as important as just having a plan.
John went through his plan for CSS, based on some broad principles like don't repeat yourself, separation of concerns, and consistent naming conventions. Many of these principles are familiar in programming, and it's interesting to see how well they also apply to CSS.
Much of what John showed involved making CSS simpler by taking control of the classes in your markup, which in Drupal means either using UI theming modules or writing PHP code. Because it's nice to have this stuff in version control, John prefers the PHP option, and shared some of his theme PHP on github. In general, this code replaces Drupal's generalized classes with more meaningful and reusable classes.
At the end, John showed some examples of how quickly he could change designs by using a modular CSS architecture, which was impressive. Slides for an earlier version of this presentation are available on the Design 4 Drupal site. If you'd like to see it in action, you might also check out the center theme sandbox project.
After the presentation, we had a little time for general Drupal questions. A question on how to get Feeds unstuck on an import led to a quick answer to clear out the job schedule database table. A question on deciding between career focus or generality in Drupal led to a longer conversation. Summary: it depends.
When we ran out of time at the meetup, many of us headed down to the post-meetup hangout. Good times were had. Join us next month.