공방gongbang
실험진행 중

모션그래픽 도감

움직이면
01 — 등장
보인다
02 — 와이프
도형 · 선 · 리듬
03 — 도형
모션그래픽 도감장면 18개 · CSS · SVG · Canvas · 라이브러리 없이
04 — 타이틀
00:07:04

모션그래픽도 결국 코드예요. “몇 초에, 무엇이, 어떻게 움직인다”를 말로 설명하면 Claude Code가 그 코드를 써요. 길은 두 가지예요.

① 웹 화면에서 바로

CSS·SVG·Canvas로 브라우저가 직접 움직임을 그려요. 이 페이지의 장면이 전부 이 방식 — 홈페이지·앱에 그대로 넣을 수 있어요.

② 영상 파일(mp4)로

Remotion — React로 장면을 짜고 mp4로 뽑아요. Claude Code에 Remotion 스킬을 깔면 말로 유튜브 인트로·쇼츠·제품 영상을 만들 수 있어요. 위 큰 화면이 그 방식(프레임 번호로 그리기)을 흉내 낸 것.

부탁 잘하는 법

  1. 1. 초 단위로 쪼개 말하기 (0~1초 점 등장 → …)
  2. 2. 움직임 느낌을 이름으로 (ease-out, spring)
  3. 3. 색·글꼴·반복 여부 정하기

장면마다 ‘Claude에게 이렇게’를 열면 예시 문장이 있어요.

기본기

모든 움직임이 기대는 문법

linear일정하게
ease-in-out천천히·빠르게·천천히
ease-out빠르게 와서 멈춤
spring넘쳤다 돌아옴

01이징Easing

같은 거리, 같은 시간인데 속도 곡선만 다르다. 이것만 바꿔도 느낌이 완전히 달라진다.

기법
CSS cubic-bezier
쓰는 곳
모든 애니메이션
Claude에게 이렇게 ›

가로 줄 4개에 공을 하나씩 두고 2.6초마다 왼쪽↔오른쪽 왕복시켜줘. 줄마다 이징만 다르게: linear, ease-in-out, ease-out(expo), 살짝 넘쳤다 돌아오는 spring. 줄 위에 이징 이름을 작게 써서 차이가 한눈에 보이게.

그대로찌그러짐

02스쿼시 앤 스트레치Squash & Stretch

떨어질 땐 길쭉, 닿는 순간 납작. 디즈니 애니메이션 12원칙 중 하나 — 무게와 탄력이 생긴다.

기법
CSS keyframes
쓰는 곳
캐릭터, 아이콘, 버튼
Claude에게 이렇게 ›

공 두 개가 바닥에서 1.1초마다 통통 튀게 해줘. 왼쪽은 모양 그대로, 오른쪽은 떨어질 때 세로로 늘어나고 바닥에 닿는 순간 가로로 납작해지게(스쿼시 앤 스트레치). 공 높이에 따라 바닥 그림자 크기와 진하기도 바뀌게.

글자

글자가 주인공 — 키네틱 타이포그래피

작게
빠르게
자주
만든다.
KINETIC TYPE

03키네틱 타이포Kinetic Typography

단어를 리듬에 맞춰 하나씩 때려 넣는다. 광고·뮤직비디오·발표 오프닝의 단골.

기법
CSS keyframes · 순차 지연
쓰는 곳
광고, 쇼츠 오프닝, 발표
Claude에게 이렇게 ›

검은 화면 가운데에 '작게 / 빠르게 / 자주 / 만든다.' 네 단어를 1.2초 간격으로 하나씩 아주 크게 띄워줘. 흐릿하고 크게 나타났다가 살짝 작아지며 제자리(오버슈트). 두 번째는 노란 기울임, 세 번째는 주황 상자가 펼쳐진 위에, 네 번째는 외곽선만 그렸다가 채우기. 아래에 진행 막대.

작은 실험이쌓이는 곳
staggered mask reveal

04마스크 리빌Mask Reveal

보이지 않는 선 아래에서 글자가 한 자씩 올라온다. 깔끔한 타이틀·자막의 기본형.

기법
overflow 마스크 · 글자별 지연
쓰는 곳
타이틀, 자막, 랜딩 첫 화면
Claude에게 이렇게 ›

'작은 실험이 / 쌓이는 곳' 두 줄을 글자마다 45ms씩 늦게, 보이지 않는 선 아래에서 위로 올라오게 해줘(expo-out). 다 올라오면 주황 밑줄이 왼쪽부터 그어지고, 잠시 뒤 글자가 위로 빠져나가며 반복.

모션그래픽
decoding

05스크램블Text Scramble

무작위 글자가 돌다가 하나씩 제자리를 찾는다. 해커·테크 느낌의 등장.

기법
JS 타이머
쓰는 곳
테크 브랜드, 로딩, 숫자 공개
Claude에게 이렇게 ›

