This component no longer exists. It was in remotionui’s manifest when we first indexed it and is not there now — the registry served its inventory on 2026-08-11 and this item was not on it. The install command below will fail. It is kept here because a tutorial somewhere still tells people to run it.
blur-in
remotionui/blur-inRemovedComponent
Resolve out of a defocus — blur clears before the move lands
Live preview
live · rendered by the registry
Rendered by remotionui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://remotionui.com/r/blur-in.jsonSource
1import { interpolate } from "remotion";2import {3 useEnterExit,4 type MotionPrimitiveProps,5} from "@/remotion/lib/motion-primitive";6import { MotionWrapper } from "@/remotion/lib/motion-wrapper";78export type BlurInProps = MotionPrimitiveProps & {9 /** Blur radius in pixels at the start. */10 maxBlur?: number;11 /** Scale at the start — the push that sells the pull into focus. */12 scaleFrom?: number;13};1415/** Blur is gone by this point of the travel, so the element settles sharp. */16const FOCUS_AT = 0.2;1718/**19 * Resolves out of a defocus, like a lens finding its subject.20 *21 * The blur clears before the move does — holding it to the last frame makes22 * the whole entrance feel soft, and the eye reads the sharpening, not the23 * arrival.24 */25export const BlurIn: React.FC<BlurInProps> = ({26 children,27 maxBlur = 10,28 scaleFrom = 0.98,29 block,30 style,31 className,32 ...motionProps33}) => {34 const { motion, displace, opacity, exiting, exitProgress } =35 useEnterExit(motionProps);3637 const scale = interpolate(motion, [0, 1], [scaleFrom, 1]);38 const defocus = exiting39 ? exitProgress40 : interpolate(displace, [FOCUS_AT, 1], [0, 1], {41 extrapolateLeft: "clamp",42 extrapolateRight: "clamp",43 });4445 return (46 <MotionWrapper47 block={block}48 className={className}49 style={{50 ...style,51 opacity,52 scale,53 filter: `blur(${(defocus * maxBlur).toFixed(2)}px)`,54 willChange: "filter",55 }}56 >57 {children}58 </MotionWrapper>59 );60};
