Keystone Modern
ships as defaultWhat you have now, unchanged — the control. Monochrome, near-invisible borders, hierarchy from weight and brightness rather than a third hue. Every other direction is a deviation from this one, so it earns its place here as the thing to measure against.
- bg #000000
- surface #0A0A0A
- input #141414
- text #EDEDED
- muted #8F8F8F
- accent #FFFFFF
Rockford Hills & Vine · 2A-14, 3F-02
Sandy Shores depot · unassigned
Route 68 milepost 4 · 1L-90
Nightwatch
institutionalCool slate-navy, tighter radii, a signal blue that does the work white currently does. Reads like software someone was issued rather than software someone chose — closer to real dispatch consoles than to a SaaS dashboard. The safest of the five, and the most obvious second default for a server that finds pure black severe.
- bg #0B1017
- surface #121A24
- input #0E151E
- text #DCE6F2
- muted #7A8CA3
- accent #3E8FD6
Rockford Hills & Vine · 2A-14, 3F-02
Sandy Shores depot · unassigned
Route 68 milepost 4 · 1L-90
Watch Commander
the riskAmber phosphor, monospace throughout, square corners, scanlines. Real dispatch ran on amber and green CRT terminals for thirty years, so this isn't a retro costume borrowed from somewhere else — it's this product's own ancestry. It is the one direction here that nobody could mistake for a generic dark theme, and the one most likely to be somebody's whole reason for picking Keystone over a competitor. It is also the one I'd expect you to push back on: sustained amber-on-black is harder to read for long stretches, and the scanlines are decoration I'd ship behind a toggle rather than force.
- bg #0A0805
- surface #100B05
- input #0D0904
- text #FFB93C
- muted #9A6F28
- accent #FFB93C
Rockford Hills & Vine · 2A-14, 3F-02
Sandy Shores depot · unassigned
Route 68 milepost 4 · 1L-90
Daybreak
lightA real light theme, not an inverted dark one — warm paper rather than clinical white, ink-black accent, softer radii, more air. The product is dark-only today, which quietly excludes anyone running a console in a bright room or who finds dark UI harsh. This is the direction with the most users behind it and the least visual novelty, and the one that will expose every place a hardcoded dark hex slipped into a component.
- bg #FAF9F6
- surface #FFFFFF
- input #F6F4F0
- text #16181D
- muted #6A7180
- accent #16181D
Rockford Hills & Vine · 2A-14, 3F-02
Sandy Shores depot · unassigned
Route 68 milepost 4 · 1L-90
Agency
a rule, not a paletteThe other four are fixed palettes. This one is a rule: surfaces stay neutral and the accent is the department you're working. Police blue, fire red, sheriff green, DOT amber — the console you sign into looks like the agency you signed into it as. For whitelabel it's the most useful of the five, because a server owner sets one brand colour and everything derives from it, rather than picking from a menu somebody else wrote.
- bg #07090C
- surface #0E1319
- input #0A0F14
- text #E8EDF4
- muted #8494A8
- accent → set per agency
Rockford Hills & Vine · 2A-14, 3F-02
Sandy Shores depot · unassigned
Route 68 milepost 4 · 1L-90
What I'd want settled before writing any of it
The themes are the easy half. These four decisions shape the system underneath them, and getting them wrong is expensive to undo later.
- Server default vs. personal override. If an owner sets Nightwatch and a member picks Watch Commander, who wins? My assumption: the member, always, with the owner's choice as the default for anyone who hasn't chosen — but a whitelabelled server may want to force theirs.
- Named themes, free colours, or both. A picker of five is a weekend. Arbitrary hex needs contrast validation, or owners will ship consoles nobody can read.
- Where the branding lock sits. It's in the panel footer above. It could also be the sign-on screen, or both. It has to be somewhere a CSS override can't reach.
- Dispatch only, or everywhere. The CAD, the dashboard, and the desktop app share these tokens. Theming one and not the others looks like a bug.
Tell me which directions survive and which don't, and I'll cut the rest before any of this becomes code. If only one lands, that's a useful answer too — the system is worth building for two good themes and not worth it for five mediocre ones.