An introduction to Omega/Delta

Feb. 12, 2012

So, I finally got around to playing with the Omega theme and Delta module people have been talking about. I was introduced to it at work by one of our developers, and he was very impressed, so thought I would give it a whirl to see what it could do for us. So, this site is now using an Omega child theme to display it's content, with modifications using Delta.

What is Omega?

Omega is a very advanced theme for Drupal 7, it gives a lot of flexibility around where regions are located using a GUI admin area, and with Delta, allows for different ordering layouts for different content types etc...

One of the big bonuses of Omega is that it comes with mobile support as standard, carrying several css files which are developed using a mobile first standard. So all pages use the thinnest css, with larger layouts adding css files so over-rides can be added to larger displays to improve it all.

The other big plus is the emphasis it puts on preprocessing functions. One of the big things that we have learnt recently, is how bad it is to have any php in template files, and that the fewer tpl.php files you have, the better. It comes with some predefined folders for preprocess functions to sit in for the various layouts, which should make things a lot easier.

Basic Setup of Omega

Setup is fairly basic now, if you have the omega tools module installed too. Just go into appearance and choose 'create new omega subtheme'. This will create the files for you to use then, with the naming structure required. From there you can play with the Zones and regions (zones are just really groups of regions).

But what about different layouts? Introducing Delta.

Omega is great for making a layout, but chances are, you will want to different layouts for different pages/sections within your site, this is where delta steps in. Delta allows you to duplicate the config for a theme, and modify it, this means you still only have one theme, but multiple configs. You can then assign these configs using the powerful context module, switching based on path, content type, or whatever you wish, so long as there is a preset for it.

Limitations

  • Complex for initial usage
  • Delta module is only available for Drupal 7 (so will need to keep template based tweaks in tpl files)

Things to still or play with

  • More intense preprocess development within the theme
  • Adding new regions/zones
  • Performance considerations
  • Some useful screencasts on the topics: