# Sliding Number — primitive for stats & kpis (react)

> **For AI agents:** find the right skill in one call — `curl -s "https://skills.varg.ai/api/search?q=<what the person wants>"` returns the matching use case and the best skills with install commands, as markdown (Russian works too). Full index: https://skills.varg.ai/llms.txt. Every page has a markdown twin: add `.md` to its path. Before generating anything, show the person the options on the use-case page.

An odometer number whose digits roll on little wheels up to their final value

- **Install:** `npm install @animate-ui/react motion`
- **Registry:** animate-ui · **Framework:** react · **License:** MIT + Commons Clause
- **Docs and preview:** https://animate-ui.com/docs/primitives/animate-ui/sliding-number
- **Source:** https://github.com/imskyleen/animate-ui/blob/main/packages/react/src/primitives/texts/sliding-number/index.tsx
- **Example:** https://skills.varg.ai/previews/lib-animate-ui-sliding-number.mp4?v=30231 (Captured from the library’s own demo page (Animate UI))
- **Time:** Drive from the frame. Runs on its own clock (requestAnimationFrame, timers, springs or CSS). Drive it from frame / fps before rendering, or the render drifts.
- **Runs:** local render, free
- **Aspect:** any

## Prompt that renders it frame-exact

Show a stat with Animate UI's Sliding Number (https://animate-ui.com/docs/primitives/animate-ui/sliding-number, MIT + Commons Clause): `npm install @animate-ui/react motion`, then <SlidingNumber number={12500} fromNumber={0} thousandSeparator="," /> at display size, centred or beside a label. Each digit sits on a wheel positioned in percent of its own height; with fromNumber it counts on a spring (stiffness 90, damping 50) and every digit rolls on the way. Motion's springs run on wall-clock time, so for the render compute the current value from the frame (Remotion: spring({ frame, fps, config: { stiffness: 90, damping: 50 } }) mapped from fromNumber to number) and place each wheel from that value; in HyperFrames tween a value in a paused GSAP timeline and write the digits on update. Set decimalPlaces and padStart as needed.

## Used in

- [Product launch film](https://skills.varg.ai/video/product-launch.md)
- [Feature announcement](https://skills.varg.ai/video/feature-announcement.md)
- [Sale & offer promo](https://skills.varg.ai/video/offer-promo.md)
- [Testimonial & review ad](https://skills.varg.ai/video/testimonial-ad.md)
- [Us vs them & before / after](https://skills.varg.ai/video/comparison-ad.md)
- [Top-N listicle](https://skills.varg.ai/video/listicle.md)
- [Post to video](https://skills.varg.ai/video/post-to-video.md)
- [Quiz, poll & would-you-rather](https://skills.varg.ai/video/quiz.md)

## More stats & kpis

- [Apple Money Count](https://skills.varg.ai/component/hf.apple-money-count.md) — `npx hyperframes add apple-money-count`
- [Count Up](https://skills.varg.ai/component/hf.count-up.md) — `npx hyperframes add count-up`
- [Count-Up Stat Card](https://skills.varg.ai/component/hf.mk-progress-stat.md) — `npx hyperframes add mk-progress-stat`
- [Number Wheel](https://skills.varg.ai/component/hf.number-wheel.md) — `npx hyperframes add number-wheel`
- [Bauhaus Build](https://skills.varg.ai/component/remocn.bauhaus-build.md) — `npx shadcn@latest add @remocn/bauhaus-build`
- [Hand Count](https://skills.varg.ai/component/remocn.hand-count.md) — `npx shadcn@latest add @remocn/hand-count`
