feat(map): mobile fullscreen button for feed mini-map

Button in the bottom-right corner of the map, hidden ≥769px. Clicking
it toggles .is-fullscreen on .feed-map-wrap (position:fixed, full
viewport), locks body scroll, and calls feedMap.resize() so MapLibre
re-renders at the new size. Icon swaps between expand SVG and ✕.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
This commit is contained in:
2026-06-21 23:44:09 +02:00
parent 9ddf52c635
commit 989755d33c
2 changed files with 67 additions and 1 deletions
+46
View File
@@ -653,6 +653,7 @@ body::after {
}
.feed-map {
position: relative;
height: 240px;
width: 100%;
}
@@ -661,6 +662,51 @@ body::after {
.feed-map { height: 300px; }
}
.feed-map-fullscreen-btn {
position: absolute;
bottom: var(--space-2);
right: var(--space-2);
width: 2rem;
height: 2rem;
background: rgba(255, 255, 255, 0.9);
border: none;
border-radius: var(--radius-sm);
color: var(--color-ink);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
z-index: 20;
box-shadow: var(--shadow-sm);
transition: background 0.15s;
}
.feed-map-fullscreen-btn:hover { background: rgba(255, 255, 255, 1); }
.feed-map-fs-close { display: none; font-size: 1rem; line-height: 1; }
@media (min-width: 769px) {
.feed-map-fullscreen-btn { display: none; }
}
.feed-map-wrap.is-fullscreen {
position: fixed;
inset: 0;
z-index: 9999;
margin: 0;
border-radius: 0;
border: none;
}
.feed-map-wrap.is-fullscreen .feed-map {
height: 100dvh;
}
.feed-map-wrap.is-fullscreen .feed-map-link { display: none; }
.feed-map-wrap.is-fullscreen .feed-map-fs-open { display: none; }
.feed-map-wrap.is-fullscreen .feed-map-fs-close { display: block; }
.feed-map-link {
display: block;
text-align: right;