Animations on the GPU compositor, and spinners that spin as arcs
An animation release: CSS animations of opacity and transform now play on the GPU compositor at the display's own rate, where they updated about twice a second, and rounded borders, gradient cards and clip paths draw as they should. 7 changes, each checked against the reference browser.
Fades, slides, zooms and spins at the display's rate

A CSS animation in Floati advanced only when the engine woke up, about twice a second, and every step re-ran the page's whole style, layout and paint. Animations that change only opacity or transform now run on the GPU compositor: the element is drawn once into its own layer, and every frame the compositor fades or moves that layer itself, at up to 120 frames a second. Each frame is computed with the engine's own arithmetic, so it is pixel for pixel what the engine would have drawn at that moment, rotations included. While only such animations run, the engine sleeps. The frames below were captured from the running app about 140 ms apart.
Spinners draw an arc, gradient cards stay smooth




Three drawing bugs showed up while testing the compositor in the app. A rounded border took its top colour all the way round, so every CSS loading spinner (a round box with one coloured side) was a full circle. A block's gradient background was painted again behind every word of its text. And a clip-path shape inside a faded, filtered or moving element clipped at its old place and vanished. All three now match the reference browser.