CSS Keyframes 애니메이션 타임라인 공식과 60fps 성능 가이드

CSS 애니메이션 생성기

페이드, 바운스, 슬라이드 등 다양한 모션 애니메이션 속도와 횟수를 조절하여 최적화된 CSS keyframes 소스코드를 즉시 획득해 보세요.

웹페이지 요소에 생동감을 불어넣고 사용자 경험(UX)을 향상시키기 위해 가장 광범위하게 사용되는 기술이 바로 CSS Keyframe 애니메이션입니다.

자바스크립트 스크립트로 위치나 투명도를 직접 제어하는 방식과 달리, CSS3의 @keyframes와 animation 속성을 활용하면 브라우저의 Compositor 스레드가 GPU를 통해 60fps 이상의 매끄럽고 효율적인 모션 효과를 렌더링합니다. 본 글에서는 CSS 애니메이션 타임라인 제어 공식과 주요 모션 프리셋 제작법을 해설합니다.


1. CSS 애니메이션 속성의 타임라인 수식

CSS 애니메이션은 타임라인 진행률(0% ~ 100%)에 따라 요소의 변형(Transform), 투명도(Opacity) 등의 속성값을 보간(Interpolation) 연산합니다:

[ V(t) = V_{\text{start}} + (V_{\text{end}} - V_{\text{start}}) \times f_{\text{easing}}(t) ]

애니메이션 단축 속성(Short-hand) 구성 요소:

  • animation-name: 연동할 @keyframes 규칙의 고유 이름
  • animation-duration: 모션이 한 바퀴 완료되는 데 걸리는 전체 실행 시간 (ex: 0.6s, 1.2s)
  • animation-timing-function: 시간에 따른 변형 속도를 통제하는 이징 함수 (ex: ease-in-out, cubic-bezier)
  • animation-iteration-count: 반복 횟수 (1, 3, infinite)
  • animation-fill-mode: 애니메이션 시작 전후의 위치 스타일 유지 여부 (forwards, backwards, both)

2. 자주 사용되는 페이드 인 & 펄스 Keyframes 예시 소스

웹 UI에서 가장 인기가 높은 요소 등장(Fade-in Up) 및 하트비트 펄스 애니메이션 소스는 다음과 같습니다:

/* 아래에서 위로 나타나는 페이드 인 애니메이션 */
.fade-in-up {
  animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(30px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 맥박처럼 뛰어오르는 펄스 애니메이션 */
.pulse-effect {
  animation: pulse 1.5s ease-in-out infinite;
}

@keyframes pulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.08);
  }
}

[!NOTE] 매번 keyframes 프레임 비율과 cubic-bezier 이징 수치를 직접 타이핑하여 결과를 확인하지 않고, CSS 애니메이션 생성기 도구를 활용하면 페이드, 바운스, 슬라이드, 셰이크 등 다양한 애니메이션 효과를 미리보기 캔버스에서 확인하고 CSS 코드를 바로 복사해 사용할 수 있습니다.

CSS 애니메이션 생성기

페이드, 바운스, 슬라이드 등 다양한 모션 애니메이션 속도와 횟수를 조절하여 최적화된 CSS keyframes 소스코드를 즉시 획득해 보세요.


3. 고성능 60fps 애니메이션을 위한 실무 수칙

  1. Transform과 Opacity 속성 위주 모션 설계: 애니메이션 대상 속성으로 width, height, margin, top 등을 사용하면 프레임마다 레이아웃 리플로우(Reflow)가 발생하여 심각한 프레임 드랍이 일어납니다. 오직 GPU 가속이 적용되는 transform(scale, translate, rotate)과 opacity 속성만을 변경하는 것이 60fps 유지의 핵심 수칙입니다.
  2. prefers-reduced-motion 미디어 쿼리 대응: 모션 현기증을 느끼는 사용자를 위해 OS의 모션 줄이기 설정을 감지하는 @media (prefers-reduced-motion: reduce) 미디어 쿼리를 선언하여 애니메이션 실행 시간을 0초로 단축시키는 디테일한 UX 배려가 권장됩니다.
가격 보기카톡 무료 상담