Front-end/Animation

CSS 애니메이션: 흔히 쓰이는 종류와 Tailwind로 손쉽게 구현하기 🎨

xeunnie 2025. 2. 26. 01:00
728x90
반응형

CSS 애니메이션: 흔히 쓰이는 종류와 Tailwind로 손쉽게 구현하기 🎨

 

CSS 애니메이션은 웹에서 움직임과 생동감을 더하는 데 꼭 필요한 도구입니다. 기본적인 효과부터 Tailwind CSS로 어떻게 간단하게 활용할 수 있는지 예제와 함께 알아봅시다! ✨

 

1. Fade In/Out (페이드 인/아웃) 🌟

 

설명

 

요소가 점점 투명하게 나타나거나 사라지게 하는 효과입니다.

활용 예: 페이지 로드 시 등장 애니메이션, 이미지 슬라이더.

 

Tailwind CSS 예제

 

<div class="opacity-0 animate-fade-in">안녕하세요! ✨</div>

 

Tailwind 애니메이션 정의

 

@keyframes fade-in {

  from {

    opacity: 0;

  }

  to {

    opacity: 1;

  }

}

 

@tailwind base;

@tailwind components;

@tailwind utilities;

 

@layer utilities {

  .animate-fade-in {

    animation: fade-in 1s ease-in-out forwards;

  }

}

 

2. Slide In/Out (슬라이드 인/아웃) 🛝

 

설명

 

요소가 특정 방향에서 나타나거나 사라지는 효과입니다.

활용 예: 사이드 메뉴, 모달 등장.

 

Tailwind CSS 예제

 

<div class="transform -translate-x-full animate-slide-in">안녕하세요!</div>

 

Tailwind 애니메이션 정의

 

@keyframes slide-in {

  from {

    transform: translateX(-100%);

  }

  to {

    transform: translateX(0);

  }

}

 

@layer utilities {

  .animate-slide-in {

    animation: slide-in 0.5s ease-out forwards;

  }

}

 

3. Bounce (바운스) 🏀

 

설명

 

요소가 튀어오르는 듯한 애니메이션입니다.

활용 예: 버튼 클릭 유도, 로딩 애니메이션.

 

Tailwind CSS 예제

 

<div class="animate-bounce">클릭해 보세요!</div>

 

Tailwind 내장 클래스

 

Tailwind는 이미 bounce를 내장 지원합니다!

 

4. Spin (회전) 🔄

 

설명

 

요소가 일정 축을 기준으로 회전하는 효과입니다.

활용 예: 로딩 인디케이터.

 

Tailwind CSS 예제

 

<div class="w-10 h-10 border-4 border-blue-500 border-t-transparent rounded-full animate-spin"></div>

 

Tailwind 내장 클래스

 

Tailwind의 spin 클래스를 그대로 사용할 수 있습니다.

 

5. Pulse (맥박) ❤️

 

설명

 

요소가 맥박처럼 커졌다 작아졌다 하는 애니메이션입니다.

활용 예: 알림 아이콘, 로딩 상태.

 

Tailwind CSS 예제

 

<div class="w-10 h-10 bg-blue-500 rounded-full animate-pulse"></div>

 

Tailwind 내장 클래스

 

Tailwind의 pulse 클래스를 바로 활용할 수 있습니다.

 

6. Wiggle (흔들림) 🐾

 

설명

 

요소가 좌우로 흔들리는 애니메이션입니다.

활용 예: 경고 또는 클릭 유도.

 

Tailwind CSS 예제

 

<div class="animate-wiggle">주의!</div>

 

Tailwind 애니메이션 정의

 

@keyframes wiggle {

  0%, 100% {

    transform: rotate(-3deg);

  }

  50% {

    transform: rotate(3deg);

  }

}

 

@layer utilities {

  .animate-wiggle {

    animation: wiggle 0.5s ease-in-out infinite;

  }

}

 

7. Zoom In/Out (확대/축소) 🔍

 

설명

 

요소가 점점 커지거나 작아지는 효과입니다.

활용 예: 이미지 확대, 클릭 효과.

 

Tailwind CSS 예제

 

<div class="transform scale-50 animate-zoom-in">확대 중...</div>

 

Tailwind 애니메이션 정의

 

@keyframes zoom-in {

  from {

    transform: scale(0.5);

  }

  to {

    transform: scale(1);

  }

}

 

@layer utilities {

  .animate-zoom-in {

    animation: zoom-in 0.5s ease-in-out forwards;

  }

}

 

8. Shake (좌우 흔들림) 🚨

 

설명

 

요소가 경고처럼 좌우로 흔들리는 애니메이션입니다.

활용 예: 비밀번호 입력 오류, 경고 메시지.

 

Tailwind CSS 예제

 

<div class="animate-shake">오류 발생!</div>

 

Tailwind 애니메이션 정의

 

@keyframes shake {

  0%, 100% {

    transform: translateX(0);

  }

  25% {

    transform: translateX(-5px);

  }

  75% {

    transform: translateX(5px);

  }

}

 

@layer utilities {

  .animate-shake {

    animation: shake 0.5s ease-in-out infinite;

  }

}

 

9. Flip (뒤집기) 🔀

 

설명

 

요소가 축을 기준으로 뒤집히는 애니메이션입니다.

활용 예: 카드 뒤집기, 전환 효과.

 

Tailwind CSS 예제

 

<div class="animate-flip">뒤집어 보세요!</div>

 

Tailwind 애니메이션 정의

 

@keyframes flip {

  from {

    transform: rotateY(0);

  }

  to {

    transform: rotateY(180deg);

  }

}

 

@layer utilities {

  .animate-flip {

    animation: flip 0.8s ease-in-out forwards;

  }

}

 

10. Glow (빛남) 💡

 

설명

 

요소가 점점 밝아졌다가 어두워지는 효과입니다.

활용 예: 버튼 강조, 로딩 애니메이션.

 

Tailwind CSS 예제

 

<div class="animate-glow bg-blue-500 text-white p-4 rounded-lg">눌러보세요!</div>

 

Tailwind 애니메이션 정의

 

@keyframes glow {

  0%, 100% {

    box-shadow: 0 0 5px rgba(0, 0, 255, 0.5);

  }

  50% {

    box-shadow: 0 0 20px rgba(0, 0, 255, 1);

  }

}

 

@layer utilities {

  .animate-glow {

    animation: glow 1.5s ease-in-out infinite;

  }

}

 

마무리하며 🎉

 

CSS 애니메이션은 사용자 경험을 한 단계 끌어올리는 강력한 도구입니다. Tailwind CSS를 사용하면 애니메이션을 더욱 쉽게 작성하고 관리할 수 있어요. 위 예제들을 바탕으로 다양한 애니메이션을 시도해 보세요. 🌟

 

🌷전설의 개발자가 되어봅시당!🌷

728x90
반응형