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);

重複主題建立自訂主題。預設無法變更或刪除;刪除活動的自訂主題將恢復為配置的預設主題。

預覽不是持久

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 或驗證問題,而不是匹配錯誤文字。

繼續:應用程式定義的預設