Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ function AuthenticatedLayout({ children }: { children: React.ReactNode }) {
const [isSettingsOpen, setIsSettingsOpen] = useState(false);

return (
<div className="min-h-screen flex flex-col bg-gradient-to-b from-gray-50 to-gray-100 dark:from-gray-900 dark:to-gray-950 transition-colors overflow-hidden">
<div className="min-h-screen flex flex-col bg-gradient-to-b from-gray-50 to-gray-100 dark:from-gray-900 dark:to-gray-950 transition-colors">
{/* Skip to main content link */}
<a
href="#main-content"
Expand Down Expand Up @@ -98,7 +98,7 @@ function AuthenticatedLayout({ children }: { children: React.ReactNode }) {
</header>

{/* Main content */}
<main id="main-content" className="container mx-auto px-4 py-6 safe-area-inset-bottom flex-1 overflow-y-auto overscroll-contain" style={{ WebkitOverflowScrolling: "touch" }}>
<main id="main-content" className="container mx-auto px-4 py-6 safe-area-inset-bottom flex-1">
<ErrorBoundary>{children}</ErrorBoundary>
</main>

Expand Down
19 changes: 15 additions & 4 deletions src/index.css
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,22 @@
}

/* Apply to the main layout */
html {
/* Prevent overscroll bounce on iOS — keeps app feeling native */
overscroll-behavior-y: none;
/* Smooth momentum scrolling on iOS */
-webkit-overflow-scrolling: touch;
}

body {
padding-top: var(--safe-area-top);
padding-bottom: var(--safe-area-bottom);
/* Prevent overscroll bounce on iOS — keeps app feeling native */
/* Prevent overscroll bounce on iOS */
overscroll-behavior: none;
/* Use dvh for proper mobile viewport (accounts for browser chrome) */
min-height: 100dvh;
/* Enable smooth touch scrolling */
touch-action: pan-y pinch-zoom;
}

/* Prevent iOS Safari input zoom — inputs must be >= 16px */
Expand All @@ -28,9 +37,11 @@ body {
}
}

/* Prevent pull-to-refresh in native WebView */
html, body {
overscroll-behavior-y: none;
/* Ensure root container takes full height for proper flex layout */
#root {
min-height: 100dvh;
display: flex;
flex-direction: column;
}

/* Custom animations */
Expand Down