Feature: Welten-Labels klickbar (JETZT|HUND|WELT), aktives Label hervorgehoben, Desktop-Tab-Optik, SW by-v651

This commit is contained in:
rene 2026-05-03 11:09:14 +02:00
parent a84df71383
commit f4052fbb7d
5 changed files with 25 additions and 7 deletions

View file

@ -7592,9 +7592,18 @@ svg.empty-state-icon {
font-size: 9px;
font-weight: 800;
letter-spacing: 0.12em;
color: var(--c-text-secondary);
color: white;
opacity: 0.4;
text-transform: uppercase;
transition: opacity 0.18s;
}
.wlabel.active { opacity: 1; }
@media (min-width: 768px) {
#world-labels { gap: 48px; font-size: 11px; }
.wlabel { opacity: 0.5; padding: 4px 10px; border-radius: 8px; }
.wlabel:hover { opacity: 0.8; background: rgba(255,255,255,0.08); }
.wlabel.active { opacity: 1; background: rgba(255,255,255,0.12); }
}
/* Settings-Button */

View file

@ -93,9 +93,9 @@
</script>
<!-- CSS: Reihenfolge ist wichtig — ?v= zwingt Browser zur Neuladung -->
<link rel="stylesheet" href="/css/design-system.css?v=650">
<link rel="stylesheet" href="/css/layout.css?v=650">
<link rel="stylesheet" href="/css/components.css?v=650">
<link rel="stylesheet" href="/css/design-system.css?v=651">
<link rel="stylesheet" href="/css/layout.css?v=651">
<link rel="stylesheet" href="/css/components.css?v=651">
</head>
<body>
@ -565,7 +565,7 @@
<script src="/js/api.js?v=94"></script>
<script src="/js/ui.js?v=94"></script>
<script src="/js/app.js?v=94"></script>
<script src="/js/worlds.js?v=650"></script>
<script src="/js/worlds.js?v=651"></script>
<!-- Feature-Seiten werden lazy geladen -->

View file

@ -3,7 +3,7 @@
Router, State-Management, Navigation, Initialisierung.
============================================================ */
const APP_VER = '650'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
const APP_VER = '651'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
const APP_VERSION = '1.2.1'; // ← semantische Version, wird bei make release gesetzt
const IS_STAGING = location.hostname === 'staging.banyaro.app';

View file

@ -145,6 +145,7 @@ window.Worlds = (() => {
function _updateDots() {
document.querySelectorAll('.wdot').forEach((d, i) => d.classList.toggle('active', i === _cur));
document.querySelectorAll('.wlabel').forEach((l, i) => l.classList.toggle('active', i === _cur));
}
function _updateFab() {
@ -167,6 +168,14 @@ window.Worlds = (() => {
if (i === 2 && !_weltInited) { _weltInited = true; _renderWelt(); }
});
});
document.querySelectorAll('.wlabel').forEach((lbl, i) => {
lbl.style.pointerEvents = 'auto';
lbl.style.cursor = 'pointer';
lbl.addEventListener('click', () => {
_goTo(i, true);
if (i === 2 && !_weltInited) { _weltInited = true; _renderWelt(); }
});
});
}
function _openFab() {

View file

@ -3,7 +3,7 @@
Offline-Cache + Push Notifications + Tile-Cache
============================================================ */
const CACHE_VERSION = 'by-v650';
const CACHE_VERSION = 'by-v651';
const CACHE_STATIC = `${CACHE_VERSION}-static`;
const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten
const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache