-
Notifications
You must be signed in to change notification settings - Fork 497
Fix #703: Resolve marquee scrolling issue on landing page #896
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Fix #703: Resolve marquee scrolling issue on landing page #896
Conversation
📝 WalkthroughWalkthroughUpdated two dependency versions in Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing touches
📜 Recent review detailsConfiguration used: defaults Review profile: CHILL Plan: Pro ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🧹 Nitpick comments (1)
landing-page/src/Pages/Demo/marqu.tsx (1)
13-13: Consider a clearer duplication approach.While
Array(10).fill(technologies).flat()works correctly, it creates 10 references to the same array object. A more explicit approach would beArray.from()orflatMap().🔎 Alternative implementations
- const repeatedTechnologies = Array(10).fill(technologies).flat(); + const repeatedTechnologies = Array(10).fill(null).flatMap(() => technologies);or
- const repeatedTechnologies = Array(10).fill(technologies).flat(); + const repeatedTechnologies = Array.from({ length: 10 }, () => technologies).flat();
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
landing-page/package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (2)
landing-page/package.jsonlanding-page/src/Pages/Demo/marqu.tsx
🔇 Additional comments (5)
landing-page/src/Pages/Demo/marqu.tsx (3)
6-10: LGTM! Clean data structure.The technologies array is well-structured with clear text labels and inline icons from lucide-react. The implementation is readable and maintainable.
16-25: Excellent fix for seamless scrolling!The animation configuration correctly implements the marquee fix:
- 10x duplication (40 items) combined with -50% translation scrolls through exactly 5 complete cycles
- When the animation resets, the pattern aligns perfectly, eliminating the visible gap
- Duration of 50 provides smooth, readable scrolling
- Linear easing maintains constant speed for natural infinite motion
This successfully addresses the PR objective of removing visible resets/jumps.
27-42: LGTM! Rendering implementation is solid.The rendering loop correctly maps over the repeated technologies with:
- Unique keys (index + text combination ensures uniqueness across all 40 items)
- Appropriate spacing and styling with dark mode support
- Smooth hover and tap interactions using framer-motion
- Increased separator spacing for better visual clarity
The use of index in keys is acceptable here since the list is static and never reordered.
landing-page/package.json (2)
47-47: Breaking changes in esbuild 0.25.0 are managed by Vite.The jump to ^0.27.2 does introduce breaking changes: dev server CORS handling (security fix GHSA-67mh-4wv8-2f99) and changes to the serve() API. However, since this project uses Vite ^7.3.0 as its build tool, Vite handles esbuild compatibility internally. No code changes are required.
20-20: Approve framer-motion patch update.The patch-level update from ^12.23.12 to ^12.23.26 is safe. Version 12.23.26 (released December 10, 2025) includes a bug fix for scale correctors initialization, which improves animation behavior in components like marqu.tsx that use motion transforms. No known issues or vulnerabilities.
e9fccaa to
c8c5e2c
Compare
Summary
Fixed the scrolling issue in the marquee section on the landing page. Previously, there was a visible gap/jump when the marquee looped.
Changes
framer-motion-50%instead of-100%for smooth continuous motionframer-motion,lucide-react,tailwindcss-animateTesting
npm run devin thelanding-pagefolderCloses #703
Thanks for reviewing! 🚀
Screen.Recording.2025-12-31.230956.mp4
Summary by CodeRabbit
Chores
Refactor
✏️ Tip: You can customize this high-level summary in your review settings.