SIGN IN SIGN UP

gpui: Add synced repeating animations and phase-lock spinners (#62332)

Spinners rendered near each other (like a sidebar full of running
threads) each start rotating from the moment their element first
renders, so they spin out of phase and the group looks jittery.

This adds `Animation::repeat_synced()`, which derives the phase from a
clock shared by the whole app instead of the element's mount time, and
switches `with_rotate_animation` over to it, so every spinner with the
same period now renders the same frame at the same time. The epoch is
read off the scheduler clock at app creation, so the phase stays
deterministic under the test scheduler.

Release Notes:

- Improved loading spinners to rotate in phase with one another
A
Agus Zubiaga committed
4ed3738c4068495e12d4d78044b005e5ed9d3b8c
Parent: 417d033
Committed by GitHub <noreply@github.com> on 8/7/2026, 9:14:36 PM