How Do You Make A Drupal Theme?

Basically, if you really want to be simplistic about it, Drupal theme design can be split into two clear stages – the design and the build.

The design is the bit where all the creative stuff happens. It’s the ideas stage, the point of questions which start ‘I wonder…’, and ‘hang on a second, what about…’. This is the place where Photoshop becomes my new best friend, and I try to pull everything together into one pretty picture. I like this stage a lot.

The build is the bit where I take the pretty picture and turn into a real live web page/site. This is the stage where I put on my code-monkey hat. It’s also the point at which I wish for some freak occurrence whereby I wake up tomorrow and IE6 no longer exists ;) I like this stage as well, although maybe not quite as much as the design bit, but it’s marginal.

Ideally, I think that these two stages should be completed in this order – design first, build second. After all, would an architect build a house without a complete design? Unlikely. So why should the virtual world design and build theory be any different from the real? Yes, it is true that the problems one may encounter, and the penalties one may pay, by jumping the gun in the virtual world are probably less severe than in the real world, but it’s still wasted time, and time is a precious commodity for any designer.

However, it’s not just wasted time which is the problem. Coherent design is hard enough to come by anyway, and is only made harder still if you continue to yo-yo back and forth between a bit of design, then a bit of building, then a bit more design and so on. If you design everything first you will be looking at the whole picture. Furthermore, and perhaps most importantly of all, designing first means that you will be less likely to compromise on your design in order to accommodate your build.

Now I’m not saying that you shouldn’t consider your content before you start to design – far from it. In fact, I believe very strongly that the design should fit the content, and not the other way round. But this doesn’t mean that the design should be ignored or restricted because you’ve already decided that this block must go here and that block must go there. As I’ve said in a previous post you should not underestimate the importance of the look of your site, because rightly or wrongly people will to some extent judge both you and the quality of your product based upon this. The skill of a good theme designer, therefore, is to balance the design with the functionality and content, and create a coherent whole.

Unfortunately things are rarely this simple and, just like a kid who’s been told not to touch something, I must be honest and say that despite my best efforts there always seems to be some part of a design that I find myself fiddling with way after I’ve actually started to build the theme.

I justify this by saying that there is just no substitute for seeing how the whole thing looks in a live test environment. After all, it’s tempting to think that you’ll be able to figure stuff out as you go, or that you’ll find the answer to some design issue during the build stage that you weren’t able to resolve in the design stage. In truth, though, I rarely find that it is advantageous. Whilst I may resolve the issue this way, ultimately it’s almost always the case that it would have been both quicker, and easier, to figure out a solution first (during the design stage) and then implement it second (during the build stage).

12 comments

1
GuestSeptember 22nd 2007 @ 05:22PM

I expected ANSWER not philosophy.
HOW TO MAKE TEMPLATE?

2
LaurenceSeptember 22nd 2007 @ 06:36PM

Hi,
I'm planning to start a series of 'how to create a Drupal theme' posts very soon (maybe as soon as next week) so please come back and check those out.
Otherwise for now I'd suggest looking at the drupal.org theming forums and/or one of the few Drupal books available.

3
CellmodOctober 21st 2008 @ 02:01PM

It is a little vague :(

4
GuestNovember 12th 2008 @ 11:21PM

i needed info on migrating an existing html design into a drupal theme... i am familiar with the philosophies and paradigms of web page creation using photoshop and editplus

not very useful... sorry

5
ShaunNovember 14th 2008 @ 08:17AM

Excellent post. I very much agree about design first. The build part can be very quick and easy with the right tool - and this might answer the Guest question from last year too. http://psd2cssonline.com will take a PSD file and generate a working Drupal Theme (version 6.6) in about 20 seconds. You have to name some of the layers right, but the tool will generate all the code for you then. You'll still want to tweak some, but that 'live test environment' you mention is quick and easy this way.

6
un happyJanuary 2nd 2009 @ 10:31AM

waste of time

7
m13January 21st 2009 @ 10:52AM

I was also expecting an answer, not philosophy!

anyway, I really like your blog's design, keep up the good work.

for the rest of you, I think that this is where you have to go in order to get your answers :)

http://tips.webdesign10.com/how-to-make-a-drupal-theme

8
VadimFebruary 1st 2009 @ 08:37PM

Me too! Almost 1.5 years since hallow promises to start a seies of articles about creating themes - and no result still! I can't wait for so long! Enough is enough!!!

9
VinayakFebruary 7th 2009 @ 12:03PM

Theres nothing helpfull in this blog. really waste of time.

10
ChulakApril 15th 2009 @ 09:45PM

Yeah, but, How Do You Make A Drupal Theme?

11
GuestJune 23rd 2009 @ 11:55AM

Was kind of hoping an article "how-do-you-make-drupal-theme" would help me in some way to make a drupal theme.

Oh well.

12
GuestJune 28th 2009 @ 01:17AM

...so you make a theme how?

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

More information about formatting options