스프링 프리셋

다양한 애니메이션 느낌을 위한 사전 정의된 스프링 설정

스프링 프리셋

SSGOI는 물리 값을 수동으로 조정하지 않고도 다양한 애니메이션 느낌을 쉽게 만들 수 있도록 사전 정의된 스프링 설정을 제공합니다.

사용법

presets 모듈에서 스프링 프리셋을 가져올 수 있습니다:

import { config } from '@ssgoi/react/presets';
// 또는
import { config } from '@ssgoi/svelte/presets';

// 트랜지션에서 사용
transition({
  spring: config.gentle,
  tick: (progress) => {
    // 애니메이션 로직
  }
})

개별 프리셋을 가져올 수도 있습니다:

import { gentle, wobbly, stiff } from '@ssgoi/react/presets';

transition({
  spring: gentle,
  // ...
})

사용 가능한 프리셋

default

대부분의 사용 사례에 적합한 균형 잡힌 애니메이션입니다.

  • stiffness: 170
  • damping: 26
  • 사용 사례: 범용 트랜지션

gentle

미묘한 움직임을 가진 부드럽고 차분한 전환입니다.

  • stiffness: 120
  • damping: 14
  • 사용 사례: 우아하고 전문적인 인터페이스

wobbly

눈에 띄는 스프링 효과를 가진 탄력 있고 재미있는 애니메이션입니다.

  • stiffness: 180
  • damping: 12
  • 사용 사례: 재미있고 인터랙티브한 요소

stiff

최소한의 오버슛으로 빠르고 반응이 빠른 애니메이션입니다.

  • stiffness: 210
  • damping: 20
  • 사용 사례: 빠른 UI 응답, 툴팁

slow

신중하고 측정된 애니메이션입니다.

  • stiffness: 280
  • damping: 60
  • 사용 사례: 중요한 상태 변경, 공개 효과

molasses

매우 느리고 점성이 있는 움직임입니다.

  • stiffness: 280
  • damping: 120
  • 사용 사례: 극적인 효과, 로딩 상태

커스텀 스프링 설정

언제든지 자신만의 스프링 구성을 만들 수 있습니다:

transition({
  spring: {
    stiffness: 150,
    damping: 15
  },
  // ...
})

물리 값 설명

  • stiffness: 스프링의 장력을 제어합니다. 값이 높을수록 더 빠른 애니메이션이 생성됩니다.
  • damping: 저항을 제어합니다. 값이 높을수록 진동이 줄어들고 더 부드럽게 멈춥니다.

예제

뷰 트랜지션에서 프리셋 사용

import { Ssgoi } from '@ssgoi/react';
import { config } from '@ssgoi/react/presets';
import { fade } from '@ssgoi/react/view-transitions';

const config = {
  defaultTransition: fade({ spring: config.gentle }),
  transitions: [
    {
      from: '/home',
      to: '/about',
      transition: slide({ spring: config.wobbly })
    }
  ]
};

요소 트랜지션에서 프리셋 사용

import { transition } from '@ssgoi/react';
import { config } from '@ssgoi/react/presets';

const fadeIn = transition({
  spring: config.slow,
  tick: (progress) => ({
    opacity: progress,
    transform: `translateY(${(1 - progress) * 20}px)`
  })
});