CSS Clip-path Generator Online — Polygon, Circle, Ellipse, Inset
What's included
Features
About this tool
Create Any CSS clip-path Shape Visually — Drag the Polygon Handles, Copy the Code
You need a diagonal section divider, a hexagon image crop, or an arrow-shaped button — but writing clip-path: polygon(50% 0%, 100% 100%, 0% 100%) coordinates by hand and counting pixels is brutal. Drag the handles on the preview here and the CSS updates in real time.
The polygon editor lets you drag any vertex, click to add new points, and right-click to remove them. All 18 presets — triangle, diamond, pentagon, hexagon, star, arrow, chevron, parallelogram, trapezoid, cross, message bubble, and more — load instantly as a starting point you can reshape. Switch between four shape modes: polygon() for custom multi-point shapes, circle() with radius and center sliders, ellipse() for oval crops, and inset() for rectangular clips with rounded corners. The clipped region is shown as a faint overlay so you can see exactly what will be hidden.
Exports: plain CSS (clip-path: polygon(...);), Tailwind arbitrary value format ([clip-path:polygon(...)]) ready to paste into a JSX className, and React inline style object (clipPath: '...'). All processing runs in your browser — nothing sent to any server.
Step by step
How to Use
- 1Pick a preset shapeChoose from the 18 preset shapes listed in the right panel — Triangle Up/Down/Left/Right, Corner variants, Diamond, Pentagon, Hexagon, Star, Arrow, Chevron, and more. The preview updates immediately to show the clip-path applied to the preview element.
- 2Drag polygon handles to reshapeFor polygon shapes, each vertex appears as a draggable purple handle on the preview canvas. Click and drag any handle to move it and reshape the polygon in real time. The clip-path coordinates update live as you drag.
- 3Add or remove polygon pointsClick anywhere on the preview canvas (not on an existing handle) to add a new polygon vertex at that position. Right-click any handle to delete that point. A minimum of 3 points is required to maintain a valid polygon.
- 4Switch shape modesClick Polygon, Circle, Ellipse, or Inset in the Shape Type selector to change the clip-path function. Circle and Ellipse modes show radius and center position sliders instead of handles. Inset mode provides four side sliders (top, right, bottom, left) and a border-radius slider for rounded rectangular clips.
- 5Toggle the outside region overlayClick "Show outside" at the top of the preview to display a faint overlay over the clipped region. This makes it easy to visualize exactly which pixels will be hidden and where the visible shape boundary falls.
- 6Change the preview backgroundSwitch the preview background between Gradient, Solid color, and Checkerboard pattern to see how the clipped element looks in different contexts. Use Checkerboard to visualize the clipped transparent areas accurately.
- 7Export the codeSelect CSS, Tailwind, or React from the export format tabs. CSS gives the clip-path property ready to paste into a stylesheet. Tailwind gives the [clip-path:polygon(...)] arbitrary value format. React gives the clipPath style prop in camelCase. Click Copy to copy the output.
Real-world uses
Common Use Cases
Got questions?
Frequently Asked Questions
Use the CSS clip-path property with polygon() coordinates. This tool generates the correct polygon() value — pick the Triangle, Hexagon, or Star preset, then copy the CSS output. Clip-path works on any HTML element including images, divs, and buttons, and uses percentage coordinates so the shape scales responsively.
clip-path clips an element to a defined shape — only pixels inside the shape are visible. It supports polygon() for custom multi-point shapes, circle() for circular clips, ellipse() for ovals, and inset() for rectangular clips with optional rounded corners. It works on any HTML element without affecting document layout.
Polygon coordinates are percentages of the element's bounding box. 0% 0% is top-left, 100% 0% is top-right, 100% 100% is bottom-right, 0% 100% is bottom-left. A triangle pointing up is polygon(50% 0%, 100% 100%, 0% 100%). Percentages make the shape responsive — it scales with the element at any size.
Yes — CSS transitions animate clip-path smoothly when both the start and end values use the same shape function and the same number of points. To animate a reveal, transition from all points collapsed to the center (polygon(50% 50%, 50% 50%, 50% 50%)) to the full polygon. Both states need the same vertex count.
Tailwind has no built-in clip-path utilities — use arbitrary value syntax: className="[clip-path:polygon(50%_0%,100%_100%,0%_100%)]". Spaces inside arbitrary values must be replaced with underscores. This tool generates the Tailwind format directly in the Tailwind export tab — copy and paste.
Yes — clipped areas are also non-interactive. Mouse events (hover, click) only register inside the visible clip region. If you need the full element area to be clickable regardless of the clip shape, apply clip-path to a child element only, keeping the parent fully interactive.
border-radius only rounds the corners of a rectangle. clip-path supports any shape — triangles, stars, arrows, hexagons, polygons with any number of vertices. Both clip visual rendering but clip-path is far more flexible for non-rectangular shapes.
Yes — polygon, circle, ellipse, and inset are supported in all modern browsers (Chrome, Firefox, Safari, Edge) without vendor prefixes. Global support exceeds 96% as of 2025. Safe to use in production without fallbacks for most projects.