I have decided to choose a base theme for the sites and make my life easier. At first I thought that I would have to create modules for each of my custom content types to give each type custom theming. I tried to write a module, and it proved too difficult for me. I just can not wrap my head around hook_alter or preprocess or pretty much any of these Drupal functions. I guess I’m just too dumb for that.
Anyway, started looking into base themes, and I am pretty sure I can use one to do what I want. I think I can place base theme .tpls in the main theme’s directory and the sub themes will inherit that information. That will make things much easier for me. I also think that if I create sub theme categories, like blog and store, then I can create sub-sub themes off of those to help the sites have a consistent feel. Plus, I won’t be redesigning node.tpl.php with every new theme I use.
Pretty early on I narrowed the base themes down to Zen, Clean, and Genesis. Here’s my impressions of the themes:
Zen
Zen is probably the rock star of the group. It’s been around forever and is reportedly used by over 40,000 websites as their base theme. I found a number of things annoying immediately:
- The project page claims they have fantastic documentation, but the links point to stuff for Drupal 5.x. The best information I could find was a list of the bizarre breakup of information into multiple .css files. This level of compartmentalizing seems overdone to me.
- Only 4 regions are shown on the logo. Is that Seriously all this thing offers? It’s never clear how many regions are offered anywhere I read.
- They brag on their tabbed navigation, but there were no screen captures to see it anywhere.
But so many people are using it, it must be great, right? And I was impressed by the efforts to keep the theme accessible. So I installed it and … drum roll please … rejected it immediately. My first reaction was “Ewwww…” and that’s a direct quote. The fonts are horrible, the padding is bad, the thing just looks AWFUL out of the box. I am not willing to fight all that. I can work from scratch more easily.
Result: rejected Zen within seconds of installation.
Clean
From the reviews and project manager’s description, I thought I might like Clean best out of the box. Anything that claims to focus on getting to a completed theme faster has an advantage immediately.
I liked Clean right out of the box. It has the “zen” feel that Zen doesn’t. It seems clean and crisp. Ready to go.
- Good font sizes +1
- Padding fat +1
- Layout seems simpler than Genesis, but upon closer analysis they are essentially the same. 0
- Doesn’t use standard submit button (important for add to cart buttons in shopping cart) -.5
- Some config options +.5
- Highlights search box content – nice bonus +.5
- Better menus +1
- No skip to content link (not essential, but worth noting) 0
- Comments suck -1
- Blockquote is pretty good +.5
- Tables okay -.5
- Tabs location is not standard (above title) -.5
- Ugly search -.5
- Uses pixel width for columns +.5
- Not fluid, uses logic to swap between stylesheets when sidebars are missing 0
- Does not come with default theming classes for primary and secondary header links. They are both the same. Odd -.5
- No emtpy classes for elements unthemed by Clean. You’ll have to hunt those down. -1 (for me)
Total score: +1.0
Genesis
I have seen some of the themes built off Genesis and was not impressed. But the descriptions were great, and it was named one of the most accessible themes out there so I decided to give it a whirl.
My first impression was “wow”. I’m not sure why this seemed so impressive, honestly. Maybe it was the navigation bar, which is really the main thing that differentiates this from Clean visually. Plus the tables look great.
- fonts seemed a little big OOTB -1
- sidebar menus ugly -1
- Uses 3-d submit button styling +1
- Better table styling (better shopping cart styling) +1
- No config options 0
- Nice width. Feels square and solid. +1
- More regions than clean +1
- Padding is skinny -1
- Configure blocks links when hovering +1
- Skip to content link (appears before logo) – nice bonus +.5
- Comments suck -1
- Blockquotes suck -.5
- Nice tabs +.5
- Nice error messages +.5
- Search looks natural +.5
- Uses percentages to control sidebar widths -.5
- Fluid at smaller screen sizes +.5
- Empty classes built into theme, makes Firebug easy for me +1
Total score: +2.5
Also Worth Noting
Both themes are 960 wide with collapsible left and right sidebar regions and are content source ordered. Nice.
Breadcrumbs are not in the content area. This is just different than I have themed before. It’s not a deal-breaker, just worth noting.
Top level of where content begins is within pixels in both themes. This could be important if (like me) you are trying to push main content up on the page.
I will probably have to add in some content regions at the bottom of the page on either theme. Genesis comes with something called gPanels which means that you can drop these regions in anywhere you like, and it claims they will work anywhere. Since I use so many custom content types, this could be an advantage for me.
It does bug me that Genesis uses percentages to control sidebar widths. I prefer the Clean method of pixels.
I am disappointed that neither theme made any attempt to theme comments, especially Clean. It would seem to me if you want something to be ready out of the box, comment theming is essential. Why take the time to theme blockquotes but not comments?
I personally like the empty classes present in Genesis. It makes using Firebug a lot easier for me.
Summary
It’s very close, and I’m having trouble deciding which to pick.
Genesis right out of the box feels dated. Clean uses a smaller font size with Lucida instead of Verdana and more padding, which makes it feel a little more modern. Also, underlining the hyperlinks and using the bullets on the menus makes Genesis seem bulky, too.
But Genesis has a clear advantage on administrative navigability and table theming, in my opinion. Changing the font sizes is a minor thing, and I will have to decide what’s the most important to me overall.
Final Decision
In the end it was the empty classes found in Genesis that cinched the deal. I use Firebug to tinker with my themes, and having the empty classes is a big plus for me. For some people all that extra information might be annoying or redundant. For me, it’s a usability issue.
So I will begin working on a Genesis subtheme today. Wish me luck!