Evaluating Base Themes
It’s rare in Drupal that you need to truly build a theme from scratch. It’s also rare that you should use Bartik as the base theme for your site (unless you want to — which is okay too). My three favourite base themes are NineSixty, Zen and Fusion. I like them for different reasons and each of the three themes only when it’s appropriate. Zen for its documentation, NineSixty for the speed of banging out a design as a theme, Fusion for client-controlled, future-proofed themes.
Even though I have my favourites I still like to stay up-to-date with what other base themes are doing. This blog post (and the video at the very bottom) cover how I evaluate base / starter themes. Note: I evaluate for themer experience first. The quality of the markup (semantic, valid, accessible) is not my priority at this stage because I'm usually adding my own markup to the mix as well. When you evaluate your base themes it may, however, be the first thing you want to evaluate. To each their own ... this is how I roll though.
This is not meant to be a how-to-use a base theme, nor is it meant to judge whether AT is better than Omega or better than this or better than that. All base themes have value to the team who created them. Most are also relevant to a larger community of themers. If you include different criteria when you are evaluating base themes, I'd love to hear from you.
- Download the base theme (usually with Drush) and look for a README file. If there is one—read it.
- Poke at the theme files but do not read comprehensively yet.
- Install the base theme and set it as your site’s default. Check it out. Repeat for any starter kits or alternate options that ship with the theme.
- Examine the default state of the theme applied to your Web site and look for helper info—for example region names printed out or wireframe borders. Omega ranks high on this test, Adaptive Theme ranks low. That doesn’t mean the themes you can build from this base theme will be better or worse, I just like to *see* how a theme will render and this is a quick no-code test.
- Check the theme settings page for what can be controlled from the UI—and more importantly what the theme expects you to control from the UI. For example: the width of a region may be controlled from a theme setting, or you may hard code it in your page template file. In NineSixty, for example, it’s hard coded. I’m cool with that when I just want to bang out a theme (or prototype a design). In Omega there are zones and regions and configurable widths in the administrative UI. This is also good, but different.
- How does the default theme behave with content? Often I skip this stage on a quick review, but Drush + Devel Generate makes it so easy to do that you might as well chuck some content into the site and see what happens.
- Finally I look at the code. You can definitely use validation checks, but I usually skip validation and assume things will be okay-ish out of the box. You may want to stop and make sure the code is going to be compliant with various standards and your personal moral code.
- What CSS is provided, and how is it structured? Is there one big CSS file, or lots of little files? Is there rtl support? (Do you even need right-to-left language support? Are you sure?)
- What tpl.php files are provided? What custom variables are used? Are the custom variables documented in the header of each template file, or do you need to know the core variables off-by-heart and guess at what’s provided by the theme? You may need to dig around in the file template.php to figure out how the variables are built, how core variables have been manipulated, and what each of the variables in the template files is actually doing.
- Now that you have an overview of how things fit together: think about how you build/receive your designs. If you use 17-column designs you will not be happy with a 12-column CSS grid framework. If you care about lean, semantic markup, mothership might be better than Zen for your workflow. Remember you are trying to save yourself work—if the base theme assumes “unnatural”-for-you workflow, choose a different base theme. Keep looking until you find something that “clicks” with how you work (you may even need to create your own).
- Rough out your last three designs with the base theme. Mentally (or on paper) sketch out how you would have built the design using the base theme you are evaluating. Remember you can add, or remove, (almost) any region, variable or markup you don’t like…but if you have to change a lot, ask yourself if this is the right base theme for you.
And there you have it: the steps I go through when evaluating a new base theme for Drupal.
In the video (below) I take a peek at currently popular responsive base themes AdaptiveTheme and Omega using my "from a themer's perspective" criteria that I outlined above.
Can't see the video in your reader? Click here to view the video.
If you're interested in finding out more on how to create a mobile-friendly, responsive web site faster by using base themes, sign up for my new workshop Responsive Web Design for Drupal.

