Map tab: full-bleed map with floating glass controls (Apple Weather style)
Publish Container / publish (push) Successful in 2m58s
Publish Container / publish (push) Successful in 2m58s
- Map fills everything between the top bar and bottom nav; no page scroll on this tab - Floating round controls (layers, my location, full screen), readout chips top-left, layers sheet beside the controls, weather summary + radar timeline floating at the bottom - Safe-area aware in full-screen mode; zoom buttons tucked away on touch devices Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4f47d67a7e
commit
8252017417
4 files changed
+102
-60
No files matched your search
+42
-43
@@ -248,26 +248,37 @@
|
||||
<div id="station-live" class="sl"></div>
|
||||
</div>
|
||||
|
||||
<!-- ── TAB: MAP (full-bleed map, floating glass controls) ── -->
|
||||
<div id="tab-unified-map" class="tab-panel hidden">
|
||||
<div class="unified-map-wrap">
|
||||
<!-- Map Controls -->
|
||||
<div class="map-controls-header">
|
||||
<div class="map-controls-row">
|
||||
<label for="base-map-select" class="control-label">Base Map:</label>
|
||||
<select id="base-map-select" class="map-select">
|
||||
<div class="unified-map-shell">
|
||||
<div id="unified-map" class="unified-map-container"></div>
|
||||
|
||||
<div class="map-overlay-readouts" id="map-overlay-readouts">
|
||||
<span class="map-readout-chip" id="overlay-temp">Temp --</span>
|
||||
<span class="map-readout-chip" id="overlay-aqi">AQI --</span>
|
||||
<span class="map-readout-chip" id="overlay-sunmoon">Sun -- • Moon --</span>
|
||||
</div>
|
||||
|
||||
<div class="map-hud" role="toolbar" aria-label="Map controls">
|
||||
<button id="layer-menu-toggle" class="hud-btn" type="button" aria-expanded="false" aria-label="Map layers" title="Layers">
|
||||
<svg viewBox="0 0 24 24" width="22" height="22" aria-hidden="true"><path d="M12 3 3 8l9 5 9-5-9-5Z" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linejoin="round"/><path d="m3 12 9 5 9-5M3 16l9 5 9-5" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linejoin="round" stroke-linecap="round"/></svg>
|
||||
</button>
|
||||
<button id="map-recenter-btn" class="hud-btn" type="button" aria-label="My location" title="My location">
|
||||
<svg viewBox="0 0 24 24" width="22" height="22" aria-hidden="true"><path d="M21 3 3 10.5l7 2.5 2.5 7L21 3Z" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linejoin="round"/></svg>
|
||||
</button>
|
||||
<button id="map-fullscreen-btn" class="hud-btn radar-fs-btn" type="button" aria-label="Full screen" title="Full screen">⛶</button>
|
||||
</div>
|
||||
|
||||
<div id="layer-menu-panel" class="map-layer-menu-panel glass hidden" role="dialog" aria-label="Map layers">
|
||||
<div class="lm-head"><b>Map</b><button type="button" id="layer-menu-close" class="lm-close" aria-label="Close layers">✕</button></div>
|
||||
<label class="lm-style" for="base-map-select"><span>Style</span> <select id="base-map-select" class="map-select">
|
||||
<option value="dark">Dark</option>
|
||||
<option value="light">Light</option>
|
||||
<option value="satellite">Satellite</option>
|
||||
</select>
|
||||
<button id="map-recenter-btn" class="map-recenter" type="button" title="Back to my location">📍 My location</button>
|
||||
<button id="map-fullscreen-btn" class="radar-btn radar-fs-btn" title="Fullscreen">⛶</button>
|
||||
</div>
|
||||
|
||||
<div class="map-layer-menu">
|
||||
<button id="layer-menu-toggle" class="map-layer-menu-toggle" type="button" aria-expanded="false">Show Layer Menu</button>
|
||||
<div id="layer-menu-panel" class="map-layer-menu-panel hidden">
|
||||
<div class="map-layer-menu-title">Map Layers</div>
|
||||
<div class="map-controls-toggle-grid">
|
||||
</select></label>
|
||||
<div class="map-layer-menu-title">Layers</div>
|
||||
<div class="map-controls-toggle-grid">
|
||||
<label class="toggle-control">
|
||||
<span class="toggle-label">📡 Radar</span>
|
||||
<span class="switch-toggle">
|
||||
@@ -346,36 +357,10 @@
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Main Map -->
|
||||
<div class="unified-map-shell">
|
||||
<div id="unified-map" class="unified-map-container"></div>
|
||||
<div class="map-overlay-readouts" id="map-overlay-readouts">
|
||||
<span class="map-readout-chip" id="overlay-temp">Temp --</span>
|
||||
<span class="map-readout-chip" id="overlay-aqi">AQI --</span>
|
||||
<span class="map-readout-chip" id="overlay-sunmoon">Sun -- • Moon --</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Radar/Satellite Timeline Controls -->
|
||||
<div class="map-timeline-wrap hidden" id="timeline-controls">
|
||||
<div class="radar-controls">
|
||||
<button id="timeline-play" class="radar-btn play-btn" title="Play/Pause">▶</button>
|
||||
<div class="radar-timeline" id="timeline-slider"></div>
|
||||
<span id="timeline-timestamp" class="radar-ts">--</span>
|
||||
</div>
|
||||
<div class="radar-legend">
|
||||
<span class="legend-label">Light</span>
|
||||
<div class="legend-bar"></div>
|
||||
<span class="legend-label">Heavy</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Data Panel -->
|
||||
<div class="map-data-panel hidden" id="data-panel">
|
||||
<div class="map-bottom">
|
||||
<div class="map-data-panel glass hidden" id="data-panel">
|
||||
<div class="panel-location">
|
||||
<span id="panel-location-name">--</span>
|
||||
</div>
|
||||
@@ -401,6 +386,20 @@
|
||||
<span id="panel-cloud">--</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="map-timeline-wrap glass hidden" id="timeline-controls">
|
||||
<div class="radar-controls">
|
||||
<button id="timeline-play" class="radar-btn play-btn" title="Play/Pause">▶</button>
|
||||
<div class="radar-timeline" id="timeline-slider"></div>
|
||||
<span id="timeline-timestamp" class="radar-ts">--</span>
|
||||
</div>
|
||||
<div class="radar-legend">
|
||||
<span class="legend-label">Light</span>
|
||||
<div class="legend-bar"></div>
|
||||
<span class="legend-label">Heavy</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in new issue
Block a user