**Hotel präsenter auf Karten:** - Größerer Hotel-Marker (56px vs 38px) - Goldener pulsierender Glow (CSS-Animation hotelPulse) - Permanentes Label 'Hotel Uno · Basis' unter dem Pin - Auto-Open Popup nach 1.5s mit goldenem Banner - Filter-Toggle (Hotel immer sichtbar, Action/Fun/Sight ausblendbar) **Feature 7 - Route zwischen Locations:** - OSRM Public API für echte Auto-Routen - Schnell-Routen vom Hotel (3 nächste Locations) - 'Zurück zum Hotel' Button in jedem Location-Popup - Fallback auf Haversine-Luftlinie wenn API down **Feature 8 - Was ist in der Nähe:** - Nachbarn <3km Luftlinie in jedem Popup **Feature 14 - Restaurant-Tipps:** - Geo-Cluster-basierte Restaurant-Empfehlungen pro Location - 14 handgepflegte Tipps (€€, Cuisine, Beschreibung) **Feature 20 - PWA:** - manifest.json + sw.js (cache-first für eigene Files) - Theme-Color, Apple-Meta, SW-Registrierung in allen 5 HTML-Dateien **Feature 21 - Dark/Light Mode Toggle:** - CSS-Variablen-System + 🌙/☀️ Toggle-Button - localStorage-Persistenz (nur index.html, andere Seiten folgen) **Bugfixes:** - Enigma-URL auf User-Sublink korrigiert (alle 3 Map-Dateien) - tourenplan-mit-tram.html Locations-Sync mit tourenplan.html (Endorfin/KartPlanet hatten komplett andere Preise+Koordinaten+URLs)
27 lines
1.1 KiB
JSON
27 lines
1.1 KiB
JSON
{
|
||
"name": "JGA Prag 2026",
|
||
"short_name": "JGA Prag",
|
||
"description": "Interaktive Karten, Wetter-Vorschau, Packliste und mehr für den Junggesellenabschied in Prag (25.–26. Juli 2026)",
|
||
"start_url": "./index.html",
|
||
"scope": "./",
|
||
"display": "standalone",
|
||
"orientation": "portrait-primary",
|
||
"background_color": "#1c1c1f",
|
||
"theme_color": "#3b82f6",
|
||
"lang": "de",
|
||
"categories": ["travel", "lifestyle", "utilities"],
|
||
"icons": [
|
||
{
|
||
"src": "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 192 192'><rect width='192' height='192' fill='%231c1c1f'/><text y='150' x='50%' text-anchor='middle' font-size='140'>🧭</text></svg>",
|
||
"sizes": "192x192",
|
||
"type": "image/svg+xml",
|
||
"purpose": "any maskable"
|
||
},
|
||
{
|
||
"src": "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><rect width='512' height='512' fill='%231c1c1f'/><text y='400' x='50%' text-anchor='middle' font-size='380'>🧭</text></svg>",
|
||
"sizes": "512x512",
|
||
"type": "image/svg+xml",
|
||
"purpose": "any maskable"
|
||
}
|
||
]
|
||
} |