CSS Clip-Path Generator
Generate clip-path CSS values for circle, ellipse, polygon, and inset shapes, with optional -webkit- vendor prefix.
Input
- Shape type:
circle|ellipse|polygon|inset(defaultcircle) - Shape-specific parameters:
- circle:
radius% (default 50),cx% (default 50),cy% (default 50) - ellipse:
rx% (default 50),ry% (default 35),cx% (default 50),cy% (default 50) - inset:
top%,right%,bottom%,left% (default all 10) - polygon: list of
x% y%point pairs (at least 3 points)
- circle:
- Vendor prefix: boolean (default
false)
Output
clip-path: <value>;- Optionally
-webkit-clip-path: <value>;if vendor prefix requested
Instructions
- Parse the user's request for shape type and parameters.
- Build the clip-path value:
- circle:
circle(<radius>% at <cx>% <cy>%) - ellipse:
ellipse(<rx>% <ry>% at <cx>% <cy>%) - inset:
inset(<top>% <right>% <bottom>% <left>%) - polygon:
polygon(<x1>% <y1>%, <x2>% <y2>%, ...)— join all points with,
- circle:
- If the user mentions a named preset shape, map to its polygon points:
- Triangle:
polygon(50% 10%, 90% 90%, 10% 90%) - Pentagon:
polygon(50% 5%, 95% 35%, 80% 90%, 20% 90%, 5% 35%) - Hexagon:
polygon(50% 5%, 90% 25%, 90% 75%, 50% 95%, 10% 75%, 10% 25%) - Star:
polygon(50% 5%, 61% 35%, 95% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 5% 35%, 39% 35%) - Arrow:
polygon(5% 35%, 60% 35%, 60% 10%, 95% 50%, 60% 90%, 60% 65%, 5% 65%)
- Triangle:
- Output
clip-path: <value>; - If vendor prefix requested, also output
-webkit-clip-path: <value>;above the standard property. - Include a short usage example showing the property applied to a
.elementclass.
Options
shape:circle|ellipse|polygon|inset— defaultcircleradius: 0–50 — default50(circle only)cx: 0–100 — default50cy: 0–100 — default50rx: 0–50 — default50(ellipse only)ry: 0–50 — default35(ellipse only)top/right/bottom/left: 0–50 — default10(inset only)vendorPrefix: true | false — defaultfalse
Examples
Input: "Circle clip path, 40% radius, centered" Output:
clip-path: circle(40% at 50% 50%);
Input: "Triangle clip path" Output:
clip-path: polygon(50% 10%, 90% 90%, 10% 90%);
Input: "Ellipse clip, 60% wide 40% tall, centered, with webkit prefix" Output:
-webkit-clip-path: ellipse(60% 40% at 50% 50%);
clip-path: ellipse(60% 40% at 50% 50%);
Input: "Inset rectangle 15% margin all sides" Output:
clip-path: inset(15% 15% 15% 15%);
Error Handling
- If polygon has fewer than 3 points, inform the user and ask for at least 3 coordinate pairs.
- If any percentage is outside 0–100, clamp it and note the adjustment.
- If shape type is unrecognized, default to
circleand notify the user. - For Safari compatibility, remind the user to add the
-webkit-clip-pathvendor prefix (or set vendorPrefix to true).