Comments
11 November, 2011 - 08:40
Anonymous
It's ok to say that Zen, NineSixty and Fusion are personal favorites; nobody is going to argue with personal preferences.
But, objectively speaking, Zen, NineSixty and Fusion are losing their leadership roles and are falling seriously behind on innovations and trends. None of them are HTML5 after 10 months of release of Drupal 7. None of them are responsive web design.
On the other hand, Adaptivetheme and Omega are out of the gate leading the packs in responsive design and new technologies in design. Adaptivetheme and Omega have a different architecture and focus that cannot be compared to each other; one is more developer-friendly, the other is more user-friendly, but both are innovative and up to date. According to usage statistics, their adoption rate has skyrocketed in just a few months.
Any review or course on responsive design and base themes that does not give them serious consideration is not credible in my opinion.
11 November, 2011 - 10:22
emmajane
Hey Anonymous! Thanks for your tips on how you evaluate base themes too. Your input is much appreciated.
This blog post wasn't about "which theme is best." I identify my bias at the beginning because I think it's relevant and honest to name it. So few new-to-Drupal people know how to evaluate a base theme. Most assume they need to change their workflow to adapt to a base theme. This is simply not the case. Hopefully my review of how I evaluable base themes will be helpful for people who are trying to make their own way in Drupal theming.
11 November, 2011 - 15:31
DBowman
Thanks for the tutorial. It really helps as I am learning theming in Drupal.
13 November, 2011 - 11:58
Ihab Arnous
Thank you indeed, I came from a background of doing everything from scratch and I am struggling to adapt to the new ways of doing things. And it is really a very steep learning curve drupal has, it has been quite a time for me to become comfortable with the drupal terminology and how things supposedly to work. Bottom line I find zen is the most appropriate for newbies to drupal because of its outstanding documentations and resources.
Thanks again for your indeed appreciated work
Regards
Ihab Arnous
14 November, 2011 - 09:43
jmarkel
Thanks for the overview, Emma Jane. The specifics of the themes, while useful, are not as important IMO as the methodology you go through for evaluating the themes. Greatly appreciated.
I have tried various base themes (Zen, Fusion, Genesis, Omega, even Garland and Bartik) over the years as well as rolling my own. Using a pre-rolled base theme works better (for me) because it is more likely to have considered use cases I haven't. E.g. my sites rarely have a lot of user interaction, so I don't do much (if anything) with comments or even blogs - but on the occasions when my clients decide later on to add (say) blogs, the templates and css are already there, relieving me of laying the groundwork before fiddling with specific bits of css.
The base I've used a lot over my last dozen projects or so has been Genesis, from Jeff Burnz, who also created Adaptive Theme. OTOH, the site I'm working on now is being done with Omega as the base - I was attracted by the combination of 960, HTML5, and its at-the-GUI customizability. I had made several abortive tries at trying Omega before, but I have found that it's not quite congruent with my work style. I'm not yet sure if that's a "fault" of the theme or of my workflow - but either way, after fighting with some recalcitrant CSS (styling at the outer, rather than the inner, region classes, which cause the layout to break rather weirdly) I finally seem to have figured it out well enough.
FYI, for anyone interested in Omega, there is a #drupal-omega conference on IRC. Not hugely active, but getting to be more so as Omega becomes more used.
14 November, 2011 - 12:31
emmajane
I'm glad you've found it useful! :)
7 December, 2011 - 13:59
Gerard
Hi Emma Jane. Loved the post, it's come along just as I'm revisiting a theme I created for my Drupal 7 site.
I was interested in your take on evaluating base themes more from the point of view of wondering what the minimum requirements are for a Drupal theme. If you were releasing a theme publically, what would you include and what sort of things to Drupal users want?
I know WordPress has a developer plugin that checks the theme files against a strict set of requirements. The question is - does Drupal have anything similar that allows themers to check their work against a set of standards?
7 December, 2011 - 23:31
emmajane
I think it depends on the audience you intend to have for your theme. I have a couple of themes (literally two) on drupal.org that are sub-par in terms of the Zen gold-standard that I talk about in that video. They also require a lot of site building configuration, which I don't talk about in the documentation. My intention, however, was to have GPL code that goes along with my commercial training packages. This is quite different than a themer who's looking to sell their theme, or provide an awesome theme for others to use on their site. I'm not aware of a Drupal-specific plugin for checking themes. I know we've got them for SEO though. It's an interesting idea. I'll poke around to see if I can find one, or if the community knows of one. We definitely have requirements for themes that get into *core*, but I don't think that's what you're asking about.
22 December, 2011 - 05:19
Drupal Theme Garden
Hi Emma Jane. Thanks for this useful article.
I bumped to one (for me) new drupal base theme - Arctica (http://drupal.org/project/arctica). Arctica seems as advanced base theme.
What do you think about Artica?
Post new comment