Repository navigation
Keep the roadmap's horizontal scrollbar on the chart frame's bottom edge - #901
Merged
github-actions[bot] merged 1 commit intoSep 30, 2026
Merged
Conversation
The frame stretched both columns to its visible height, so with more lanes than fit the track clipped its last lanes and, scrolled down, its scrollbar sat mid-chart beside lane names over blank rows. Each column is now the frame's height or its rows', whichever is taller. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
In the desktop Roadmap takeover, the timeline's horizontal scrollbar could sit mid-chart with blank lanes below it. The chart frame is a flex row with a fixed height, and
align-items: stretchclamped both columns (lane names and the scrolling track) to the frame's visible height. The track'soverflow-y: hiddenthen clipped its last lanes. The lane names overflowed and made the frame scroll, so scrolled down, the track and its scrollbar ended partway while the names carried on beside empty rows.Each column is now as tall as the frame or its own lanes, whichever is taller. A short plan puts the scrollbar on the frame's bottom edge; a long one grows the track with its lanes, so nothing is clipped.
Changes
src/App/Backlog.Desktop.UI/wwwroot/app.css: the frame override (.roadmap-band__timeline .roadmap-timeline__frame) getsalign-items: flex-start, and.roadmap-timeline__sidebar/.roadmap-timeline__scrollinside it getmin-height: 100%. The shared component's CSS is untouched; other hosts still size the chart to its content.tests/Backlog.Desktop.UI.UnitTests/DevbookStackLayoutTests.cs: a CSS contract test pins both declarations.Reviewer note: with a long plan the horizontal scrollbar is at the bottom of the lanes, so you scroll down to reach it. Keeping it permanently on screen would mean restructuring the chart's scrolling, which this PR does not do.
Testing
dotnet build Backlog.sln: 0 warnings, 0 errors.dotnet test Backlog.sln: 10294 passed, 1 skipped, 0 failed; the new test passed.Related
No issue: raised from a screenshot in session.
Checklist
🤖 Generated with Claude Code