Skip to content

useSlideUp

@hua-labs/hua/motion

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

tsx
const slideUp = useSlideUp({ duration: 700, delay: 100 });

return (
  <div ref={slideUp.ref} style={slideUp.style}>
    Content slides up into view
  </div>
);

1
0ms
2
150ms
3
300ms
4
450ms

durationnumber700Animation duration in milliseconds
delaynumber0Delay before animation starts
distancenumber50Distance to slide in pixels
direction"up" | "down" | "left" | "right""up"Slide direction
thresholdnumber0.1Viewport threshold
triggerOncebooleantrueOnly trigger once
easingstring"ease-out"Easing function
autoStartbooleantrueAuto start on viewport entry
onComplete() => void-Callback when animation completes
onStart() => void-Callback when animation starts
onStop() => void-Callback when animation is stopped
onReset() => void-Callback when animation is reset

refRefObject<T>Ref to attach to element
styleCSSPropertiesStyle object
isVisiblebooleanVisibility state
isAnimatingbooleanAnimation state
progressnumberAnimation progress (0-1)
start() => voidStart animation
stop() => voidStop animation
reset() => voidReset state

tsx
const slide1 = useSlideUp({ delay: 0 });
const slide2 = useSlideUp({ delay: 100 });
const slide3 = useSlideUp({ delay: 200 });

return (
  <>
    <div ref={slide1.ref} style={slide1.style}>First</div>
    <div ref={slide2.ref} style={slide2.style}>Second</div>
    <div ref={slide3.ref} style={slide3.style}>Third</div>
  </>
);