Theme and branding
How a tenant's apps look and what they say about whose they are. All of it changes on an installed app without a release. A tenant's cohorts can't brand separately. What only an app build changes (the typeface, the icon, the app's name, the screen before sign-in) is not here.
brand.theme
{ "brand": "#0F2664", "action": "#1F6FEB" }
- Two colours, each
#RRGGBB.brandfills the home screen and the bar at the top of every other screen;actionis the buttons and everything tappable, with white text on it. Everything else is a fixed colour the same for every tenant, so a warning always looks like one. actionmust reach 3:1 against white, the colour of the text on it, or the save is refused. The text onbrandis chosen by its lightness, white or black.- The apps follow the phone's light or dark setting. The two colours are the same in both.
actionalso colours the portal for that tenant's staff.- A tenant with an app of its own has its colours and strings set by that app's build. Those rows can't be edited; they change with the next build.
The tenant's logo is the tenant record's own (assetId, the Logo on the tenant form). It shows
at the top of the home screen, on the sign-up page and in the portal's tenant switcher, and must
be a public asset.
brand.strings
Three strings: coachTitle (an unnamed member of staff in a chat), tagline (under the logo
before sign-in) and appGreeting (the top of the home screen, replacing a greeting that changes
with the hour). Each is at most 80 characters, and a longer one is dropped, not trimmed, so
the app's own wording shows.
legal.pages
Two markdown pages, about and helplines, rows under About in Settings in that order. A page a
tenant leaves empty is the DEFAULT tenant's. A page empty on both has no row; a page over 32,768
characters is treated as empty, so its row disappears. Consent, terms and the privacy notice are
legal documents, not pages.
home.header and brand.attribution
home.header holds the home screen's header photo (photoAssetId, a landscape image fading into
the brand colour) and a logo to sit on it (logoAssetId); both must be the tenant's own public,
ready images, or the save is refused. With no logo there, the tenant's logo is used, on a white
tile when there is no photo.
brand.attribution is the credit on the right of the header: a label (up to 80 characters)
above an optional logoAssetId, telling a participant whose app this is. A tenant with none takes
the DEFAULT tenant's; { "suppress": true } shows none.