OriaTheme
GitHub

API-Referenz · Kernthemen

@oriatheme/core

Themenvertrags-, Validierungs-, Auflösungs- und Import-/Export-APIs ohne DOM-, Speicher-, React- oder Vue-Abhängigkeit.

Paket und Umgebung

Rein TypeScript; sicher bei der Knoten-, SSR- und Browsermodul-Evaluierung.

bash
pnpm add @oriatheme/core

Verwenden Sie den Paketmanager und die Sperrdatei, die bereits vom Verbraucherprojekt ausgewählt wurden. Beispiele verwenden nur Paket-Root-Exporte; Führen Sie keinen Deep-Import aus src-, dist- oder Registry-Vorlagen durch.

Öffentliche Funktionen

ExportierenUnterschriftBeschreibung
defineTokenContract(input: TokenContractInput) => TokenContractErstellt einen unveränderlichen, validierten Vertrag.
extendTokenContract(base, extension) => TokenContractFügt Vertragstoken hinzu, ohne die Basis zu verlieren.
getTokenDefinition(contract, path) => TokenDefinition | undefinedSucht nach einem deklarierten Token.
token / colorToken(type, options) => TokenDefinitionErstellt Vertrags-Token-Definitionen.
validateTheme(input, contract) => ValidationResult<ThemeDefinition>Wird niemals für nicht vertrauenswürdige serialisierte Eingaben ausgelöst.
normalizeTheme(theme, contract) => ThemeDefinitionKanonisiert die Bestellung und erfüllt Vertragsvorgaben.
resolveTheme(theme, mode, options?) => ResolvedThemeLöst Referenzen auf und kompiliert sichere CSS-Variablen.
resolveThemeWithContract(theme, contract, mode, options?) => ResolvedThemeSicherer Resolver mit explizitem Vertrag.
cloneTheme(theme, identity, clock?) => ThemeDefinitionErstellt eine vollständige Kopie mit Zeitstempel.
createThemeFromSeed(seed, options) => ThemeDefinitionErstellt ein vollständiges benutzerdefiniertes Standard-Vertragsthema.
exportTheme(theme) => stringSerialisiert das öffentliche Theme-Format.
importTheme(json, options) => ImportResultValidiert JSON, erzwingt eine benutzerdefinierte Art und behandelt Konflikte.
analyzeTheme(theme, contract) => ThemeDiagnosticsGibt Blockierungsfehler und Kontrastwarnungen zurück.
contrastRatio(foreground, background) => numberBerechnet den WCAG-Kontrast für statische Hex-Farben.
toCssVariable(path, prefix?, cssNameStyle?) => `--${string}`Konvertiert einen validierten Pfad in eine benutzerdefinierte CSS-Eigenschaft.
isTokenPath(value) => value is TokenPathSchränkt eine Zeichenfolge auf einen Marken-Token-Pfad ein.
oriaStandardContract / oriaDefaultThemeTokenContract / ThemeDefinitionDer Standardvertrag und das Standardthema von oria-standard@2 seit 0.3.0.
oriaStandardContractV1 / oriaDefaultThemeV1TokenContract / ThemeDefinitionLegacy v1-Exporte werden nur als Migrationseingabe beibehalten.
migrateOriaStandardV1ToV2(input: unknown) => ThemeMigrationResultKonvertiert ein vollständiges v1-Standarddesign in v2 mit Warnungen und erfordert eine Überprüfung.
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.
}

Verzweigen Sie auf „validateTheme“- oder „importTheme“-Ergebnisse für Benutzereingaben; stimmen nicht mit den Fehlermeldungen überein.

Wichtige Typen und Grenzen

ThemeDefinition ist das vollständige serialisierte Theme (schemaVersion 1; der Standardvertrag ist oria-standard@2 seit 0.3.0); TokenContract beschreibt Pfade und sichere Werte; ValidationResult / ImportResult unterscheiden nach ok; OriaThemeError.code ist der stabile Fehlerzweig. ResolvedTheme enthält kompilierte Variablen und colorScheme. ThemeMigrationResult enthält das migrierte Design, Warnungen und erfordert eine Überprüfung.