Themes
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 Zed blog post for more details about creating themes.
Theme JSON Structure
The structure of a Gram theme is defined in the Zed Theme JSON Schema.
A Gram 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 family
The core components a Theme object include:
Theme Metadata:
name: The name of the theme
appearance: Either "light" or "dark"
Style Properties under the
style, such as:background: The main background color
foreground: The main text color
accent: The accent color used for highlighting and emphasis
Syntax Highlighting:
syntax: An object containing color definitions for various syntax elements (e.g., keywords, strings, comments)
UI Elements:
- Colors for various UI components such as:
element.background: Background color for UI elementsborder: Border colors for different states (normal, focused, selected)text: Text colors for different states (normal, muted, accent)
- Colors for various UI components such as:
Editor-specific Colors:
- Colors for editor-related elements such as:
editor.background: Editor background coloreditor.gutter: Gutter colorseditor.line_number: Line number colors
- Colors for editor-related elements such as:
Terminal Colors:
- ANSI color definitions for the integrated terminal