- name
- clip-path-generate
- description
- Generate CSS clip-path code for shapes. Use when the user asks to create a clip path, clip an element to a shape, generate clip-path CSS, or make a polygon, circle, ellipse, or inset clip.
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)
- 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 ,
- 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%)
- 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).