[css] CSS 애니메이션과 트랜지션의 차이점

CSS는 웹 디자인에서 스타일링을 할 때 사용되는 중요한 요소입니다. 그 중에서도 애니메이션과 트랜지션은 사용자 경험을 향상시키고 웹사이트를 더 효과적으로 만들기 위해 자주 사용됩니다. 여기서 애니메이션과 트랜지션의 차이점에 대해 살펴보겠습니다.

트랜지션

트랜지션은 요소의 상태가 변할 때 그 변화를 부드럽게 보여주기 위해 사용됩니다. 일반적으로 CSS 속성에 변화가 있을 때 시작 상태와 끝 상태 사이를 부드럽게 연결해주는 효과를 부여합니다.

아래의 예제는 트랜지션을 사용한 간단한 효과를 보여줍니다.

.element {
  width: 100px;
  height: 100px;
  background-color: red;
  transition: width 2s, height 2s, background-color 2s;
}

.element:hover {
  width: 200px;
  height: 200px;
  background-color: blue;
}

위의 코드는 요소에 호버할 때 width, height, background-color 속성의 변화를 2초 동안 부드럽게 보여주는 트랜지션 효과를 부여한 예제입니다.

애니메이션

애니메이션은 요소에 더 다양하고 복잡한 동적인 효과를 부여하는데 사용됩니다. 트랜지션과 달리 여러 개의 keyframe을 정의하여 세밀한 제어가 가능하며, 다양한 타이밍 함수(easing function)를 적용하여 요소의 동작을 더 다채롭게 표현할 수 있습니다.

다음은 간단한 애니메이션 효과를 부여하는 예제입니다.

@keyframes move {
  from {left: 0px;}
  to {left: 200px;}
}

.element {
  position: relative;
  animation: move 2s infinite alternate;
}

위의 코드는 요소를 좌우로 이동시키는 move 애니메이션을 정의하고, 해당 애니메이션을 요소에 적용하는 예제입니다.

결론

트랜지션은 CSS 속성의 변화를 부드럽게 보여주는 효과를 부여하고, 애니메이션은 요소에 다양하고 복잡한 동적 효과를 부여하는데 사용됩니다. 이러한 차이를 이해하고 적절히 활용한다면 보다 풍부하고 다이나믹한 웹 디자인을 구현할 수 있을 것입니다.

참조: MDN web docs, CSS Animation