Branding configuration
Generates the document imported by Portal customisation → Branding → Import configuration. Output a single JSON object. Every field is optional: whatever you omit keeps its current value in the portal. Nothing is written to the database on import — the operator reviews the result in the form and presses Save.Document
kind is optional, but when present it must be "branding": a document declaring another kind is refused, so a coaching document pasted into the branding tab fails loudly instead of half-applying. Without kind the import still runs, with a warning that the type could not be verified.
Fields
style
- bold — serif display headings, large type, gradient accents, dark position posters.
- minimal — headings drop to the body font at reduced sizes, gradients collapse to flat colour, white cards instead of dark posters.
minimal, so the theme is not fighting the gradients.
Colour format
Colours are space-separated HSL channels, not hex and nothsl(...):
A portal theme (theme CSS) reads these through
var(--accent), so the brand colour set here stays the single source of truth even when the pages are restyled.
Speech term boosting
Domain vocabulary that speech-to-text would otherwise mishear. Supply the words a learner or candidate will actually say out loud that a general-purpose recogniser gets wrong: clinical terms, drug names, product names, the organisation’s own name. Constraints, enforced on import exactly as the form enforces them:- 5 to 50 characters per term. Shorter or longer terms are dropped and reported. This rules out most short abbreviations —
ECGis too short to qualify,electrocardiogramis fine. - Maximum 100 terms. Beyond that the first 100 are kept and the rest reported.
- Only supported in some speech languages. The branding tab lists which; a term set for an unsupported language is simply inert.
Not in this document
These are set in the admin by hand; the import neither reads nor changes them:Rules
- Reject the document rather than guess if
styleorreport_templateis not one of its values. - Do not invent colours to fill the palette. Supply only what the brand defines and let the rest keep their current values.
- Check contrast between
primaryandprimary_oppositebefore emitting. - Only reference logos that are already hosted at a public https URL.