Sprachumschalter: Farben stärker + auch über die Schrift, Polarlicht-Leuchten
Kräftigere, gesättigtere Akzentfarbe pro Sprache (glut) statt der eher stumpfen Original-Flaggentöne. Die Farbe liegt jetzt nicht mehr nur auf der Kugel, sondern auch auf dem Sprachcode-Text (DE/EN/...) und den Dropdown-Einträgen, inklusive leuchtendem text-shadow. Sanft pulsierender Glow-Effekt (Helligkeit/Sättigung, alle 3,2s) sorgt für den gewünschten "Polarlicht"-Charakter, respektiert aber prefers-reduced-motion.
This commit is contained in:
+26
-1
@@ -212,8 +212,33 @@ header.site-header {
|
|||||||
box-shadow:
|
box-shadow:
|
||||||
inset -2px -2px 4px rgba(0, 0, 0, .45),
|
inset -2px -2px 4px rgba(0, 0, 0, .45),
|
||||||
inset 2px 2px 3px rgba(255, 255, 255, .55),
|
inset 2px 2px 3px rgba(255, 255, 255, .55),
|
||||||
0 0 5px rgba(0, 0, 0, .35);
|
0 0 7px 1px color-mix(in srgb, var(--sprach-glut, transparent) 85%, transparent),
|
||||||
|
0 0 16px 2px color-mix(in srgb, var(--sprach-glut, transparent) 55%, transparent);
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
|
animation: sprach-glut-puls 3.2s ease-in-out infinite;
|
||||||
|
}
|
||||||
|
/* Die Sprachfarbe zieht sich jetzt auch über die Schrift — kräftiger,
|
||||||
|
leuchtender Text statt neutralem Weiß, plus ein sanft pulsierender
|
||||||
|
Schein (dieselbe "Polarlicht"-Idee wie beim Bewerben-Knopf/den
|
||||||
|
Foto-Rahmen, nur in der jeweiligen Sprachfarbe). */
|
||||||
|
.sprach-schalter > button,
|
||||||
|
.sprach-schalter .nav-dropdown a {
|
||||||
|
color: var(--sprach-glut, var(--text));
|
||||||
|
text-shadow:
|
||||||
|
0 0 6px color-mix(in srgb, var(--sprach-glut, transparent) 70%, transparent),
|
||||||
|
0 0 14px color-mix(in srgb, var(--sprach-glut, transparent) 45%, transparent);
|
||||||
|
}
|
||||||
|
.sprach-schalter .nav-dropdown a:hover,
|
||||||
|
.sprach-schalter .nav-dropdown a.active {
|
||||||
|
background: color-mix(in srgb, var(--sprach-glut, var(--bg-alt)) 16%, var(--bg-alt));
|
||||||
|
}
|
||||||
|
.sprach-kurz { animation: sprach-glut-puls 3.2s ease-in-out infinite; display: inline-block; }
|
||||||
|
@keyframes sprach-glut-puls {
|
||||||
|
0%, 100% { filter: brightness(1) saturate(1); }
|
||||||
|
50% { filter: brightness(1.25) saturate(1.3); }
|
||||||
|
}
|
||||||
|
@media (prefers-reduced-motion: reduce) {
|
||||||
|
.sprach-kugel, .sprach-kurz { animation: none; }
|
||||||
}
|
}
|
||||||
|
|
||||||
/* "Bewerben" ist der Treffpunkt beider Welten (Team Dogi + Spicy Media) —
|
/* "Bewerben" ist der Treffpunkt beider Welten (Team Dogi + Spicy Media) —
|
||||||
|
|||||||
+14
-9
@@ -33,12 +33,17 @@
|
|||||||
"GB EN" (Flagge≠Sprachcode bei Englisch) usw. Ein einzelnes
|
"GB EN" (Flagge≠Sprachcode bei Englisch) usw. Ein einzelnes
|
||||||
Globus-Symbol im Knopf plus volle Sprachnamen im Dropdown ist
|
Globus-Symbol im Knopf plus volle Sprachnamen im Dropdown ist
|
||||||
eindeutig und funktioniert auf jedem Betriebssystem gleich. */
|
eindeutig und funktioniert auf jedem Betriebssystem gleich. */
|
||||||
|
/* Pro Sprache eine kräftige, gut leuchtende Akzentfarbe (glut) für Text
|
||||||
|
+ Kugel-Glanz, plus einen zweifarbigen Verlauf (farben) für die Kugel
|
||||||
|
selbst — angelehnt an die jeweilige Landesfarbe, aber bewusst
|
||||||
|
gesättigter/heller gewählt (nicht die originalen, oft eher stumpfen
|
||||||
|
Flaggenfarben), damit der Polarlicht-Leuchteffekt gut trägt. */
|
||||||
const SPRACHEN = [
|
const SPRACHEN = [
|
||||||
{ code: "de", kurz: "DE", name: "Deutsch", farben: "linear-gradient(160deg, #1a1a1a 0%, #dd0000 50%, #ffce00 100%)" },
|
{ code: "de", kurz: "DE", name: "Deutsch", glut: "#ffb300", farben: "linear-gradient(160deg, #ffe066 0%, #ff8c00 100%)" },
|
||||||
{ code: "de-CH", kurz: "CH", name: "Deutsch (Schweiz)", farben: "linear-gradient(160deg, #d52b1e 0%, #d52b1e 60%, #ffffff 100%)" },
|
{ code: "de-CH", kurz: "CH", name: "Deutsch (Schweiz)", glut: "#ff3b3b", farben: "linear-gradient(160deg, #ff8080 0%, #d90000 100%)" },
|
||||||
{ code: "en", kurz: "EN", name: "English", farben: "linear-gradient(160deg, #00247d 0%, #ffffff 50%, #cf142b 100%)" },
|
{ code: "en", kurz: "EN", name: "English", glut: "#2f6bff", farben: "linear-gradient(160deg, #7fa8ff 0%, #1a3fd6 100%)" },
|
||||||
{ code: "fr", kurz: "FR", name: "Français", farben: "linear-gradient(160deg, #0055a4 0%, #ffffff 50%, #ef4135 100%)" },
|
{ code: "fr", kurz: "FR", name: "Français", glut: "#00c2ff", farben: "linear-gradient(160deg, #7fe3ff 0%, #0090cc 100%)" },
|
||||||
{ code: "pt", kurz: "PT", name: "Português", farben: "linear-gradient(160deg, #046a38 0%, #046a38 45%, #da291c 100%)" },
|
{ code: "pt", kurz: "PT", name: "Português", glut: "#20d97a", farben: "linear-gradient(160deg, #7cf5b0 0%, #0a9e4c 100%)" },
|
||||||
];
|
];
|
||||||
const SPRACHE_SCHLUESSEL = "dogi-sprache";
|
const SPRACHE_SCHLUESSEL = "dogi-sprache";
|
||||||
|
|
||||||
@@ -252,14 +257,14 @@
|
|||||||
const aktiv = SPRACHEN.find((s) => s.code === aktuell) || SPRACHEN[0];
|
const aktiv = SPRACHEN.find((s) => s.code === aktuell) || SPRACHEN[0];
|
||||||
return `
|
return `
|
||||||
<div class="nav-group sprach-schalter">
|
<div class="nav-group sprach-schalter">
|
||||||
<button type="button" aria-expanded="false" aria-label="${t("sprache_aria")}">
|
<button type="button" aria-expanded="false" aria-label="${t("sprache_aria")}" style="--sprach-glut:${aktiv.glut};">
|
||||||
<span class="sprach-kugel" style="background:${aktiv.farben};" aria-hidden="true"></span>
|
<span class="sprach-kugel" style="background:${aktiv.farben};--sprach-glut:${aktiv.glut};" aria-hidden="true"></span>
|
||||||
${aktiv.kurz} <span aria-hidden="true">▾</span>
|
<span class="sprach-kurz">${aktiv.kurz}</span> <span aria-hidden="true">▾</span>
|
||||||
</button>
|
</button>
|
||||||
<div class="nav-dropdown">
|
<div class="nav-dropdown">
|
||||||
${SPRACHEN.map(
|
${SPRACHEN.map(
|
||||||
(s) =>
|
(s) =>
|
||||||
`<a href="#" data-sprache="${s.code}"${s.code === aktuell ? ' class="active"' : ""}><span class="sprach-kugel" style="background:${s.farben};" aria-hidden="true"></span>${s.name}</a>`
|
`<a href="#" data-sprache="${s.code}" style="--sprach-glut:${s.glut};"${s.code === aktuell ? ' class="active"' : ""}><span class="sprach-kugel" style="background:${s.farben};--sprach-glut:${s.glut};" aria-hidden="true"></span>${s.name}</a>`
|
||||||
).join("")}
|
).join("")}
|
||||||
</div>
|
</div>
|
||||||
</div>`;
|
</div>`;
|
||||||
|
|||||||
Reference in New Issue
Block a user