Theme
A theme is a package that controls how content from a CMS is presented on the website.
Themes commonly define layouts, typography, styles, templates, and other aspects of the site's visual presentation.
What It Contains
Depending on the CMS, a theme may contain:
- Templates
- Components
- Stylesheets
- JavaScript
- Fonts
- Images and icons
- Design settings
- Navigation layouts
- Configuration
- Reusable presentation logic
For example, WordPress documents themes through its Theme Handbook, while Ghost provides its own theme development system built around Handlebars templates.
Theme vs. Template
A theme and a template are not the same thing.
A theme is the broader presentation system.
A Template describes the structure used for a particular type of page or content.
A theme might therefore contain:
- An article template
- A page template
- An author template
- A tag template
- An error template
along with the styles and shared components those templates use.
Theme vs. Component
A Component is an even smaller reusable unit.
For example:
Theme → Article template → Related-content component
These layers work together but solve different problems.
Why It Matters
A good theme creates consistency while allowing normal content to change independently.
Editors should generally be able to update:
- Titles
- Images
- Article content
- Calls to action
- Navigation
- Structured fields
without editing the underlying theme code.
Platforms can also expose controlled theme settings. Ghost, for example, supports custom theme settings that allow site owners to change predefined design options without editing theme files.
Common Problems
Common theme problems include:
- Hardcoded content
- Functionality buried inside the theme
- Large numbers of page-specific exceptions
- Direct modifications to a third-party theme that make updates difficult
- Theme settings exposing too many arbitrary design choices
- Changing themes unexpectedly breaking plugin functionality
- Templates duplicated instead of reused
- Themes controlling information that belongs in the Content Model
How to Improve
Keep presentation and content responsibilities separate.
Use templates and components for recurring visual structures while keeping editable information in the CMS.
When extending a third-party theme, document the changes and preserve a realistic update path.