What Is a CMS "Theme"?

The theme for a CMS is a collection of code files and (usually) images that determine how a CMS website looks.

How is a "theme" different from a "template"?

In the CMS world, ​template and theme basically refer to the same thing. The word used depends on the CMS. Drupal and WordPress use the word theme, while Joomla uses the word template.

Note that Drupal does have a separate concept of template files, but don't let that confuse you. When you're talking about the single "thing" that controls how most or all of a Drupal site looks, you call that the theme.

Themes Change the "Look" of the Site

When you think about how a site "looks", you're probably thinking of the theme. The goal of a theme system is to let you change the look of the entire site all at once, on every page, while leaving the content intact. Even if your site has thousands of pages, you can change to a new theme quickly.

Some Themes Include Extra Functionality

In theory, a theme (or template) focuses on the "look", and adds little, if any, functionality to your site. If you want a little box in the sidebar to do something special, you'll need to find a separate module, ​​plugin, or extension, depending on your CMS.

In practice, many themes (or templates) seem to include lots of extra features which you can enable. It also seems that paid themes (which are almost unknown in the Drupal world) are likely to include this extra functionality. The web page for a paid WordPress theme or Joomla template often includes various extra features as a major selling point.

If a paid theme solves all your problems in one fell swoop, and it's well maintained, it's not necessarily a bad idea. Some of these paid themes remind me of Drupal distributions. They seem to be trying to package every extra thing you might need on your website.