About theming

The spam filter installed on this site is currently unavailable. Per site policy, we are unable to accept new submissions until that problem is resolved. Please try resubmitting the form in a couple of minutes.

A "theme" is a collection of files that define the presentation layer or "look and feel" of a Drupal site. A theme specifies both the underlying page structure (the regions of a browser page where content can be placed), the cascading style sheets (CSS) that control fonts, colours, etc. and possibly JavaScript (commonly used to create dynamic page elements).

A theme can also be used to override (modify or replace) the text and variables that are generated by modules. For example, a theme can be used to replace the default label on the Search button or to hide and display certain fields that are part of a particular content type. You can also override the default CSS classes that might appear in your content.

Often a theme is used simply to define the look and feel of an entire site, but it can also be used to customize the look and feel of certain sections of a site, of certain types of content, and even of individual nodes or pages. For example, your theme could specify a different look for the front page of your site.

Depending on the kind of theming work you are doing, you will need some knowledge of the following subjects:

* xHTML and CSS.
* JavaScript and jQuery (only if your theme needs scripting).
* The terminology used in Drupal.

A basic knowledge of PHP is needed for some tasks, but it is possible to avoid it entirely, especially if you do not have a need to override functions.

If you ever get stuck on a problem, read the best practices page, check the troubleshooting FAQ, ask in the theming forum or on IRC @ #drupal-themes. See How to effectively use IRC for instructions. You can also view a number of theming videos which guide you through common scenarios.

For information on installing contributed themes, please visit the Contributed Themes section of the Getting Started Guide.

If you are developing a module that outputs presentation data, then please read the theme section in the module developers guide. All output should be themable.

Post new comment

  • 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.

More information about formatting options