Для разработчиков приложений
Пользовательские темы
Копируйте неизменяемые пресеты, сохраняйте их только после полной проверки и сохраняйте импорт, предварительный просмотр и сохранение в рамках атомарных границ среды выполнения.Пресеты неизменяемы
ts
const copied = runtime.duplicateTheme("oria-default", {
id: "brand-2026",
name: "Brand 2026",
});
runtime.updateCustomTheme(copied.id, {
name: "Brand 2026 (refined)",
modes: { light: draftLightTokens, dark: draftDarkTokens },
});
runtime.setTheme(copied.id);DupyTheme создает пользовательскую тему. Пресеты нельзя изменить или удалить; удаление активной пользовательской темы возвращает настройки по умолчанию.
Предварительный просмотр — это не настойчивость
PreviewTheme применяет только текущий полный действительный черновик без изменения предпочтений или хранилища. Удаление его дескриптора восстанавливает последнее официальное состояние. Сохранение с помощью createCustomTheme или updateCustomTheme полностью проверяется перед записью.
Импорт всегда проходит через контракт
ts
try {
const imported = runtime.importTheme(json);
runtime.setTheme(imported.id);
} catch (error) {
// Branch on OriaThemeError.code, not its English message.
}Импорт становится пользовательской темой и не может перезаписать предустановку; недействительный JSON или токены никогда не применяются частично. Представлять OriaThemeError.code или проблемы с проверкой вместо соответствующего текста ошибки.
Продолжение: пресеты, определяемые приложением