---
title: "Feature: A seeded showcase of every element"
manual: "Frontend Theme for Extension Development"
version: "main"
source: "Changelog/2.0/Feature-SeededShowcaseTree.rst"
modified: "2026-09-17T04:52:50+00:00"
---

# Feature: A seeded showcase of every element

## Description

The extension ships a showcase page tree as a seed set of
[sbuerk/data-factory](https://packagist.org/packages/sbuerk/data-factory),
in `EXT:theme_extension_development/Configuration/DataFactory/theme-demo/`.
That extension is suggested, not required: the set is inert data until it is
installed, and nothing in the theme reads it.

```bash
composer require --dev sbuerk/data-factory
vendor/bin/typo3 data-factory:import theme-demo
```

The tree demonstrates the whole theme rather than a handful of pages:

| Page | Backend layout | What it shows |
| --- | --- | --- |
| **Theme demo** (`/`) | **Start page** | The site root, and the footer columns that layout adds. |
| **Typography** (`/typography`) | **Content page** | Headings, running text and the inline cases a stylesheet has to answer for. |
| **Media** (`/media`) | **Content page** | A single image, and a two column gallery. |
| **Empty page** (`/empty`) | *none* | A page with no layout selected, which falls back to the default. |
| **Elements** (`/elements`) | **Content page** | The showcase branch, and the parent of the three pages below. |
| **Core elements** (`/elements/core`) | **Content page with sidebar** | Every classic content element the theme renders, once each. |
| **Menu elements** (`/elements/menu`) | **Content page with sidebar** | All eleven menu elements, each pointed at a different part of the tree so they are told apart by what they list. |
| **Theme elements** (`/elements/theme`) | **Content page** | Every element the extension registers itself, with their inline children filled in. |
| **Styleguide** (`/styleguide`) | **Styleguide** | The component library, rendered from Fluid rather than from content. |
| **Forms** (`/forms`) | **Form showcase** | A request form built from the form components, see [Feature: Form showcase](Feature-FormShowcase.html#feature-form-showcase). |

Between them the pages use every backend layout the extension registers and
carry every content type it renders, so a single seeded instance answers what
the theme does with each. Two of the pages are deliberate special cases:
**Empty page** selects no backend layout at all, which is the only way
to see the default fallback. **Styleguide** and **Forms** are
in the main navigation, see [Feature: A showcase page per element and per variant](Feature-ShowcaseSections.html#feature-showcase-sections); neither is
disabled - a disabled page returns 404 in the frontend and is only reachable
through a preview link, which defeats the point of seeding a page that exists
to be opened.

## Known limitation

**Categorized pages** and **Categorized content** are part of
the seeded tree but select nothing: the set seeds no `sys_category`
records. Both elements render an empty menu, which is the correct rendering of
"no category chosen".

## Impact

`vendor/bin/typo3 data-factory:import theme-demo` produces a frontend that
exercises the theme end to end, so a development or test instance needs no
pages built by hand to see what an element looks like.

The set declares the uid of every record it writes - pages 1 to 10 and the
pages of [Feature: A showcase page per element and per variant](Feature-ShowcaseSections.html#feature-showcase-sections), content elements from 101 - because the records point at each other by uid: the links
name `t3://page?uid=2`, the **Insert records** element names
`tt_content_601`, and a site configuration names its root page. The import
therefore needs an installation where those uids are free, and refuses rather
than overwrites when they are not. `--root-page=<uid>` writes the tree below
an existing page instead of at the root of the page tree, which changes where
it lands and not which uids it takes. The set declares no site configuration:
create one with root page `1` after importing it at the page tree root.
