Drag a point to move it. Tap a point to select, then Remove. Minimum 3 points.
Drag the center to move, or the edge handle to resize.
polygon() vs shape()
clip-path crops an element to a shape. The classic basic shapes,
polygon(), circle(), ellipse() and inset(),
are supported everywhere and are what most projects use today. polygon() takes a
list of points, so you can carve any straight-edged outline.
The newer shape() function is a superset that reads like SVG path commands
(line to, curve to, arc) and, unlike the SVG-based
path(), accepts percentages and mixed units, so it scales with the element and can
be animated between states. For a straight-edged polygon the two are equivalent; this tool gives
you both so you can adopt shape() where it is supported and keep
polygon() as the safe default.
Your image never leaves the page
Uploading an image just previews the clip on something real. The file is read into the browser with a local object URL and is never sent anywhere.
Browser support
The basic shapes are baseline; shape() is new and not yet in Firefox.
| Feature | Chrome | Edge | Firefox | Safari |
|---|---|---|---|---|
| clip-path: polygon / circle / ellipse / inset | Yes | Yes | Yes | Yes |
| clip-path: shape() | 137+ | 137+ | ✗ | 18.4+ |