Files
weltze.it/index-map.html
2025-10-13 22:59:30 -06:00

170 lines
5.4 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Weltze.it — Alle Zeitzonen im Blick</title>
<meta name="theme-color" content="#0f172a">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<link rel="stylesheet" href="styles.css">
<style>
.layout {
grid-template-rows: auto auto;
}
.map-panel {
background: var(--panel-background);
border: var(--border-thickness) solid var(--panel-border);
border-radius: 18px;
padding: clamp(1.2rem, 4vw, 1.8rem);
backdrop-filter: blur(6px);
box-shadow: var(--panel-shadow);
display: flex;
flex-direction: column;
gap: 1rem;
}
.map-panel header {
display: flex;
flex-direction: column;
gap: 0.3rem;
}
.map-panel h3 {
font-size: 1.1rem;
font-weight: 700;
}
.map-panel p {
color: var(--text-color-alt);
font-size: 0.9rem;
line-height: 1.4;
}
.map-container {
position: relative;
width: 100%;
aspect-ratio: 12 / 5;
border: var(--border-thickness) solid var(--panel-border);
border-radius: 14px;
overflow: hidden;
background: var(--background-color-alt);
}
.map-container svg {
width: 100%;
height: 100%;
cursor: crosshair;
}
.map-overlay {
position: absolute;
inset: 0;
pointer-events: none;
display: flex;
align-items: center;
justify-content: center;
font-size: 2rem;
font-weight: 700;
color: rgba(255,255,255,0.85);
text-shadow: 0 3px 12px rgba(0,0,0,0.4);
opacity: 0;
transition: opacity 0.2s ease;
}
.map-overlay.visible {
opacity: 1;
}
.map-tooltip {
position: absolute;
background: rgba(15, 23, 42, 0.85);
color: #f8fafc;
padding: 0.45rem 0.75rem;
border-radius: 8px;
font-size: 0.85rem;
pointer-events: none;
transform: translate(-50%, -120%);
white-space: pre;
opacity: 0;
transition: opacity 0.15s ease;
}
.map-tooltip.visible {
opacity: 1;
}
@media (max-width: 960px) {
.layout {
grid-template-rows: auto;
}
.map-panel {
order: 2;
}
.comparisons {
order: 3;
}
}
</style>
<link rel="manifest" href="manifest.webmanifest">
<link rel="icon" type="image/png" sizes="192x192" href="icons/icon-192.png">
<link rel="icon" type="image/png" sizes="512x512" href="icons/icon-512.png">
<link rel="apple-touch-icon" href="icons/icon-192.png">
<script defer src="https://umami.due.ren/script.js" data-website-id="4692d3ad-c36a-4fb9-a7f0-182a8fe72a0b"></script>
</head>
<body>
<header class="site-header">
<div class="brand">
<h1>weltze.it</h1>
<p>Alle Zeitzonen auf den ersten Blick.</p>
</div>
<button id="theme-toggle" class="theme-toggle" type="button" aria-label="Dunklen Modus umschalten">
<span class="theme-toggle-icon" aria-hidden="true"></span>
<span class="theme-toggle-label">Dunkler Modus</span>
</button>
<div class="local-time">
<h2>Deine aktuelle Zeit</h2>
<div id="local-time" class="time-display">--:--</div>
<div id="local-date" class="date-display"></div>
<div id="local-zone" class="zone-display"></div>
</div>
</header>
<main class="layout">
<section class="search-panel">
<h3>Finde eine Stadt oder Zeitzone</h3>
<label for="search-input" class="visually-hidden">Suche Stadt, Land oder Zeitzone</label>
<input id="search-input" class="search-input" type="search" placeholder="Suche nach Städten, Ländern oder Zeitzonen…" autocomplete="off">
<div id="search-results" class="search-results"></div>
<div class="tips">
<strong>Tipp:</strong> Füge mehrere Orte hinzu, um Abweichungen direkt zu vergleichen.
</div>
</section>
<section class="map-panel">
<header>
<h3>Interaktive Zeitzonen-Karte (Prototyp)</h3>
<p>Tippe auf einen Punkt der Karte, um die nächstgelegene Zeitzone zu übernehmen. Die Karte verwendet das Wikimedia-Weltzeit-Zonen-SVG.</p>
</header>
<div id="map-container" class="map-container">
<div class="map-overlay" id="map-overlay">UTC±00:00</div>
<div class="map-tooltip" id="map-tooltip"></div>
</div>
<p class="map-disclaimer">Quelle: <a href="https://en.wikipedia.org/wiki/Time_zone">Wikipedia Time zone</a> · Lizenz: CC-BY-SA 4.0</p>
</section>
<section class="comparisons">
<header class="comparisons-header">
<h3>Ausgewählte Orte</h3>
<button id="reset-button" class="reset-button" type="button">Nur lokalen Ort behalten</button>
</header>
<div class="table-headings">
<div>Ort</div>
<div>Aktuelle Zeit</div>
<div>Abweichung zur lokalen Zeit</div>
</div>
<ul id="selection-list" class="selection-list"></ul>
</section>
</main>
<footer class="site-footer">
<p><a href="https://git.due.ren/andreas/weltze.it">Ein OpenSourceProjekt</a> von <a href="https://andreas.due.ren">Andreas Düren</a></p>
</footer>
<script src="zones.js"></script>
<script src="app.js"></script>
<script src="map-prototype.js"></script>
</body>
</html>