Spinners, progress bars, skeleton screens and AI thinking states. Every loader below is pure CSS — no libraries, no JavaScript animation loop, and all of them respect prefers-reduced-motion.
Indeterminate
Rings, orbits, sectors and pinwheels — every one is a single element or a tiny loop, animated purely in CSS.
Ring
tsxDual ring
tsxGradient ring
tsxSVG dash
tsxOrbit
tsxSector
tsxClock spokes
tsxSquare trace
tsxFlip card
tsxRipple
tsxPinwheel
tsxGlow orb
tsxRhythm
Staggered delays turn three identical elements into a wave. The building block of typing indicators and equalisers.
Bouncing dots
tsxPulsing dots
tsxEqualiser
tsxWaveform
tsxBouncing balls
tsxTyping bubble
tsxStatus pulse
tsxDot grid
tsxComet trail
tsxHeartbeat
tsxDeterminate
Bars, rings, dials and step trackers — for when you actually know how far along you are.
Live bar
tsxCircular
tsxIndeterminate
tsxStriped
tsxSegmented
tsxSteps
tsxGlow bar
tsxRadial dial
tsxTop loading bar
tsxBattery
tsxPlaceholders
Shimmer sweeps that mirror the shape of the content underneath, so the layout never jumps when data lands.
Text lines
tsxAvatar row
tsxCard
tsxTable rows
tsxPulse block
tsxChart placeholder
tsxFeed post
tsxWave sweep
tsxModern
Streaming text, tool-call traces, generating cards and full-page loaders for AI-native products.
Streaming text
tsxThinking about your request…
Thinking shimmer
tsxTool call trace
tsxGenerating card
tsxLoading workspace…
Full-page loader
tsxLogo pulse
tsxCounter roll
tsxFetching results…
Empty → loading
tsx