Theme manifest (theme.json)

Validated by zThemeManifest (@mozaik/kit/validate). tier: "full" kits declare runtime (platform = first-party compiled-in; sandbox = sealed, refused until P2); tier: "skin" themes MUST extends a parent kit. The agent block is required, like extensions.

Machine-readable: /schemas/theme.schema.json.

Fields

fieldtyperequirednotes
idstring (/^[a-z][a-z0-9-]*\.[a-z][a-z0-9-]*$/)yes
versionstring (/^\d+\.\d+\.\d+$/)yes
contractconst 1yes
tier"full" | "skin"yes
runtime"platform" | "sandbox"no
extendsstring (/^[a-z][a-z0-9-]*\.[a-z][a-z0-9-]*@\d+$/)no
labelTRstring (≤40 chars)yes
descriptionTRstring (≤280 chars)yes
tagsarray<string (≤24 chars)> (≤8)no
catalogSize"small" | "medium" | "large"no
fontsarray<object | object> (≤4)no
presetsarray<string (/^[a-z][a-z0-9-]*$/)> (≤8)no
defaultPresetobjectno
colorwaystringno
typesetstringno
optionalarray<"Split" | "Placeholder" | "CollectionCard" | "Breadcrumbs" | "Textarea" | "Checkbox" | "Accordion" | "KeyValueList" | "Divider" | "Logo" | "Notice" | "Tabs" | "Dialog" | "Pagination" | "Table" | "Video" | "Marquee" | "Countdown">no
hooksarray<string (/^data-mzk-[a-z0-9-]+$/)> (≤16)no
sectionsarray<object> (≤2)no
publisherobjectyes
namestring (≤80 chars)yes
urlstringno
supportEmailstring (/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/)no
supportUrlstringno
agentobjectyes
summaryTRstring (≤400 chars)yes
authoringDocsstringno
notesarray<string (≤200 chars)> (≤12)no
migrationsstringno
Generated from the live platform registries at build time — reference pages cannot go stale. Markdown variant: /reference/theme-manifest.md