The progress bar in the now playing bar updates in steps (jumps) instead of moving smoothly.
Expected behavior
The progress bar advances with a smooth, continuous animation while a track is playing.
Seeking, pausing and changing tracks still update the bar instantly and correctly, without the animation lagging behind.
Considerations
Update the position with requestAnimationFrame (interpolating from the audio element's currentTime) or use CSS transitions/transforms instead of re-rendering on every timeupdate event.
Prefer transform: scaleX() over changing width for better performance.
Respect prefers-reduced-motion.
## Summary
The progress bar in the now playing bar updates in steps (jumps) instead of moving smoothly.
## Expected behavior
- The progress bar advances with a smooth, continuous animation while a track is playing.
- Seeking, pausing and changing tracks still update the bar instantly and correctly, without the animation lagging behind.
## Considerations
- Update the position with `requestAnimationFrame` (interpolating from the audio element's `currentTime`) or use CSS transitions/transforms instead of re-rendering on every `timeupdate` event.
- Prefer `transform: scaleX()` over changing `width` for better performance.
- Respect `prefers-reduced-motion`.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
The progress bar in the now playing bar updates in steps (jumps) instead of moving smoothly.
Expected behavior
Considerations
requestAnimationFrame(interpolating from the audio element'scurrentTime) or use CSS transitions/transforms instead of re-rendering on everytimeupdateevent.transform: scaleX()over changingwidthfor better performance.prefers-reduced-motion.