How it works
How branding works
How one set of brand colours becomes the dark and light themes in the console and the operator app, why Signal Red never changes, and where the logo is kept.
Branding makes ROK look like your agency without letting anyone break it. You choose a handful of inputs — a name, a logo, one or two colours, a font pair and a corner style — and ROK works out the rest. By the end of this page you will know how those inputs become two complete themes, how they reach the console and the app, and which colour is never yours to change.
You store inputs, not a theme
Your agency's branding is one record holding only what was chosen on Settings → Branding (opens the admin console); nothing derived is saved. With no record — where every new agency starts — everything shows ROK's stock look. A record that fails validation, such as one saved with a blank display name, is treated as no record at all: colours and logo included, everything falls back to ROK's defaults until someone saves a valid one.
Only people who hold Manage branding can change it, and the database refuses everyone else. Every member can read it, because their console and app are themed from it.
Two themes from one colour set
The console has a dark and a light theme and the app has a dark one, but you choose colours once. A single shared piece of code works out both themes, and the console and the app run the same code, so the two can never drift apart:
- Neutrals keep ROK's lightness. Backgrounds, surfaces, borders and muted text keep ROK's light and dark values, faintly re-tinted towards your primary's hue. Body text stays ROK's own near-white or near-black.
- Your primary is used as given — unless it is hard to see. If it cannot reach 3:1 contrast against the theme's background, ROK lightens it (dark theme) or darkens it (light theme) in small steps until it does. Only the lightness moves; the hue and saturation are kept. A deep navy can therefore look brighter in the dark theme than the swatch you picked.
- Text on primary-coloured buttons is near-black or near-white, whichever reads better.
- The accent gets the same contrast nudge if you set one. Left on auto, it is your primary turned 40° round the colour wheel.
The warnings on the branding page come from the same rules. They tell you which theme will adjust a colour, and they never stop you saving.
Signal Red is never derived
Every theme also carries a critical colour for safety warnings, destructive actions and alarms. That colour is Signal Red, fixed in code for every agency. It is not part of your colour set, nothing you save feeds into it, and in the console your branding never overrides the colour that destructive and critical controls use.
What ROK does not do is stop you choosing a red primary. If your primary or accent sits close to Signal Red's hue, the branding page warns you — and still lets you save. Pick a distinct hue, so an operator never mistakes your brand colour for an alarm.
Where it applies
In the console, your branding is a stylesheet laid over ROK's own, for everyone whose active agency is yours, in both light and dark mode. It replaces the brand-bearing colours — backgrounds, cards, borders, primary, focus rings, the sidebar and the first two chart colours — and leaves the rest of ROK's palette alone. Switching to another agency switches to its branding. You see your save at once; everyone else sees it the next time a page loads for them. The platform console never takes on an agency's branding.
In the operator app, branding travels with every sync and is stored on the phone with that agency's content, so the app stays branded offline. The app uses the dark theme only; it has no light mode. Every font option ships inside the app, so changing fonts needs no download. Before someone signs in, and before a phone's first sync, the app shows ROK's own look. Someone in two agencies sees each agency's branding while it is the active one. See how offline reading works.
The logo
Logos live in a storage bucket of their own, in one folder per agency. Uploading, replacing or removing a file there needs Manage branding and is limited to your own agency's folder; the bucket accepts PNG, JPEG, WebP and SVG files up to 5 MB.
The console adds a version stamp to the logo's address, so a new save shows straight away instead of a cached copy. The app keeps its own copy on the phone and fetches a fresh one after each branding save; if the download fails, it shows the wordmark text instead and tries again at the next sync.
In practice
- Check both themes in the preview. A colour that is used unchanged on dark can be adjusted on light, and the other way round.
- The app changes only at sync. Operators who have not synced since your save still see the old branding — or ROK's look, if their phone has never synced.
- Reset is a fresh start. Resetting deletes your record and the logo file; everyone falls back to ROK's look, and the app follows at its next sync. See Branding.
See also
- ReferenceBrandingSet your agency's display name, wordmark, logo, colours, fonts and corner style for the console and the operator app, with a live preview before you save.
- How it worksHow offline reading worksHow the operator app works with no mobile signal — why reading never waits for the network, and what a sync does when one is available.
- How it worksAgencies, members and what's separateHow ROK keeps each agency's content, people and recognition apart — and what changes when someone belongs to more than one.