{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "blur-reveal", "title": "Blur Reveal", "description": "Text fades in from a heavy blur into sharp focus.", "dependencies": [ "remotion" ], "files": [ { "path": "registry/remocn/blur-reveal/index.tsx", "content": "\"use client\";\n\nimport { interpolate, useCurrentFrame, useVideoConfig } from \"remotion\";\n\nexport interface BlurRevealProps {\n text: string;\n className?: string;\n blur?: number;\n fontSize?: number;\n color?: string;\n fontWeight?: number;\n speed?: number;\n}\n\nexport function BlurReveal({\n text,\n className,\n blur = 10,\n fontSize = 48,\n color = \"#171717\",\n fontWeight = 600,\n speed = 1,\n}: BlurRevealProps) {\n const frame = useCurrentFrame() * speed;\n const { durationInFrames } = useVideoConfig();\n\n const opacity = interpolate(frame, [0, durationInFrames * 0.6], [0, 1], {\n extrapolateRight: \"clamp\",\n });\n\n const blurAmount = interpolate(\n frame,\n [0, durationInFrames * 0.6],\n [blur, 0],\n { extrapolateRight: \"clamp\" },\n );\n\n return (\n