# loadsv
> A lightweight library of beautiful loading indicators for Svelte.
```sh
npm install loadsv
```
```svelte
```
Every spinner accepts `size`, `color`, `duration` and `playState`, and forwards any other attribute to its root ``. Some also take `easing` (Arc, Ring) or `cap` (Arc, Dual, Ring, Snake).
`--lsv-duration` and `--lsv-play-state` set on any ancestor drive every spinner inside it; props win over the cascade.
Spinners are decorative and `aria-hidden`, respect reduced motion out of the box, and require Svelte 5.16 or later.
## Spinners
- [Arc](/spinners/arc.md): A single open stroke rotating in a circle. Import as `Arc`.
- [Atom](/spinners/atom.md): Three rings turning over inside a circle, each on its own axis. Import as `Atom`.
- [Blocks](/spinners/blocks.md): Nine blocks shrinking and growing in a sweep across a grid. Import as `Blocks`.
- [Bounce](/spinners/bounce.md): A ball bouncing on the spot, squashing as it lands. Import as `Bounce`.
- [Bouncing dots](/spinners/bouncing-dots.md): Three staggered dots bouncing up and down. Import as `BouncingDots`.
- [Circular dots](/spinners/circular-dots.md): Eight dots in a ring, the brightest hopping from one to the next. Import as `CircularDots`.
- [Classic](/spinners/classic.md): Twelve fading bars arranged in a radial pattern. Import as `Classic`.
- [Clock](/spinners/clock.md): Two hands on a faint dial, one sweeping, one creeping. Import as `Clock`.
- [Comet](/spinners/comet.md): A full ring fading into its tail. Import as `Comet`.
- [Dual](/spinners/dual.md): Two arcs turning in opposite directions. Import as `Dual`.
- [Eclipse](/spinners/eclipse.md): Two dots circling each other, seen edge-on, one passing behind the other. Import as `Eclipse`.
- [Flip](/spinners/flip.md): A square flipping over on one axis, then the other. Import as `Flip`.
- [Handoff](/spinners/handoff.md): Two slanted pills that tuck together as they turn over, then fan back out. Import as `Handoff`.
- [Hourglass](/spinners/hourglass.md): An hourglass draining its sand, then flipping over. Import as `Hourglass`.
- [Inchworm](/spinners/inchworm.md): A worm inching round a rounded square, stretching round each corner, then gathering up. Import as `Inchworm`.
- [Infinity loop](/spinners/infinity-loop.md): A bead running a figure-eight along a faint track. Import as `InfinityLoop`.
- [Leap](/spinners/leap.md): Three dots in a row, the last one leaping over the others to the front. Import as `Leap`.
- [Linear dots](/spinners/linear-dots.md): Three dots lighting up in turn from left to right. Import as `LinearDots`.
- [Newton’s cradle](/spinners/newtons-cradle.md): Three balls in a row, the outer two swinging out in turn. Import as `NewtonsCradle`.
- [Pulse](/spinners/pulse.md): A ring rippling outward from a dot. Import as `Pulse`.
- [Ribbon](/spinners/ribbon.md): Three pills in an S, flowing into its mirror and back like a ribbon. Import as `Ribbon`.
- [Ring](/spinners/ring.md): An arc rotating in a faint circle. Import as `Ring`.
- [Ripple](/spinners/ripple.md): Three rings spreading out from the center. Import as `Ripple`.
- [Slide](/spinners/slide.md): Three dots taking turns sliding into the empty corner of a square. Import as `Slide`.
- [Snake](/spinners/snake.md): An arc chasing its own tail, stretching out and shrinking back as it turns. Import as `Snake`.
- [Spark](/spinners/spark.md): Eight petals, long and short, flaring in a wave while the spark slowly turns. Import as `Spark`.
- [Swirl](/spinners/swirl.md): A bright cell gliding round the edge of a grid, trailing light. Import as `Swirl`.
- [Wave](/spinners/wave.md): Five bars rising and falling in a wave. Import as `Wave`.
## Optional
- [GitHub](https://github.com/PedroLunet/loadsv): Source and issues.
- [npm](https://www.npmjs.com/package/loadsv): The package itself.