Choosing a design or theme
This page is for website creators who decide how their site will look. In Exponential a design is a directory of templates, stylesheets, images and scripts; a theme is a design packaged as an extension. You can use a theme as it is, adapt it, or build your own. This page compares the three and shows how a siteaccess is pointed at a design.
Contents
- Three ways
- The themes that ship
- Adapting a theme the safe way
- Your own design
- Pointing a siteaccess at a design
- Decision checklist
Three ways
| Way | Work | Upgrades | Choose when |
|---|---|---|---|
| Use a shipped theme as it is | least: settings only | you get the theme's updates with Composer | the theme's look and classes fit |
| Adapt a theme in your own extension | some: overrides of the templates you change | the theme updates underneath; your overrides stay | you want the theme's structure with your brand |
| Build your own design | most: every template you need | only your own code | the look is specific, or you build on the layouts editor |
The themes that ship
| Theme (extension) | Design name | What it is | Read |
|---|---|---|---|
sevenx_themes_simple | simple | the light, responsive public design of the default installation; header with multi-level menu and cart, article, blog, gallery, product and basket templates | sevenx_themes_simple |
ezwebin | ezwebin | the classic Website Interface: articles, blogs, events, forums, galleries, products, RSS and shop pages | ezwebin |
ezdemo | ezdemo | the design with demo content | ezdemo |
sevenx_themes_media | media | the media site design used with the layouts editor | Layouts |
ezflow | ezflow | block-based pages of the classic flow extension | ezflow |
sevenx_themes_simple and ezwebin share the ezwebin classes, so content moves between them without changes.
Adapting a theme the safe way
A theme installed by Composer is replaced on every update. Never edit its files in place (sevenx_themes_simple, "Use it"). Instead:
Create your own design extension, for example
extension/mysite_design/withdesign/simple/templates/(the same design name as the theme) andsettings/design.ini.append.php:[ExtensionSettings] DesignExtensions[]=mysite_design */ ?>Activate it before the theme, so its files are found first:
# settings/override/site.ini.append.php [ExtensionSettings] ActiveAccessExtensions[]=mysite_design ActiveAccessExtensions[]=sevenx_themes_simpleCopy only the templates you change into your extension, keeping their paths, and change them there.
Add your stylesheet to
[StylesheetSettings] CSSFileList[]in your extension'sdesign.ini.append.php(Stylesheets and scripts for your site).Clear the caches for new template paths (
php bin/php/ezcache.php --clear-id=template-override --allow-root-userand--clear-tag=template).
Why it works: designs are searched in extension order, and the first file found wins (Designs, siteaccesses and the design fallback chain, Extension loading order).
Your own design
Start from a design with nothing in it and let the standard design answer everything you have not written yet:
extension/mysite_design/
├── design/mysite/
│ ├── templates/pagelayout.tpl the frame of every page
│ ├── override/templates/full/ templates per class, chosen by override rules
│ ├── stylesheets/
│ ├── images/
│ └── javascript/
└── settings/
├── design.ini.append.php DesignExtensions[]=mysite_design, CSSFileList[], JavaScriptList[]
└── siteaccess/<site>/override.ini.append.phpWrite the pagelayout first (The pagelayout: your site's frame), then one full and one line template per class (Template overrides for site builders).
Pointing a siteaccess at a design
# settings/siteaccess/<site>/site.ini.append.php
[DesignSettings]
SiteDesign=mysite
AdditionalSiteDesignList[]
AdditionalSiteDesignList[]=simpleSiteDesign is searched first, then each AdditionalSiteDesignList[] entry, then standard (StandardDesign in
settings/site.ini). Check what is in effect:
php bin/php/console exp:ini where site/DesignSettings/SiteDesign <site>Decision checklist
- To do: Do the shipped theme's classes fit the content model? If not, plan your own templates.
- To do: Is right-to-left needed? Check the theme's stylesheets (Right-to-left sites).
- To do: Does the theme meet your accessibility target? (Accessibility for site builders)
- To do: Who updates the theme, and how do you test an update before it goes live?
- To do: Is the design in Git, in your own extension, not in
design/of the installation?
Related pages
- Site packages and the themes that ship
- Templates and design
- Branding: site name, logo, favicon and meta tags
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
Become an Exponential Partner
Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.