-
Current behavior
On wide viewports (
min-width: 1199px),SideInfoPanelis sticky (position: sticky; top: 0; align-self: flex-start) and intentionally shares the page scroller — nomax-height/ inner scrollbar (see issue #2909). Overlay mode (narrow viewports and.hide-side-info) already scrolls viadiv.side-info > .body { overflow: auto }with the panel stretchedtop: 0; bottom: 0.When sticky content is taller than the visible area, the bottom is clipped while the pane is stuck — that matches this report.
Caveat on the suggested CSS: bare
max-height: 100vhis a poor fit here. Stickytop: 0is relative to.autofit, which already sits below the fixed topbar, so100vhovershoots the available height.Provisional implementation plan
- Change only the wide/sticky rules in
side-info.css(overlay already scrolls). - Cap open sticky panel height to the sticky scrollport (prefer a height tied to
.autofit/ containing block — not raw100vh). - Put overflow on the chosen scroll region (whole panel vs
.bodyonly — see Q1). - Keep closed-state rules (
max-height: 0,overflow: hidden, etc.) intact so collapse animation/behavior stays correct. - Verify on issue / PR / build / pack detail (and board card detail if applicable) at wide width with tall side content; confirm overlay / breakpoint behavior unchanged.
- Expect CSS-only unless measured height against topbar/autofit proves necessary.
Implementation is blocked on the clarifying choices below.
Clarifying questions
1. Where should the scrollbar live?
- A. Entire sticky panel scrolls (header + body)
- B. Only
.bodyscrolls; header (title/close) stays pinned — same as overlay mode - C. Keep sharing page scroll only; do not add an inner scrollbar (reject the suggested approach)
Option Pros Cons Recommendation A Minimal CSS; one scroll region Header scrolls away; worse than overlay UX — B Consistent with overlay; title/close always visible Needs flex + min-height: 0care so.bodycan shrinkRecommended — parity with overlay and better UX C Preserves the #2909 “no inner scrollbar” intent Does not fix cut-off content — 2. How should max height be computed?
- A.
max-height: 100vhas suggested - B. Cap to the sticky containing block / autofit viewport (e.g.
max-height: 100%or equivalent relative to.autofit) - C. Explicit chrome offset, e.g.
max-height: calc(100vh - <topbar>)/100dvh
Option Pros Cons Recommendation A Simple Ignores topbar; panel taller than visible area; vhquirks with browser chrome— B Aligns with existing sticky/ top: 0relative to.autofit%must resolve against the right ancestor; needs a quick layout checkRecommended if it works in practice C Explicit and predictable Hardcodes topbar height; more brittle if chrome changes Fallback if B fails 3. Nested scroll UX (page + side panel)?
- A. Accept dual scrollers when side content overflows
- B. Make the sticky panel fill the viewport and primarily scroll internally
- C. Enable inner scroll only when content would otherwise clip (dynamic / JS)
Option Pros Cons Recommendation A Smallest change; common sidebar pattern Two scroll contexts can feel awkward Recommended for a first iteration B Side panel always fully usable without relying on page scroll Larger layout change; may fight the sticky design — C Avoids a scrollbar when not needed Extra JS/complexity Overkill unless A proves problematic 4. Change scope?
- A. Shared sticky rules in
side-info.cssonly (allSideInfoPanelpages on wide viewports); leave overlay CSS unchanged - B. Per-page overrides only where content is known to be tall
- C. Also revisit / change overlay scrolling behavior
Option Pros Cons Recommendation A One consistent fix; overlay already correct Broader QA across detail pages Recommended B Narrower blast radius Inconsistent UX; easy to miss a page — C Could unify scroll behavior further Out of scope for the reported sticky clipping bug — Please reply with choices (e.g. 1B, 2B, 3A, 4A) or alternatives, and we can proceed to implementation from there.
- Change only the wide/sticky rules in
-
There should only be one visible scroll bar, which is the main scroll bar. The side panel should scroll up and down with the main scroll bar. Any scrolling activity on the page should first scroll the side panel to its limit and then scroll the main page.
This ensures that we only have a single scroll gesture with a highly positive UX
-
@zaakiy Thanks — that clarifies the intent, and it matches the sidebar-first linked scroll option discussed in issue #2908 (then called 3D), which was deferred when we shipped the simpler sticky + shared page scroll design in issue #2909.
Interpretation
Requirement Implication Only one visible scrollbar (the main one) No overflow/ inner scrollbar on the sticky pane (rejects the earlier Q1A/Q1B “scroll inside the panel” approach)Side panel moves with the main scrollbar / single scroll gesture Keep a single scroll stream ( .autofit), not dual nested scrollersScroll activity should move the side panel to its limit first, then scroll the main page Needs linked / prioritized scroll — plain CSS position: stickycannot do “sidebar first, then main”So this is not a small CSS tweak (
max-height+overflow-y: auto). Current sticky behavior (issue #2909) already gives one scroller and no inner bar; the remaining gap for tall side content is exactly the missing sidebar-first priority.Updated implementation plan
- Keep today’s wide-viewport sticky foundation (
side-info.css: sticky under.autofit/ top chrome, natural height, no inner scrollbar; overlay /.hide-side-infounchanged). - Add sidebar-first scroll coordination in
side-info.jsfor wide/sticky mode only:- On wheel / trackpad / keyboard scroll while the sticky pane is in play, apply delta to the side panel first (via offset / translate within the sticky viewport) until it hits its top or bottom limit.
- Pass remaining delta to the main
.autofitscroller so the page moves only after the side panel cannot move further. - Reverse the priority when scrolling up.
- Short side content: keep current sticky “pin under top chrome while main scrolls” behavior (no-op for the linker when the pane fits the viewport).
- Tall side content: lower fields become reachable via the same main scrollbar / gesture, without a second visible bar.
- Scope: shared sticky path for all
SideInfoPanelpages (issue / PR / build / pack); do not change overlay scrolling. - QA focus: tall vs short side content; wheel, trackpad inertia, and keyboard; open/close / resize / breakpoint; confirm overlay mode unchanged.
Caveat
With true sidebar-first linking, the visible scrollbar still tracks the main
.autofitscroll position. Early gesture motion may move only the side panel while the thumb stays put — that is inherent to “one bar + sidebar priority,” not a bug. If that feels wrong in practice, we would revisit (but that would trade off one of the constraints above).Next step
If this plan matches what you want, reply to confirm and we will open a fresh Improvement issue for implementation (same pattern as issue #2908 → issue #2909) and close this Question.
If you would rather take a simpler CSS-only compromise instead (still one scrollbar, tall pane reveals as the page scrolls, but not strict “sidebar first then main”), say so and we can outline that smaller plan instead.
- Keep today’s wide-viewport sticky foundation (
-
@servicedesk confirming that this plan matches what I wanted.
-
-
Closing as answered; implementation tracked in issue #2994.
-
@zaakiy Created implementation issue #2994 with the agreed design:
- Sticky foundation unchanged; no inner scrollbar on the side pane
- Sidebar-first linked scroll for wide/sticky mode (
side-info.js) - Short side content keeps today’s sticky behavior; tall content is reachable via a single scroll gesture
- Narrow /
.hide-side-infooverlay unchanged
Closing this Question as answered.
-
Previous Value Current Value Open
Closed
| Type |
Question
|
| Priority |
Normal
|
| Assignee | |
| Labels |
No labels
|
The sticky side info panels should be scrollable because they are now getting content which is being cut off at the bottom of the screen.
Create an implementation plan.
Don't assume. Ask high-level clarifying questions if needed.