diff --git a/packages/core-service/src/core/expert-profile/profile-export.service.ts b/packages/core-service/src/core/expert-profile/profile-export.service.ts index 78a3552..fa832be 100644 --- a/packages/core-service/src/core/expert-profile/profile-export.service.ts +++ b/packages/core-service/src/core/expert-profile/profile-export.service.ts @@ -105,6 +105,14 @@ function lightenColor(hex: string, factor: number): string { return `#${lr.toString(16).padStart(2, '0')}${lg.toString(16).padStart(2, '0')}${lb.toString(16).padStart(2, '0')}`; } +function darkenColor(hex: string, factor: number): string { + const { r, g, b } = hexToRgb(hex); + const dr = Math.round(r * (1 - factor)); + const dg = Math.round(g * (1 - factor)); + const db = Math.round(b * (1 - factor)); + return `#${dr.toString(16).padStart(2, '0')}${dg.toString(16).padStart(2, '0')}${db.toString(16).padStart(2, '0')}`; +} + // ============================================================ // ProfileExportService // ============================================================ @@ -256,7 +264,8 @@ export class ProfileExportService { // Akzentfarbe dynamisch aus Logo extrahieren if (platformLogo) { const extracted = await this.extractDominantColor(platformLogo); - if (extracted) accentColor = extracted; + // Extrahierte Farbe um 30% abdunkeln damit sie im Druck kräftiger wirkt + if (extracted) accentColor = darkenColor(extracted, 0.30); } const fullName = `${data.firstName} ${data.lastName}`; @@ -664,10 +673,10 @@ export class ProfileExportService { } catch { /* ignore */ } } - // Dominante Farbe aus Logo extrahieren + // Dominante Farbe aus Logo extrahieren und abdunkeln if (platformLogo) { const extracted = await this.extractDominantColor(platformLogo); - if (extracted) accentColor = extracted; + if (extracted) accentColor = darkenColor(extracted, 0.30); } let companyFooterText: string | null = null; diff --git a/packages/frontend/src/profile/ExpertProfileTab.module.css b/packages/frontend/src/profile/ExpertProfileTab.module.css index 9093617..fbf9ff2 100644 --- a/packages/frontend/src/profile/ExpertProfileTab.module.css +++ b/packages/frontend/src/profile/ExpertProfileTab.module.css @@ -279,6 +279,7 @@ /* === Buttons === */ .btnPrimary { height: 32px; + min-width: 130px; padding: 0 1rem; background: var(--color-primary); color: white; @@ -303,6 +304,7 @@ .btnSecondary { height: 32px; + min-width: 130px; padding: 0 1rem; background: transparent; color: var(--color-text-secondary);