Perfect loops
The same still is the first and last frame, so nothing jumps when a loop restarts.
Eleven looping UI micro-interactions: hovers, toggles, taps and state changes, each one a perfect loop.

A motion study of eleven interface moments, from a magnetic button to a gooey tab bar. Every clip starts and ends on the same frame, so it plays forever without a seam.
The palette
Pick a colour to copy it
They play while they're on screen and pause when they leave. Each one has its own pause button.
Hover states and micro-interactions are where an interface feels alive or dead. They're also the hardest thing to show. A screenshot of a button tells you nothing about how it presses.
I wanted a set of them I could point to. Small, polished and moving, the way they'd look in a real product.
One rule did most of the work: the first frame and the last frame are the same picture.
For each animation I made one still in GPT Image 2.5: the component at rest, on a flat colour, front on. Then I gave MiniMax H3 that same still as both the start frame and the end frame, so the model has to come home to exactly where it started. The loop is built in, not cut in afterwards.
The prompts follow the source-video rules from motion2code, an open-source skill on GitHub:
Eleven loops, each six seconds:
On this page they only load when you scroll to them, play while they're on screen and pause when they leave. If your device asks for reduced motion, they wait on their first frame until you press play.
They're all on this page, playing as you scroll past.
Some of the same moves made it into this site too. The black buttons now catch a sheen when you hover them, the same one the Get started button does in the first loop.
The same still is the first and last frame, so nothing jumps when a loop restarts.
Every loop has its own flat colour scheme, like screens from one product.
Every prompt runs second by second, from the first move to the settle.
No camera moves, so the eye stays on the interaction.
Each loop loads only when it scrolls into view, then pauses when it leaves.
If your device asks for less motion, the loops wait until you press play.
Open any of them full size.
The foil catches the light as the card tilts.
The stack fans out like a hand of cards.
Hearts and confetti on the like.
Press, progress, tick.
Leave a reaction. It's anonymous and it makes my day.
React to this
Tell me what you're working on. If I'm not the right fit, I'll say so.