Theming Philosophy
In my webinar yesterday with Acquia I talked about my theming philosophy. The webinar had over 900 attendees, so there wasn't a lot of room for discussion. I thought I'd kick off a series of blog posts where we can discuss some of the topics I covered in the talk. First up: my theming philosophy.
Regardless of whether I'm just a lazy front end developer, or a worker bee who values the contribution of the whole hive, I tend to do as little custom work as possible when building my themes. Instead, I pick the best base theme for the site I'm building, create a minimum viable theme (touching the least number of tpl.php files possible) and then theme the remainder of the site based on the user experience. Having a strong user story is really important for this style of theming. You must know every page a visitor will see and ensure that the pages all look right (or at least right enough for your time/money budget).
When building out my themes I focus on three main goals. Even though I see each of them as related to web design, they are not part of the actual design of the site. For example: I don't include user goals or business goals because these are goals that relate only to the theme itself (which is built after those design decisions have been made).
- Budget-Appropriate Web Design
-
- Know your Drupal toolkit. Know your budget.
- Focus on the biggest elements first.
- Work closely with your designer and your client to make sure you get the important things right.
- Theme with the markup you have, not the markup you'd like to have. (This is via Laura Scott.)
- Pixel perfect design is for print. Get over it.
- Accessible Web Design
- “Accessible web design refers to the philosophy and practice of designing web pages so that they can be navigated and read by everyone, regardless of location, experience, or the type of computer technology used.”
Australian Human Rights Commission- Know your guidelines (508 or WAI).
- Use a checklist.
- Use an automated testing suite.
- Test with users.
I've cribbed a list of accessibility testing tools from my new book. Let me know if you know of other good ones.
- Responsive Web Design
- “Any approach that delivers elegant visual experiences regardless of the size of the user’s display and the limitations or capabilities of the device” zeldman.
- Read: http://tinyurl.com/responsive-article
- Buy (and read): http://tinyurl.com/responsive-book
- Watch: http://tinyurl.com/pathtomobile
- Use: http://drupal.org/project/omega (Although I expect all base themes to be responsive by mid-2012 if not sooner.)
This is a new area for everyone. In the webinar when I asked if people were building (or being asked to build) responsive themes 200+ people raised their hand.
If you'd like to hear more about each of these points, you can view the recording of the webinar here.
This is definitely not the only approach to theming. My guess is that others may put more emphasis on semantic markup, or future-proofing theme files for layouts that don't exist yet. What approach do you take when building your Drupal themes?

Comments
12 October, 2011 - 10:33
Megan
The point about theming with the mark-up you have, and not the mark-up you wish you had is so true! I had to get over that pretty quickly when starting to work with Drupal. It isn't worth customizing a million .tpl files. I agree that being budget-aware is very important. Nobody can pay for perfection.
I prefer to take a different approach to avoiding customizations - I just work with the default templates, and add only the template customizations and CSS I need. I tried working with base themes early on and found them to be more of a hinderance than a help. I like knowing that every bit of code in my theme is there because it serves a purpose for this particular site.
Although, I do work with simpler sites than you probably do, so that might be a factor. I often suspect that there must be something big that I'm missing with base themes. I've just felt a lot better about my process since I stopped trying to use them.
Two other things I think are important are 1) doing things in the Drupal way. Work with it, not against it. Use the appropriate tools rather than hacking in custom code if you don't need to. Weigh the pros and cons of any customizations or additional modules. Adjusting the design might be a better route. And 2) Respecting and understanding the integrity of the design.
For the convenience of developers in the future (including myself, because I'll probably forget), I always include a README file with the theme, listing all the modules used and for what, and explaining any oddities and how-to's that someone else might find helpful.
13 October, 2011 - 09:48
emmajane
Adding a README with notes about the theme is a great idea.
I'll add more about base themes to the next blog post. :)
12 October, 2011 - 12:44
Julie
As potential clients, we want our Drupal site to be made in responsive design.
For a complete guide on responsive web design, read :
http://www.webdesignshock.com/responsive-web-design/
Use the Adaptivetheme base/starter theme:
http://drupal.org/project/adaptivetheme
or
http://drupal.org/project/pixture_reloaded
or
http://drupal.org/project/sky
or
http://drupal.org/project/corolla
12 October, 2011 - 13:16
Laura Scott
Thanks for the link about theming the markup you have. :)
Another relevant link people may find useful is this discussion on Drupal starter themes that follow responsive design: http://groups.drupal.org/node/175234 It's more of a discussion -- we need a wiki! -- but it's perhaps a shortcut to potential solutions.
12 October, 2011 - 13:24
zkrebs
If you know how to use template.php and can use views / panels / and know tpl.php files and css - theming is not hard to get results with in drupal
13 October, 2011 - 09:50
emmajane
This article wasn't about base themes specifically, but I'll do that one next. :) Thanks for the links!
Post new comment