Focus Blur Resolve
remocn/focus-blur-resolveFreeComponent
A premium focus pull from heavy blur to crisp text, then a soft blur-out exit.
Install it
npx shadcn@latest add https://www.remocn.dev/r/focus-blur-resolve.jsonSource
1"use client";23import { Easing, interpolate, useCurrentFrame, useVideoConfig } from "remotion";45export interface FocusBlurResolveProps {6 text: string;7 blur?: number;8 fontSize?: number;9 color?: string;10 fontWeight?: number;11 speed?: number;12 className?: string;13}1415export function FocusBlurResolve({16 text,17 blur = 14,18 fontSize = 72,19 color = "#171717",20 fontWeight = 600,21 speed = 1,22 className,23}: FocusBlurResolveProps) {24 const frame = useCurrentFrame() * speed;25 const { durationInFrames } = useVideoConfig();2627 const enterDur = 23;28 const exitDur = 16;29 const exitStart = Math.max(enterDur, durationInFrames - exitDur);3031 const enterEasing = Easing.bezier(0.22, 1, 0.36, 1);32 const exitEasing = Easing.bezier(0.64, 0, 0.78, 0);3334 const enterP = interpolate(frame, [0, enterDur], [0, 1], {35 extrapolateLeft: "clamp",36 extrapolateRight: "clamp",37 easing: enterEasing,38 });3940 const exitP = interpolate(frame, [exitStart, durationInFrames], [0, 1], {41 extrapolateLeft: "clamp",42 extrapolateRight: "clamp",43 easing: exitEasing,44 });4546 const opacity = enterP * (1 - exitP);4748 const yEnter = interpolate(frame, [0, enterDur], [14, 0], {49 extrapolateLeft: "clamp",50 extrapolateRight: "clamp",51 easing: enterEasing,52 });5354 const yExit = interpolate(frame, [exitStart, durationInFrames], [0, -10], {55 extrapolateLeft: "clamp",56 extrapolateRight: "clamp",57 easing: exitEasing,58 });5960 const y = yEnter + yExit;6162 const blurEnter = interpolate(frame, [0, enterDur], [blur, 0], {63 extrapolateLeft: "clamp",64 extrapolateRight: "clamp",65 easing: enterEasing,66 });6768 const blurExit = interpolate(frame, [exitStart, durationInFrames], [0, 10], {69 extrapolateLeft: "clamp",70 extrapolateRight: "clamp",71 easing: exitEasing,72 });7374 const blurVal = blurEnter + blurExit;7576 const scale = interpolate(frame, [0, enterDur], [1.01, 1], {77 extrapolateLeft: "clamp",78 extrapolateRight: "clamp",79 easing: enterEasing,80 });8182 return (83 <div84 style={{85 position: "absolute",86 inset: 0,87 display: "flex",88 alignItems: "center",89 justifyContent: "center",90 background: "transparent",91 }}92 >93 <span94 className={className}95 style={{96 fontSize,97 fontWeight,98 color,99 letterSpacing: "-0.03em",100 fontFamily:101 "var(--font-geist-sans), -apple-system, BlinkMacSystemFont, sans-serif",102// … truncated
What it pulls in
npm packages
Files it writes
More from remocn
All 282 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| UI Accordionaccordion | remocn | Components | Free | 1 dep · 2 files | |
| UI AI Prompt Flowai-prompt-flow | remocn | Components | Free | 1 dep | |
| UI Alert Dialogalert-dialog | remocn | Components | Free | 1 dep · 2 files | |
| Animated Bar Chartanimated-bar-chart | remocn | Components | Free | 1 dep | |
| Animated Line Chartanimated-line-chart | remocn | Components | Free | 1 dep | |
| ASCII Dissolveascii-dissolve | remocn | Components | Free | 2 deps | |
| ASCII Renderascii-render | remocn | Components | Free | 1 dep | |
| Backdropbackdrop | remocn | Components | Free | 1 dep |
