OriaTheme
GitHub

Для разработчиков приложений

Пользовательские темы

Копируйте неизменяемые пресеты, сохраняйте их только после полной проверки и сохраняйте импорт, предварительный просмотр и сохранение в рамках атомарных границ среды выполнения.

Пресеты неизменяемы

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 или проблемы с проверкой вместо соответствующего текста ошибки.

Продолжение: пресеты, определяемые приложением