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
Using the Concrete Migration Tool Addon
Apr 27, 2023

How to use the Concrete CMS Migration Tool

How To Add Page Last Updated To Your Concrete CMS Pages
Mar 7, 2023

Concrete CMS has a page attribute you can add to a global area called "Page Date Modified." Here's how to add it

How To Exclude Subpages from Navigation
Dec 24, 2022

How to exclude subpages from navigation - useful for a news or blog link in your main navigation where you don't want all the subpages to appear in a drop down menu.

How Can I Change The Maximum Size Of Uploaded files
Dec 13, 2022

This tutorial explains how to update your php settings.

Updating Concrete Themes from Version 8 to Version 9
Nov 24, 2022

This tutorial covers commonly encountered issues when upgrading a Concrete CMS theme from version 8 to version 9

Transferring ownership of an add-on and a theme
Nov 15, 2022
By katzueno.

If you encounter a Concrete CMS add-on or theme that you love but not being maintained, you may want to ask the author to help or take over the add-on or theme. Here is the quick step-by-step guide of how to transfer the ownership.

Was this information useful?
Thank you for your feedback.