Skip to main content
configs/ui.jsonc holds the look of the map’s interface: five colours, the rounding of its corners, how strong its panels are, how the selected tab is marked, and whether keyboard focus is outlined. Everything on screen is one of the five colours at some opacity. There is no per-element setting, and no separate colour for panels, headings and rows: they are the same two colours at different strengths, which is what keeps the interface looking like one thing. This does not change the world, the markers or the route. Those have their own settings. See Markers and Routes.

Settings

Every key lives under theme.

Colours

Values accept any CSS colour: rgb(...), a hex code, or a named colour. Transparency is not read from the value: the interface applies its own, per element. ground and ink are a pair and they swap: the row under the cursor is drawn in ink with ground as its text. Setting the two to colours that do not read against each other makes both states unreadable, not one.

Shape

Example

An interface matching a blue server brand:
theme is merged key by key, so every key not listed keeps its shipped value. Rounded, more solid panels with a still border:
A light interface, which means swapping the pair rather than changing one of them:

A change that will not read well

Dark text on dark panels: ground is still black, so nothing on screen can be read. Change the two together.

Applying changes

The theme is read when the resource starts and applied as the interface loads.

Limits

The interface has no automatic contrast correction: a pair you set is a pair that is drawn.