Skip to main content
Step Code includes six themes and supports custom colors in JSON. Place a file in a theme directory to select it in /theme. Editing the active theme reloads it immediately.

Built-in themes

Switching themes

Set the default in configuration:
For one launch only:
/theme opens the picker; custom themes are available without restarting. /theme <name> switches directly. Editing the active file hot-reloads it. Working-line tips are controlled by statusTips in config.toml. See Configuration files.

Theme files

The filename is the theme name, such as my-theme.json. Custom themes appear alongside built-in themes in /theme. Start from a complete theme and retain all color fields while adjusting the palette. See Plugins and packages for distributing themes in resource packages.

Theme JSON format

A theme has name, reusable vars, and a colors mapping. This example illustrates fields; it is not a complete replacement theme:
A complete theme defines all 52 color tokens, covering core UI, backgrounds and content, Markdown, diffs, syntax highlighting, thinking borders, and bashMode. True-color terminals use 24-bit colors; others may fall back to nearby 256-color values. Use brighter, saturated colors on dark terminals and darker, muted colors on light terminals. Put shared base colors in vars.

Error behavior

Invalid colors fail the entire theme and fall back to built-in dark. A transient error during hot reload retains the active theme. Check JSON syntax, color values, variable references, and field completeness.