feat(theme): per-theme brand logos (VNClagoon wordmark ↔ SRC mark)

Add optional logoLightUrl/logoDarkUrl to InstalledTheme + resolveThemeLogo()
helper; set logos on vnclagoon + src themes; login page and nav-rail prefer the
active theme's logo, falling back to the global config logo. So switching theme
switches the whole brand. 0 type errors.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Bernd Rodler
2026-08-03 18:23:42 +02:00
co-authored by Claude Opus 4.8
parent 1bc5a6a0ce
commit 88670d4bcf
6 changed files with 51 additions and 3 deletions
+4
View File
@@ -1104,6 +1104,8 @@ export const BUILTIN_THEMES: InstalledTheme[] = [
description: 'VNClagoon brand theme — deep navy with cyan accent, DM Sans + Syne',
css: vnclagoonCSS,
skin: vnclagoonSkin,
logoLightUrl: '/branding/vncmail-wordmark-on-light.svg',
logoDarkUrl: '/branding/vncmail-wordmark-on-dark.svg',
variants: ['light', 'dark'],
typography: { fontSans: '"DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif' },
enabled: true,
@@ -1116,6 +1118,8 @@ export const BUILTIN_THEMES: InstalledTheme[] = [
author: 'VNC',
description: 'SRC Advisory brand theme — Swiss red on white, light-first',
css: srcCSS,
logoLightUrl: '/branding/src-logo.svg',
logoDarkUrl: '/branding/src-logo.svg',
variants: ['light', 'dark'],
enabled: true,
builtIn: true,