Skip to content
Merged
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
2 changes: 1 addition & 1 deletion src/App.tsx
Original file line number Diff line number Diff line change
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">
<main id="main-content" className="container mx-auto px-4 py-6 safe-area-inset-bottom flex-1 overflow-y-auto overflow-x-hidden overscroll-y-contain" style={{ touchAction: "pan-y pinch-zoom" }}>
<ErrorBoundary>{children}</ErrorBoundary>
</main>

Expand Down
2 changes: 1 addition & 1 deletion src/components/ItemDetailsModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ export function ItemDetailsModal({
ariaLabelledBy="item-details-title"
>
{/* Content */}
<div className="p-5 space-y-4">
<div className="p-5 space-y-4 overflow-x-hidden">
{/* Name */}
<div>
<label className="block text-xs font-medium text-gray-500 dark:text-gray-400 mb-1">
Expand Down
2 changes: 1 addition & 1 deletion src/components/ui/Panel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ export function Panel({
{/* Content */}
<div
ref={contentRef}
className="flex-1 overflow-y-auto"
className="flex-1 overflow-y-auto overflow-x-hidden overscroll-contain"
>
{children}
</div>
Expand Down
10 changes: 4 additions & 6 deletions src/index.css
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ body {

#root {
height: 100%;
display: flex;
flex-direction: column;
overflow: hidden;
}

Expand All @@ -41,14 +43,10 @@ html, body {
overscroll-behavior-y: none;
}

/* Enable smooth momentum scrolling on iOS for all scrollable containers */
/* Contain overscroll for scrollable containers — prevents parent scroll bleed */
.overflow-auto,
.overflow-y-auto,
.overflow-x-auto,
[style*="overflow: auto"],
[style*="overflow-y: auto"],
[style*="overflow-x: auto"] {
-webkit-overflow-scrolling: touch;
.overflow-x-auto {
overscroll-behavior-y: contain;
}

Expand Down
3 changes: 1 addition & 2 deletions src/pages/ListView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -605,8 +605,7 @@ export function ListView() {
return (
<div
ref={pullRef}
className="max-w-3xl mx-auto overflow-y-auto overscroll-contain"
style={{ WebkitOverflowScrolling: "touch" }}
className="max-w-3xl mx-auto"
>
{/* Pull-to-refresh indicator */}
<PullToRefreshIndicator pullDistance={pullDistance} isRefreshing={isRefreshing} />
Expand Down