[**@wocart/theme v4.1.0**](../../README)

***

[@wocart/theme](../../README) / [index](../README) / ThemeManifest

# Interface: ThemeManifest

The serializable theme contract.

- `contractVersion` identifies this manifest's schema and interpretation
  contract (currently `1`). It versions the *format*, not the theme.
- `key` / `version` identify the *theme* (same values as `ThemeDefinition`).
- `surfaces` declares what the theme can render (possibly empty).
- `components` is the data-only catalogue, keyed by component type.

Three versioned contracts coexist and must not be confused:
`contractVersion` (this manifest), `ThemeDefinition.version` (the theme's
semver), and `PageData.version` (the page-document envelope, currently `1`).

## Properties

### areas

> **areas**: readonly [`AreaSpec`](AreaSpec)[]

The parts every page shares (possibly none).

***

### components

> **components**: `Record`\<`string`, [`ComponentSpec`](ComponentSpec)\>

***

### content

> **content**: `Readonly`\<`Record`\<[`LocaleCode`](../type-aliases/LocaleCode), `Readonly`\<`Record`\<`string`, `string`\>\>\>\>

The theme's content packs, by language (possibly none).

***

### contractVersion

> **contractVersion**: `1`

***

### key

> **key**: `string`

***

### locales

> **locales**: readonly `string`[]

The languages the theme's packs cover (possibly none declared).

***

### preview

> **preview**: `boolean`

Whether the theme serves a preview route (`THEME_PREVIEW_PATH`).

***

### sdkVersion?

> `optional` **sdkVersion?**: `string`

The `@wocart/theme` version that generated the manifest — the renderer the
theme ships with. An editor writes a feature only for renderers that read
it (a hidden section needs 1.5.0). Absent from manifests made before 1.5.0.

***

### settings

> **settings**: readonly [`SettingsGroup`](SettingsGroup)[]

The theme's global settings (possibly none).

***

### style?

> `optional` **style?**: [`ThemeStyle`](ThemeStyle)

The sizes the theme gives the style steps (absent: none).

***

### surfaces

> **surfaces**: readonly [`SurfaceSpec`](SurfaceSpec)[]

***

### version

> **version**: `string`
