OriaTheme
GitHub

APIリファレンス・コアテーマ

@oriatheme/core

DOM、ストレージ、React、または Vue 依存関係のない、テーマの契約、検証、解決、およびインポート/エクスポート API。

パッケージと環境

純粋なTypeScript;ノード、SSR、ブラウザモジュールの評価において安全です。

bash
pnpm add @oriatheme/core

コンシューマ プロジェクトによってすでに選択されているパッケージ マネージャーとロックファイルを使用します。例では、パッケージ ルート エクスポートのみを使用します。 src、dist、またはレジストリ テンプレートからディープ インポートしないでください。

公共機能

エクスポート署名説明
defineTokenContract(input: TokenContractInput) => TokenContract不変の検証済みコントラクトを作成します。
extendTokenContract(base, extension) => TokenContractベースを失うことなく契約トークンを追加します。
getTokenDefinition(contract, path) => TokenDefinition | undefined宣言されたトークンを検索します。
token / colorToken(type, options) => TokenDefinitionコントラクトトークン定義を作成します。
validateTheme(input, contract) => ValidationResult<ThemeDefinition>信頼できないシリアル化された入力に対してスローすることはありません。
normalizeTheme(theme, contract) => ThemeDefinition注文を正規化し、契約のデフォルトを満たします。
resolveTheme(theme, mode, options?) => ResolvedTheme参照を解決し、安全な CSS 変数をコンパイルします。
resolveThemeWithContract(theme, contract, mode, options?) => ResolvedTheme明示的な契約による安全なリゾルバー。
cloneTheme(theme, identity, clock?) => ThemeDefinitionタイムスタンプ付きの完全なコピーを作成します。
createThemeFromSeed(seed, options) => ThemeDefinition完全な標準契約のカスタム テーマを作成します。
exportTheme(theme) => stringパブリックテーマ形式をシリアル化します。
importTheme(json, options) => ImportResultJSON を検証し、カスタム種類を強制し、競合を処理します。
analyzeTheme(theme, contract) => ThemeDiagnosticsブロッキング エラーとコントラストの警告を返します。
contrastRatio(foreground, background) => number静的な 16 進カラーの WCAG コントラストを計算します。
toCssVariable(path, prefix?, cssNameStyle?) => `--${string}`検証されたパスを CSS カスタム プロパティに変換します。
isTokenPath(value) => value is TokenPath文字列をブランド化されたトークン パスに絞り込みます。
oriaStandardContract / oriaDefaultThemeTokenContract / ThemeDefinition0.3.0 以降のデフォルトの oria-standard@2 コントラクトとデフォルトのテーマ。
oriaStandardContractV1 / oriaDefaultThemeV1TokenContract / ThemeDefinitionレガシー v1 エクスポートは移行入力としてのみ保持されます。
migrateOriaStandardV1ToV2(input: unknown) => ThemeMigrationResult完全な v1 標準テーマを警告付きで v2 に変換し、Review が必要になります。
ts
import { oriaStandardContract, resolveTheme, validateTheme } from "@oriatheme/core";

const checked = validateTheme(input, oriaStandardContract);
if (checked.ok) {
  const resolved = resolveTheme(checked.value, "dark");
  // resolved.variables is safe compiler output.
}

ユーザー入力の validateTheme または importTheme の結果に基づいて分岐します。エラーメッセージと一致しません。

重要な種類と境界

ThemeDefinition は完全なシリアル化テーマ (schemaVersion 1、0.3.0 以降のデフォルトのコントラクトは oria-standard@2) です。 TokenContract はパスと安全な値を記述します。 ValidationResult / ImportResult は ok で区別されます。 OriaThemeError.code は安定したエラー ブランチです。 ResolvedTheme には、コンパイルされた変数と colorScheme が含まれています。 ThemeMigrationResult には、移行されたテーマ、警告、および requireReview が含まれます。