OriaTheme
外观

应用开发者

应用自定义预设

在应用代码中注册完整、有效的 ThemeDefinition;不要把它伪装成官方 catalog,或绕过 Core 校验。

先创建完整定义并验证

ts
import { createThemeFromSeed, validateTheme, oriaStandardContract } from "@oriatheme/core";

const brandTheme = createThemeFromSeed(
  { color: "#2563eb" },
  { id: "acme-blue", name: "Acme Blue" },
);
const result = validateTheme(brandTheme, oriaStandardContract);
if (!result.ok) throw new Error("Theme definition is invalid");

生产应用应在构建或受控初始化阶段验证完整 ThemeDefinition。不要从不受信任 JSON 直接拼接 CSS,用户输入应走 Core import/validation API。

与官方预设一起传给 Runtime

ts
import { oriaPresetThemes } from "@oriatheme/presets";
import { createOriaThemeRuntime } from "@oriatheme/runtime-dom";

const runtime = createOriaThemeRuntime({
  presets: [...oriaPresetThemes, brandTheme],
  defaultThemeId: "acme-blue",
});

这不是官方预设目录

@oriatheme/presets 的 catalog 由 OriaTheme 发布流程维护。应用预设只属于应用自己的配置,不能覆盖官方 ID,也不能绕过 Core 校验、解析或 Runtime 原子应用。

返回:选择公开包