169 lines
5.4 KiB
HTML
169 lines
5.4 KiB
HTML
<!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="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 Open‑Source‑Projekt</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>
|