Theme
Brand colors, logos, and the dark-mode toggle.
Last updated 2026-05-05
Each tenant has a theme — primary brand color, accent, neutral ramp, logo, favicon, login-screen background. The theme drives both the staff app and the customer portal, and is also baked into PDF rendering (invoices, proposals, contracts) so outbound documents match the in-app look. Colors flow through CSS variables (no rebuild needed when you change them) and the dark-mode toggle remembers the staff member's preference per device.
For multi-brand tenants (rare — usually agencies serving sub-brands) the Phase 7 work introduces per-customer-portal themes. Today, theming is tenant-wide.
Related endpoints
GET /api/tenant/settings/theme— current theme tokens + asset urls.PUT /api/tenant/settings/theme— replace tokens.POST /api/tenant/settings/theme/logo— upload and resize logo to multiple sizes.
See the source at apps/web/src/app/(tenant)/settings/branding and packages/ui (token definitions).