CSS 애니메이션 생성기
@keyframes를 처음부터 쓰는 것은 지루합니다. 퍼센트를 고르고, 속성을 추측하고, 새로고침하고, 보고, 조정합니다. 이 생성기는 여섯 가지 완성된 애니메이션(페이드, 슬라이드 업, 바운스, 스핀, 펄스, 셰이크)을 제공하며 애니메이션 이름, 지속 시간, 이징, 반복 횟수, 방향을 설정할 수 있습니다. 결과는 실시간으로 재생되며, 만족스러우면 생성된 @keyframes 블록과 단축 animation 속성을 복사하세요.
CSS 애니메이션 만드는 방법
-
1
프리셋 선택
여섯 가지 기본 애니메이션 중 하나를 고르세요: 페이드, 슬라이드 업, 바운스, 스핀, 펄스 또는 셰이크.
-
2
애니메이션 이름 지정
키프레임에 유효한 CSS 식별자를 주세요. 예: `cardIn` 또는 `fadeIn`. 같은 이름이 `animation` 단축 속성에도 사용됩니다.
-
3
시간과 반복 설정
초 단위 지속 시간, 이징(ease, ease-in, ease-out, ease-in-out, linear, spring), 반복 횟수(1, 2, 3, infinite), 방향(normal, reverse, alternate, alternate-reverse).
-
4
CSS 복사
생성된 `@keyframes` 규칙과 `animation:` 단축 속성을 스타일시트에 바로 붙여넣으세요.
애니메이션 해부
@keyframes slide-in {
0% { transform: translateX(-100%); opacity: 0; }
60% { transform: translateX(10%); opacity: 1; }
100% { transform: translateX(0); opacity: 1; }
}
.card {
animation: slide-in 400ms cubic-bezier(0.22, 1, 0.36, 1) both;
}
단축 속성의 여덟 가지: animation-name duration timing-function delay iteration-count direction fill-mode play-state.
이징 선택
이 생성기가 제공하는 이징 함수는 여섯 가지입니다:
| 이징 | cubic-bezier() | 느낌 |
|---|---|---|
| linear | 해당 없음 | 일정한 속도 |
| ease-in | 0.42, 0, 1, 1 |
느린 시작, 빠른 끝 |
| ease-out | 0, 0, 0.58, 1 |
빠른 시작, 느린 끝 |
| ease-in-out | 0.42, 0, 0.58, 1 |
느림-빠름-느림 |
| ease(기본) | 0.25, 0.1, 0.25, 1 |
부드러운 기본 |
| spring | 0.68, -0.55, 0.27, 1.55 |
목표를 지나쳤다가 안착 |
올바른 속성을 애니메이션하세요
브라우저는 어떤 속성이든 애니메이션할 수 있지만, 레이아웃이나 페인트를 유발하지 않고 GPU에서 부드럽게 처리되는 것은 몇 개뿐입니다:
저렴(컴포지트 전용): transform, opacity, filter.
비쌈(레이아웃/페인트): width, height, top, left, margin, padding, background-color.
작은 요소에서는 width와 top을 60fps로 애니메이션하는 것이 가능하지만, 한 번에 여러 개를 애니메이션하면 모바일에서 뚝뚝 끊깁니다. 복잡한 모션에는 항상 top / left보다 transform: translate(...)를, 애니메이션 width/height보다 transform: scale(...)를 선호하세요.
will-change: 아껴 쓰세요
브라우저에 컴포지트 레이어를 미리 할당하도록 알리면 부드러움에 도움이 될 수 있습니다:
.card { will-change: transform; }
하지만 메모리를 소비합니다. 애니메이션이 트리거되기 직전에 적용하고, 끝나면 제거하세요. 많은 요소에 will-change: transform을 영구 설정하면 도움보다 해가 될 수 있습니다.
모션 감소
일부 사용자는 모션 민감성이 있어 OS 설정을 합니다:
@media (prefers-reduced-motion: reduce) {
.card {
animation: none;
}
}
이 설정을 존중하세요. 즉각적인 상태 변경이나 아주 미묘한 페이드를 폴백으로 제공하세요.
자주 묻는 질문
단순하고 선언적이며 일회성 모션은 CSS. JavaScript 주도 타이밍, 동적 키프레임, 일시정지와 재생 제어는 Web Animations API(element.animate()). 둘 다 컴포지터에서 실행되며 어느 쪽이 본질적으로 더 빠르지는 않습니다.
거의 항상 transform 대신 레이아웃을 유발하는 속성(width, top, margin)을 애니메이션하기 때문입니다. translate()와 scale()로 바꾸면 보통 끊김이 사라집니다.
네, animation: a 1s, b 1s 1s, c 1s 2s;는 지연을 엇갈리게 두어 세 애니메이션을 순차 실행합니다. 이 생성기는 단일 애니메이션을 출력하므로 추가 항목은 단축 속성에 직접 덧붙이세요. 더 복잡한 안무는 Web Animations API나 GSAP 같은 라이브러리를 쓰세요.
애니메이션 시작 전(지연 동안)에 요소가 from 상태를 취하게 하고, 애니메이션 종료 후에 to 상태를 유지하게 합니다. both이 없으면 애니메이션이 끝날 때 요소가 애니메이션 이전 스타일로 되돌아갑니다. 이 생성기는 단축 속성을 최소한으로 유지하므로 필요하면 fill mode를 직접 추가하세요.
관련 도구
ASCII 표 참조
NUL, LF, DEL 같은 제어 문자를 포함해 모든 문자에 대한 10진수, 16진수, 8진수, 2진수, HTML 숫자 문자 참조를 담은 0부터 127까지의 전체 ASCII 표.
키보드 단축키 참고표
macOS, Windows, Linux에서 VS Code, Chrome, GNU Readline을 쓰는 Bash의 문서화된 기본 단축키를 검색합니다.
HTML 문자 참조
HTML 엔티티의 검색 가능한 목록, 각 엔티티의 이름 및 숫자 코드, 그리고 특수 문자 및 기호에 대한 1클릭 복사 기능을 제공합니다.
보색 찾기
어떤 입력에 대해서도 보색을 찾습니다. HSL 반대 색, 분할 보색 쌍, 그리고 접근성 있는 조합 제안을 반환합니다.
랜덤 영어 글자 생성기
A-Z 영어 글자를 무작위로 생성합니다. 개수와 대문자, 소문자, 혼합 대소문자를 선택해 게임, 과제, 수업 활동에 활용하세요.
랜덤 색상 팔레트 생성기
2~15개의 색상으로 랜덤 팔레트를 만들고, 비비드, 파스텔, muted, dark 스타일을 선택한 뒤 HEX 코드나 CSS 변수를 복사하세요.