OriaTheme
GitHub

Référence API · Thèmes principaux

@oriatheme/core

API de contrat de thème, de validation, de résolution et d'importation/exportation sans dépendance DOM, stockage, React ou Vue.

Forfait et environnement

Pur TypeScript ; sécurisé dans l'évaluation des modules Node, SSR et navigateur.

bash
pnpm add @oriatheme/core

Utilisez le gestionnaire de packages et le fichier de verrouillage déjà choisis par le projet consommateur. Les exemples utilisent uniquement les exportations racine du package ; n'effectuez pas d'importation approfondie à partir de modèles src, dist ou de registre.

Fonctions publiques

ExporterSignatureDescriptif
defineTokenContract(input: TokenContractInput) => TokenContractCrée un contrat immuable et validé.
extendTokenContract(base, extension) => TokenContractAjoute des jetons de contrat sans perdre la base.
getTokenDefinition(contract, path) => TokenDefinition | undefinedRecherche un jeton déclaré.
token / colorToken(type, options) => TokenDefinitionCrée des définitions de jetons de contrat.
validateTheme(input, contract) => ValidationResult<ThemeDefinition>Ne lance jamais une entrée sérialisée non fiable.
normalizeTheme(theme, contract) => ThemeDefinitionCanonique la commande et comble les défauts du contrat.
resolveTheme(theme, mode, options?) => ResolvedThemeRésout les références et compile les variables sécurisées CSS.
resolveThemeWithContract(theme, contract, mode, options?) => ResolvedThemeRésolveur sécurisé avec un contrat explicite.
cloneTheme(theme, identity, clock?) => ThemeDefinitionCrée une copie complète horodatée.
createThemeFromSeed(seed, options) => ThemeDefinitionCrée un thème personnalisé complet de contrat standard.
exportTheme(theme) => stringSérialise le format de thème public.
importTheme(json, options) => ImportResultValide JSON, force le type personnalisé et gère les conflits.
analyzeTheme(theme, contract) => ThemeDiagnosticsRenvoie les erreurs de blocage et les avertissements de contraste.
contrastRatio(foreground, background) => numberCalcule le contraste WCAG pour les couleurs hexadécimales statiques.
toCssVariable(path, prefix?, cssNameStyle?) => `--${string}`Convertit un chemin validé en propriété personnalisée CSS.
isTokenPath(value) => value is TokenPathRéduit une chaîne à un chemin de jeton de marque.
oriaStandardContract / oriaDefaultThemeTokenContract / ThemeDefinitionLe contrat oria-standard@2 par défaut et le thème par défaut depuis la 0.3.0.
oriaStandardContractV1 / oriaDefaultThemeV1TokenContract / ThemeDefinitionLes exportations v1 héritées sont conservées uniquement comme entrée de migration.
migrateOriaStandardV1ToV2(input: unknown) => ThemeMigrationResultConvertit un thème standard v1 complet en v2 avec des avertissements et requireReview.
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.
}

Branchez sur les résultats validateTheme ou importTheme pour la saisie de l'utilisateur ; ne correspondent pas aux messages d'erreur.

Types et limites importants

ThemeDefinition est le thème sérialisé complet (schemaVersion 1 ; le contrat par défaut est oria-standard@2 depuis 0.3.0) ; TokenContract décrit les chemins et les valeurs sûres ; ValidationResult / ImportResult discrimine sur ok ; OriaThemeError.code est la branche d'erreur stable. ResolvedTheme contient des variables compilées et colorScheme. ThemeMigrationResult contient le thème migré, les avertissements et requireReview.