How to copy the Elemental theme to use as a base for new themes

This is a community-contributed tutorial. This tutorial is over a year old and may not apply to your version of Concrete CMS.
Apr 3, 2015

Here are the steps required to copy the Elemental theme to create a new theme called Test.

1. copy the elemental folder from the core themes directory into the application directory

copy from:
concrete\themes\

copy to:
application\themes\

2. rename the "elemental" folder to "test"

the theme folder name:
- must be lowercase
- cannot use spaces
- cannot use hyphens
- underscores can be used to separate words
Example:
my_theme

3. go to the Pages & Themes area in the dashboard

4. first error:

An unexpected error occurred. 
Cannot redeclare class Concrete\Theme\Elemental\PageTheme

5. first error fix: in page_theme.php

find:

namespace Concrete\Theme\Elemental;

change to:

namespace Application\Theme\Test;

when using folder names with underscores
- the underscore must be removed and replaced with CamelCase formatting
Example:
folder name: my_theme

namespace Application\Theme\MyTheme;

6. in your Test theme directory
version 5.7.4.2 or earlier
- open description.txt
- change "Elemental" to "Test"

if the folder was named my_theme
- change "Elemental" to "My Theme"

version 5.7.5 or later
- open page_theme.php
- look for getThemeName()

public function getThemeName()
{
    return t('Elemental');
}

change "Elemental" to "Test"

public function getThemeName()
{
    return t('Test');
}

7. install the Test theme

8. activate the Test theme

9. return to website

10. second error:

An unexpected error occurred.
File `../../../css/build/core/include/mixins.less` not found. in main.less

11. second error fix: in main.less (application\themes\test\css\main.less)

find:

@import "../../../css/build/core/include/mixins.less";

change to:

@import "../../../../concrete/css/build/core/include/mixins.less";

12. return to website

13. the site works and is now using a copy of Elemental called Test

Recent Tutorials
Edit domains and sitemaps
Apr 4, 2025
By myq.

How to create a sitemap when using an edit domain

Customize the default page title
Mar 12, 2025

Change the default " :: " and/or "site name :: page title" formatting separator to something else.

Configure Composer to work with a Page Type
Feb 20, 2025
By myq.

Fix the "Unable to load block into composer. You must edit this content from within the context of the page." error message

Permissions for editors in a multilingual site
Feb 2, 2025
By myq.

How to set up a multilingual Concrete CMS site for groups of language-specific editors

Restoring deleted pages using advanced search
Jan 16, 2025
By myq.

How to recover deleted pages when there are more than a few to choose from.

How to Automate the Copyright Year
Dec 27, 2024

Learn how to keep your website's copyright year updated automatically in Concrete CMS.

Improvements?

Let us know by posting here.