Percentile
A hairline rule and a counting number, and nothing else.
Twelve preloaders built as pure CSS, running live on this page. Take the one you want and copy the prompt that rebuilds it, written precisely enough for any AI builder to follow.
12 showing
A hairline rule and a counting number, and nothing else.
Four words snap through a single-line mask.
Three rings, three speeds, one still centre.
Letters rise through a blur and settle into the word.
Two waves cross a rising body of water.
Panels part, hold the reveal, and close again.
One shape flexing, with an outline running behind it.
A pulse crosses a grid of cells on the diagonal.
A mark draws itself on, then off the far end.
Two rows of type running against each other.
Six petals open from the centre like a shutter.
A sheen sweeps a page that has not arrived yet.
Every card on this page is the real animation running live, not a recording. Open one fullscreen to see it the way a visitor would meet it.
Each loader ships with a written brief covering structure, timing, easing and the loop, specific enough that a builder does not have to guess.
Drop it into your AI builder, then change the word, the palette or the duration. The prompts are written to be edited, not treated as fixed.
A written brief for that specific loader. It names the layout, the element sizes, the keyframe percentages, the easing curves and the loop length, plus the reduced-motion behaviour. It is written as instructions to follow rather than as a description of the result.
No. Every loader here is CSS keyframes and plain markup, with the counter in Percentile driven by an animated custom property rather than a timer. Nothing on this page imports an animation package.
Yes. The prompts describe structure and motion, not framework syntax, so the same brief produces a working loader in React, Vue, Svelte or a plain HTML file. Only the markup wrapper changes.
Each card pauses its animation once it leaves the viewport and resumes when it comes back. Twelve loops running at once is a lot of work for a browser to do for motion nobody is looking at.
Every loader freezes on a deliberately chosen frame rather than disappearing. The frame is picked per design, so the curtain shows its reveal and the aperture shows itself open, instead of every card resting on an empty first frame.