How Exponential themes differ
This page is for theme designers who have made themes for another content management system or for static sites. It gives the six ideas that work differently in Exponential, in a few sentences each, and points to the page that explains each one properly. Read it before you open your design tool, because several of these ideas change what you should draw.
Contents
- A theme is a stack, not a single folder
- Pages are content, not files
- One item, many views
- The frame and the content are separate
- Assets are packed, never inline
- Editors build some pages themselves
- What this means for your design files
A theme is a stack, not a single folder
A siteaccess (one way into the installation, often one site or one language) names a list of designs. For every template, stylesheet or image, the kernel searches that list in order and takes the first file it finds. This is the design cascade. Your theme therefore only contains what differs from the designs below it; everything else falls through to them.
For a designer this means you can start from a working site and change it piece by piece. You never need to design "everything" before anything shows.
Read: The design cascade, What a design is.
Pages are content, not files
There are no page files in a theme. Every page is a node of a content object of a content class (article, folder, event, product ...), and a template draws it. You design one article template, and it draws every article. Specific nodes, sections or parent folders can get their own template through overrides.
For a designer this means your mockups should be per content class and per view, not per URL. A "page" in a mockup is usually one class in its full view inside the frame.
Read: Mapping a design to content classes, Override basics.
One item, many views
The same article appears as a full page, as a line in a list, as a card in a block, as an embed inside another text. Each of these is a view mode with its own template. A design that only shows the full page is half a design.
Read: Designing view modes, View modes.
The frame and the content are separate
The pagelayout (pagelayout.tpl) is the frame: head, header, navigation, footer. The module (content view,
search, user login ...) produces the middle, which the pagelayout prints. Header and footer are designed once and
appear around everything, including search, login and error pages.
Read: The pagelayout, Designing headers and footers.
Assets are packed, never inline
Stylesheets and scripts are listed in settings and merged by the ezjscore packer into cached files. Templates
carry no <style> blocks, no style="" attributes and no inline scripts, so a strict Content Security Policy can be
used. Colors, spacing and fonts come from design tokens (CSS custom properties), each color with a dark value.
For a designer this means every visual value must be nameable as a token, and every variation must be expressible as a class. Plan for that in your design tool.
Read: Loading stylesheets, No inline CSS, Design tokens, From design tool variables to CSS custom properties.
Editors build some pages themselves
With Exponential Layouts, editors place blocks (text, list, gallery, hero ...) into the zones of a layout and choose a view type for each block. Your design supplies the look of every block and view type, but you do not decide which blocks appear in which order on those pages.
Read: Designing layout blocks, Layouts for designers.
What this means for your design files
| Habit from elsewhere | In Exponential |
|---|---|
| One mockup per page | One mockup per content class and view mode, plus the frame |
| Hard-coded colors and sizes | Named tokens, with dark values |
| Pixel-perfect sample text | Real content at its shortest and longest (Designing with real content) |
| A fixed home page | Often a layout built from blocks by editors |
| A theme replaces everything | A design overrides only what it changes |
Related pages
- Theme designers: start here
- Designers: start here
- Choosing a starting theme
- 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.