Обзор Theme SDK
Theme SDK — это версионируемый контракт для замены всей визуальной оболочки NeoTavern, а не только её перекраски.
Что такое Theme SDK
Тема — это пакет (.sttheme), управляющий тем, как выглядит приложение и как
скомпонованы его основные области. В отличие от плагина, у темы нет
JavaScript: это CSS, семантические токены и декларативный макет оболочки в
манифесте. Поскольку SDK декларативен, тема не может сломать поведение
приложения или добраться до его данных.
Пакет @neotavern/theme-sdk предоставляет сам контракт: канонические имена
токенов, проверку манифеста, разрешение наследования и генерацию CSS-переменных.
Эталонная реализация хоста применяет тему, записывая кастомные свойства
--st-* на корень документа и загружая таблицы стилей темы в определённом
порядке.
Три уровня
Темизация структурирована на трёх уровнях, и тема может использовать любой из них:
- Дизайн-токены — семантические переменные для цветов, шрифтов, отступов, радиусов, теней, слоёв z-index, анимаций и размеров элементов управления. Компоненты ссылаются исключительно на эти токены, поэтому переопределение токена согласованно перестилизует весь интерфейс.
- Скин компонентов — CSS, перестилизующий компоненты через стабильные
хуки
data-component,data-part,data-roleиdata-state. - Макет оболочки — декларативная композиция основных областей: навигационная панель, панели управления и рабочее пространство чата.
Поскольку логика чата, модель данных и поведение не затрагиваются, тема может имитировать операционную систему, игровую консоль, интерфейс визуальной новеллы или макет мобильного приложения, не ломая ни одной функции. Подробности см. в Уровни.
Создание без шага сборки
Тема — это ZIP с theme.json, components.css и shell.css. Вы можете
собрать её вручную:
- Откройте менеджер тем и скачайте стартовый набор темы.
- Распакуйте его и отредактируйте
theme.json,components.cssиshell.css. - Заархивируйте файлы заново в корне архива и установите пакет.
- Проверьте светлый и тёмный режимы, мобильный вид, фокус клавиатуры, RTL и безопасный режим, затем примените тему.
Для первой темы не нужны Node.js, npm, JavaScript или CLI Theme SDK.
Установка и активация
Установка пакета не активирует его. Активация проверяет всю цепочку
extends на отсутствие родителей и циклов, затем одной транзакцией обновляет
активную тему и сохранённый выбор темы. Обновление пакета с тем же
идентификатором атомарно заменяет его каталог и сохраняет текущее состояние
активации; при ошибке реестра восстанавливается предыдущий каталог.
Дистрибутив поставляет набор встроенных тем, таких как AMOLED, GitHub Dark, Matrix, Nord, Gruvbox, Dracula, Tokyo Night, Catppuccin Mocha, Solarized Dark и One Dark, поэтому менеджер тем никогда не открывается пустым.
Безопасность
Темы не могут читать чаты, API-ключи или файловую систему и не содержат исполняемого кода. Каждая таблица стилей сканируется на запрещённые конструкции, а безопасный режим полностью отключает сторонние темы. Гарантии см. в Безопасный режим, а полный API — в генерируемом справочнике Theme SDK.
Следующие шаги
- Уровни — токены, скины и макеты оболочки.
- Дизайн-токены — контракт семантических токенов.
- Скин компонентов — стек стилизации и хуки.
- Контракт оболочки — именованные области и стабильные слоты.
- Безопасный режим — восстановление после сломанных тем.