가이드 · 01

전환

모든 컴포넌트는 transition 하나를 받습니다. 시간 곡선이나 스프링입니다. 고르는 법과, 움직임이 끊겼을 때 일어나는 일.

두 가지 전환

전환은 { duration, easing } 또는 { tempo: 'spring', spring }입니다. 어떤 컴포넌트든 transition prop에 넘기세요. 여러 가지를 함께 움직이는 컴포넌트는 두 번째 prop을 받습니다. 예를 들어 MotionList의 layoutTransition은 새 위치로 미끄러지는 항목에 쓰입니다.

transitions.js
// Timing: a duration and a curve.
{ duration: 300, easing: 'easeOut' }
{ duration: 600, easing: [0.22, 1, 0.36, 1] }

// Spring: physics that keeps its speed when interrupted.
{ tempo: 'spring', spring: { stiffness: 260, damping: 12 } }

// Spring with duration: calibrated to settle exactly then.
{ tempo: 'spring', spring: { stiffness: 260, damping: 12 }, duration: 500 }

시간을 정한 스프링

스프링은 보통 물리가 필요한 만큼 움직입니다. duration을 더하면 정확히 그 시간에 멈추도록 보정되며, 튀는 정도 같은 성격은 유지한 채 시간에 맞춥니다. 아래에서 같은 세 컴포넌트로 시간 곡선과 스프링을 비교해 보세요.

예제를 준비하는 중…

중간에 끊기

모든 컴포넌트는 새 움직임을 화면에 보이는 모습에서 시작합니다. 스프링은 현재 속도까지 이어받으므로 두 번째 클릭이 움직임을 부드럽게 되돌립니다. 시간 곡선은 현재 위치에서 새 곡선으로 다시 시작합니다.

  • 숫자: 새 값이 화면의 글자에서 이어집니다.
  • 높이와 교체: 크기가 화면의 크기에서 이어집니다.
  • 목록: 새 위치로 가는 항목이 속도를 유지합니다.

준비된 전환

motionTokens는 일관된 느낌 몇 가지를 모았습니다. 스프링 4개, 시간 곡선 4개, 시간 4개입니다. 일반 객체이므로 펼쳐서 값 하나만 바꿀 수 있습니다.

tokens.js
import { motionTokens } from '@kkwaenggwari/animated-chorus';

motionTokens.spring.quick; // snappy UI feedback
motionTokens.spring.basic; // the default feel
motionTokens.spring.gentle; // panels and height
motionTokens.spring.bouncy; // playful numbers
motionTokens.easing.expoOut; // { duration: 420, easing: 'expoOut' }
motionTokens.duration.fast; // 140

이징 이름

easing에는 linear, in, out, inOut, ease, easeIn, easeOut, easeInOut, expoOut, backOut 또는 [0.22, 1, 0.36, 1] 같은 3차 베지어 배열을 씁니다.

검색

입력하면 문서를 검색합니다.