Skip to content

useUnifiedMotion

@hua-labs/hua/motion

bash
npm install @hua-labs/hua
tsx
import { useUnifiedMotion } from "@hua-labs/hua/framework";

tsx
// useMotion from hua wraps this hook
import { useUnifiedMotion } from "@hua-labs/motion-core";

const motion = useUnifiedMotion({
  type: "fadeIn",
  duration: 600,
  autoStart: false,
});

return (
  <div ref={motion.ref} style={motion.style}>
    Unified motion
  </div>
);

type*"fadeIn" | "slideUp" | "slideLeft" | "slideRight" | "scaleIn" | "bounceIn"-Motion type to dispatch
durationnumber600Animation duration in milliseconds
delaynumber0Delay before animation starts
autoStartbooleanfalseStart animation automatically
easingstring"ease-out"Easing function
thresholdnumber0.1Viewport intersection threshold
triggerOncebooleantrueOnly trigger animation once
distancenumber50Slide distance in pixels (for slide types)

refRefObject<T | null>Ref to attach to element
styleCSSPropertiesAnimated style via CSS transition (single hook, no multi-hook overhead)
isVisiblebooleanWhether element is in viewport
isAnimatingbooleanWhether animation is in progress
progressnumberAnimation progress (0-1)
start() => voidStart animation
stop() => voidStop animation
reset() => voidReset to initial state