HTML, CSS

CSS 애니메이션 vs 트랜지션 – 차이와 활용법 완벽 정리

jonbeo 2025. 9. 25. 09:11
반응형

 

 

안녕하세요 😊
웹 개발에서 요소에 움직임을 줄 때 가장 많이 쓰는 기능이 바로 **트랜지션(transition)**과 **애니메이션(animation)**입니다.
두 기능 모두 CSS만으로 멋진 효과를 낼 수 있지만, 헷갈리기 쉽습니다.

오늘은 트랜지션과 애니메이션의 차이를 초보자도 쉽게 이해할 수 있도록 정리하고,
실무에서 어떻게 활용하면 좋은지 예제와 함께 소개하겠습니다.


📍 1. CSS 트랜지션(transition)

  • 상태 변화가 있을 때만 실행
  • 마우스를 올리거나, 클래스를 추가·제거할 때 동작
  • 짧고 단순한 효과에 적합

예시: 버튼에 hover 시 색상 변경

 
button {
  background-color: #2196f3;
  color: #fff;
  padding: 10px 20px;
  border: none;
  transition: background-color 0.3s ease;
}

button:hover {
  background-color: #0d47a1;
}

 

👉 마우스를 올릴 때 배경색이 부드럽게 바뀝니다.
특징: 이벤트(hover, focus, active 등) 없이는 실행되지 않음.


📍 2. CSS 애니메이션(animation)

  • **키프레임(keyframes)**을 사용해 지속적인 동작을 만들 수 있음
  • 자동 실행 가능 (animation 속성)
  • 무한 반복, 특정 타이밍 제어 가능

예시: 로딩 스피너 만들기

 
.loader {
  width: 40px;
  height: 40px;
  border: 4px solid #ddd;
  border-top-color: #2196f3;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  100% { transform: rotate(360deg); }
}

 

👉 페이지가 열리자마자 자동으로 회전하는 로딩 애니메이션이 실행됩니다.
특징: 이벤트 없이도 시작 가능, 반복적 움직임 구현 가능.


📍 3. transition vs animation 차이 비교

구분 transition animation
실행 조건 이벤트나 상태 변화가 있어야 시작 자동 실행 가능
코드 방식 시작·끝 상태만 정의 중간 단계까지 세밀히 정의 가능
활용 예시 버튼 hover 효과, 메뉴 열림/닫힘 로딩 스피너, 배너 자동 슬라이드
반복 여부 기본 1회 실행 infinite 반복 가능

👉 쉽게 말해,

  • transition → 상태 변화 시 한 번 실행
  • animation → 스스로 움직이고 반복 가능

📍 4. 실무 활용 팁

  1. 단순 효과 = transition
    • 버튼 hover, 드롭다운 메뉴 등장, 색상/크기 변경
  2. 지속적/자동 효과 = animation
    • 로딩 스피너, 배너 슬라이드, 반짝이는 텍스트
  3. 둘을 함께 사용 가능
    • 애니메이션으로 배경 요소를 꾸미고,
    • 트랜지션으로 사용자 인터랙션에 부드러운 효과 주기

✅ 마무리

CSS만으로도 충분히 멋진 움직임을 구현할 수 있습니다.

  • transition은 상태 변화에 반응하는 “짧은 효과”
  • animation은 스스로 동작하는 “지속적인 효과”

두 가지를 구분해서 사용하면 웹사이트에 생동감을 더하면서도
사용자 경험(UX)을 해치지 않는 깔끔한 인터랙션을 만들 수 있습니다.

반응형