애니메이션

CSS 애니메이션 관련 속성 클래스입니다. 개별 속성 클래스와 an 접두사를 사용한 animation shorthand를 모두 지원합니다.

Animation Shorthand

an + 이름 + 시간 + 타이밍 + 반복 횟수 + fill-mode로 animation 단축 속성을 조합합니다.

an{name}-{duration}-{timing}-{iteration}-{fillMode}
부분역할예시
ananimation 접두사 (필수)an
{name}keyframe 이름 (필수)fadeIn, slideUp, pulse
{duration}지속 시간 (필수)1s, 500ms, 1-5s
{timing}타이밍 함수 (선택)ease, linear, ease-in-out
{iteration}반복 횟수 (선택)infinite, 3
{fillMode}fill-mode (선택)forwards, backwards, both

anfadeIn-1s-ease=an(animation)+fadeIn(이름)+1s(시간)+ease(타이밍)

사용 예시

클래스CSS
anfadeIn-1s-easeanimation: fadeIn 1s ease
anfadeIn-500ms-linearanimation: fadeIn 500ms linear
anslideUp-1s-ease-in-outanimation: slideUp 1s ease-in-out
anslideDown-300msanimation: slideDown 300ms
anfadeIn-1s-ease-infiniteanimation: fadeIn 1s ease infinite
anpulse-2s-ease-in-out-infiniteanimation: pulse 2s ease-in-out infinite
anbounce-1s-ease-3animation: bounce 1s ease 3
anspinCW-2s-linear-infiniteanimation: spinCW 2s linear infinite
anfadeIn-1s-ease-in-out-infinite-forwardsanimation: fadeIn 1s ease-in-out infinite forwards

프리셋 Keyframes

아래 이름을 사용하면 @keyframes 규칙이 CSS에 자동으로 삽입됩니다. 커스텀 이름도 사용 가능하지만, 이 경우 @keyframes는 직접 작성해야 합니다.

이름효과사용 예시
fadeIn투명 → 불투명anfadeIn-1s-ease
fadeOut불투명 → 투명anfadeOut-500ms-ease
slideUp아래에서 위로 슬라이드anslideUp-1s-ease-in-out
slideDown위에서 아래로 슬라이드anslideDown-300ms
slideLeft오른쪽에서 왼쪽으로 슬라이드anslideLeft-500ms-ease
slideRight왼쪽에서 오른쪽으로 슬라이드anslideRight-500ms-ease
zoomIn확대되며 나타남anzoomIn-500ms-ease
zoomOut축소되며 사라짐anzoomOut-500ms-ease
spinCW시계 방향 회전anspinCW-2s-linear-infinite
spinCCW반시계 방향 회전anspinCCW-2s-linear-infinite
bounce바운스 효과anbounce-1s-ease
pulse맥박처럼 확대/축소anpulse-2s-ease-in-out-infinite
shake좌우 흔들림anshake-500ms-ease
flipY축 회전 (카드 뒤집기)anflip-1s-ease
swing좌우 흔들리며 정지answing-1s-ease
rubberBand고무줄처럼 늘어났다 돌아옴anrubberBand-1s-ease
blink깜빡임anblink-1s-ease-infinite

코드 예시

<!-- 페이드 인 -->
<div class="anfadeIn-1s-ease">나타나는 요소</div>

<!-- 무한 회전 로딩 -->
<div class="anspinCW-2s-linear-infinite w4rem h4rem">
  <svg>...</svg>
</div>

<!-- 바운스 알림 뱃지 -->
<span class="anbounce-1s-ease bg6366F1 cFFFFFF br50p w2-4rem h2-4rem df jcc aic">3</span>

<!-- 호버 시 흔들림 -->
<button class="hover-anshake-500ms-ease bg18181B cFFFFFF py12px px2-4rem br8px">
  호버하세요
</button>

<!-- 카드 등장 (슬라이드 업 + fill forwards) -->
<div class="anslideUp-500ms-ease-in-out-infinite-forwards bg0F0F17 p2rem br8px">
  카드 콘텐츠
</div>

커스텀 Keyframe 사용

프리셋에 없는 이름도 자유롭게 사용할 수 있습니다. 예: anmyCustom-1s-ease. 단, 해당 @keyframes 규칙은 별도 CSS 파일에 직접 작성해야 합니다.

Play State

클래스CSS
apsranimation-play-state: running
apspanimation-play-state: paused

Fill Mode

클래스CSS
afmnanimation-fill-mode: none
afmfanimation-fill-mode: forwards
afmbanimation-fill-mode: backwards
afmbfanimation-fill-mode: both

Direction

클래스CSS
adinanimation-direction: normal
adiranimation-direction: reverse
adialanimation-direction: alternate
adialranimation-direction: alternate-reverse

Iteration Count

클래스CSS
aicinfanimation-iteration-count: infinite

팁 & 주의사항

Shorthand vs 개별 속성

anfadeIn-1s-ease로 한 번에 지정하거나, afmf aicinf 등 개별 속성을 조합할 수 있습니다.

프리셋 = 자동 @keyframes

프리셋 이름(fadeIn, slideUp 등)을 사용하면 @keyframes 규칙이 CSS에 자동 삽입됩니다. 같은 keyframe을 여러 클래스에서 사용해도 중복 없이 1개만 생성됩니다.

호버 + 애니메이션

hover-anfadeIn-500ms-ease처럼 의사 클래스와 조합할 수 있습니다. 미디어 쿼리도 동일하게 지원됩니다.