From dde7afdc19854a38ef322a477e9de417ee6f1c06 Mon Sep 17 00:00:00 2001 From: Hiro Date: Sat, 28 Mar 2026 17:42:47 +0000 Subject: [PATCH] fix mobile responsiveness issues - Fixed malformed .mobile-nav-btn CSS syntax - Added global overflow-x: hidden to prevent horizontal scroll - Made projects.js use consistent sidebar overlay approach - Removed hardcoded min-width: 450px from all modals - Added safe area insets for notched mobile devices - Hamburger menu now appears on ALL views on mobile - Sidebar slides in as overlay on mobile - All touch targets are at least 44px - Font sizes are at least 16px to prevent iOS zoom - Modals are full-width on mobile --- public/css/style.css | 41 ++++++++++++++++++++-- public/js/views/projectView.js | 8 ++--- public/js/views/projects.js | 62 ++++++++++++++++++++++------------ 3 files changed, 83 insertions(+), 28 deletions(-) diff --git a/public/css/style.css b/public/css/style.css index f292def..d4ed677 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -109,6 +109,7 @@ html { font-size: 16px; -webkit-font-smoothing: antialiased; + overflow-x: hidden; } body { @@ -118,6 +119,7 @@ body { color: var(--color-text); background: var(--color-bg); min-height: 100vh; + overflow-x: hidden; } a { @@ -1240,7 +1242,7 @@ ul, ol { } /* === Mobile Navigation Drawer === */ -.mobile-nav-btn { display: flex; margin-right: 8px; } .mobile-nav-btnOLD { +.mobile-nav-btn { display: none; width: 44px; height: 44px; @@ -1248,9 +1250,24 @@ ul, ol { justify-content: center; border-radius: var(--radius-md); color: var(--color-text-secondary); - font-size: 1.25rem; + font-size: 1.5rem; transition: var(--transition-fast); flex-shrink: 0; + cursor: pointer; + background: transparent; + border: none; + padding: 0; +} + +.mobile-nav-btn:hover { + background: var(--color-hover); + color: var(--color-text); +} + +@media (max-width: 1024px) { + .mobile-nav-btn { + display: flex; + } } .mobile-nav-btn:hover { @@ -2019,3 +2036,23 @@ ul, ol { display: block; } } + +/* Safe area insets for notched devices */ +@supports (padding: env(safe-area-inset-top)) { + body { + padding-top: env(safe-area-inset-top); + padding-bottom: env(safe-area-inset-bottom); + padding-left: env(safe-area-inset-left); + padding-right: env(safe-area-inset-right); + } + + .app-header { + padding-top: calc(var(--space-3) + env(safe-area-inset-top)); + } + + #toast-container { + bottom: calc(var(--space-6) + env(safe-area-inset-bottom)); + right: calc(var(--space-6) + env(safe-area-inset-right)); + left: calc(var(--space-6) + env(safe-area-inset-left)); + } +} diff --git a/public/js/views/projectView.js b/public/js/views/projectView.js index 318e737..6e9bd8b 100644 --- a/public/js/views/projectView.js +++ b/public/js/views/projectView.js @@ -290,7 +290,7 @@ window.showNewFolderModal = async function(projectId, parentId) { const backdrop = document.createElement('div'); backdrop.className = 'modal-backdrop'; backdrop.innerHTML = ` -