From 51149e8c5f0a81d526eaa57ace9fda7c7f27ffcd Mon Sep 17 00:00:00 2001 From: Felix Schneider Date: Thu, 11 Jun 2026 22:28:51 +0200 Subject: [PATCH] Platzhalter-Avatar: AdobeStock-Frauenavatar (von alter Seite, lokal optimiert 11 KB) statt Initialen-Fallback Co-Authored-By: Claude Fable 5 --- app/components/person-card.php | 19 ++++----------- public/assets/css/components.css | 28 ---------------------- public/assets/img/persons/platzhalter.jpg | Bin 0 -> 10753 bytes 3 files changed, 4 insertions(+), 43 deletions(-) create mode 100644 public/assets/img/persons/platzhalter.jpg diff --git a/app/components/person-card.php b/app/components/person-card.php index 052828c..3c8660f 100644 --- a/app/components/person-card.php +++ b/app/components/person-card.php @@ -5,16 +5,11 @@ declare(strict_types=1); /** * Visitenkarte für eine Person. Props: * $person array{department, name, phone?, email?, image?} - * Ohne image rendert die Karte einen geschlechtsneutralen Initialen-Avatar - * (Coolvetica-Initialen + Logo-Wasserzeichen) — keinen Foto-Platzhalter. + * Ohne image greift der Platzhalter-Avatar (img/persons/platzhalter.jpg). * Kontakt-Link: phone → tel:, sonst email → mailto:. */ $image = $person['image'] ?? null; - -$initials = implode('', array_map( - static fn (string $word): string => mb_substr($word, 0, 1), - array_slice(preg_split('/\s+/', trim($person['name'])) ?: [], 0, 2) -)); +$src = $image ?: 'img/persons/platzhalter.jpg'; if (!empty($person['phone'])) { $contactHref = 'tel:' . preg_replace('/[^+\d]/', '', $person['phone']); @@ -30,15 +25,9 @@ if (!empty($person['phone'])) { ?>
- - <?= e($person['name']) ?> - - -

diff --git a/public/assets/css/components.css b/public/assets/css/components.css index 1335366..63fd001 100644 --- a/public/assets/css/components.css +++ b/public/assets/css/components.css @@ -319,34 +319,6 @@ object-fit: cover; } -/* Initialen-Avatar: geschlechtsneutraler Fallback ohne Foto */ -.person-card__initials { - position: relative; - display: grid; - place-items: center; - aspect-ratio: 4 / 5; - background: radial-gradient(circle at 50% 35%, rgb(255 255 255 / 0.07), transparent 65%), var(--clr-bg-deep); - overflow: hidden; -} - -.person-card__initials span { - font-family: var(--ff-heading); - font-size: var(--fs-800); - letter-spacing: 0.06em; - color: var(--clr-text-muted); -} - -.person-card__initials::after { - /* dezente rote Akzentlinie unten, statt Logo-Wasserzeichen */ - content: ''; - position: absolute; - left: 0; - right: 0; - bottom: 0; - height: 3px; - background: linear-gradient(90deg, transparent, rgb(var(--clr-accent-rgb) / 0.6), transparent); -} - .person-card__body { display: grid; gap: 0.2rem; diff --git a/public/assets/img/persons/platzhalter.jpg b/public/assets/img/persons/platzhalter.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c5656d8d6f4797c0a195722fabe746ed9bbe4e1a GIT binary patch literal 10753 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 WOaHe7F<;#l{Yk*{KV23=?)fh^D>jP& literal 0 HcmV?d00001