Component Registry
A collection of drop-in animated components for your next project. Copy and paste or install with a single command.
Production-ready, animated React components for shadcn/ui and Next.js — copy and paste, or install any one with a single command. Each is built from techniques in my Design Engineering series, like clip-path reveals and easing curves that feel natural.
Handwriting SVG
SVG path that draws itself on mount. Pass path for custom shapes or text to render handwriting.
framer-motionopentype.js@1.3.4Gravity Scroll Cards
Cards that stack and unstack with scroll. Gravity-style depth effect.
gsapParty Popper
Confetti celebration effect on click. Wraps any trigger element and fires particles on interaction.
gsapSwap Button
Shadcn button that swaps two labels (and optional icons) with a crossfade, with no width jump. Drop-in on top of Button.
No dependenciesSVG Particle
Three.js particle field from SVG source. Pass icon components from lucide-react, react-icons, Heroicons, Tabler, Phosphor, or any <svg /> - works out of the box. Particles react to the cursor and spring home.
@react-three/fiberthreeScroll Progress
Fixed bar at the top that scales horizontally with scroll progress. Uses Framer Motion for smooth updates.
framer-motionLQIP Image
Image component with Low Quality Image Placeholder (LQIP). Shows a blurred placeholder that fades into the full image on load.
No dependenciesLonely Tab Title
Changes the page title to a custom message when the user switches away from the tab. Uses the Page Visibility API.
No dependenciesNumber Counter
Animated number counter that counts from 0 to target. Tabular nums prevent layout shift, smooth ease-out-expo easing, respects reduced motion.
No dependenciesTabs
Accessible tabs with icon support, sliding indicator, and optional content panels. Keyboard navigable.
lucide-reactResizable Panels
Drag-resizable panels for dashboards, IDEs, and editors. Nest groups for complex layouts like sidebar | editor/terminal.
No dependenciesHorizontal Scroll Gallery
Pinned section where vertical scroll drives horizontal gallery position. Same pattern as Scroll-Linked Video Scrubber.
No dependenciesInfinite Circular Scroll
Vertical list of cards with infinite scroll. Scroll past the last to wrap to the first.
No dependenciesNetwork Image
Image component that adapts quality and loading strategy in real-time based on connection speed using the Network Information API.
No dependenciesScroll-Linked Video Scrubber
Sticky video that scrubs forward/backward as you scroll. Uses a tall wrapper and position: sticky - no scroll hijacking.
No dependenciesMagnetic Cursor Dock
macOS-style dock with magnetic cursor effect. Items scale and lift as cursor approaches.
framer-motionAnimated Underline
Animated underline that tracks hover/active state and slides beneath nav items. Add data-link-index to list items for correct positioning.
No dependenciesAurora Background
Living aurora background with multiple variants. Sunset, ocean, forest, lavender, ember, ice.
framer-motionCursor Spotlight
Cursor spotlight effect. Dimmed background with bright radial gradient following cursor.
No dependenciesNot Found Page
Animated 404 page with subtle icon motion and reduced-motion support.
framer-motionlucide-reactParallax Image
Scroll-linked parallax effect for images or content. Moves children on scroll for depth.
framer-motionSlide In Text
Animates text sliding in from the left with a fade when it enters the viewport.
gsapStagger Reveal Grid
Grid that reveals items with wave-like stagger on scroll. Configurable columns and timing.
gsapSVG Morph Button
Button with SVG path morph animation. Supports custom paths for idle, hover, loading, success.
flubbergsapFluid Cursor Trail
Canvas particle trail that follows the cursor. Fixed overlay, customizable color, physics, and particle count.
No dependenciesLine Draw SVG
SVG path that draws itself on scroll, hover, or mount. Presets: diamond, circle, star, heart, arrow.
gsapText Scramble
Text that decrypts character by character with a scramble effect. Trigger on scroll, hover, or mount.
No dependenciesTilt Card Glare
3D card with tilt and holographic glare effect that follows the cursor.
framer-motionTypewriter
Typewriter effect that cycles through phrases with variable typing speed and blinking cursor. Pauses when out of viewport.
framer-motionTheme Toggle
Accessible dark mode toggle with View Transitions API support. Icon, icon-label, or dual-tab variants.
lucide-reactnext-themes