← back to Rentv
News map: collapse ALL controls into one LEFT hamburger; strip the busy top bar
0044e5f8a108abc337380ccb7fef613c6ec3e0d9 · 2026-08-06 09:58:56 -0700 · Steve Abrams
Steve: 'do not show tabs across screen.. busy.. horrible. put into its own collapsed
hamburger on left.' Removed the wide filter/tab row entirely; the top is now just a slim
wordmark + story count. One hamburger (upper-LEFT) opens a left drawer holding the legend,
all map filters (Show/Type/Years/Near me/Reset), and all nav (Explore + Regions/Sections).
Map now starts at ~64px (was 310). Near me / Reset auto-close the drawer.
TK-10284
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Files touched
Diff
commit 0044e5f8a108abc337380ccb7fef613c6ec3e0d9
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Thu Aug 6 09:58:56 2026 -0700
News map: collapse ALL controls into one LEFT hamburger; strip the busy top bar
Steve: 'do not show tabs across screen.. busy.. horrible. put into its own collapsed
hamburger on left.' Removed the wide filter/tab row entirely; the top is now just a slim
wordmark + story count. One hamburger (upper-LEFT) opens a left drawer holding the legend,
all map filters (Show/Type/Years/Near me/Reset), and all nav (Explore + Regions/Sections).
Map now starts at ~64px (was 310). Near me / Reset auto-close the drawer.
TK-10284
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
public/map.html | 72 ++++++++++++++++++++++++++++++---------------------------
1 file changed, 38 insertions(+), 34 deletions(-)
diff --git a/public/map.html b/public/map.html
index b7761419..69296c1d 100644
--- a/public/map.html
+++ b/public/map.html
@@ -81,34 +81,59 @@ aside .ah{padding:12px 16px;border-bottom:1px solid var(--line);font-size:12px;f
.stage{position:relative}.bar h1{font-size:15px}}
/* ── Hamburger + drawer: all the nav tabs collapse in here so the map gets the screen ── */
.rentvtabs{display:none!important} /* injected region/section strip → moved into the drawer */
-.mast{position:relative;display:flex;align-items:center;justify-content:center;padding:10px 54px}
-.ham{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:#fff;border:1.5px solid var(--line);border-radius:9px;font-size:17px;line-height:1;padding:8px 11px;cursor:pointer;color:var(--ink)}
+/* Minimal top bar: hamburger LEFT, wordmark, story count. Everything else lives in the drawer. */
+.mast{position:relative;display:flex;align-items:center;gap:12px;padding:10px 16px 10px 58px}
+.mast .logo{font-size:26px}
+.cntpill{margin-left:auto;font-size:12px;font-weight:700;color:var(--sub);white-space:nowrap}
+.ham{position:absolute;left:14px;top:50%;transform:translateY(-50%);background:#fff;border:1.5px solid var(--line);border-radius:9px;font-size:17px;line-height:1;padding:8px 11px;cursor:pointer;color:var(--ink);z-index:5}
.ham:hover{border-color:var(--red);color:var(--red)}
.drawer{position:fixed;inset:0;z-index:4000;display:none}
.drawer.open{display:block}
.drawer .bd{position:absolute;inset:0;background:rgba(0,0,0,.45)}
-.drawer .pl{position:absolute;top:0;right:0;width:min(88vw,320px);height:100%;background:#fff;overflow:auto;padding:18px 16px 44px;box-shadow:-10px 0 44px rgba(0,0,0,.32)}
+.drawer .pl{position:absolute;top:0;left:0;width:min(86vw,300px);height:100%;background:#fff;overflow:auto;padding:18px 16px 44px;box-shadow:10px 0 44px rgba(0,0,0,.32)}
.drawer .pl h3{font-family:'Playfair Display',serif;font-size:19px;margin:0 0 2px}
.drawer .x{position:absolute;top:12px;right:14px;font-size:24px;background:none;border:0;cursor:pointer;color:var(--sub);line-height:1}
-.drawer .gt{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--sub);margin:18px 0 5px}
+.drawer .gt{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--sub);margin:16px 0 6px}
+.drawer .legend{display:flex;gap:16px;font-size:12px;color:var(--sub);margin:2px 0 4px}
+.drawer .fl{display:block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--sub);margin:11px 0 0}
+.drawer .fl select{display:block;width:100%;margin-top:5px;font:600 14px 'Inter';padding:8px 10px;border:1.5px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer}
+.drawer .fl select:focus{outline:0;border-color:var(--red)}
+.drawer .yrs{display:flex;gap:8px;align-items:center}.drawer .yrs .fl{flex:1;margin-top:0}
+.drawer .btn{width:100%;margin-top:12px;font:800 12px 'Inter';letter-spacing:.04em;text-transform:uppercase;padding:11px 14px;border:0;border-radius:9px;background:var(--red);color:#fff;cursor:pointer}
+.drawer .btn.ghost{background:#fff;color:var(--ink);border:1.5px solid var(--line)}
.drawer a{display:block;padding:9px 4px;border-bottom:1px solid var(--line);color:var(--ink);font-weight:600;font-size:14.5px;white-space:normal}
.drawer a:hover{color:var(--red)}
.drawer .clone{display:flex;flex-wrap:wrap;gap:2px 4px}
.drawer .clone a{border:0;display:inline-block;padding:5px 8px;font-size:12.5px;background:var(--wash);border-radius:6px;font-weight:600}
.drawer .clone .rt-k,.drawer .clone .rt-div{display:none}
-/* compact single-row filter bar (scrolls sideways instead of stacking) */
-.bar .wrap{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:10px 14px}
-.bar .wrap::-webkit-scrollbar{display:none}
-.bar h1{flex:0 0 auto}
-@media(max-width:760px){.legend{display:none}.mast{padding:8px 50px}.mast .logo{font-size:24px}.util{display:none}}
+@media(max-width:760px){.mast{padding:8px 12px 8px 54px}.mast .logo{font-size:22px}.util{display:none}}
</style></head><body>
-<div class="util"><div class="wrap"><a href="/">RENTV.com · Commercial Real Estate News</a><a href="/">← Front page</a></div></div>
-<header class="mast"><a class="logo" href="/">REN<span>TV</span>.com<small>News Map</small></a><button class="ham" id="ham" aria-label="Open menu" aria-expanded="false">☰</button></header>
+<header class="mast">
+ <button class="ham" id="ham" aria-label="Open menu" aria-expanded="false">☰</button>
+ <a class="logo" href="/">REN<span>TV</span>.com<small>News Map</small></a>
+ <span class="cntpill" id="cnt"></span>
+</header>
<div class="drawer" id="drawer" aria-hidden="true">
<div class="bd" id="drawerBd"></div>
<div class="pl">
<button class="x" id="drawerX" aria-label="Close menu">×</button>
<h3>REN<span style="color:var(--red)">TV</span>.com</h3>
+ <span class="legend"><span><span class="dot g"></span>Last 3 months</span><span><span class="dot r"></span>Older</span></span>
+ <div class="gt">Map filters</div>
+ <label class="fl">Show
+ <select id="fresh">
+ <option value="all">All stories</option>
+ <option value="new">New only (green)</option>
+ <option value="old">Older only (red)</option>
+ </select>
+ </label>
+ <label class="fl">Type
+ <select id="txn"><option value="">All</option></select>
+ </label>
+ <div class="gt" style="margin-bottom:4px">Years</div>
+ <div class="yrs"><label class="fl" style="margin:0">From<select id="yfrom" title="From year"></select></label><label class="fl" style="margin:0">To<select id="yto" title="To year"></select></label></div>
+ <button class="btn" id="near">📍 Near me</button>
+ <button class="btn ghost" id="reset">Reset view</button>
<div class="gt">Explore</div>
<a href="/">Front page</a>
<a href="/map">🗺 News Map</a>
@@ -124,28 +149,6 @@ aside .ah{padding:12px 16px;border-bottom:1px solid var(--line);font-size:12px;f
<div id="drawerNav"></div>
</div>
</div>
-<div class="bar"><div class="wrap">
- <h1>News Around You <span class="n" id="cnt"></span></h1>
- <span class="legend"><span><span class="dot g"></span>Last 3 months</span><span><span class="dot r"></span>Older</span></span>
- <label>Show
- <select id="fresh">
- <option value="all">All stories</option>
- <option value="new">New only (green)</option>
- <option value="old">Older only (red)</option>
- </select>
- </label>
- <label>Type
- <select id="txn"><option value="">All</option></select>
- </label>
- <label>Years
- <select id="yfrom" title="From year"></select>
- </label>
- <label style="margin-left:-8px">–
- <select id="yto" title="To year"></select>
- </label>
- <button class="btn" id="near">📍 Near me</button>
- <button class="btn ghost" id="reset">Reset view</button>
-</div></div>
<div class="stage">
<div id="map"></div>
<aside>
@@ -319,13 +322,14 @@ map.on('moveend',function(){ if(!meLatLng) refreshList(); });
// controls
$('fresh').onchange=function(e){fFresh=e.target.value;buildMarkers();};
$('txn').onchange=function(e){fTxn=e.target.value;buildMarkers();};
-$('reset').onclick=function(){ meLatLng=null; if(meMarker){map.removeLayer(meMarker);meMarker=null;}
+$('reset').onclick=function(){ closeDrawer(); meLatLng=null; if(meMarker){map.removeLayer(meMarker);meMarker=null;}
fFresh='all';$('fresh').value='all'; fTxn='';$('txn').value='';
if($('yfrom').options.length){fYFrom=parseInt($('yfrom').options[$('yfrom').options.length-1].value,10);$('yfrom').value=fYFrom;
fYTo=parseInt($('yto').options[0].value,10);$('yto').value=fYTo;}
map.setView([37.5,-119],5); buildMarkers(); };
$('near').onclick=function(){
if(!navigator.geolocation){alert('Location isn’t available in this browser.');return;}
+ closeDrawer();
$('near').textContent='📍 Locating…';
navigator.geolocation.getCurrentPosition(function(pos){
meLatLng=[pos.coords.latitude,pos.coords.longitude];
← f47b2a57 harden(dealdesk): Cody gate — coveredBy matches the needle s
·
back to Rentv
·
PR intel (b2 complete): tenant isolation via Postgres RLS ea0ef6cd →