PHPackages                             sbuerk/theme-extension-development - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. sbuerk/theme-extension-development

ActiveTypo3-cms-extension[Testing &amp; Quality](/categories/testing)

sbuerk/theme-extension-development
==================================

TYPO3 frontend theme for development purposes: extension development, DDEV based test instances and acceptance tests.

1.x-dev(yesterday)00GPL-2.0-or-laterPHPPHP ^8.1 || ^8.2 || ^8.3 || ^8.4CI passing

Since Aug 17Pushed yesterdayCompare

[ Source](https://github.com/sbuerk/theme-extension-development)[ Packagist](https://packagist.org/packages/sbuerk/theme-extension-development)[ Docs](https://github.com/sbuerk/theme-extension-development)[ RSS](/packages/sbuerk-theme-extension-development/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (11)Versions (3)Used By (0)

TYPO3 extension `theme_extension_development`
=============================================

[](#typo3-extension-theme_extension_development)

A TYPO3 frontend theme for **development purposes**. Its job is to give a TYPO3 installation a reasonable frontend to look at and to render against, without building a site package for it first.

- **Package name**: `sbuerk/theme-extension-development`
- **Extension key**: `theme_extension_development`
- **Repository**:
- **License**: GPL-2.0-or-later

Important

**The theme is not finished** — the section below describes what this package is for; see [Status](#status) for what it already does.

It is a development tool, not a production theme.

What it is for
--------------

[](#what-it-is-for)

The situations it is built for, where an extension has to be seen or exercised in a frontend rather than only in a test assertion:

- **Extension development**, to click through what an extension actually outputs instead of reading the rendered HTML in a test failure.
- **DDEV based test instances** of an extension repository, where a throwaway TYPO3 installation needs a frontend rendering pages, navigation and content elements.
- **Acceptance tests**, which need a stable and predictable frontend to drive a browser against.
- **Reproducing an issue** in a minimal installation before debugging it.

→ [Introduction](Documentation/Introduction/Index.rst) states the same for users and integrators, with the full scope warning.

Status
------

[](#status)

**The theme renders a page, and not much more yet.** A site enables it by depending on the site set `sbuerk/theme-extension-development`, which brings the TypoScript, a Fluid page rendering and the compiled stylesheet.

It renders **Header**, **Text** and **Images** without depending on `fluid_styled_content`. The remaining classic elements — Text &amp; Media, Bullet List, Table, File Links, the menus — **can be created**: their TCA comes from EXT:frontend, and what `fluid_styled_content` contributes is only the rendering. They render the TYPO3 "no rendering definition" notice until the theme gives them a template, which needs no TCA of its own.

Backend layouts are missing too, so every page renders the same template.

The stylesheet is built from a documented set of design tokens with a light and a dark appearance — see [`DESIGN.md`](DESIGN.md). They are CSS custom properties, so a site package re-themes the extension by overriding a handful of them, without rebuilding the SCSS.

Underneath that sits the foundation: TYPO3 v13 and v14 support from one code base, the core version aware wiring, the SCSS build, two development instances and the container based test and quality gate harness. The public API is not stable yet and may change without a deprecation phase until the first stable release.

Compatibility
-------------

[](#compatibility)

BranchExtensionTYPO3PHP`main`2.xv13.4 / v14.38.2 - 8.5`1`1.xv12.4 / v13.48.1 - 8.4`main` is the development line and the branch to open a pull request against. Branch `1` is the maintained line for the previous core version tuple; PHP 8.1 is supported there for TYPO3 v12 only, because TYPO3 v13.4 requires PHP 8.2.

Installation
------------

[](#installation)

Being a development tool, it usually belongs in `require-dev` — of the extension repository whose frontend you want to look at, or of the test instance you set up for it:

```
composer require --dev sbuerk/theme-extension-development
```

As long as no stable version has been released, require the development version of the main branch explicitly:

```
composer require --dev sbuerk/theme-extension-development:^2.0@dev
```

This additionally requires `minimum-stability: "dev"` together with `prefer-stable: true` in the root `composer.json` file.

Documentation
-------------

[](#documentation)

ForWhereUsers and integrators[`Documentation/`](Documentation), rendered to docs.typo3.orgDevelopers and maintainers[`docs/`](docs/Index.md)Contributors, entry point[`CONTRIBUTING.md`](CONTRIBUTING.md)AI coding agents[`AGENTS.md`](AGENTS.md)```
# Render once, as CI does. Must pass without errors.
Build/Scripts/runTests.sh -s renderDocumentation

# Serve it while writing, re-rendering on every save, on port 1337.
Build/Scripts/runTests.sh -s watchDocumentation
```

The rendered output is written to the git-ignored `Documentation-GENERATED-temp/`directory.

Development
-----------

[](#development)

All tests and quality tools run in containers through the [`Build/Scripts/runTests.sh`](Build/Scripts/runTests.sh) wrapper. The only requirement on the host is a container runtime — **podman** (preferred) or **docker**.

```
# Install dependencies for TYPO3 v13 on PHP 8.2 (default matrix).
Build/Scripts/runTests.sh -t 13 -p 8.2 -s composerUpdate

# Quality gates.
Build/Scripts/runTests.sh -s cgl -n
Build/Scripts/runTests.sh -s phpstan
Build/Scripts/runTests.sh -s lintPhp

# Tests.
Build/Scripts/runTests.sh -s unit
Build/Scripts/runTests.sh -s functional -d sqlite

# All available options.
Build/Scripts/runTests.sh -h
```

Everything has to pass for **both** TYPO3 v13 and v14, each after the matching `composerUpdate` — see [Dual core setup](docs/development/dual-core-setup.md).

→ [`CONTRIBUTING.md`](CONTRIBUTING.md) for the contribution workflow · [`docs/`](docs/Index.md) for the full developer documentation

License
-------

[](#license)

This extension is published under the [GPL-2.0-or-later](LICENSE) license.

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance100

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 97.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1453466?v=4)[Stefan Bürk](/maintainers/sbuerk)[@sbuerk](https://github.com/sbuerk)

---

Top Contributors

[![sbuerk](https://avatars.githubusercontent.com/u/1453466?v=4)](https://github.com/sbuerk "sbuerk (35 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (1 commits)")

---

Tags

testingdevelopmentthemefrontendtypo3typo3-cms-extensionddevacceptance tests

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/sbuerk-theme-extension-development/health.svg)

```
[![Health](https://phpackages.com/badges/sbuerk-theme-extension-development/health.svg)](https://phpackages.com/packages/sbuerk-theme-extension-development)
```

###  Alternatives

[behat/behat

Scenario-oriented BDD framework for PHP

4.0k103.4M2.3k](/packages/behat-behat)[typo3/testing-framework

The TYPO3 testing framework provides base classes for unit and functional testing.

675.7M1.4k](/packages/typo3-testing-framework)[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103574.3k69](/packages/friendsoftypo3-content-blocks)[typo3/cms-styleguide

TYPO3 extension to showcase TYPO3 Backend capabilities

105768.9k39](/packages/typo3-cms-styleguide)[wazum/sluggi

TYPO3 extension for URL slug management with inline editing, auto-sync, locking, access control, and redirects

40543.5k](/packages/wazum-sluggi)[in2code/femanager

Modern TYPO3 Frontend User Registration.

50806.4k8](/packages/in2code-femanager)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
