Why are Drupal themes so unspectacular

I don’t intend for this to be trolling, but I was googling the term “Drupal is ugly” looking for why most of the themes which are formally submitted to drupal.org are so, umm, un-inspiring.

This found an interesting blog post from a well known Drupal developer AND designer who quit his involvement earlier this year.  The post was written in 2007, but things have changed little in my opinion—even with the release of Drupal version 6.

There is a lot of discussion about Drupal’s pull with designers and how so little talented designers have popped up in the Drupal community. One of the reasons why is that designing a theme that is both usable, extensible, and evocative (in the good sense) is really difficult.

WordPress follows a standard blog format (blog, article, comments, etc.). With these relatively constrained requirements, designers have managed to create a large ecosystem of high-quality themes. Drupal requires more work because:

    1. Templates are innocuously hidden in .php files. Scary. Said .php files use conditional statements. Even Scarier.
    2. Design is most often constrained by the context of the requirements. It is wholistic—you need a good picture of what you want out of the site. Better yet, a formal Information Architecture, User goals, User Stories—as far as you are willing to go. The more you understand, the easier it is to identify points where you can innovate. In contrast, Drupal default themes have to manage quite a bit of flexibility. Since default themes are meant to be general—there is no clear goal, no clear user stories—it’s all generic. You’ll never get something that looks kickass without knowing the audience. The last thing the Drupal community needs is another 3 column design.
    3. The fact that a designer has to think of a location for the admin menu makes it very hard (granted the admin menu module is very helpful). Admin functionality is normally NOT exposed in the public site. I don’t know if it is a best practice, but I can’t think of any other system (Vignette, Joomla, WordPress, Textpattern, modx, ExpressionEngine, SilverStripe, Documentum, etc.) that mixes the admin interface with the public site theme. Make them separate and optimize for their users (e.g., The admin interface pages are in general too long—consider using vertical tabs to minimize all the scrolling). NOTE: Definitely keep the edit tabs (I would use buttons instead), when the user is in admin mode, but allow them to view the public site

I think Drupal needs to separate the admin portion of the site with it’s public view. It needs to optimize the admin interface, create a dashboard, and allow the user to preview the site.

Drupal should take a look at tag-based theming engines like Textpattern, Expression Engine, and modx.

The mental model of designers is neither modular nor conditional. It is wholistic and almost static. Templates are separate page layouts: Homepage, Article, Search, Admin, User Profile.  I think that this is the way to go when creating a Drupal Template — make it page based.

Right now, you really need two people to develop a theme, a designer who is familiar with Drupal and has a specific goal and a Webdeveloper to cut up the comp, write the HTML and CSS, optimize for conditional statements and code. For those talented enough to be able to do user experience/visual design and development there are, quite frankly, easier systems out there (ExpressionEngine comes to mind, it has similar functionality to CCK and Views modules).  They are not Drupal; most likely don’t perform as well, and/or are a tad less flexible.  However, they allow results to be produce much more quickly.

There is no doubt that PHPTemplate can be as simple or as complex as you want it be. However, don’t expect to ever get great “universal” themes. You need to constrain it.

Get a kick ass Admin theme that is optimized based on the user-tasks. Create 2-4 kickass themes limited to: 1) Blog, 2) Small Business page, 3) Corporate page, 4) Community Publishing site and have them available out of the box.

I’m hoping with the recent usability testing that Drupal has gone through, that D7 will be even better.  I am praying for a separate, optimized Admin experience.  However, I think that PHPTemplate is there to stay—and that is a serious problem to adoption in my opinion.