# Harbor Night An OpenIDEA theme plugin, **Harbor Night**: a dark theme with slate surfaces, a teal accent and a warm syntax palette. It is also where new themes start: `openidea-plugin new --template theme` copies its theme files, or copy this folder. Full documentation, the token reference and porting guides are in [`docs/plugins/themes.md`](../../../docs/plugins/themes.md). ``` harbor-night/ ├─ plugin.toml # manifest: id, name, version, the theme files └─ themes/ ├─ harbor-night.theme.json # UI colours, every themeable token, grouped like tokens.css └─ harbor-night.scheme.json # editor colour scheme: syntax, editor, ANSI colours ``` A theme plugin is data only: no code, no WebAssembly, no build step. ## Make your own 1. Run `openidea-plugin new --template theme`, or copy the folder, for example to `~/openidea-themes/my-theme`. 2. In `plugin.toml`, change `id` (lowercase, `a-z 0-9 - _ .`), `name`, `description`, `authors` and the two paths. 3. Rename the theme files. In the theme file, set `id`, `name` and `kind` (`"dark"` or `"light"`, the built-in base for anything you leave out). 4. Edit the colours. Each key is a CSS variable from `src/styles/tokens.css`, and the reference in the docs gives the Islands Dark and Light values. Comments (`//`, `/* */`) are allowed. Delete a line to keep the built-in value. Porting an IntelliJ theme? `pnpm theme:import-intellij [file.icls] --out ` in the OpenIDEA repository generates a package in this layout. ## Package and install The folder is the package. To share it, publish the folder as a Git repository or a zip that users extract. 1. In OpenIDEA open **Settings › Plugins**, click the gear menu and choose **Install Plugin from Disk…** (or run the _Install Plugin from Disk…_ action), then pick the folder that contains `plugin.toml`. 2. Select the plugin in the _Installed_ tab and press **Apply** next to the theme. 3. **Use Default Theme** in the same place goes back to the built-in theme. ## Iterate Put (or symlink) the folder in `/.openidea/plugins/` of an open project. It loads as a _dev_ plugin, and **Reload** in Settings › Plugins (or the _Reload Plugins_ action) re-reads your edits without reinstalling. Invalid JSON or values are reported in Settings › Plugins with the file and line. ## Licence Harbor Night is part of OpenIDEA (Apache-2.0). When you port someone else's theme, keep its licence and credit its authors.