CSS clip-path 생성기
clip-path를 사용하면 모든 요소를 다각형 모양으로 잘라내어 SVG 오버레이 없이 모양 있는 이미지, 비대칭 히어로 섹션, 말풍선을 만들 수 있습니다. polygon() 좌표를 손으로 작성하면 계산 오류가 나기 쉽습니다. 이 생성기는 삼각형, 마름모, 사다리꼴, 육각형 네 가지 프리셋 모양에 맞는 올바른 clip-path 선언을 만들어 줍니다. 모양을 선택하고 생성한 뒤 CSS를 복사하세요.
clip-path 만드는 방법
-
1
모양 선택
삼각형, 마름모, 사다리꼴, 육각형 중 하나를 선택합니다.
-
2
CSS 생성
버튼을 클릭하면 선택한 모양의 `clip-path: polygon(...)` 규칙이 만들어집니다.
-
3
규칙 복사
결과를 복사해 스타일시트에 붙여넣으세요. 백분율 값은 모양이 요소 크기에 맞게 반응하도록 합니다.
-
4
좌표 이해하기
숫자 쌍 하나가 꼭짓점 하나입니다. 요소 박스 기준으로 해당 모서리의 x, y 위치를 백분율로 나타냅니다.
-
5
적용하기
`clip-path`는 모든 최신 브라우저의 어떤 요소에서도 작동하며, 모양은 요소 크기에 맞춰 조정됩니다.
다섯 가지 도형 함수
| 함수 | 구문 | 용도 |
|---|---|---|
inset() |
inset(10% 20% 10% 20% round 8px) |
인셋을 적용한 직사각형 클립, 모서리 둥글게 처리 선택 가능 |
circle() |
circle(50% at 50% 50%) |
원 |
ellipse() |
ellipse(40% 25% at 50% 50%) |
타원 |
polygon() |
polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%) |
모든 다각형 |
path() |
path("M0 0 L100 0 L50 100 Z") |
SVG 경로 데이터(지원 제한적) |
일반 다각형 클립
/* Hexagon */
clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%);
/* Rhombus */
clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
/* Chevron / arrow pointing right */
clip-path: polygon(0 0, 75% 0, 100% 50%, 75% 100%, 0 100%, 25% 50%);
/* Parallelogram */
clip-path: polygon(20% 0, 100% 0, 80% 100%, 0 100%);
/* Diagonal slice (modern hero section) */
clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%);
히어로 섹션의 대각선은 아마도 가장 널리 쓰이는 기법일 것입니다. SVG를 전혀 쓰지 않고도 섹션에 비스듬한 현대적 느낌을 줍니다.
clip-path 애니메이션
clip-path는 두 상태가 모두 같은 도형 함수를 사용하고 점의 개수가 같을 때에만 애니메이션됩니다. 정점이 4개인 다각형은 정점이 4개인 다른 다각형으로 부드럽게 변형되지만, 정점을 추가하거나 제거하면 보간이 깨집니다.
.card { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
.card:hover { clip-path: polygon(0 5%, 100% 0, 100% 95%, 0 100%); }
이를 활용하면 등장 효과, 미묘한 호버 변형, 페이지 전환 효과를 만들 수 있습니다.
clip-path와 overflow: hidden 비교
overflow: hidden은 보더 박스 직사각형 기준으로 잘립니다(이 직사각형은 border-radius로 둥글게 만들 수 있습니다). clip-path는 직접 정의한 임의의 형태로 잘리며, 그림자와 윤곽선을 포함한 모든 것을 함께 잘라냅니다. 그림자를 형태 바깥에 그대로 보이게 하고 싶다면 clip-path는 적합하지 않습니다.
filter: drop-shadow()를 쓰면 clip-path 요소에 형태를 따라가는 그림자를 다시 추가할 수 있지만, 처리 속도가 느립니다.
성능
최신 브라우저에서는 clip-path가 GPU로 가속되므로 애니메이션도 부드럽게 처리됩니다. 다만 path()와 정점이 40개 이상인 매우 복잡한 다각형은 일부 브라우저에서 CPU 렌더링으로 전환됩니다.
접근성
clip-path는 보이는 부분만 바꿉니다. 스크린 리더, 키보드 포커스, 포인터 이벤트는 잘린 형태가 아니라 요소의 전체 박스를 따릅니다. 이미지가 별 모양으로 잘려 있어도 대체 텍스트는 정상적으로 읽힙니다. 버튼이 셰브론 모양으로 잘려 있어도 클릭 영역은 보이는 셰브론이 아니라 직사각형 전체입니다. 그래서 겉보기에 빈 공간처럼 보이는 곳을 실수로 클릭할 수 있습니다.
특이한 모양으로 잘린 버튼이라면 요소의 너비와 높이를 빈틈없이 맞춰서 클릭 영역이 보이는 영역과 최대한 일치하도록 설정하세요.
자주 묻는 질문
모든 최신 브라우저(Chrome, Firefox, Safari, Edge)가 polygon(), circle(), ellipse(), inset()을 지원합니다. path()는 Chrome 88 이상, Firefox 97 이상, Safari 13.1 이상에서 지원됩니다. IE는 어느 것도 지원하지 않지만, 지금은 대부분의 사이트에서 사용 비중이 기준치 아래입니다.
clip-path가 다른 모든 것과 함께 그림자까지 잘라내기 때문입니다. 대신 filter: drop-shadow()를 사용하세요. 잘린 형태를 따라가며 그림자를 그대로 보이게 해 줍니다.
같은 도형 함수에 점의 개수가 같을 때만 가능합니다. 점이 4개인 다각형은 점이 4개인 다른 다각형으로 애니메이션됩니다. 점을 추가하거나 제거하거나, 함수를 바꾸면(예: 다각형에서 원으로) 보간이 깨집니다.
아니요. 포인터 이벤트는 여전히 요소의 직사각형 전체로 전달됩니다. 별 모양 버튼이라도 투명한 모서리를 포함한 직사각형이 클릭 영역이 됩니다. 이 점이 중요하다면 ::before에 pointer-events: none을 적용하거나, 크기를 빈틈없이 맞춘 요소를 사용하세요.
관련 도구
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 변수를 복사하세요.