Theme Hues 2

I am happy to announce the release of the beta version of Theme Hues 2, a complete rewrite of the module that greatly enhances the functionality of Theme Hues and responds to many of the requests users have submitted over the last year.

I don't currently use the module daily, so I'm relying on users to provide feedback on this new version.

D6 / D7

I've released Theme Hues 2 as the recommended release for the D6 branch of this project. Theme Hues 1 will no longer be supported as of this release, so everyone is encouraged to update. I will handle bugs as quickly as possible during the first few months of Theme Hues 2 being in the wild.

Theme Hues 2 for Drupal 7 released

The migration from the old D6 database format has been removed. You MUST upgrade to the latest D6 version before upgrading to this version in D7 if you want to keep your data.

Drupal 6 EOL (end of life)

With the working release of the D7 version, I will no longer be developing for D6 versions, making this version officially EOL.

I will continue to provide sporadic bug fixes, and of course fix any security issues for the immediate future.

The D6 version will be considered obsolete at the end of 2011.


Theme Hues uses collections of css selectors to allow users to change the properties of selected CSS selectors. Collections of selectors, or rulesets, can be grouped together to allow a designer to maintain an overall chromatic or visual effect by grouping theme elements (all menu items, all headers, or all text that needs special attention, for instance) and allow users to alter colors and settings for those specific groups. Not only does this promote good ui practice, it avoids the MySpace affliction that can come when non-designers are given too much power.


A ruleset contains multiple selectors and properties that work together as a group to give the user a flexible but controlled way of controlling their look and feel.


Each ruleset contains at least one selector definition, which allows a designer to associate any number of selectors with a single CSS property. For example, I can define


as a selector setting, and assign 'color' as the property. End users will then be able to select a single color that will be assigned to all of the associated selectors.


Any CSS property that allows an image (background-image, for example) can be configured to allow the administrator to pre-select images that the user can choose from, or allow the end user to upload their own files, or both.


Each ruleset can also be restricted in who sees the custom settings. TH2 defines a number of contexts, each configurable to restrict visibility as desired.

The contexts are

Inclusion of CSS customization may be restricted by:
  • user (changes are only visible to the user who made them, for example)
  • role (only users of a certain role may see the changes)
  • content (all users may see changes, but only on content created by the user who made them)
  • type (changes are only visible on nodes of a given content type)
  • nid (changes are only visible on the page of a given node)
Changes are only visibile for a given path -- ie. node/% or /some/custom/path
Changes are only visible to a given domain (for multi-site installations)
Changes are only visible when a given theme is active.

Contexts are exclusively cumulative and can be set for each rule. That is, a rule which restricts to some USER ROLE and a given CONTENT TYPE will only be visible when someone with USER ROLE views a node of CONTENT TYPE.

End user

Once the administrator sets up the rulesets, end users may choose their settings. On javascript enabled browsers, changes will be seen in real time, as the user makes their selection.

If you want the user to be able to choose colors with a color picker, download the JavaScript color picker script ( and unpack into this directory (ie. yoursite/sites/all/modules/theme_hues/jscolor).

A future version of this module will use the jquery_colorpicker module.

Use the standard Drupal permissions settings to control who can make customizations.

Old Documentation

With the release of the working D7 code, Theme Hues 1 is now EOL and no longer supported.

Please update to the latest D6 and D7 versions.

D7 upgrades from D6 Theme Hues 1

If you are migrating from Theme Hues 1 on D6 to D7, DO NOT MIGRATE DIRECTLY. You will lose your current settings.

Instead, upgrade to the latest D6, which will migrate your settings to the current database format. Then, upgrade to D7.


Here are features I plan to add in a (not-too-distant) future version of the module, roughly in order of importance.

Uploadable fonts
Allowing admins and users to add their own fonts using the font-face property.
CSS spec validation
Validate CSS properties and selectors for correct CSS spec conformity.
Add various blocks to extend Theme Hues.
Amazon S3 support
#1228222: Amazon S3 support
Token support
#1228196: Token Support

This module is supported by Evolving Design

If you have a specific request, please create an issue. Offers to bribe me with economic, gastronomic or other remuneration is a sure-fire way to move your issue to the top of the priority list!

Project Information