All projects
DesignUIEngineeringStrategy

DriftKit

Motion-first React components. Spring physics by default.

A growing library of 52+ copy-paste React components built on Framer Motion and Tailwind. Every interaction is powered by spring physics — no easing curves, no keyframes, just natural motion. Built to teach, shipped to use.

What you're looking at

A library of small UI pieces — buttons, forms, lists, cards — that move with physics instead of stiff, canned animations. Designers drop them into their products to make interfaces feel alive without hiring a motion specialist.

Each card below is the actual working component — not a screenshot. Move your cursor around. Hit the </> button on any card to see the code.

typewriter
Animated headline
Hero text that types itself out. Good for landing pages and empty states.
staggered list
Research user needs
Sketch approach
Build prototype
Ship to production
Cascading list
Items enter one after another with a gentle bounce. Great for onboarding, testimonials, feature lists.
stepper
1
Details
2
Configure
3
Review
Multi-step form indicator
Checkout flows, signup wizards, any multi-part form. Shows progress, eases transitions.
number ticker
 
1
2
3
4
live
Animated counter
Stats that roll up instead of snapping. For live metrics, dashboard KPIs, pricing.
parallax tilt
3D tilt
Interactive tilt card
Product cards, feature highlights, anything that deserves a second look. Moves with the cursor.
magnetic button
Cursor-following button
Hero CTAs, primary actions. Gives a subtle pull toward the cursor — feels premium without being loud.
jelly hover
wobble
Wobbly hover card
Playful interactions — promo cards, fun product tiles, marketing sites with personality.
text shimmer
Motion-first components
Shimmering text
Attention-drawing headings, feature callouts, "new" labels. Subtle loop that doesn't distract.

Interactive cards respond to your cursor. The rest loop on their own.

See it put together

A fake product using five of these components at once

This isn't a mockup — every piece below is live. It's what a real landing page looks like when you drop DriftKit in.

northwind.app
northwindNew

Ship interfaces that feel alive without hiring a motion specialist. Copy-paste components, tune to taste, move on with your day.

Active users
8
,
4
0
0
Components
5
2
Avg rating
4
.
9
/5
Why people like it
  • No install. Copy, paste, ship.
  • Zero config — just React and Framer Motion.
  • Accessibility baked in. Reduced-motion respected.
  • Tokens and named presets instead of raw numbers.
Components usedText ShimmerTypewriterMagnetic ButtonNumber TickerStaggered List
Screenshot 1
DriftKit landing — "Spring physics everywhere." with the typewriter component animating "Copy, paste, ship."
Landing. The hero itself is a component — the typewriter is live, not a screenshot.

The problem

Most component libraries ship with CSS transitions and easing curves. Motion feels tacked on. Students and junior designers copy animations without understanding why they feel cheap — flat durations, wrong curves, no sense of physics.

The approach

Build a library where motion is the foundation, not the garnish. Every component starts from springs — mass, stiffness, damping. Include a playground that shows the curve while you tune. Show the code next to the component. Copy-paste, no install.

What I designed and built

52+ components across two tiers — Showpieces (cursor-driven, physics-forward) and Standard (nav, buttons, inputs, tabs, accordion, dialog, and more). Live code view for each. Playground with mass/stiffness/damping sliders and a rendered spring curve. Multi-format code export. All hosted on Vercel, all open source.

Behind the build

Every component started as a teaching artifact. Before writing the code I kept sketching what students were tripping on: why a button's ease-out looked cheap, why page transitions felt uneasy, what separates expressive motion from decorative motion. The library is those conversations turned into copy-paste components. The API is a constraint. Every component exposes just two physical controls — stiffness and damping — because "tune a cubic-bezier" is a nightmare and "does it feel good" shouldn't require math. The named recipes ("jelly hover", "iris wipe", "chonk") matter more than the numbers; numbers don't teach, feelings do.

Craft decisions I care about

Every tile in the gallery is the actual component running live, not a static preview — portfolio-as-documentation, documentation-as-portfolio. Spring values are presets with real names ("jelly hover", "iris wipe"), not numbers, because the numbers are meaningless until you feel them. Reduced-motion respected everywhere. Zero dependencies on anything outside React + Framer Motion.

By the numbers

52+
Components
2
Dependencies
React + Framer Motion
MIT
License
0
Install step
Copy, paste, ship

Stack

ReactNext.jsFramer MotionTailwindTypeScript
Next project
Pixel Lab
Pixelate any image in your browser. 9 palettes, Floyd–Steinberg dithering.