In this section, we will investigate a few strategies for creating custom themes. We will create a custom theme, initially changing only CSS stylesheets, and then move on to a more sophisticated theme, making use of custom templates. Finally, we will create some PHP code that works more closely with the theme system itself. We will even implement a theme hook to provide a higher degree of customization for our theme.
In Drupal 6, themes are organized similarly to modules. Inside the main Drupal directory is a themes/
folder, which in turn has a number of subfolders, each named after the theme it provides:
These are the main "top level" themes that come with Drupal 6: Bluemarine, Chameleon, Garland, and Pushbutton. Later in the book, we will talk about sub-themes, (or derivative themes,) which are not visible here at the top level. By convention, they exist in subfolders within the "top level" theme that they rely upon.