Theme & Theme Elements

For all but the simplest of sites, you’re going to need to create a custom theme. This is pretty much a foregone conclusion, and it’s the purpose of this book. Let’s plan out how our custom theme will work.

Theme Basics

We’re going to name our theme “Dreamrs”, and give it the theme handle dreamrs_theme. In Concrete CMS, themes have a user-friendly name, which can be any string of characters that gets displayed to editors, and a handle, which is a string of lowercase letters, with underscores used as separators between words. Any time something refers to a handle, you can safely assume these rules apply.

Theme Name: Dreamrs
Theme Handle: dreamrs_theme

We’ll set some additional options in our theme later in order to unlock certain cool Concrete features like grid framework and layout preset support. But for now, this is all we need to move on to the next step.

Reusable Elements

Before we get started defining page types and templates, let’s take a quick look at some of the ways these components are the same across all pages. When building Concrete themes, it’s usually pretty instructive to look at the top of the page, and look at the bottom of the page: most websites utilize a shared header and footer across all pages. Let’s figure out where those shared elements begin and end, and plan how they’ll be included in our theme.

Look at all the components in the screenshot below. A quick glance shows that, while the content changes between each view, the header and the footer are always the same:

Let’s plan to make these components into reusable header and footer elements, and include them through code on every page template in our Dreamrs theme.