고정폭 글꼴로 '모션그래픽' → 'MOTION GRAPHICS' → '코드로 움직인다'를 차례로 보여줘. 각 글자는 처음엔 무작위 글자(한글은 한글, 영어는 영어)로 빠르게 바뀌다가 글자마다 다른 순간에 진짜 글자로 멈추게. 아직 안 멈춘 글자는 주황색.

도형·선

선이 그려지고, 모양이 바뀌고, 입체가 돈다

06라인 드로잉Line Drawing

선이 스스로 그려진다. SVG 선의 점선 간격을 밀어서 그리는 고전 기법.

기법
SVG stroke-dashoffset
쓰는 곳
설명 영상, 로고, 일러스트 등장
Claude에게 이렇게 ›

파란 설계도 배경에 얇은 격자선이 차르륵 먼저 그려지고, 이어서 아이소메트릭 정육면체 외곽선 → 안쪽 선이 손으로 그리듯 나타나게 해줘(SVG stroke-dashoffset). 다 그려지면 윗면에 옅게 색이 차고, 점선 원이 천천히 돌고, 치수선과 숫자가 뜨게.

circlestarheartsquaretriangle

07모핑Shape Morph

원 → 별 → 하트 → 네모 → 세모. 같은 개수의 점을 옮겨서 모양을 바꾼다.

기법
clip-path · Web Animations
쓰는 곳
아이콘 전환, 로고 변형
Claude에게 이렇게 ›

도형 하나가 원 → 별 → 하트 → 네모 → 세모 → 원으로 부드럽게 변하게 해줘. 모든 모양을 같은 개수(72개)의 점으로 만들어 clip-path polygon끼리 보간하고, 모양마다 색도 바뀌게. 각 모양에서 1초쯤 머물렀다 넘어가게.

08구이 블롭Gooey Metaballs

흐리게 한 다음 다시 선명하게 — 공들이 액체처럼 붙었다 떨어진다.

기법
SVG filter (blur + color matrix)
쓰는 곳
배경, 로딩, 브랜드 그래픽
Claude에게 이렇게 ›

검은 배경에 주황·노랑·분홍 원 5개가 천천히 떠다니다가 가까워지면 액체처럼 이어 붙고 멀어지면 떨어지게 해줘. SVG 필터로 흐리게(blur) 한 뒤 알파를 세게 올리는(color matrix) 구이(gooey) 효과로.

공
방
실
험
◎

093D 큐브CSS 3D

CSS만으로 입체. 면 6개를 접어 붙이고 90도씩 돌았다 멈춘다.

기법
CSS 3D transform
쓰는 곳
제품 소개, 단계 설명
Claude에게 이렇게 ›

CSS 3D로 정육면체를 만들어 면마다 다른 색과 글자('공·방·실·험')를 넣고, 살짝 내려다보는 각도에서 90도씩 돌았다 멈췄다를 반복해줘(ease-in-out). 바닥에 흐린 그림자.

영상·브랜딩

유튜브·방송에서 매일 보는 부품

10로고 리빌Logo Reveal

점 → 파동 → 마크 → 글자. 유튜브 인트로와 브랜드 영상의 시그니처 3초.

기법
CSS keyframes · clip-path
쓰는 곳
인트로·아웃트로, 앱 시작 화면
Claude에게 이렇게 ›

검은 화면 가운데 주황 점이 톡 생겼다 사라지며 동그란 파동이 퍼지고, 그 자리에 주황 네모 마크가 회전하며 튕겨 들어오게. 마크가 왼쪽으로 비켜나면 'gongbang' 글자가 왼쪽부터 닦이듯 나타나고, 아래 작은 슬로건이 떠오르게. 5.5초 반복.

REC
김공방
실험하는 사람 · gongbang.dev

11로워서드Lower Third

화면 아래쪽에 이름표가 미끄러져 들어온다. 인터뷰·방송 영상의 기본 부품.

기법
CSS scaleX · 순차 지연
쓰는 곳
인터뷰, 유튜브, 방송 자막
Claude에게 이렇게 ›

흐릿하게 움직이는 영상 같은 배경 위, 왼쪽 아래에 이름 자막(로워서드)을 넣어줘. 주황 세로 막대가 먼저 솟고 → 흰 막대가 왼쪽부터 펼쳐지며 이름 '김공방' → 0.2초 뒤 검은 막대에 직함. 3초 머문 뒤 오른쪽으로 접히며 사라지게. 왼쪽 위엔 깜빡이는 REC와 초 카운터.

SCENE 01시작장면 전환 — wipe
SCENE 02전개색 띠가 차례로 쓸고 지나간다
SCENE 03마무리그리고 다시 처음으로
SCENE 01시작장면 전환 — wipe

12장면 전환Wipe Transition

색 띠 여러 장이 비스듬히 쓸고 지나가며 다음 장면으로. 편집 프로그램의 트랜지션을 코드로.

기법
clip-path · Web Animations
쓰는 곳
영상 장면 사이, 슬라이드 전환
Claude에게 이렇게 ›

