APIリファレンス・コアテーマ
@oriatheme/core
DOM、ストレージ、React、または Vue 依存関係のない、テーマの契約、検証、解決、およびインポート/エクスポート API。パッケージと環境
純粋なTypeScript;ノード、SSR、ブラウザモジュールの評価において安全です。
bash
pnpm add @oriatheme/corebash
npm install @oriatheme/corebash
yarn add @oriatheme/corebash
bun 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) => ImportResult | JSON を検証し、カスタム種類を強制し、競合を処理します。 |
analyzeTheme | (theme, contract) => ThemeDiagnostics | ブロッキング エラーとコントラストの警告を返します。 |
contrastRatio | (foreground, background) => number | 静的な 16 進カラーの WCAG コントラストを計算します。 |
toCssVariable | (path, prefix?, cssNameStyle?) => `--${string}` | 検証されたパスを CSS カスタム プロパティに変換します。 |
isTokenPath | (value) => value is TokenPath | 文字列をブランド化されたトークン パスに絞り込みます。 |
oriaStandardContract / oriaDefaultTheme | TokenContract / ThemeDefinition | 0.3.0 以降のデフォルトの oria-standard@2 コントラクトとデフォルトのテーマ。 |
oriaStandardContractV1 / oriaDefaultThemeV1 | TokenContract / 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 が含まれます。