[PR #23221] fix: resolve sidebar animation glitches and layout shifts in app detail page (#23216) #30204

Closed
opened 2026-02-21 20:47:03 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/langgenius/dify/pull/23221

State: closed
Merged: Yes


  • test: Add comprehensive test suite for sidebar animation issues
  • fix: Fix toggle button position movement
  • fix: Properly fix navigation text squeeze animation
  • fix: Resolve eslint errors in test files
  • fix: Resolve text squeeze effect in AppInfo component
  • test: Add verification test for text squeeze fixes

Fixes #23216

Important

  1. Make sure you have read our contribution guidelines
  2. Ensure there is an associated issue and you have been assigned to it
  3. Use the correct syntax to link this PR: Fixes #<issue number>.

Summary

📋 Problems Solved

  1. Toggle button position shift: Fixed inconsistent padding (px-4/px-6 → px-4)
  2. NavLink text squeeze effect: Replaced conditional rendering with CSS transitions
  3. AppInfo icon bounce animation: Smooth opacity/width transitions eliminate layout jumps

Technical Approach

  • Replace conditional rendering with persistent DOM + CSS visibility control
  • Use opacity + width transitions for smooth text appearance
  • Standardize 200ms transition timing across all components
  • Add whitespace-nowrap and pointer-events-none for better UX

🧪 Testing

  • 18 test cases covering all scenarios
  • 93.75% code coverage
  • Reproduces original issues and verifies fixes
  • Zero ESLint errors

🎬 Before/After

Before: Abrupt text appearance with layout jumps
After: Smooth 200ms transitions with no visual glitches

Screenshots

N/A

Checklist

  • This change requires a documentation update, included: Dify Document
  • I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!)
  • I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • I've updated the documentation accordingly.
  • I ran dev/reformat(backend) and cd web && npx lint-staged(frontend) to appease the lint gods
**Original Pull Request:** https://github.com/langgenius/dify/pull/23221 **State:** closed **Merged:** Yes --- - **test: Add comprehensive test suite for sidebar animation issues** - **fix: Fix toggle button position movement** - **fix: Properly fix navigation text squeeze animation** - **fix: Resolve eslint errors in test files** - **fix: Resolve text squeeze effect in AppInfo component** - **test: Add verification test for text squeeze fixes** Fixes #23216 > [!IMPORTANT] > > 1. Make sure you have read our [contribution guidelines](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) > 2. Ensure there is an associated issue and you have been assigned to it > 3. Use the correct syntax to link this PR: `Fixes #<issue number>`. ## Summary ### 📋 Problems Solved 1. **Toggle button position shift**: Fixed inconsistent padding (px-4/px-6 → px-4) 2. **NavLink text squeeze effect**: Replaced conditional rendering with CSS transitions 3. **AppInfo icon bounce animation**: Smooth opacity/width transitions eliminate layout jumps ### ✨ Technical Approach - Replace conditional rendering with persistent DOM + CSS visibility control - Use `opacity` + `width` transitions for smooth text appearance - Standardize 200ms transition timing across all components - Add `whitespace-nowrap` and `pointer-events-none` for better UX ### 🧪 Testing - ✅ 18 test cases covering all scenarios - ✅ 93.75% code coverage - ✅ Reproduces original issues and verifies fixes - ✅ Zero ESLint errors ### 🎬 Before/After **Before**: Abrupt text appearance with layout jumps **After**: Smooth 200ms transitions with no visual glitches ## Screenshots N/A ## Checklist - [ ] This change requires a documentation update, included: [Dify Document](https://github.com/langgenius/dify-docs) - [x] I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!) - [x] I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change. - [x] I've updated the documentation accordingly. - [x] I ran `dev/reformat`(backend) and `cd web && npx lint-staged`(frontend) to appease the lint gods
yindo added the pull-request label 2026-02-21 20:47:03 -05:00
yindo closed this issue 2026-02-21 20:47:03 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#30204