---
title: "ThemeInit"
description: "The argument [createTheme](https://pitlane.tools/package/theme/function/createTheme.md) accepts: a schema tree, the token tree it describes, and any modes."
url: "https://pitlane.tools/package/theme/interface/ThemeInit"
---

# ThemeInit

```ts
import type { ThemeInit } from "@pitlane/theme";
```

The argument [createTheme](https://pitlane.tools/package/theme/function/createTheme.md) accepts: a schema tree, the token tree it describes, and any modes.

The members are typed as bare objects on purpose. A `const` type parameter constrained to an index-signature type widens the literal it was inferred from, which would erase every brand; the shapes are enforced by the schema factories being typed values, by an undeclared leaf resolving to `unknown`, and by validation at module load.

## Properties

### modes?

```ts
optional modes?: object;
```

---

### schema

```ts
schema: object;
```

---

### tokens

```ts
tokens: object;
```
