clip-path 는 요소를 실제로 잘라내거나 리사이즈하지 않고, 지정한 도형 밖의 픽셀만 안 보이게 감춥니다. circle(반지름 at 중심)·ellipse(가로반지름 세로반지름 at 중심)·polygon(점 목록)·inset(위 오른 아래 왼 [round 반지름]) 이 가장 많이 쓰는 네 함수입니다.
예전에는 같은 함수끼리(polygon 대 polygon 등)만 transition 이 가능했지만, 요즘 브라우저는 모든 basic-shape 함수를 내부적으로 공통 경로 표현으로 바꿔서 비교하기 때문에 circle() 에서 polygon() 으로 바로 transition 을 걸어도 자연스럽게 모핑됩니다. 데모가 이걸 보여줍니다 — 네 함수를 그대로 순환시키기만 했는데 서로 부드럽게 이어집니다.
clip-path 도 filter·transform·opacity<1 과 마찬가지로 새 스태킹 컨텍스트(크로미움에서는 별도 컴포지팅 레이어까지)를 만들어서, 애니메이션되는 요소가 많으면 그만큼 쌓입니다. 그리고 잘려나간 영역은 기본적으로 클릭도 막힌다고 오해하기 쉬운데, 실제 히트테스트 동작은 스펙으로 보장되지 않으므로 "보이는 도형 안에서만 클릭되게" 하려면 SVG 히트 영역이나 좌표 판별 로직을 따로 둬야 합니다.
언제 쓰나
이미지 리빌·모달 열림·플로팅 액션 버튼의 모양 전환처럼 "도형이 바뀌는" 연출에 씁니다. 클릭 판정을 도형 안으로 제한해야 한다면 별도 로직을 준비하세요.