장면 3개(01 시작 · 02 전개 · 03 마무리)를 차례로 보여주고, 넘어갈 때마다 색 띠 두 장과 다음 장면이 0.09초 간격으로 왼쪽에서 오른쪽으로 비스듬히 쓸고 지나가게 해줘. 마지막 장면에서 첫 장면으로도 같은 전환으로 이어져 끊김 없이 반복되게.

데이터

숫자를 움직여 이야기로

이번 주 방문
▲ 37%
38
62
50
84
70
96
월화수목금토

13막대 그래프Animated Bar Chart

막대가 차례로 솟고 숫자가 따라 올라간다. 데이터 영상의 기본 문법.

기법
CSS @property 카운터
쓰는 곳
보고서 영상, 대시보드, 인포그래픽
Claude에게 이렇게 ›

요일별 막대 6개가 70ms 간격으로 아래에서 튕기듯 자라게 하고, 위의 큰 숫자는 0에서 400까지 같이 올라가게 해줘(CSS @property 정수 카운터). 가장 큰 막대만 주황. 막대 위에 값, 오른쪽 위에 초록 '▲ 37%'.

완성도
완성도 72기록 54공개 88

14원형 게이지Ring Gauge

고리가 차오르며 퍼센트가 오른다. 운동 앱의 활동 링 같은 것.

기법
SVG stroke-dashoffset · 카운터
쓰는 곳
진행률, 목표 달성, 점수
Claude에게 이렇게 ›

동심원 고리 3개(주황 72%, 노랑 54%, 파랑 88%)가 0.14초 간격으로 위에서부터 시계 방향으로 차오르게 하고, 가운데 숫자가 0%→72%로 같이 올라가게 해줘. 바깥엔 눈금 고리가 아주 천천히 돈다.

입자·패턴

규칙 몇 줄로 만드는 생성형 그래픽 — 마우스에 반응해요

마우스를 올려 보세요 · 누르면 흩어져요

15파티클 글자Particle Text

점 수천 개가 모여 글자가 된다. 마우스를 피해 흩어지고, 누르면 터진다.

기법
Canvas 2D · 간단한 물리
쓰는 곳
랜딩 첫 화면, 이벤트 페이지
Claude에게 이렇게 ›

캔버스에 '공방'을 굵게 그려 글자 픽셀 위치를 뽑고, 그 자리마다 점을 하나씩 둬서 점들이 사방에서 날아와 글자를 이루게 해줘(스프링으로 끌려가며 감속). 마우스 근처 점은 밀려나고, 누르면 터졌다 다시 모이게. 4.5초마다 '모션', '실험'으로 글자를 바꿔 점들이 옮겨가게.

마우스를 따라 물결이 옮겨가요

16점 물결Dot Grid Wave

격자 점의 크기가 파도처럼 번진다. 물결의 중심이 마우스를 따라간다.

기법
Canvas 2D · sin 함수
쓰는 곳
배경, 음악 비주얼라이저
Claude에게 이렇게 ›

종이색 배경에 점 격자를 깔고, 한 점에서 퍼지는 물결(sin)처럼 점 크기가 커졌다 작아지게 해줘. 물결 마루의 점만 주황색. 마우스를 올리면 그 자리가 물결 중심이 되고, 아니면 중심이 천천히 원을 그리며 돈다.

UI

앱 안의 작은 움직임 — 마이크로 인터랙션

♥

17좋아요 버스트Like Burst

누르는 순간 하트가 튀고 고리와 점이 터진다. 작지만 '눌렀다'는 기분을 만든다. 하트를 눌러 보세요.

기법
CSS keyframes
쓰는 곳
좋아요·저장·완료 버튼
Claude에게 이렇게 ›

하트 좋아요 버튼 애니메이션: 누르면 빈 하트가 살짝 눌렸다가 → 주황 하트가 1.25배로 튀어나와 제자리, 동시에 분홍 고리가 퍼지며 사라지고 색 점 8개가 사방으로 튄다. 숫자는 203 → 204. 다시 누르면 처음부터.

spinner
dots
skeleton
flip

18로딩Loaders

기다림을 덜 지루하게. 가장 많이 쓰는 로딩 네 가지.

기법
CSS keyframes · SVG
쓰는 곳
앱·웹 로딩
Claude에게 이렇게 ›

검은 배경을 4칸으로 나눠 로딩 애니메이션 4종을 만들어줘: ① 호가 늘었다 줄며 도는 스피너(머티리얼 스타일) ② 점 3개가 차례로 통통 ③ 회색 막대 위로 빛이 쓸고 가는 스켈레톤 ④ 색 네모 4개가 차례로 뒤집히기.

전부 손으로 쓴 코드예요 — 애니메이션 라이브러리 없이 CSS 키프레임·SVG·Canvas·Web Animations만. 화면 밖으로 나간 장면은 저절로 멈춰요.

실험 노트

왜 만드는가:

확인하려는 것: