docs/src/extensions/themes.md
The themes directory in an extension should contain one or more theme files.
Each theme file should adhere to the JSON schema specified at https://zed.dev/schema/themes/v0.2.0.json.
See this blog post for additional background on creating themes.
The structure of a Zed theme is defined in the Zed Theme JSON Schema.
A Zed theme consists of a Theme Family object including:
name: The name for the theme familyauthor: The name of the author of the theme familythemes: An array of Themes belonging to the theme familyThe core components of a Theme object include:
Theme Metadata:
name: The name of the themeappearance: Either "light" or "dark"Style Properties under the style, such as:
background: The main background colorforeground: The main text coloraccent: The accent color used for highlighting and emphasisSyntax Highlighting:
syntax: An object containing color definitions for various syntax elements (e.g., keywords, strings, comments)UI Elements:
element.background: Background color for UI elementsborder: Border colors for different states (normal, focused, selected)text: Text colors for different states (normal, muted, accent)Editor-specific Colors:
editor.background: Editor background coloreditor.gutter: Gutter colorseditor.line_number: Line number colorsTerminal Colors:
You can use Zed's Theme Builder to design your own custom theme based on an existing one.
This tool lets you fine-tune and preview how surfaces in Zed will look. You can then export the JSON and publish it in Zed's extension store.