Skip to content

fix(ui): fix timeline row hover wobble with stable compositing layers#424

Merged
matt2e merged 1 commit intomainfrom
fix-wobble-2
Mar 20, 2026
Merged

fix(ui): fix timeline row hover wobble with stable compositing layers#424
matt2e merged 1 commit intomainfrom
fix-wobble-2

Conversation

@matt2e
Copy link
Contributor

@matt2e matt2e commented Mar 20, 2026

Summary

  • Replace isolation: isolate with will-change: transform on timeline rows to create a stable compositing layer that prevents hover-induced layout wobble
  • Remove unnecessary overflow: hidden from BranchCard .card-content that contributed to the wobble

Test plan

  • Hover over timeline rows and verify no visual wobble/jitter occurs
  • Verify BranchCard content renders correctly without overflow clipping issues

🤖 Generated with Claude Code

The previous fix (overflow: hidden + isolation: isolate) didn't fully
resolve the wobble because compositing layer churn during background-color
transitions caused subpixel position shifts. Replace isolation: isolate
with will-change: transform on timeline rows to force permanent
compositing layers, and remove overflow: hidden from card-content which
was amplifying layout recalculations.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@matt2e matt2e requested review from baxen and wesbillman as code owners March 20, 2026 02:59
@matt2e matt2e merged commit 5ed3304 into main Mar 20, 2026
4 checks passed
@matt2e matt2e deleted the fix-wobble-2 branch March 20, 2026 03:02
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9f1d3de088

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines 1011 to 1014
.card-content {
padding: 16px;
min-height: 80px;
overflow: hidden;
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep .card-content clipping around timeline rows

On branch cards that render footer actions, .timeline-row and .footer-row still intentionally overhang their container with margin: 0 -8px (TimelineRow.svelte:188-198, BranchTimeline.svelte:622-630). overflow: hidden on .card-content is the clip that keeps those hover backgrounds inside the card, so removing it lets the hovered row paint outside the content box again and reintroduces the footer-button/rounded-corner wobble this layout was avoiding.

Useful? React with 👍 / 👎.

position: relative;
transition: background-color 0.15s ease;
isolation: isolate;
will-change: transform;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Drop permanent will-change from timeline rows

If a branch has a long history, this makes every idle timeline row opt into will-change: transform even though rows never actually transform. Because BranchTimeline renders the full items list in one #each (BranchTimeline.svelte:448-469), a large branch now creates one compositor layer per item, which increases GPU memory pressure and makes scrolling noticeably rougher on big timelines.

Useful? React with 👍 / 👎.

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