Marina: neuer Zusatz-Button "Zur Manager-Seite" auf ihrer Team-Modi-Karte + neues kleines Avatarfoto

- team-modis.html: Kartenraster generiert jetzt optional einen zweiten
  Button pro Person (m.extraCta in data-modis.js), aktuell nur bei Marina
  gesetzt (führt zu manager.html). Card-Markup dafür von <a> auf <div> mit
  innerem display:contents-Link umgestellt, damit kein Link im Link
  verschachtelt wird (ungültiges HTML). Alle anderen Karten unverändert.
- Neue CSS-Klasse .btn-spicy-mini: kompakter Polarlicht-Button in den
  Spicy-Media-Markenfarben (Rot/Orange), gleicher Mechanismus wie
  .btn-tiktok/.btn-silver.
- assets/img/avatar-marina.jpg (das KLEINE Foto, z.B. Pyramide-Karte)
  durch neues Foto ersetzt und quadratisch zugeschnitten. Das große Foto
  (card-marina.jpg) bleibt unverändert, wie gewünscht.
This commit is contained in:
2026-08-03 00:11:21 +02:00
parent 47da9bce95
commit d73eb82e70
4 changed files with 90 additions and 6 deletions
+62
View File
@@ -705,6 +705,68 @@ header.site-header {
}
}
/* Kompakter Polarlicht-Button für Karten (z.B. Marinas Team-Modi-Karte →
direkter Link zur Manager-Seite): exakt derselbe Mechanismus wie
.btn-tiktok, nur kleiner und in den Spicy-Media-Markenfarben
(Rot #d94a5c + Orange #e8935a) statt Cyan/Pink. */
.btn-spicy-mini {
position: relative;
isolation: isolate;
overflow: hidden;
display: inline-flex;
align-items: center;
justify-content: center;
gap: .3rem;
margin-top: .6rem;
padding: .5rem 1rem;
border-radius: 999px;
color: #fff;
font-weight: 700;
font-size: .8rem;
background: #0b0e14;
border: 1px solid rgba(255, 255, 255, .16);
text-decoration: none;
transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
box-shadow: 0 5px 14px rgba(0, 0, 0, .35);
}
.btn-spicy-mini span {
position: relative;
z-index: 2;
text-shadow: 0 1px 3px rgba(0, 0, 0, .6), 0 0 12px rgba(0, 0, 0, .35);
}
.btn-spicy-mini::before {
content: "";
position: absolute;
inset: -60%;
z-index: 0;
background:
radial-gradient(circle at 22% 30%, rgba(217, 74, 92, .95), transparent 55%),
radial-gradient(circle at 78% 68%, rgba(232, 147, 90, .95), transparent 58%);
filter: blur(8px) saturate(1.35);
animation: nav-cta-aurora 9s ease-in-out infinite alternate;
}
.btn-spicy-mini::after {
content: "";
position: absolute;
inset: 0;
z-index: 1;
background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, .4) 49%, transparent 63%);
background-size: 240% 100%;
mix-blend-mode: overlay;
animation: nav-cta-shimmer 4.5s linear infinite;
pointer-events: none;
}
.btn-spicy-mini:hover {
transform: translateY(-1px);
border-color: rgba(255, 255, 255, .32);
box-shadow: 0 8px 20px rgba(0, 0, 0, .4),
0 0 16px rgba(217, 74, 92, .35),
0 0 16px rgba(232, 147, 90, .35);
}
@media (prefers-reduced-motion: reduce) {
.btn-spicy-mini::before, .btn-spicy-mini::after { animation: none; }
}
/* Plattform-Karten mit echten Markenfarben (z.B. links.html-Übersicht):
gleicher Polarlicht-Mechanismus wie .btn-tiktok, aber generisch über
--brand-1/--brand-2 (+ optional --brand-3) einstellbar, damit jede
Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 157 KiB

+9
View File
@@ -402,6 +402,15 @@ const MODIS = [
`,
},
quote: "",
// Zusätzlicher Button auf ihrer Team-Modi-Karte (siehe team-modis.html),
// führt direkt zur Manager-Seite — auf Wunsch von Dogi (03.08.2026).
extraCta: {
href: "manager.html",
label: {
de: "🌶️ Zur Manager-Seite", "de-CH": "🌶️ Zur Manager-Site",
en: "🌶️ To the Manager Page", fr: "🌶️ Vers la page Manager", pt: "🌶️ Para a página do Manager",
},
},
social: {},
page: "",
status: "aktiv",
+19 -6
View File
@@ -87,16 +87,29 @@ document.addEventListener("DOMContentLoaded", () => {
const stufe = Math.min(i + 1, MAX_STUFEN);
const personen = rest.filter((m) => m.rank === rang);
const karten = personen
.map(
(m) => `
<a class="profile-card" href="${m.page || `profil.html?p=${m.slug}`}">
.map((m) => {
const profilLink = m.page || `profil.html?p=${m.slug}`;
const kartenInhalt = `
<div class="avatar">${(m.avatar || m.photo) ? `<img src="${m.avatar || m.photo}" alt="${m.name}" loading="lazy">` : `<span class="avatar-initial">${m.name.charAt(0).toUpperCase()}</span>`}</div>
<span class="badge" style="margin-bottom:.5rem;">${t("tm_stufe_prefix")} ${feld(m.rankLabel) || m.rank}</span>
<h3>${m.name}</h3>
<div class="role">${feld(m.role)}</div>
<span class="btn btn-outline" style="pointer-events:none;">${t("tm_profil_ansehen")}</span>
</a>`
)
<span class="btn btn-outline" style="pointer-events:none;">${t("tm_profil_ansehen")}</span>`;
// Optionaler zweiter Button pro Person (aktuell nur Marina →
// manager.html, siehe extraCta in data-modis.js). Eigene
// <div>-Karte statt <a>, weil ein zweiter echter Link NICHT in
// einen anderen Link verschachtelt werden darf (ungültiges HTML).
if (m.extraCta) {
return `
<div class="profile-card">
<a href="${profilLink}" style="display:contents;">${kartenInhalt}</a>
<a class="btn-spicy-mini" href="${m.extraCta.href}"><span>${feld(m.extraCta.label)}</span></a>
</div>`;
}
return `
<a class="profile-card" href="${profilLink}">${kartenInhalt}
</a>`;
})
.join("");
return `<div class="pyramid-tier" data-tier="${stufe}">${karten}</div>`;
})