Skip to content
Docs
훅으로 돌아가기

useSpringMotion

@hua-labs/hua/motion

물리 기반 스프링 모션으로 자연스러운 애니메이션

설치

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

@hua-labs/motion-core의 모션 훅을 @hua-labs/hua/framework에서 통합 제공합니다.

UI 컴포넌트, 모션 훅, i18n을 하나의 패키지로 사용할 수 있습니다.

기본 사용법

tsx
const spring = useSpringMotion({
  from: 0,
  to: 100,
  stiffness: 200,
  damping: 20,
});

return (
  <div
    ref={spring.ref}
    style={{
      ...spring.style,
      transform: `translateX(${spring.value}px)`,
    }}
  >
    Spring animated
  </div>
);

라이브 데모

바운스 스프링 데모

stiffness: 400, damping: 10

부드러운 스프링 데모

stiffness: 200, damping: 30

API 레퍼런스

옵션

이름타입기본값설명
from*number-docs:hooks.use-spring-motion.options.from
to*number-docs:hooks.use-spring-motion.options.to
massnumber1docs:hooks.use-spring-motion.options.mass
stiffnessnumber100docs:hooks.use-spring-motion.options.stiffness
dampingnumber10docs:hooks.use-spring-motion.options.damping
restDeltanumber0.01docs:hooks.use-spring-motion.options.restDelta
restSpeednumber0.01docs:hooks.use-spring-motion.options.restSpeed
enabledbooleantruedocs:hooks.use-spring-motion.options.enabled
autoStartbooleanfalsedocs:hooks.use-spring-motion.options.autoStart
onComplete() => void-docs:hooks.use-spring-motion.options.onComplete

반환값

이름타입설명
refRefObject<T | null>docs:hooks.use-spring-motion.returns.ref
styleCSSPropertiesdocs:hooks.use-spring-motion.returns.style
valuenumberdocs:hooks.use-spring-motion.returns.value
velocitynumberdocs:hooks.use-spring-motion.returns.velocity
isVisiblebooleandocs:hooks.use-spring-motion.returns.isVisible
isAnimatingbooleandocs:hooks.use-spring-motion.returns.isAnimating
progressnumberdocs:hooks.use-spring-motion.returns.progress
start() => voiddocs:hooks.use-spring-motion.returns.start
stop() => voiddocs:hooks.use-spring-motion.returns.stop
reset() => voiddocs:hooks.use-spring-motion.returns.reset

프리셋

tsx
// Bouncy (playful UI elements)
config: { stiffness: 400, damping: 10, mass: 1 }

// Smooth (elegant transitions)
config: { stiffness: 200, damping: 30, mass: 1 }

// Stiff (snappy responses)
config: { stiffness: 500, damping: 25, mass: 1 }

// Heavy (weighty feel)
config: { stiffness: 300, damping: 20, mass: 3 }

사용 사례

부드러운 전환

자연스러운 물리 기반 전환 효과

바운스 애니메이션

탄성 있는 UI 인터랙션

커서 따라가기

마우스 위치를 스프링으로 추적

물리 기반 UI

자연스러운 물리 시뮬레이션 효과