Installation & details
Restoration Evidence Scrubber by Motion Primitives. An archival conservation panel comparing a damaged manuscript scan with its restored interpretation. Drag the vertical evidence line across the specimen to inspect paper damage, marginal notation, and recovered contrast without leaving th
React · Tailwind CSS · MIT license · Original registry
Added to PODIE · Catalog updated · Page updated
Installation and usage
The published examples target React 19 and Tailwind CSS 4. See the recorded installation tests and their limits; verify compatibility in your own project.
01 — Set up your project
First component? Initialize shadcn once.
pnpm dlx shadcn@latest init02 — Install the component
pnpm dlx shadcn@latest add https://podie.dev/r/motion-primitives--image-comparison.json03 — Add it to your interface
Import the component from the path created by the installer.
'use client';
import EffectImageComparison from '@/components/podie/motion-primitives--image-comparison/demo';
export default function Example() {
return (
<div style={{ width: '100%', height: '100vh' }}>
<EffectImageComparison />
</div>
);
}
Example styling
These styles belong to the demo wrapper. Add them to your stylesheet to reproduce this example.
.expanded-demo { position:relative; display:flex; align-items:center; justify-content:center; width:360px; max-width:100%; min-height:180px; padding:15px; isolation:isolate }
.demo-stack { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px }
.demo-action { display:inline-flex; align-items:center; justify-content:center; gap:8px; border:1px solid var(--border, #e5e5e5); border-radius:8px; background:var(--muted, #f5f5f5); color:var(--foreground, #171717); padding:10px 16px; font-size:13px; cursor:pointer }
.demo-action:hover { background:var(--accent, #eee) }
.demo-tile { padding:16px 22px; background:var(--muted, #f5f5f5); border:1px solid var(--border, #e5e5e5); border-radius:12px; color:var(--foreground, #171717); font-size:15px }
.demo-art { display:flex; align-items:center; justify-content:center; min-height:140px; padding:30px; width:280px; max-width:100%; background:var(--muted, #f5f5f5); border:1px solid var(--border, #e5e5e5); border-radius:16px; text-align:center; font-size:25px; letter-spacing:-.7px; color:var(--foreground, #171717) }
.demo-art.h-full { height:100%; min-height:0 }
.demo-gradient { position:relative; background:linear-gradient(145deg,#b6c7d1,#d5bcd6 50%,#e2d5bb); border-radius:16px; padding:20px; color:#222 }
.demo-gradient .demo-tile { background:#ffffff48 }
.demo-scene { position:relative; width:360px; height:260px; max-width:100%; overflow:hidden; border-radius:12px }
.demo-scene-label { position:absolute; left:0; right:0; top:50%; transform:translateY(-50%); text-align:center; font-size:25px; line-height:1.3; font-weight:500; letter-spacing:-.7px; z-index:1; pointer-events:none }
.demo-dot { display:block; width:60px; height:60px; border-radius:50%; background:var(--foreground, #171717) }
.expanded-demo:has(.codrops-preview) { width:100%; max-width:none; height:100%; padding:0 }
.codrops-preview { width:100%; height:100%; border:0; border-radius:inherit }Dependencies and distribution
motion The CLI installs declared dependencies. React is a project prerequisite; scenes may include bundled libraries with their own notices.
By Motion Primitives · MIT license. Original component source and license included.
Choosing and integrating this component
PODIE source review ·
Where it fits
Comparing two aligned images with a movable divider. Clipping and spring-driven position expose different portions of each image; pointer dragging and touch movement are handled.
Integration boundary
Editable React source. Match the two image dimensions and framing. Choose hover or drag behavior and keep descriptive alternative text.
Checks before shipping
The reviewed divider is not a native range input. Add a keyboard-operable alternative if the comparison carries essential information.
Recorded verification
The recorded review on 2026-10-11 passed clean npm and pnpm installation checks and the tested desktop and mobile demo flows for this registry hash. Reviewer: PODIE daily visual editor / openai/gpt-5.6-luna. These are historical results, not a new certification of every device or application state. Read the method and limitations.
No component-specific mobile performance or assistive-technology pass is claimed here. Test the final page, including its content, theme and application logic.
Reviewed source identity
Registry SHA-256: cae53cdd2d499eff72ebd1e1c8cfa60ca482f6d8c7112d7c31bc2279f37e738b
Entry file: components/podie/motion-primitives--image-comparison/components/ui/image-comparison.tsx. 4 files in the registry payload.