CSS만으로 스크롤 기반 애니메이션을 만드는 가이드 | Saron Yitbarek


CSS만으로 스크롤 기반 애니메이션 구현하기

이 글은 JavaScript 없이 순수 CSS만으로 스크롤에 반응하는 애니메이션을 만드는 방법을 설명합니다. Safari 26 베타에서 지원되는 새로운 기능입니다.

핵심 구성 요소:

  1. 타겟: 애니메이션할 요소
  2. 키프레임: 스크롤 시 발생할 애니메이션 효과
  3. 타임라인: 애니메이션 진행을 결정하는 기준

두 가지 타임라인 유형:

  • scroll(): 스크롤 시작과 함께 애니메이션 시작 (예: 진행률 바)
  • view(): 요소가 뷰포트에 나타날 때 애니메이션 시작 (예: 이미지 슬라이드 인)

주요 속성들:

  • animation-timeline: 새로운 타임라인 설정
  • animation-range: 애니메이션 시작/종료 시점 조절 (기본값: 0%-100%)

접근성 고려사항: 모션에 민감한 사용자를 위해 @media not (prefers-reduced-motion) 쿼리로 애니메이션을 감싸는 것을 권장합니다.

이 기술로 복잡한 라이브러리 없이도 부드러운 스크롤 기반 인터랙션을 구현할 수 있습니다.