Структура шаблона и theme.json
Папки темы, манифест, наследование от default, шапка и подвал, демо-наполнение.
Шаблон (тема) — папка themes/<code>/. Всё, что видно на сайте, должно настраиваться в админке без разработчика: шапка, подвал, меню, контакты, цвета, шрифты.
themes/<code>/
theme.json манифест
templates/ Twig-шаблоны (base.twig и переопределения)
blocks/<code>_*/ свои блоки
assets/ css, js, шрифты, картинки → /themes/<code>/assets/…
translations/ blocks.ru.yaml, messages.ru.yaml/en.yaml
presets/*.json готовые наборы дизайна
demo/
settings.json шапка, подвал, меню, контакты шаблона
seed.php демо-наполнение
preview.jpg картинка для каталога
theme.json
{
"name": "Аура",
"version": "1.0.0",
"author": {"name": "Studio", "url": "https://example.com"},
"description": "Редакционный шаблон для бутика одежды.",
"parent": "default",
"locales": ["ru", "en"],
"category": "shop",
"niche": "Магазин одежды",
"preview": "demo/preview.jpg",
"license": {"type": "open"},
"requires": {"modules": ["pages", "shop"]},
"menus": {"main": "Главное меню", "footer": "Меню в подвале"}
}
parent: default — тема наследует шаблоны и блоки стандартной темы и переопределяет только своё. Это рекомендуемый путь: меньше кода, обновления default приходят сами.
Шаблоны страниц
base.twig — каркас; entry-<тип>.twig, archive-<тип>.twig — записи и списки. Шапка и подвал собираются из настроек сайта — не зашивайте пункты и тексты в Twig.
Дизайн
design.controls в манифесте описывает настройки экрана «Дизайн»: цвета, шрифты, скругления, варианты. Значения приходят в CSS как переменные — используйте их, а не жёсткие цвета.
Демо-наполнение
demo/seed.php создаёт страницы, записи и товары примера через API ядра; картинки описываются в demo/images.json. «Применить с демо-наполнением» в админке запускает его.