Theme-Struktur verstehen: registration.php, theme.xml, view.xml, Verzeichnisaufbau
Theme-Struktur verstehen: registration.php, theme.xml, view.xml, Verzeichnisaufbau
~6 Min. Lesezeit Zuletzt aktualisiert am 9. August 2026
In Kapitel 3 haben wir die zwei Kern-Dateien eines Themes bereits kurz gesehen. Jetzt schauen wir uns die vollständige Verzeichnisstruktur an, die ein Hyvä-Child-Theme über die Zeit annimmt, und was jede Datei konkret bewirkt.
Die Pflichtdateien eines Themes
registration.php- meldet das Theme bei MagentosComponentRegistraran. Ohne diese Datei kennt Magento das Theme gar nicht.theme.xml- enthält Titel, Parent-Theme und Vorschaubild. Der<parent>-Wert ist hier der wichtigste Teil.composer.json- macht das Theme zu einem eigenen Composer-Paket, inklusive Abhängigkeit auf das Hyvä-Parent-Theme.
view.xml: Bildgrößen und Galerie-Konfiguration
etc/view.xml definiert unter anderem Bildgrößen (Produktbilder, Galerie-Thumbnails) und Konfiguration für den Bild-Optimierer. Hyvä-Themes bringen bereits sinnvolle Defaults mit - eigene Anpassungen (z. B. andere Bildbreiten für die neue Team-Seite, die wir später bauen) kommen in die view.xml des Child-Themes.
Typische Verzeichnisstruktur eines gewachsenen Hyvä-Themes
app/design/frontend/Mironsoft/default/
├── registration.php
├── theme.xml
├── composer.json
├── etc/
│ └── view.xml
├── Magento_Theme/
│ ├── layout/
│ │ └── default.xml
│ └── templates/
│ └── html/
│ └── header.phtml
├── Magento_Catalog/
│ └── templates/
│ └── product/
│ └── list.phtml
└── web/
├── tailwind/
│ ├── tailwind.config.js
│ ├── package.json
│ └── src/styles.css
└── images/
└── logo.svgDie Modul-Ordner-Konvention: Magento_Theme, Magento_Catalog, ...
Auffällig ist, dass Templates und Layout-XML nicht flach im Theme liegen, sondern in Unterordnern, die exakt wie Magento-Module heißen (Magento_Theme, Magento_Catalog, Magento_Checkout, ...). Das ist keine Hyvä-Spezialität, sondern normale Magento-Konvention: Ein Theme überschreibt Templates pro Modul, und der Ordnername zeigt an, welches Modul betroffen ist.
Ein eigenes Modul wie das spätere Mironsoft_TeamPage (Kapitel 17-22) bringt seine Templates dagegen normalerweise selbst mit - im Modul unter view/frontend/templates/ -, nicht im Theme-Ordner. Das Theme überschreibt nur, wenn nötig.
Tipp: Eine gute Faustregel: Templates, die zum eigenen neuen Modul gehören, leben im Modul selbst (view/frontend/). Templates, die ein bestehendes Magento- oder Hyvä-Template gezielt überschreiben, leben im Theme, im passenden Modul-Unterordner.
web/tailwind: der CSS-Quellcode
Der Ordner web/tailwind/ enthält den Tailwind-Build: package.json mit den npm-Abhängigkeiten, tailwind.config.js (bzw. bei Tailwind v4 primär die @theme-Direktive direkt im CSS, siehe Kapitel 5 und 11) und die CSS-Quelldatei, aus der die finale styles.css gebaut wird. Dieser Ordner wird nicht direkt an den Browser ausgeliefert - er ist reiner Build-Input.