@@ -0,0 +1,29 @@
+[⬅ Back to Index](../index.md)
+
+# Generating Theme Types
+
+
+## How to generate theme types:
+
+Run a script
+
+```bash
+./script/build-theme-types
+```
+
+Types are generated in `styles/src/types/zed.ts`
+
+
+## How it works:
+
+1. Rust types
+
+ The `crates/theme` contains theme types.
+ Crate `schemars` used to generate a JSON schema from the theme structs.
+ Every struct that represent theme type has a `#[derive(JsonSchema)]` attribute.
+
+ Task lotaked at `crates/xtask/src/main.rs` generates a JSON schema from the theme structs.
+
+2. TypeScript types
+
+ Script `npm run build-types` from `styles` package generates TypeScript types from the JSON schema and saves them to `styles/src/types/zed.ts`.