From 440367b69de5a27f42cdc69c72cd03d0b7384b26 Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Wed, 15 Apr 2026 14:45:14 +0200 Subject: [PATCH] feat(pitch-deck): USP font sizes match Solution slide, product modules updated MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit USP slide: - Title/subtitle same as Solution (text-4xl/text-lg) - Card titles: text-base font-bold (was text-xs) - Card descriptions: text-sm text-white/50 (was text-[10px]) - Circle text: text-sm (was text-[11px]/text-[9px]) - Cards 240px wide with GlassCard wrapper Product slide: - "Integration in Kundenprozesse" → "AI Act Compliance" (UCCA, Betriebsrat) - "Cookie-Generator" → "Tender Matching" (RFQ gegen Codebase) - Remove "FR" badge from deployment options Co-Authored-By: Claude Opus 4.6 (1M context) --- pitch-deck/components/slides/ProductSlide.tsx | 5 +- pitch-deck/components/slides/USPSlide.tsx | 120 +++++------------- 2 files changed, 37 insertions(+), 88 deletions(-) diff --git a/pitch-deck/components/slides/ProductSlide.tsx b/pitch-deck/components/slides/ProductSlide.tsx index 7877ec2..720caee 100644 --- a/pitch-deck/components/slides/ProductSlide.tsx +++ b/pitch-deck/components/slides/ProductSlide.tsx @@ -24,9 +24,9 @@ const MODULES = [ { icon: UserCheck, color: '#14b8a6', de: 'Consent Management', en: 'Consent Management', descDe: 'Einwilligungen, Cookie-Banner, Widerruf', descEn: 'Consent, cookie banner, withdrawal' }, { icon: AlertTriangle, color: '#f59e0b', de: 'Notfallpläne', en: 'Incident Response', descDe: 'Datenschutzvorfälle, Meldepflichten, Eskalation', descEn: 'Data breaches, reporting obligations, escalation' }, { icon: Brain, color: '#a855f7', de: 'Compliance LLM', en: 'Compliance LLM', descDe: 'GPT für Text und Audio — sicher in der EU', descEn: 'GPT for text and audio — securely in EU' }, - { icon: Shield, color: '#8b5cf6', de: 'Cookie-Generator', en: 'Cookie Generator', descDe: 'Cookie-Banner, Consent-Konfiguration', descEn: 'Cookie banner, consent configuration' }, + { icon: Shield, color: '#8b5cf6', de: 'Tender Matching', en: 'Tender Matching', descDe: 'Kundenanfragen (RFQ) gegen Codebase prüfen', descEn: 'Verify customer RFQs against codebase' }, { icon: GraduationCap, color: '#ec4899', de: 'Academy', en: 'Academy', descDe: 'Online-Schulungen für GF und Mitarbeiter', descEn: 'Online training for management and employees' }, - { icon: Puzzle, color: '#0ea5e9', de: 'Integration in Kundenprozesse', en: 'Process Integration', descDe: 'Ticketsysteme, Workflows', descEn: 'Ticket systems, workflows' }, + { icon: Puzzle, color: '#0ea5e9', de: 'AI Act Compliance', en: 'AI Act Compliance', descDe: 'UCCA, Use-Case-Bewertung, Betriebsratsmodul', descEn: 'UCCA, use case assessment, works council module' }, { icon: CheckCircle2, color: '#22c55e', de: 'Sichere Kommunikation', en: 'Secure Communication', descDe: 'Chat + Video mit AI Notetaker', descEn: 'Chat + video with AI notetaker' }, ] @@ -109,7 +109,6 @@ export default function ProductSlide({ lang }: ProductSlideProps) {

{i.product.cloudDesc}

BSI DE - FR {de ? 'Fix oder flexibel' : 'Fixed or flexible'}
diff --git a/pitch-deck/components/slides/USPSlide.tsx b/pitch-deck/components/slides/USPSlide.tsx index 613ecd7..f34c22b 100644 --- a/pitch-deck/components/slides/USPSlide.tsx +++ b/pitch-deck/components/slides/USPSlide.tsx @@ -3,6 +3,7 @@ import { Language } from '@/lib/types' import GradientText from '../ui/GradientText' import FadeInView from '../ui/FadeInView' +import GlassCard from '../ui/GlassCard' import { FileCheck, Code, @@ -35,8 +36,6 @@ export default function USPSlide({ lang }: USPSlideProps) { { icon: GitPullRequest, color: 'text-indigo-400', - border: 'border-indigo-500/20', - bg: 'bg-indigo-500/10', label: de ? 'RFQ-Prüfung' : 'RFQ Verification', desc: de ? 'Kunden-Anforderungsdokumente werden automatisiert gegen die aktuelle Source-Code-Umsetzung geprüft. Abweichungen werden erkannt, Änderungen vorgeschlagen und auf Wunsch direkt im Code umgesetzt — ohne manuelles Nacharbeiten.' @@ -45,8 +44,6 @@ export default function USPSlide({ lang }: USPSlideProps) { { icon: ArrowLeftRight, color: 'text-purple-400', - border: 'border-purple-500/20', - bg: 'bg-purple-500/10', label: de ? 'Bidirektional' : 'Bidirectional', desc: de ? 'Compliance-Anforderungen fliessen direkt in den Code. Umgekehrt aktualisieren Code-Änderungen automatisch die Compliance-Dokumentation. Beide Seiten sind immer synchron — kein Informationsverlust zwischen Audit und Entwicklung.' @@ -55,8 +52,6 @@ export default function USPSlide({ lang }: USPSlideProps) { { icon: Zap, color: 'text-amber-400', - border: 'border-amber-500/20', - bg: 'bg-amber-500/10', label: de ? 'Prozess-Compliance' : 'Process Compliance', desc: de ? 'Vom Audit-Finding über das Ticket bis zur Code-Änderung läuft der gesamte Prozess automatisiert durch. Rollen, Fristen und Eskalation werden End-to-End verwaltet. Nachweise werden automatisch generiert und archiviert.' @@ -65,8 +60,6 @@ export default function USPSlide({ lang }: USPSlideProps) { { icon: Shield, color: 'text-emerald-400', - border: 'border-emerald-500/20', - bg: 'bg-emerald-500/10', label: de ? 'Kontinuierlich' : 'Continuous', desc: de ? 'Klassische Compliance prüft einmal im Jahr und hofft auf das Beste. Unsere Plattform prüft bei jeder Code-Änderung. Findings werden sofort zu Tickets mit konkreten Implementierungsvorschlägen im Issue-Tracker der Wahl.' @@ -76,42 +69,35 @@ export default function USPSlide({ lang }: USPSlideProps) { return (
- {/* Title */} - -

+ +

USP

-

{subtitle}

+

{subtitle}

-
+
- {/* ===== CENTER: Large circle ===== */} + {/* CENTER: Large circle */}
- - {/* Outer spinning dashed ring */}
- - {/* Inner ring */}
- {/* Center hub: Infinity symbol */}
- {/* Left half: Compliance */} -
+
- Compliance + Compliance
    {complianceItems.map((item, idx) => ( -
  • +
  • {item}
  • @@ -119,15 +105,14 @@ export default function USPSlide({ lang }: USPSlideProps) {
- {/* Right half: Code */} -
+
- Code & Security + Code
    {codeItems.map((item, idx) => ( -
  • +
  • {item}
  • @@ -135,73 +120,38 @@ export default function USPSlide({ lang }: USPSlideProps) {
- {/* 4 directional arrows */}
- {/* ===== CARDS: 4 corners, spread out ===== */} - - {/* Top Left */} -
- {(() => { const Icon = capabilities[0].icon; const cap = capabilities[0]; return ( -
-
- - {cap.label} -
-

{cap.desc}

+ {/* 4 CORNER CARDS */} + {capabilities.map((cap, idx) => { + const Icon = cap.icon + const posClass = idx === 0 ? 'top-0 left-0' + : idx === 1 ? 'top-0 right-0' + : idx === 2 ? 'bottom-0 left-0' + : 'bottom-0 right-0' + return ( +
+ +
+ +

{cap.label}

+
+

{cap.desc}

+
- )})()} -
+ ) + })} - {/* Top Right */} -
- {(() => { const Icon = capabilities[1].icon; const cap = capabilities[1]; return ( -
-
- - {cap.label} -
-

{cap.desc}

-
- )})()} -
- - {/* Bottom Left */} -
- {(() => { const Icon = capabilities[2].icon; const cap = capabilities[2]; return ( -
-
- - {cap.label} -
-

{cap.desc}

-
- )})()} -
- - {/* Bottom Right */} -
- {(() => { const Icon = capabilities[3].icon; const cap = capabilities[3]; return ( -
-
- - {cap.label} -
-

{cap.desc}

-
- )})()} -
- - {/* Dashed connection lines from circle to cards */} + {/* SVG connection lines */} - - - - + + + +