BlockDex

Components

Registries

Free blocks

Method

BlockDex

Components

Registries

Free blocks

Method

Open API

BlockDex

Components

Registries

Free blocks

Method

Open API

Components/trovecn/springs

Springs

trovecn/springs
FreeUtility

Three-tier spring/tween motion tokens — fast, moderate, slow.

Install it

npx shadcn@latest add https://trovecn.dev/r/springs.json

Source

src/lib/springs.tstrovecn.dev/r/springs.json
1import type { Easing, Transition } from "motion/react";
2
3/**
4 * Motion tokens. Four tiers, each an enter spring paired with a faster,
5 * bounce-free exit tween. Never hand-write a duration/transition inline —
6 * import the tier that matches how big the thing moving is, and how often
7 * it fires.
8 */
9
10/** Strong ease-out, matching this repo's `docs/design-system.md` guidance that built-in
11 * easing keywords are too weak for deliberate UI motion. Used on every
12 * tier's exit tween. Motion's array form of `cubic-bezier(0.23, 1, 0.32, 1)`.
13 * Exported so a component with its own bespoke, non-tier tween (e.g. a
14 * checkmark `pathLength` draw) can reuse the same curve instead of a bare
15 * easing keyword. */
16export const easeOutStrong: Easing = [0.23, 1, 0.32, 1];
17
18interface SpringTier {
19 /** Enter transition — spring, responds naturally to interruption. */
20 enter: Transition;
21 /** Exit transition — plain tween, one notch quicker, no bounce. */
22 exit: Transition;
23}
24
25export const spring = {
26 /** Continuous, pointer-tracked motion only: proximity-hover pills, live
27 * highlight rects that follow the cursor, drag indicators. Anything
28 * triggered by a discrete click/open — even something small — belongs on
29 * `quick` or above. Kept at its current speed; this tier is not part of
30 * the retune, it already needs to feel instant. */
31 fast: {
32 enter: { type: "spring", duration: 0.08, bounce: 0 },
33 exit: { duration: 0.06, ease: easeOutStrong },
34 },
35 /** One-shot feedback that isn't continuously tracked: tooltips, preview
36 * cards, icon crossfades, small entrance staggers. Enough spring to read
37 * as motion rather than a cut, still fast enough to keep up with the
38 * interaction that triggered it. */
39 quick: {
40 enter: { type: "spring", duration: 0.14, bounce: 0.1 },
41 exit: { duration: 0.1, ease: easeOutStrong },
42 },
43 /**
44 * Short travel / small expansion (dropdown & tab indicators, switch
45 * thumb, accordions) and panels that must land exactly (mobile drawer,
46 * selection merge/split).
47 */
48 moderate: {
49 enter: { type: "spring", duration: 0.2, bounce: 0.12 },
50 exit: { duration: 0.15, ease: easeOutStrong },
51 },
52 /** Large surfaces: dialogs, side panels, stepped flows. */
53 slow: {
54 enter: { type: "spring", duration: 0.32, bounce: 0.18 },
55 exit: { duration: 0.22, ease: easeOutStrong },
56 },
57} satisfies Record<"fast" | "quick" | "moderate" | "slow", SpringTier>;

What it pulls in

npm packages

  • motion

Files it writes

  • src/lib/springs.ts

Facts

Registry
trovecn
Type
registry:lib
Access
Free
Files written
1
Licence
MIT
In the index
at or before 2026-08-14
Last confirmed
yesterday

Go to the source

trovecn.dev PPRAMANIK62/trovecn on GitHub Raw registry item This item as JSON

More from trovecn

All 26 items
Same registry, same kind — the ones you would have found next
ComponentRegistryKindAccessInstallsCommand
Font weightfont-weighttrovecnUtilitiesFreeno deps
UtilsutilstrovecnUtilitiesFree2 deps

Also from Kynth Studios

Built for the same person as BlockDex

SkillWorks

Claude Code skills and plugins, scored

skillworks.kynth.studio

RuleStack

AGENTS.md gallery and agent-config comparison

rulestack.kynth.studio

ToolDrift

What the AI coding tools changed last night

tooldrift.kynth.studio

The studio list

One product, taken apart, once a month

Kynth Studios pulls one shipped product open every month — what it does, what it cost to build, what the pipeline behind it looks like, and what the numbers did. One email a month, nothing in between.

Double opt-in — we send one confirmation link and nothing else until you click it.

BlockDex

Built by

Kynth Studios

the studio behind SkillWorks, RuleStack and ToolDrift

part of Toolproof, the measurement layer for AI agent tooling

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

© 2026 BlockDex. A Kynth Studios product. Changelog

BlockDex

The studio list

One product, taken apart, once a month

Kynth Studios pulls one shipped product open every month — what it does, what it cost to build, what the pipeline behind it looks like, and what the numbers did. One email a month, nothing in between.

Double opt-in — we send one confirmation link and nothing else until you click it.

BlockDex

Built by

Kynth Studios

the studio behind SkillWorks, RuleStack and ToolDrift

part of Toolproof, the measurement layer for AI agent tooling

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

© 2026 BlockDex. A Kynth Studios product. Changelog

BlockDex

The studio list

One product, taken apart, once a month

Kynth Studios pulls one shipped product open every month — what it does, what it cost to build, what the pipeline behind it looks like, and what the numbers did. One email a month, nothing in between.

Double opt-in — we send one confirmation link and nothing else until you click it.

BlockDex

Built by

Kynth Studios

the studio behind SkillWorks, RuleStack and ToolDrift

part of Toolproof, the measurement layer for AI agent tooling

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

© 2026 BlockDex. A Kynth Studios product. Changelog

BlockDex