Skip to content
PaneflowPaneflow

Themes

Choose from five Paneflow palettes, switch between light and dark modes, or follow your system appearance. Changes apply without restarting.

Choose a palette for Paneflow's terminals and interface, then select a light, dark, or system appearance. Paneflow includes five palettes: Paneflow, Vercel, Claude, Cursor, and Tailwind. Each has a light and a dark variant. The default is Paneflow Dark.

Theme changes apply without restarting Paneflow, whether you use the settings or edit paneflow.json.

Choose a theme

  1. Open Appearance in Paneflow settings.
  2. Select Light, Dark, or System.
  3. Choose a palette from Preset.
ModeEffectSaved theme_mode value
LightUse the light variant of the selected palette."light"
DarkUse the dark variant of the selected palette."dark"
SystemFollow your operating system's light or dark appearance."system"

System remains selected after you close and reopen Paneflow. When your system appearance changes, Paneflow switches variants while keeping the same palette.

To return to Paneflow Dark, select Reset to default in the Theme section.

Included palettes

Use these exact names in the theme field of paneflow.json. Palette names stay the same in every language.

PresetLight variantDark variant
PaneflowPaneflow LightPaneflow Dark
VercelVercel LightVercel Dark
ClaudeClaude LightClaude Dark
CursorCursor LightCursor Dark
TailwindTailwind LightTailwind Dark

Names are case-insensitive. Older configurations still work: One Dark resolves to Paneflow Dark, and PaneFlow Light resolves to Paneflow Light. The old names Vercel, Claude, and Cursor resolve to their dark variants.

Set a theme in paneflow.json

Set theme to a variant from the table and theme_mode to the matching mode. For example, to use Claude's light palette:

paneflow.json
{
"$schema": "https://github.com/arthjean/paneflow/raw/main/schemas/paneflow.schema.json",
"$schemaVersion": "1.0.0",
"theme": "Claude Light",
"theme_mode": "light"
}

To follow your system appearance instead, set theme_mode to "system". Paneflow keeps the palette selected by theme and chooses its light or dark variant to match your system.

The configuration file is stored at these default locations:

SystemPath
Linux and macOS~/.paneflow/paneflow.json
Windows%USERPROFILE%\.paneflow\paneflow.json

If you set PANEFLOW_HOME, edit the file in that directory. See the configuration reference for all settings.

If theme_mode is omitted or null, Paneflow infers light or dark mode from the theme name. To restore the default configuration, remove both theme and theme_mode, or set both to null.

What the theme changes

  • Terminal background, text, cursor, selection, scrollbar, links, and ANSI colors.
  • Interface backgrounds, borders, and text.
  • Markdown panes and tables.
  • Syntax colors in Changes and Files.

Some appearance settings are separate:

  • terminal.cursor_color overrides the terminal cursor color. Set it to null to use the theme's cursor color.
  • Interface style controls window materials and transparency. See appearance settings.
  • commands[].workspace.color sets a workspace template's color.

If the theme does not change

After editing paneflow.json, save the file. If the previous theme stays visible, check that you edited the active configuration file and that its JSON is valid. During reload, Paneflow keeps the previous valid configuration if the new file contains a JSON error.

If you see Paneflow Dark instead of the palette you wanted, check the theme name against the table above. An unknown name falls back to Paneflow Dark and writes a warning to the logs.

For further checks, see configuration troubleshooting. Changing window_decorations requires a restart, even though theme changes do not.

Custom palettes

Paneflow supports the bundled palettes only. It does not load theme.json or custom palettes from paneflow.json.

To request another palette, open a theme request on GitHub and include the colors and how you would use them. To contribute a bundled theme, start with src-app/src/theme/builtin.rs in the desktop repository.