Theming & Branding
Last updated
/jabali-admin/server-settings → Branding. All values are server-wide singletons — no per-user override.
Font size
server_settings.panel_font_size. Allowed values: small, medium (default), large. Anything else is normalised to medium for backwards-compat.
Semantic colors
One value per role, applied in both light and dark themes:
| Field | Purpose |
|---|---|
panel_primary_color | Primary brand |
panel_accent_color | Accent highlights |
panel_success_color | Success states |
panel_warning_color | Warning states |
panel_error_color | Error states |
panel_info_color | Info states |
panel_link_color | Link text |
Chrome colors
Separate light + dark values for the panel’s own surfaces:
| Region | Light | Dark |
|---|---|---|
| Top bar | panel_light_topbar_color | panel_dark_topbar_color |
| Page background | panel_light_bg_color | panel_dark_bg_color |
| Card / container | panel_light_container_color | panel_dark_container_color |
| Text | panel_light_text_color | panel_dark_text_color |
Value format
- 7-char hex (
#rrggbb) or 9-char hex with alpha (#rrggbbaa). - Empty string reverts the field to the built-in default.
- Any other format returns
invalid_<field>from the API — validated byisValidHexColor()before the PATCH is accepted.
API
PATCH /api/v1/admin/settings— set any of the fields above.GET /api/v1/admin/settings— read the full settings row.GET /api/v1/branding— unauthenticated read of colors, font size, and logo presence. The login screen and 2FA challenge use this to brand themselves before the user has a session.