The clip-path property sets a clipping region for an element. Content inside the region stays visible; everything outside is hidden.
Start with basic shapes: circle(), inset(), ellipse(), and polygon(). Unlike the deprecated clip property, clip-path works without absolute positioning and is the modern choice.
Baseline · Widely available.
Not deprecated and not experimental. Prefer clip-path over clip for new work. Internet Explorer does not support it.
List points in order. Each pair is x y as a percentage of the box.
Top tip.50% 0% is the middle of the top edge.
Base corners.100% 100% and 0% 100% are the bottom-right and bottom-left.
Browser closes the shape. The three points form a triangle clip.
Edge Cases & Pitfalls
If the shape looks wrong, check these first.
size
Layout size does not shrink
Clipping hides paint; the element still occupies its full width and height in the layout.
circle
Non-square boxes flatten circles
On a wide rectangle, circle(50%) can hit the short sides and look cut off. Use a square for a full circle.
legacy
Do not mix up with clip
The old clip property is deprecated and rectangle-only. Prefer clip-path for new code.
stack
Creates a stacking context
Any value other than none creates a new stacking context, similar to opacity less than 1.
overflow
Simple crops may not need clip-path
To hide overflowing children in a box, overflow: hidden is often enough. Use clip-path when you need a custom shape.
Compatibility
Browser Support
clip-path is a browser CSS property for clipping shapes. Node.js, Deno, and Bun do not apply it.
✓ Baseline · Widely available
clip-path
Basic shapes (circle, inset, ellipse, polygon): Chrome 55+, Edge 79+, Firefox 54+, Safari 13.1+. Internet Explorer has no support.
96%Modern browser support
Google Chrome55+
Full support (basic shapes)
Mozilla Firefox54+
Full support (basic shapes)
Apple Safari13.1+
Full support (basic shapes)
Microsoft Edge79+
Full support (basic shapes)
Opera42+
Full support (basic shapes)
Samsung Internet6.2+
Full support (basic shapes)
Internet ExplorerNo support
Not supported
clip-path (basic shapes)Widely supported
Bottom line: Safe for modern sites. Fall back to an unclipped box or overflow: hidden when IE matters. Newer functions like path() need newer browsers. It is not a runtime API.
Remember
Key Takeaways
Role: show only the part of an element inside a shape.
Start here:circle(), inset(), and polygon().
Modern: replaces deprecated clip; no absolute position required.
Initial value:none. Not inherited. Non-none creates a stacking context.
It hides everything outside a shape you choose. Parts inside the path stay visible. Common shapes are circle(), inset(), and polygon().
The initial value is none, which means no clipping and the whole element stays visible.
clip is deprecated, rectangle-only, and needs absolute or fixed positioning. clip-path is the modern property: it works on most elements and supports circles, polygons, and more.
No. Unlike the old clip property, clip-path works on normal static elements. Absolute positioning is not required.
Yes, between compatible shapes in supporting browsers. Matching point counts in polygon() values makes morphing smoother.
It is Baseline Widely available. Basic shapes work in Chrome 55+, Edge 79+, Firefox 54+, and Safari 13.1+ (with earlier partial support). Internet Explorer does not support it. It is a browser CSS property, not a Node.js feature.