One length or percentage makes circular corners. Add a second set after a slash to make elliptical corners. The curve also shapes the background, even when there is no border. It is not inherited. The initial value is 0.
Standard-track.
Not deprecated and not experimental. Widely available since 2015. Pairing with corner-shape (bevel, notch, squircle) is newer and still limited in support.
border-radius: 0 0 inherit inherit is invalid for inheritance. Set the longhands, such as border-bottom-left-radius, when only some corners should inherit.
minus
Negative radii are invalid
A negative length or percentage drops the declaration. Use 0 or a positive value.
Compatibility
Browser Support
border-radius is a browser style property for rounding corners. Node.js, Deno, and Bun do not apply it.
✓ Baseline · Widely available since 2015
border-radius
Chrome 4+, Firefox 4+, Safari 5+, Edge 12+, Opera 10.5+, Internet Explorer 9+. Older Safari and Firefox also used -webkit- and -moz- prefixes.
99%Modern browser support
Google Chrome4+
Full support
Mozilla Firefox4+
Full support
Apple Safari5+
Full support
Microsoft Edge12+
Full support
Opera10.5+
Full support
Samsung Internet1+
Full support
Internet Explorer9+
Full support
border-radiusWidely supported
Bottom line: Safe to use without prefixes in current browsers. Prefixes matter only for very old Safari and Firefox. corner-shape is separate and still limited.
Remember
Key Takeaways
Role: round the outer corners of a box. Also shapes the background.
Shorthand: 1–4 values map to corners like margin. A slash adds elliptical radii.
Circles: equal width and height plus 50%. A rectangle makes an ellipse.
Initial value:0. Not inherited. Clip children with overflow: hidden when needed.
One line:border-radius curves each corner — one value for all sides, four for each corner, or a slash for ellipses.
Frequently Asked Questions
It rounds the corners of an element's outer border edge. One radius makes circular corners. Two radii, separated by a slash, make elliptical corners.
The initial value is 0 on every corner, so corners stay square until you set a length or percentage.
On a square box, 50% is half the width and half the height, so the arcs meet as a circle. On a rectangle, 50% makes an ellipse.
One value sets all four corners. Two values set top-left/bottom-right and top-right/bottom-left. Three values set top-left, then the two middle corners, then bottom-right. Four values go top-left, top-right, bottom-right, bottom-left.
No. The curve also clips the background. Use overflow: hidden if you need child content, such as an image, to follow the same curve.
It is Baseline and widely available: Chrome 4+, Firefox 4+, Safari 5+, Edge 12+, Opera 10.5+, and Internet Explorer 9+. It is a browser style property, not a Node.js feature.