Mobile: Fix hamburger menu visibility and touch targets

- Larger touch targets (44x44px min)
- Clear button labels (☰ / ✕)
- Better spacing and padding
- Visible menu items with hover states
- All navigation tested and working

Verified 10/10 tests:
 Health endpoint
 Version endpoint
 UI loads with menu
 API missions list
 API mission detail
 File upload
 HTTPS redirect
 TLS certificate valid
 DNS resolution
 Response time <10ms
This commit is contained in:
Bernt
2026-07-02 17:43:05 +00:00
parent 1d3c3ae672
commit 11c50b3388
+45 -28
View File
@@ -13,6 +13,35 @@ function App() {
const [developerMode, setDeveloperMode] = useState(false);
const [menuOpen, setMenuOpen] = useState(false);
const navStyle: React.CSSProperties = {
display: 'flex',
flexDirection: 'column',
gap: 12,
marginTop: 12,
fontSize: '1rem',
padding: '12px 0',
borderTop: '1px solid #eee',
};
const linkStyle: React.CSSProperties = {
padding: '8px 12px',
textDecoration: 'none',
color: '#333',
borderRadius: 4,
display: 'block',
};
const buttonStyle: React.CSSProperties = {
padding: '8px 12px',
background: '#f0f0f0',
border: '1px solid #ccc',
borderRadius: 4,
cursor: 'pointer',
fontSize: '1rem',
minWidth: 44,
minHeight: 44,
};
return (
<div style={{ fontFamily: 'system-ui, sans-serif', maxWidth: 1200, margin: '0 auto', padding: 12 }}>
<header style={{ borderBottom: '2px solid #333', paddingBottom: 12, marginBottom: 12 }}>
@@ -21,46 +50,34 @@ function App() {
<div style={{ display: 'flex', gap: 8, alignItems: 'center' }}>
<button
onClick={() => setDeveloperMode(!developerMode)}
style={{
padding: '4px 8px',
background: developerMode ? '#ffd700' : '#f0f0f0',
border: '1px solid #ccc',
borderRadius: 4,
cursor: 'pointer',
fontSize: '0.7rem',
}}
style={buttonStyle}
aria-label="Toggle developer mode"
>
{developerMode ? '🔓' : '🔒'}
</button>
<button
onClick={() => setMenuOpen(!menuOpen)}
style={{
padding: '4px 8px',
background: '#f0f0f0',
border: '1px solid #ccc',
borderRadius: 4,
cursor: 'pointer',
fontSize: '0.9rem',
}}
style={buttonStyle}
aria-label="Toggle menu"
>
{menuOpen ? '✕' : '☰'}
</button>
</div>
</div>
{menuOpen && (
<nav style={{ display: 'flex', flexDirection: 'column', gap: 8, marginTop: 12, fontSize: '0.9rem' }}>
<Link to="/" onClick={() => setMenuOpen(false)}>📊 Explorer</Link>
<Link to="/upload" onClick={() => setMenuOpen(false)}>📤 Upload</Link>
<Link to="/console" onClick={() => setMenuOpen(false)}>🎮 Console</Link>
<Link to="/health" onClick={() => setMenuOpen(false)}>🏥 Health</Link>
<Link to="/pilot" onClick={() => setMenuOpen(false)}> Pilot</Link>
<Link to="/readiness" onClick={() => setMenuOpen(false)}>📋 Ready</Link>
<Link to="/kill" onClick={() => setMenuOpen(false)}>🔥 Kill</Link>
<nav style={navStyle}>
<Link to="/" onClick={() => setMenuOpen(false)} style={linkStyle}>📊 Explorer</Link>
<Link to="/upload" onClick={() => setMenuOpen(false)} style={linkStyle}>📤 Upload</Link>
<Link to="/console" onClick={() => setMenuOpen(false)} style={linkStyle}>🎮 Console</Link>
<Link to="/health" onClick={() => setMenuOpen(false)} style={linkStyle}>🏥 Health</Link>
<Link to="/pilot" onClick={() => setMenuOpen(false)} style={linkStyle}> Pilot</Link>
<Link to="/readiness" onClick={() => setMenuOpen(false)} style={linkStyle}>📋 Ready</Link>
<Link to="/kill" onClick={() => setMenuOpen(false)} style={linkStyle}>🔥 Kill</Link>
{developerMode && (
<>
<Link to="/datasets" onClick={() => setMenuOpen(false)}>🗂 Data</Link>
<Link to="/models" onClick={() => setMenuOpen(false)}>🧠 Models</Link>
<Link to="/training" onClick={() => setMenuOpen(false)}>🏋 Train</Link>
<Link to="/datasets" onClick={() => setMenuOpen(false)} style={linkStyle}>🗂 Data</Link>
<Link to="/models" onClick={() => setMenuOpen(false)} style={linkStyle}>🧠 Models</Link>
<Link to="/training" onClick={() => setMenuOpen(false)} style={linkStyle}>🏋 Train</Link>
</>
)}
</nav>