Skip to content

fix(studio): let a tall plan card scroll so the approve bar stays on screen - #80

Merged
jm-rivera merged 2 commits into
devfrom
fix/studio-plan-card-shrinks
Oct 29, 2026
Merged

jm-rivera merged 2 commits into
devfrom
fix/studio-plan-card-shrinks

Conversation

@jm-rivera

Copy link
Copy Markdown
Contributor

At window heights where a proposed plan is taller than the room left in the chat column, the "Start building?" bar and the prompt input fell below the bottom of the screen with no way to reach them. PlanCard.module.scss gave .planWrap flex-shrink: 0, so the stack kept its full height inside ChatPanel.module.scss .chatFoot, and Studio.module.scss .section (100dvh, overflow: hidden) cut off everything below the card. A taller window showed them, which is why resizing appeared to fix it.

.planWrap now takes min-height: 0 and section.plan becomes the scroll container (min-height: 0; overflow-y: auto; overscroll-behavior: contain), the same opt-in .picker already uses for a long clarify. The approve bar keeps its default minimum height, so only the card shrinks; the input and the chat note keep their natural height. The scroll container still clips the card's rounded corners. The .chatFoot comment now matches.

Testing: pnpm lint:css, pnpm lint and pnpm typecheck clean. Rendered the Studio under next dev in headless Chromium with a stubbed /api/studio/turn returning a tall plan (5 steps, 6 scope choices, 2 caveats) at 1000x780, 1280x720, 1440x900 and 390x700. Before the change the bar and input sat below the viewport at all four sizes (at 1000x780 the bar started at 1039 px); after it both sit inside the viewport at every size and the card scrolls (at 1000x780 the bar spans 600 to 684 px and the card holds 779 px of content in 340 px). The bar's height is unchanged, an expanded ledger row only grows the card's scroll height, and the read-only card with no bar keeps the input on screen.

…screen

The plan stack had flex-shrink: 0, so a plan taller than the chat foot
pushed the "Start building?" bar and the prompt input below the clipped
100dvh section. The card now gives up height and scrolls inside; the
bar, input and note keep their natural height.
At 844x350 to 370 the plan card's scrollport collapsed to zero height,
so View full plan and the scope controls could not be reached, even by
keyboard. The card now stops shrinking at a floor of rem(120), its
wrapper takes no box of its own (display: contents), and below that
floor the chat foot scrolls as a whole, with bottom scroll padding so
focus brings the input fully into view.
@jm-rivera
jm-rivera merged commit 5a92892 into dev Oct 29, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant