semitexa / theme
Semitexa theme/skin resolver layer + base theme (layouts, partials, default skin, SkinAlgorithmInterface contract). Framework + theme-base rolled into one package.
2026.10.29.1052
2026-10-29 17:37 UTC
Requires
- php: ^8.4
- semitexa/core: >=2026.10.29.1052 || dev-master
- semitexa/locale: *
- semitexa/ssr: >=2026.09.17.1037 || dev-master
- semitexa/tenancy: *
Requires (Dev)
- phpunit/phpunit: ^10.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-29 17:47:52 UTC
README
semitexa/theme
The theme and skin resolver, together with the base theme (theme-base): layouts, partials and token-driven skins over one shared markup set. A theme is chosen per request from its theme.json manifest (active_when: tenant, domain, locale), and themes can extend each other.
Install
Included in every project created by the installer (https://semitexa.com/install.sh).
What it provides
theme-base: layoutsone-column,two-columns-left,two-columns-right,three-columns,marketing; an error page; partials for head, header, nav, breadcrumbs and footer; the default skin.- Manifest-driven resolution (
ThemeResolverInterface,ThemeManifestRepositoryInterface) with an extends chain that is also the template fallback chain. SkinAlgorithmInterfaceand the skin builder thatsemitexa/platform-uiuses to generate skins.- Console commands:
bin/semitexa theme:scaffold [--slug=…] [--domain=…]creates a project theme insrc/theme/<slug>/that extendstheme-base;bin/semitexa theme:resolve [--tenant=…] [--domain=…] [--locale=…]shows which theme and skin apply to a context;bin/semitexa theme:validatechecks everytheme.jsonand exits 1 on errors.
Documentation
Commands: https://semitexa.com/docs/reference/commands-theme
License
MIT, see LICENSE.