Commit Graph

10 Commits

Author SHA1 Message Date
google-labs-jules[bot]
c0d541d31b Fix GradientBlinds scroll drift on mobile and address dampening regression
- Added isMobile detection (<= 768px) in GradientBlinds.tsx
- Updated onPointerMove to calculate container-relative coordinates immediately on mobile
- Updated animation loop to skip scroll-based target updates on mobile
- Fixed regression where disabling mouse dampening on mobile would freeze the spotlight
- Prevents spotlight from drifting across the background during scroll inertia on mobile devices

Co-authored-by: ragusa-it <196988693+ragusa-it@users.noreply.github.com>
2026-01-29 22:30:40 +00:00
google-labs-jules[bot]
7bc42f8d48 Fix GradientBlinds scroll drift on mobile
- Added isMobile detection (<= 768px) in GradientBlinds.tsx
- Updated onPointerMove to calculate container-relative coordinates immediately on mobile
- Updated animation loop to skip scroll-based target updates on mobile
- Prevents spotlight from drifting across the background during scroll inertia on mobile devices

Co-authored-by: ragusa-it <196988693+ragusa-it@users.noreply.github.com>
2026-01-29 22:09:19 +00:00
google-labs-jules[bot]
bac867f228 perf(GradientBlinds): decouple pointer events from render loop
- Move scroll position and bounding client rect calculations from `pointermove` handler to `requestAnimationFrame` loop.
- Use `pointerPosRef` to store raw event coordinates, reducing overhead in high-frequency event handlers.
- Ensure spotlight effect correctly accounts for scroll position updates during animation frames.
- Add regression test to verify `scrollX` is not accessed during pointer events.

Co-authored-by: ragusa-it <196988693+ragusa-it@users.noreply.github.com>
2026-01-29 01:40:38 +00:00
Melvin Ragusa
6b17b8b007 perf: optimized gradientblinds 2026-01-24 11:45:39 +01:00
google-labs-jules[bot]
5d29f05248 perf: Optimize GradientBlinds pointer move handler
- Removed synchronous `getBoundingClientRect` call from `pointermove` handler
- Implemented caching of canvas dimensions and scroll position using `ResizeObserver`
- Added logic to compensate for scroll delta in pointer position calculation
- Added regression test to verify `getBoundingClientRect` is not called during pointer interaction
- Fixed `ogl` mock in tests to include `Geometry`
2026-01-24 10:02:30 +00:00
Melvin Ragusa
f3ff2a7b9c fix: attached mouse event listener to window instead of canvas element 2026-01-23 11:54:30 +01:00
Melvin Ragusa
4d8fc7ad85 fix: rendering issues on chrome for background effect 2026-01-23 11:49:27 +01:00
google-labs-jules[bot]
fe6e07fe92 perf: pause GradientBlinds animation when off-screen
Removes the unconditional start of the animation loop on mount. The loop is now exclusively managed by the existing IntersectionObserver, ensuring it only runs when the component is visible.

Updates tests to reflect this behavior by simulating intersection events to trigger the animation.
2026-01-23 09:29:42 +00:00
google-labs-jules[bot]
1dc96269e5 Optimize GradientBlinds: Pause animation when off-screen
- Added IntersectionObserver to track component visibility.
- Paused requestAnimationFrame loop when component is not intersecting.
- Resumed loop when component becomes visible.
- Added unit tests to verify start/stop behavior.
2026-01-22 08:17:31 +00:00
Melvin Ragusa
4f07eef844 feat: reworked HeroSection background 2026-01-22 00:23:52 +01:00