I will soon start building a new reasonably large site, that will be presented to the end-user as several different sites. Different domains will map to different sections within the site, and will also have different themes.

How should I implement the "multi-theme"?

I'll be posting some ideas of my own, which I would love some feedback on, but would also very much like to hear other suggestions.

4 Answers 4


I use the Themekey module. This allows me to give each area a distinct look without even touching any code. It also integrates with the Print, Revisioning, Organic Groups, and other major modules out-of-the-box.

Some of the things this module enables you to do (from the module page):

  • individually-styled channels
  • a front-page / "splash" screen
  • a date/time-selected Christmas theme
  • mobile themes for different auto-detected mobile devices
  • special themes for "limited" or "old" browsers
  • content, user, or role -specific themes
  • indicating your environment (production, staging, testing, sandbox, … )
  • testing your redesign safely on a live server

Implement several themes, possibly with a common base theme, and switch theme in code, such as suggested over here: How do I change a theme based on the URL?


Implement a single theme, with all the different themes inside it, and stick a class="name_of_sub_section" onto the body element.


I am not sure if it will fit your bill, but the Domain Access module may work for you. With it, you can map different themes to different domains (the Domain Theme submodule) does this. I haven't used it for theme switching, but I have use other features of the module with good success.

Another option is to use the Context module, possible with combination with Delta. With this you can have different portions of your site mapped to different contexts, and then have various reactions associated with them. I don't use this technique, but I have colleagues who do.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.