Let oversized side info scroll into view before sticking on wide layouts #3243
Service Desk opened 1 day ago

Motivation

On wide layouts, sidebar information taller than the available page scrolling area should be reachable through normal page scrolling without having to reach the end of a long issue or pull request. Currently the top remains pinned while lower metadata stays below view for most of the scroll. Short viewports, browser zoom, and browser side panels make this particularly awkward.

This follows issue #3233, where zaakiy confirmed the tall-content sticky diagnosis and requested a separate implementation issue. The original Question can be closed as answered; that does not mean a scrolling fix has shipped.

Evidence and scope

  • Reported on OneDev 17.1.2 in wide layouts, on PRs and issues. The supplied selectors/screenshots specifically identify an issue-detail page.
  • Those screenshots show an outer sidebar about 40,710 px tall and inner content about 1,098 px tall. The outer column stretching with the page is expected and should be retained.
  • The shared wide-layout rule makes the inner .content sticky at top: 0. It does not itself impose a viewport-height cap. Measure the actual page scroller, rather than assuming its available height equals the browser viewport.
  • The reduced Chromium reproduction documented in issue #3233 used a 40,710 px outer column, 1,098 px sidebar content, and 800 px scrollport: the lower 298 px remained below view until near the page bottom. A 1,200 px scrollport fit the entire sidebar. Zaakiy confirmed that this explains the reported behavior. This was a reduced reproduction, not verification of the full affected page or proof that content remains unreachable at the very bottom.
  • Apply the solution to shared wide/pinned side info on issues and ordinary PR detail tabs. Preserve the separate fixed drawer behavior at narrow widths and on the PR Changes tab (hide-side-info). Check other shared SideInfoPanel consumers for regressions.

Desired behavior

The sidebar content and main content move with normal page scrolling until the sidebar reaches its appropriate sticky limit. Oversized sidebar content becomes visible early in the scroll, without scrolling to the end of the main content. Keep the full-height outer column and border, and retain the existing top-sticky behavior when the sidebar fits. Do not introduce a nested sidebar scrollbar in wide/pinned mode.

Proposed options to investigate

  1. Size-aware sticky offset. Keep the existing outer column and sticky inner content, but let an oversized inner panel travel upward with the page before sticking with its bottom inside the available scroll area. Prototype an offset based on the actual scrollport height minus the content height, retaining the current top offset for content that fits. Account for header/tab occlusion and spacing. Recalculate when content, zoom, or layout size changes. Verify reverse scrolling and access to the upper fields; a fixed negative offset alone may not provide the desired behavior in both directions.
  2. Direction-aware shared-scroll positioning. If the first option cannot preserve usable top and bottom access, coordinate the inner panel's position with the existing page scroller, bounded by the panel and its containing column. Let it move with the page toward its top/bottom limits, then stick. Keep native wheel, trackpad, keyboard, and scrollbar operation, and avoid a second scroll container or gesture interception that makes the main page stall.

Start by measuring the page scroller's clientHeight, the sidebar's rendered height and scrollHeight, and its bounds at the start, middle, and end of the page. Keep any measurement/listener lifecycle safe across Ajax replacement, open/close, and breakpoint changes. These are proposed approaches to prototype, not an already validated fix.

Acceptance criteria

  •  On wide issue and ordinary PR detail pages, a sidebar taller than the available scroll area reveals its lower content through normal page scrolling before reaching the end of a long main page.
  •  Scrolling back up makes the upper sidebar fields reachable, without jumps or permanently hidden sections.
  •  Fitting sidebars retain the current sticky offset; the outer column/border retains full page height.
  •  No nested sidebar scrollbar is added in wide/pinned mode.
  •  Both long-main/oversized-sidebar and short-main/oversized-sidebar layouts allow all sidebar content to be reached.
  •  Verify wheel/trackpad, keyboard-only scrolling, scrollbar dragging, short viewport heights, high zoom, and a visible browser side panel, including transitions across the responsive breakpoint.
  •  Verify resizing, sidebar open/close, and dynamically updated sidebar content.
  •  Narrow and explicitly configured drawer layouts continue to work; other shared sidebar consumers do not regress.
  • issue #3233 contains the current report, screenshots, diagnosis, and request for this follow-up.
  • issue #2994 discussed sidebar-first scroll coordination and was closed after a design discussion favoring keeping important upper information visible. Revisit that tradeoff explicitly when choosing a solution; sidebar-first gesture interception is not an agreed implementation requirement here.
  • issue #3001 tracked the separate short-main-content reachability bug and is closed. Include that case in regression checks without assuming this report has the same root cause.
1/1
Type
Bug
Priority
Normal
Assignee
Affected Versions
17.1.2
Labels
No labels
Issue Votes (0)
Watchers (2)
Reference
OD-3243
Please wait...
Connection lost or session expired, reload to recover
Page is in error, reload to recover