`border-radius` CSS property
Baseline Widely available
This feature is well established and works across many devices and browser versions. It's been available across browsers since July 2015.
The border-radius CSS shorthand property rounds the corners of an element's outer border edge. You can set a single radius to make circular corners, or two radii to make elliptical corners.
Try it
border-radius: 30px;
border-radius: 25% 10%;
border-radius: 10% 30% 50% 70%;
border-radius: 10% / 50%;
border-radius: 10px 100px / 120px;
border-radius: 50% 20% / 10% 40%;
<section class="default-example" id="default-example">
<div class="transition-all" id="example-element">
This is a box with rounded corners.
</div>
</section>
#example-element {
width: 80%;
height: 80%;
display: flex;
justify-content: center;
flex-direction: column;
background-color: #5b6dcd;
color: white;
padding: 10px;
}
Constituent properties
This property is a shorthand for the following CSS properties:
Syntax
/* The syntax of the first radius allows one to four values */ /* Radius is set for all 4 sides */ border-radius: 10px; /* top-left-and-bottom-right | top-right-and-bottom-left */ border-radius: 10px 5%; /* top-left | top-right-and-bottom-left | bottom-right */ border-radius: 2px 4px 2px; /* top-left | top-right | bottom-right | bottom-left */ border-radius: 1px 0 3px 4px; /* The syntax of the second radius allows one to four values */ /* (first radius values) / radius */ border-radius: 10px / 20px; /* (first radius values) / top-left-and-bottom-right | top-right-and-bottom-left */ border-radius: 10px 5% / 20px 30px; /* (first radius values) / top-left | top-right-and-bottom-left | bottom-right */ border-radius: 10px 5px 2em / 20px 25px 30%; /* (first radius values) / top-left | top-right | bottom-right | bottom-left */ border-radius: 10px 5% / 20px 25em 30px 35em; /* Global values */ border-radius: inherit; border-radius: initial; border-radius: revert; border-radius: revert-layer; border-radius: unset;
The border-radius property is specified as:
- one, two, three, or four
<length>or<percentage>values. This is used to set a single radius for the corners. - followed optionally by "/" and one, two, three, or four
<length>or<percentage>values. This is used to set an additional radius, so you can have elliptical corners.
Values
| radius | ![]() | Is a <length> or a <percentage> denoting a radius to use for the border in each corner of the border. It is used only in the one-value syntax. |
| top-left-and-bottom-right | | Is a <length> or a <percentage> denoting a radius to use for the border in the top-left and bottom-right corners of the element's box. It is used only in the two-value syntax. |
| top-right-and-bottom-left | | Is a <length> or a <percentage> denoting a radius to use for the border in the top-right and bottom-left corners of the element's box. It is used only in the two- and three-value syntaxes. |
| top-left | ![]() | Is a <length> or a <percentage> denoting a radius to use for the border in the top-left corner of the element's box. It is used only in the three- and four-value syntaxes. |
| top-right | ![]() | Is a <length> or a <percentage> denoting a radius to use for the border in the top-right corner of the element's box. It is used only in the four-value syntax. |
| bottom-right | ![]() | Is a <length> or a <percentage> denoting a radius to use for the border in the bottom-right corner of the element's box. It is used only in the three- and four-value syntaxes. |
| bottom-left | ![]() | Is a <length> or a <percentage> denoting a radius to use for the border in the bottom-left corner of the element's box. It is used only in the four-value syntax. |
-
<length> - Denotes the size of the circle radius, or the semi-major and semi-minor axes of the ellipse, using length values. Negative values are invalid.
-
<percentage> - Denotes the size of the circle radius, or the semi-major and semi-minor axes of the ellipse, using percentage values. Percentages for the horizontal axis refer to the width of the box; percentages for the vertical axis refer to the height of the box. Negative values are invalid.
For example:
border-radius: 1em / 5em; /* It is equivalent to: */ border-top-left-radius: 1em 5em; border-top-right-radius: 1em 5em; border-bottom-right-radius: 1em 5em; border-bottom-left-radius: 1em 5em;
border-radius: 4px 3px 6px / 2px 4px; /* It is equivalent to: */ border-top-left-radius: 4px 2px; border-top-right-radius: 3px 4px; border-bottom-right-radius: 6px 2px; border-bottom-left-radius: 3px 4px;
Description
The radius applies to the whole background, even if the element has no border; the exact position of the clipping is defined by the background-clip property.
The border-radius property does not apply to table elements when border-collapse is collapse.
Note: As with any shorthand property, individual sub-properties cannot inherit, such as in border-radius:0 0 inherit inherit, which would partially override existing definitions. Instead, the individual longhand properties have to be used.
Formal definition
| Initial value | as each of the properties of the shorthand: |
|---|---|
| Applies to | all elements; but User Agents are not required to apply to <code>table</code> and <code>inline-table</code> elements when border-collapse is <code>collapse</code>. The behavior on internal table elements is undefined for the moment. |
| Inherited | no |
| Percentages | refer to the corresponding dimension of the border box |
| Computed value | as each of the properties of the shorthand: |
| Animation type | as each of the properties of the shorthand: |
Formal syntax
border-radius = <length-percentage [0,∞]>{1,4} [ / <length-percentage [0,∞]>{1,4} ]? <length-percentage> = <length> | <percentage>
Examples
Comparing border styles
The following example has seven <pre> elements, each of which demonstrates combinations of border and border-radius styles. The styles applied to each <pre> element are included as the element's contents, so you can see the CSS declarations necessary to create the associated border style:
<pre id="example-1"> border: solid 10px; border-radius: 10px 40px 40px 10px; </pre> <pre id="example-2"> border: groove 1em red; border-radius: 2em; </pre> <pre id="example-3"> background: gold; border: ridge gold; border-radius: 13em / 3em; </pre> <pre id="example-4"> border: none; border-radius: 40px 10px; background: gold; </pre> <pre id="example-5"> border: none; border-radius: 50%; background: burlywood; </pre> <pre id="example-6"> border: dotted; border-width: 10px 4px; border-radius: 10px 40px; </pre> <pre id="example-7"> border: dashed; border-width: 2px 4px; border-radius: 40px; </pre>
pre {
margin: 20px;
padding: 20px;
width: 80%;
height: 50px;
}
pre#example-1 {
border: solid 10px;
border-radius: 10px 40px 40px 10px;
}
pre#example-2 {
border: groove 1em red;
border-radius: 2em;
}
pre#example-3 {
background: gold;
border: ridge gold;
border-radius: 13em / 3em;
}
pre#example-4 {
border: none;
border-radius: 40px 10px;
background: gold;
}
pre#example-5 {
border: none;
border-radius: 50%;
background: burlywood;
}
pre#example-6 {
border: dotted;
border-width: 10px 4px;
border-radius: 10px 40px;
}
pre#example-7 {
border: dashed;
border-width: 2px 4px;
border-radius: 40px;
}
Using corner-shape with border-radius
When a non-0 border-radius value is applied to a box corner, you can use the corner-shape property (or one of its longhands and shorthands) to apply custom shapes to that corner, such as a bevel, notch, or squircle. This example demonstrates corner-shape usage.
HTML
The markup for this example contains a single <div> element.
<div></div>
CSS
We give the box some basic styles, which we've hidden for brevity. We also apply a box-shadow, a border-radius of 0 20% 50px 30%, and a corner-shape of superellipse(0.5) bevel notch squircle.
body {
font-family: "Helvetica", "Arial", sans-serif;
width: 240px;
margin: 20px auto;
}
div {
width: 100%;
height: 180px;
display: flex;
justify-content: center;
align-items: center;
background-color: green;
background-image: linear-gradient(
to bottom,
rgb(255 255 255 / 0),
rgb(255 255 255 / 0.5)
);
}
div {
box-shadow: 1px 1px 3px gray;
border-radius: 0 20% 50px 30%;
corner-shape: superellipse(0.5) bevel notch squircle;
}
Result
The rendered result looks like this:
Note how no corner shape is applied to the top-left corner, because it has a border-radius of 0 set.
Specifications
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | |
border-radius |
4Chrome ignoresborder-radius on <select> elements unless -webkit-appearance is overridden to an appropriate value.1
|
12
12
|
4Before Firefox 50, border styles of rounded corners (withborder-radius) were always rendered as if border-style was solid. This has been fixed in Firefox 50.To conform to the CSS3 standard, Firefox 4 changes the handling of <percentage> values to match the specification. You can specify an ellipse as a border on an arbitrary sized element with border-radius: 50%;. Firefox 4 also makes rounded corners clip content and images if overflow: visible is not set.1–12
|
10.5Before Opera 11.60, replaced elements withborder-radius do not have rounded corners. |
5Safari ignoresborder-radius on <select> elements unless -webkit-appearance is overridden to an appropriate value.3
|
18 |
4Before Firefox 50, border styles of rounded corners (withborder-radius) were always rendered as if border-style was solid. This has been fixed in Firefox 50.4–14
|
11 |
4.2Safari ignoresborder-radius on <select> elements unless -webkit-appearance is overridden to an appropriate value.1
|
1.0 |
≤4.4
2
|
4.2Safari ignoresborder-radius on <select> elements unless -webkit-appearance is overridden to an appropriate value.1
|
4_values_for_4_corners |
4 |
12 |
4 |
10.5 |
5 |
18 |
4 |
11 |
4.2 |
1.0 |
4.4 |
4.2 |
elliptical_borders |
1Before Chrome 4, the slash/ notation is unsupported. If two values are specified, then an elliptical border is drawn on all four corners. -webkit-border-radius: 40px 10px; is equivalent to border-radius: 40px / 10px;. |
12 |
4 |
10.5 |
3Before Safari 5, the slash/ notation is unsupported. If two values are specified, then an elliptical border is drawn on all four corners. -webkit-border-radius: 40px 10px; is equivalent to border-radius: 40px / 10px;. |
18 |
4 |
11 |
4.2 |
1.0 |
4.4 |
4.2 |
percentages |
8 |
12 |
4Before Firefox 4,<percentage> values are implemented in a non-standard way. Both horizontal and vertical radii were relative to the width of the border box. |
11.5Before Opera 11.5, the implementation of<percentage> values was buggy. |
5.1 |
18 |
4 |
11.5 |
5 |
1.0 |
4.4 |
5 |
See also
- Border-radius-related CSS properties:
border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-start-start-radius,border-start-end-radius,border-end-start-radius,border-end-end-radius
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/border-radius




