[CSS] #13 CSS 트랜지션 & 애니메이션 완전 정리! 인터랙션 효과 쉽게 구현하기

2025. 9. 1. 12:52·Web Front/CSS
반응형

 

안녕하세요, 토스트데브입니다!
오늘은 웹사이트에 생동감을 더해주는 CSS 트랜지션(transition)과 애니메이션(animation)에 대해 알아보겠습니다.

정적인 웹페이지에서 버튼에 마우스를 올릴 때 색이 부드럽게 변한다든지, 스크롤 시 요소가 자연스럽게 등장한다면, 사용자 경험이 훨씬 좋아지겠죠? 
이런 효과들을 CSS만으로 손쉽게 구현할 수 있습니다!

 

 

1️⃣ 트랜지션(Transition)이란?

트랜지션은 특정 속성 값이 변경될 때, 그 변화가 일정 시간에 걸쳐 부드럽게 일어나도록 만들어줍니다.

✅ 기본 문법

transition: [속성] [지속시간] [타이밍 함수] [지연시간];

 

✅ 예시

button {
  background-color: skyblue;
  transition: background-color 0.3s ease;
}

button:hover {
  background-color: royalblue;
}

👉 마우스를 올리면 배경색이 0.3초 동안 자연스럽게 바뀜

 

 

2️⃣ 트랜지션 속성 종류

속성 설명
transition-property 변화시킬 속성 지정 (예: background-color)
transition-duration 변화 지속 시간 (ex: 0.5s)
transition-timing-function 변화 속도 곡선 (예: ease, linear, ease-in, ease-out, cubic-bezier)
transition-delay 변화 시작 전 지연 시간

 

 

3️⃣ 여러 속성에 트랜지션 적용하기

.card {
  transition: all 0.5s ease-in-out;
}

💡 all 키워드를 사용하면 요소의 모든 변화에 트랜지션 적용

 

 

4️⃣ 애니메이션(Animation)이란?

애니메이션은 시간의 흐름에 따라 속성을 반복적 또는 순차적으로 변화시키는 기능입니다.
단순한 변화뿐 아니라 복잡한 움직임도 표현할 수 있습니다.

 

 

5️⃣ 기본 문법

✅ keyframes 정의

@keyframes moveBox {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(200px);
  }
}

 

✅ 요소에 적용

.box {
  animation-name: moveBox;
  animation-duration: 1s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}

 

 

6️⃣ 주요 애니메이션 속성

속성 설명
animation-name 사용할 keyframes 이름
animation-duration 애니메이션 지속 시간
animation-timing-function 속도 곡선
animation-delay 애니메이션 시작 전 지연 시간
animation-iteration-count 반복 횟수 (infinite는 무한 반복)
animation-direction 정방향/역방향 반복 (alternate 등)
animation-fill-mode 애니메이션 시작 전·끝난 후 상태 유지 여부

 

 

7️⃣ 단축 속성 사용 예시

.box {
  animation: moveBox 1s ease-in-out 0s infinite alternate;
}

💡 순서: name duration timing-function delay iteration-count direction

 

 

8️⃣ 실전 예제: 호버 시 카드 확대 효과

.card {
  transform: scale(1);
  transition: transform 0.3s ease;
}

.card:hover {
  transform: scale(1.05);
}

 

 

9️⃣ 실전 예제: 페이지 로딩 시 등장 효과

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

.section {
  animation: fadeInUp 1s ease forwards;
}

 

 

✅ 정리하며…

구분 목적 주로 쓰이는 상황
트랜지션 속성 변화 시 부드러운 효과 버튼 hover, 색상 변경, 크기 확대
애니메이션 연속적/복잡한 움직임 구현 로딩 효과, 스크롤 등장, 텍스트 타이핑 등

둘 다 CSS만으로 자연스럽고 매력적인 인터랙션을 구현할 수 있게 해줍니다.
처음에는 간단한 hover 트랜지션부터 시작해, keyframes를 활용한 애니메이션까지 단계적으로 연습해보세요!

 

 

#CSS트랜지션 #CSS애니메이션 #keyframes #transition #animation #웹디자인기초 #프론트엔드기초 #인터랙션디자인 #hover효과 #웹개발입문

반응형
저작자표시 비영리 (새창열림)

'Web Front > CSS' 카테고리의 다른 글

[CSS] #14 CSS 고급 기능 & 실전 활용 정리! 변수, BEM, 컴포넌트 스타일링까지  (0) 2025.09.02
[CSS] #12 반응형 웹 디자인 완벽 가이드! 미디어쿼리부터 단위 사용까지 핵심 정리  (0) 2025.08.23
[CSS] #11 Flexbox & Grid, CSS Grid 기초 완전 정복! 2차원 레이아웃 설계를 위한 핵심 속성 정리  (1) 2025.08.22
[CSS] #10 Flexbox & Grid, CSS Flexbox 완벽 가이드! 레이아웃 정렬부터 축 개념까지 쉽게 배우기  (0) 2025.08.21
[CSS] #09 레이아웃 구성, CSS 레이아웃 구성 완전 정복! display, position, float까지 핵심 속성 정리  (0) 2025.08.20
'Web Front/CSS' 카테고리의 다른 글
  • [CSS] #14 CSS 고급 기능 & 실전 활용 정리! 변수, BEM, 컴포넌트 스타일링까지
  • [CSS] #12 반응형 웹 디자인 완벽 가이드! 미디어쿼리부터 단위 사용까지 핵심 정리
  • [CSS] #11 Flexbox & Grid, CSS Grid 기초 완전 정복! 2차원 레이아웃 설계를 위한 핵심 속성 정리
  • [CSS] #10 Flexbox & Grid, CSS Flexbox 완벽 가이드! 레이아웃 정렬부터 축 개념까지 쉽게 배우기
TOASTDEV
TOASTDEV
인스턴트 코딩 #토스트데브 #토스트뎁 #코딩공부 #개발입문
  • TOASTDEV
    토스트데브
    TOASTDEV
    • 분류 전체보기 (155)
      • 알쓸신잡 (47)
        • 코딩에 대하여 (13)
        • 컴퓨터에 대하여 (12)
        • IT 국내외 소식 (22)
      • Web Front (28)
        • HTML (10)
        • CSS (14)
        • JavaScript (4)
      • Programming (35)
        • PHP (35)
      • Database (12)
        • SQL (12)
        • MySQL (0)
      • Server (24)
        • Linux (24)
      • Review (9)
        • Overseas Trip (0)
        • Domestic Travel (0)
        • Product Use Review (4)
        • Football Sports Review (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Youtube Toastdev
    • Naver Blog
  • 공지사항

    • [유튜브] 유튜브 영상 업로드 안내
  • 인기 글

  • 태그

    웹디자인기초
    데이터분석
    서버입문
    php기초
    SQL기초
    ubuntu서버
    ubuntuserver
    php문법
    html기초
    css기초
    웹개발
    PHP문자열
    리눅스보안
    프론트엔드
    sql
    웹개발입문
    HTML
    리눅스기초
    php입문
    php
    프론트엔드기초
    SQL문법
    웹개발기초
    SQL강의
    데이터베이스
    코딩입문
    컴퓨터기초
    서버관리
    웹프로그래밍
    서버보안
  • 최근 댓글

  • 최근 글

  • 전체
    오늘
    어제
  • 반응형
  • hELLO· Designed By정상우.v4.10.3
TOASTDEV
[CSS] #13 CSS 트랜지션 & 애니메이션 완전 정리! 인터랙션 효과 쉽게 구현하기
상단으로

티스토리툴바