v150 · CSS · Shapes
Allow optional rounding parameter for polygon()
Chrome 150 adds an optional round <length> keyword to the polygon() CSS shape function, giving polygons rounded corners in a single declaration — no SVG, no bezier control points.
concepts
-
Shape Explorer
Pick a polygon shape, drag the rounding slider, and see the
polygon(round …)CSS update live. Copy the generated code straight into your project. -
Clip-Path Gallery
A gallery of common clip shapes — triangle, diamond, hexagon, arrow — rendered once without rounding and once with
polygon(round …), so you can see the difference at a glance. -
Animated Clip Path
polygon(round …)is fully animatable — transition or keyframe between sharp corners and rounded ones. Pick a shape, dial in a radius and duration, hover the left panel for a transition preview, and press Play for a continuous sharp ↔ rounded morph. -
shape-outside Rounded Polygon
Apply
polygon(round …)toshape-outsideso text flows around an organic, softened exclusion zone — no SVG, no bezier math. Choose a shape preset (triangle, diamond, hexagon, arrow, star), dial the corner radius, and watch the paragraph reflow around the rounded boundary. -
Fill Rule Combinator
polygon()accepts both a fill-rule keyword (nonzeroorevenodd) and around <r>rounding parameter at the same time. A 4-cell matrix shows every combination on self-intersecting shapes like a star; the interactive panel lets you mix fill rule, radius, and shape freely. -
offset-path with rounded polygon
polygon(round …)works inoffset-pathtoo — an element travels along a rounded polygon path instead of making hard turns. Pick a shape and drag the corner-radius slider; the traveller follows the live path withoffset-rotate: autoso it always faces the direction of travel. Side-by-side comparison against the sharp-corner equivalent.
why it shipped
CSS has long supported polygon clip paths via polygon(x1 y1, x2 y2, …), but every corner is always sharp. Achieving rounded corners required either SVG clip paths, the shape() function with complex curve commands, or manually computing bezier control points — all verbose and fragile. Chrome 150 adds an optional round <length> parameter to polygon() that applies a uniform corner radius to every vertex. The same enhancement works anywhere polygon() is accepted: clip-path, shape-outside, and offset-path. The fill-rule keyword still works alongside it: polygon(evenodd round 12px, …).
references
implementation reference
Need the exact API surface, compatibility boundaries, errors, lifecycle, and source links? Read the matching gendn reference ↗