Skip to content

fix(web): reduce the title bar scroll fade height - #214

Merged
rynfar merged 2 commits into
pylonfrom
upstream/2026-08-31-title-bar-fade
Aug 31, 2026
Merged

fix(web): reduce the title bar scroll fade height#214
rynfar merged 2 commits into
pylonfrom
upstream/2026-08-31-title-bar-fade

Conversation

@rynfar

@rynfar rynfar commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

The scroll fade under the title bar was tall enough to wash out the top of the
content behind it, so the first line of a thread or settings panel sat under a
gradient instead of reading cleanly.

Shortens the fade and applies the same height consistently across the chat
timeline, settings layout, and pull requests route.

Adopted from upstream pingdotgg/t3code#8799 (6e324b9bb), cherry-picked clean.

Verified: vp test run --dir apps/web apps/web/src/components/chat/MessagesTimeline.test.tsx
(44 passed), vp run -F @t3tools/web typecheck (exit 0, no errors).

Purely visual, not exercised in a browser — happy to do a real-client pass on request.

Reviewed and integrated with Claude Opus 5 in Claude Code.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
(cherry picked from commit 6e324b9bbfc72e694c3c16abeb59716c37fc02d5)
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S labels Aug 31, 2026
@github-actions

github-actions Bot commented Aug 31, 2026

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.6 KiB 13.5 KiB −39 B (−0.3%) 15.1 KiB
Codex Thread snapshot wire 6.9 KiB 6.9 KiB +3 B (+0.0%) 7.3 KiB
Codex Live turn WebSocket wire 6.6 KiB 6.6 KiB −42 B (−0.6%) 7.8 KiB
Codex Live turn WebSocket decoded 57.2 KiB 57.1 KiB −44 B (−0.1%) 66.4 KiB
Codex Live turn messages 10 9 −1 (−10.0%) 21
Claude Total thread wire 13.6 KiB 13.6 KiB −3 B (−0.0%) 15.1 KiB
Claude Thread snapshot wire 6.9 KiB 6.9 KiB −1 B (−0.0%) 7.3 KiB
Claude Live turn WebSocket wire 6.6 KiB 6.6 KiB −2 B (−0.0%) 7.8 KiB
Claude Live turn WebSocket decoded 58.1 KiB 58.1 KiB 0 B (0.0%) 66.4 KiB
Claude Live turn messages 10 10 0 (0.0%) 21

Baseline: 9ade80d · PR result: b21bf57 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.5 KiB
  • Claude decoded thread snapshot: 110.2 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

Review follow-up on the #8799 port. Moving the fade height into :root removed
the co-location that made the pairing obvious, and the comment still claimed the
top padding was the fade band's height. It is WorkspacePageContainer's pt-6, so
a future bump of the token would silently desync the two and wash out controls
on both this page and settings.
@rynfar

rynfar commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator Author

Adversarial review found no correctness bugs. It confirmed every topbar-scroll-fade consumer resolves the height from :root with zero references to the old --topbar-scroll-fade-height, that settings and pull-requests are pixel-identical (their removed overrides were already 1.5rem at both breakpoints) so only the chat timeline actually changes, that the timeline is a flex sibling of the topbar rather than overlapped by it — so shrinking the mask cannot push content under chrome — and that no scroll-offset constant (CHAT_LIST_ANCHOR_OFFSET, minimap viewOffset) was coupled to the old header height.

One low-severity note, fixed: the reworded comment on _chat.pull-requests.tsx claimed the top padding is the fade band's height. It is actually WorkspacePageContainer's hardcoded pt-6. Moving the height into :root removed the co-location that made the pairing self-evident, so a future bump of --workspace-titlebar-scroll-fade-height would silently desync the two and wash out controls on both this page and settings while the comment still asserted the invariant. The comment now names the real constraint and where else it has to change.

Re-verified: MessagesTimeline.test.tsx 44 passed, @t3tools/web typecheck clean.

@github-actions github-actions Bot added size:M and removed size:S labels Aug 31, 2026
@rynfar
rynfar merged commit 1b84809 into pylon Aug 31, 2026
19 checks passed
@rynfar
rynfar deleted the upstream/2026-08-31-title-bar-fade branch August 31, 2026 20:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants