Skip to content

Comments

fix: resolve tab bar blur on tab close#4116

Merged
ComputelessComputer merged 1 commit intomainfrom
devin/1771564912-fix-tab-bar-blur
Feb 20, 2026
Merged

fix: resolve tab bar blur on tab close#4116
ComputelessComputer merged 1 commit intomainfrom
devin/1771564912-fix-tab-bar-blur

Conversation

@devin-ai-integration
Copy link
Contributor

fix: resolve tab bar blur on tab close

Summary

Addresses the intermittent blur artifact visible in the tab bar after closing tabs. Two changes:

  1. Removed layoutScroll from Reorder.ItemlayoutScroll is a motion/react prop meant for scroll containers, not for individual animated items. Having it on each tab item could cause incorrect layout position calculations during close animations. Replaced with an explicit transition={{ layout: { duration: 0.15 } }} to keep a short reorder animation.

  2. Added a 200ms delayed scroll-state recheck in useScrollState — When tabs are closed, framer-motion animates remaining tabs into new positions. During this animation, scrollWidth doesn't yet reflect the final layout, so the scroll-fade gradient overlays (from-white to-transparent) can briefly appear when they shouldn't, producing the visible blur. The existing requestAnimationFrame check (~16ms) fires too early; the 200ms timeout catches the post-animation state.

Review & Testing Checklist for Human

  • Reproduce the original bug and verify the fix: Create 4+ tabs, close a few quickly, confirm the blur no longer appears in the tab bar area
  • Test drag-to-reorder with overflowing tabs: With many tabs (scrollable list), drag a tab to reorder while scrolled — removing layoutScroll could affect scroll-aware reorder positioning
  • Verify scroll fade gradients: With many tabs causing overflow, confirm the left/right fade gradients still appear correctly at scroll edges and disappear when tabs fit within the container

Notes

  • This fix is hypothesis-driven from code analysis. The bug was not reproduced in a dev environment (Tauri desktop app). Human verification is essential.
  • There was a prior fix for this same issue in 8803c4dcb (PR Fix tab bar blur visibility and set tab width to 160px #3807) which added hasOverflow checks and a single requestAnimationFrame. That fix was insufficient because the rAF fires before the layout animation completes.
  • The 200ms timeout is chosen to exceed the 150ms layout animation duration with buffer.

Requested by: @goranmoomin
Link to Devin run

…etection on tab close

Co-Authored-By: Sungbin Jo <goranmoomin@daum.net>
@devin-ai-integration
Copy link
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@netlify
Copy link

netlify bot commented Feb 20, 2026

Deploy Preview for hyprnote-storybook canceled.

Name Link
🔨 Latest commit d73dd8a
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote-storybook/deploys/6997efc8fe576d0008c39008

@netlify
Copy link

netlify bot commented Feb 20, 2026

Deploy Preview for hyprnote canceled.

Name Link
🔨 Latest commit d73dd8a
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote/deploys/6997efc85e6b0c0008b73836

@ComputelessComputer ComputelessComputer merged commit 5e983cb into main Feb 20, 2026
14 of 15 checks passed
@ComputelessComputer ComputelessComputer deleted the devin/1771564912-fix-tab-bar-blur branch February 20, 2026 10:42
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.

2 participants