브라우저의 재발견 · 시그니처 효과

어워즈 사이트가 쓰는 '와' 소리 나는 효과

고급 에이전시·포트폴리오 사이트가 감탄을 자아내는 9가지 시그니처 애니메이션. 카드의 ‘?’로 준비물·AI 지시문·핵심 코드를 확인하라. 화려해 보여도 대부분 순수 CSS이거나 JS 몇 줄이다.

↻ 모든 데모는 자동으로 반복 재생됩니다.

01텍스트 스크램블scramble
DECODE
랜덤 글자 → 왼쪽부터 확정

텍스트 스크램블 (디코드)

필요한 것

JS + 랜덤 글자 세트. 최종 텍스트를 정해두고 랜덤 문자로 채웠다가 왼쪽부터 확정한다.

AI에게 이렇게

“글자들이 랜덤 문자로 지직거리다 원래 텍스트로 하나씩 확정되는 디코드 효과 만들어줘.”

핵심 코드
out += (i
02스플릿 스태거split · stagger
글자별 span + transition-delay

스플릿 텍스트 스태거

필요한 것

텍스트를 글자 단위 span으로 쪼개고 각 span에 순차 지연. GSAP SplitText가 유명하지만 순수 JS로도 된다.

AI에게 이렇게

“텍스트를 글자별로 쪼개서 아래에서 하나씩 순서대로 올라오게 해줘.”

핵심 코드
[...text].forEach((ch,i)=>{ span.style.transitionDelay = i*45+"ms"; });
03커스텀 커서cursor follower
커서가 자동으로 돌아다니다
이 링크에서 커진다
ring을 마우스로 lerp

커스텀 커서 (팔로워)

필요한 것

따라다니는 요소(div) + 마우스 좌표 lerp 추적. 기본 커서는 cursor:none으로 숨긴다.

AI에게 이렇게

“마우스를 살짝 늦게 따라오는 커스텀 커서를 만들고, 링크 위에선 커지게 해줘.”

핵심 코드
rx += (mouseX - rx) * 0.18; // 관성 ring.style.transform=`translate(${rx}px,${ry}px)`;
04클립 리빌clip-path curtain
REVEALED
CURTAIN
clip-path: inset(0 100% 0 0)

클립패스 커튼 리빌

필요한 것

겹친 두 레이어 + clip-path(또는 mask). 앞 레이어를 옆으로 닦으면 뒤가 드러난다. 순수 CSS.

AI에게 이렇게

“앞 레이어가 옆으로 닦이며 뒤 내용이 드러나는 커튼 리빌 만들어줘.”

핵심 코드
.front{ clip-path:inset(0 0 0 0); transition:.55s } .front:hover{ clip-path:inset(0 100% 0 0) }
05글리치 / RGB 스플릿glitch
GLITCH
text-shadow 빨강/청록 + 흔들림

글리치 · RGB 스플릿

필요한 것

순수 CSS. 텍스트를 빨강·청록으로 분리(text-shadow)하고 keyframes로 흔든다.

AI에게 이렇게

“텍스트가 RGB로 갈라지며 지직거리는 글리치 효과 넣어줘.”

핵심 코드
text-shadow:3px 0 #ff2d55,-3px 0 #00e5ff; transform:translate(-2px,1px); /* keyframes 반복 */
06스티키 스택 카드sticky stack
CARD 01
CARD 02
CARD 03
CARD 04
position: sticky; top: 16px

스티키 스택 카드

필요한 것

스크롤 컨테이너 + 카드마다 position:sticky. 각 카드가 위에 고정되며 뒤 카드가 그 위로 쌓인다. 순수 CSS.

AI에게 이렇게

“스크롤하면 카드들이 위쪽에 하나씩 고정되며 겹쳐 쌓이게 해줘.”

핵심 코드
.card{ position: sticky; top: 16px; } /* 카드마다 top을 조금씩 늘리면 계단식 */
07인피니트 마퀴marquee
DESIGNMOTIONSCROLLREVEALDESIGNMOTIONSCROLLREVEAL
translateX(-50%) 루프 + 내용 2배

인피니트 마퀴 (티커)

필요한 것

순수 CSS. 내용을 2번 복제해 이어붙이고 트랙을 -50%까지 이동하면 끊김 없이 무한 반복.

AI에게 이렇게

“텍스트가 끊김 없이 계속 흐르는 무한 마퀴 만들어줘.”

핵심 코드
@keyframes marq{ to{ transform:translateX(-50%) } } .track{ animation:marq 7s linear infinite } /* 내용 2세트 */
08모프 블롭morphing blob
border-radius 애니메이션 + rotate

모프 블롭 (유기적 변형)

필요한 것

순수 CSS. border-radius 값을 두 상태 사이로 애니메이션하면 유기적으로 꿈틀. 그라디언트 + 살짝 blur로 고급스럽게.

AI에게 이렇게

“그라디언트 덩어리가 유기적으로 모양이 바뀌며 도는 블롭 배경 만들어줘.”

핵심 코드
@keyframes blob{ 0%,100%{ border-radius:42% 58% 63% 37%/45% 38% 62% 55% } 50% { border-radius:58% 42% 37% 63%/38% 55% 45% 62% } }
09숫자 롤 카운터number roll
translateY(-digit × 1em)

숫자 롤 (슬롯머신)

필요한 것

0~9를 세로로 쌓은 릴 + overflow:hidden. 목표 숫자만큼 translateY로 굴려 멈춘다. 통계·가격 카운터에 자주.

AI에게 이렇게

“숫자가 슬롯머신처럼 세로로 굴러 최종 값에 멈추는 카운터 만들어줘.”

핵심 코드
reel.style.transform = `translateY(${-digit}em)`;