Что нужно сделать описывал уже. Мож пригодится тому кто будет делать.
Если нужно сделать одну тему, то это можно сделать просто прокидывая определенный css файл при определенных условиях. (сделать можно на уровне доп модуля).
Если тебе всё же нужно полностью менять тему в зависимости от юзер агента например или чего-то другого, то можно сделать следующее.
Нужно скопировать этот файл куда нить в свою папку и прописать свой нэймспэйс.
https://github.com/johncms/joh ... y.php
Дальше в папке /config/autoload/ создаем файл dependencies.local.php
Структуру массива нужно взять из global версии такого же файла. И прописать в блок factories
Johncms\System\View\Render::class => НэймспэйсТвоегоСкопированногоКласса::classДальше уже в этом классе можно задать логику определения темы
А именно в $engine->setTheme($config['skindef']); передавать своё название темы.