Theme extensions: start here
A design you build for Exponential becomes useful to other people when it lives in a theme extension: one folder
under extension/ that holds the templates, stylesheets, scripts, images, settings and the small metadata files
that tell an installation who the theme is. This section shows how to build that folder correctly and how to pack it
as a Composer package or as an Exponential package (.ezpkg).
How the design itself is made (templates, overrides, stylesheets, dark mode, accessibility) is explained in Theme design and Templates. This section is about the container around it.
A reading order
- Understand the idea: What a theme extension is, Naming your theme extension, The folder structure of a theme extension.
- Generate a skeleton: The design extension wizard, then From the wizard's output to the first commit.
- Describe it: ezinfo.php, extension.xml, Keeping every version field in sync.
- Wire it in: Registering the design, Activating a theme, Loading order.
- Pack it: composer.json for a theme or the package creator wizard; Composer package or .ezpkg helps you choose.
- Check it: Checklist: the theme extension is ready.
Then continue with Distributing a theme.
Every page of this section
Related pages
- Extensions: find, install, configure, build and release
- Packages
- Distributing a theme: start here
- The maintenance life cycle: start here
- 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.