This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.
The border-end-start-radius CSS property defines a logical border radius on an element, which maps to a physical border radius depending on the element's writing-mode, direction, and text-orientation. This is useful when building styles to work regardless of the text orientation and writing mode.
border-end-start-radius: 80px 80px;
border-end-start-radius: 250px 100px; direction: rtl;
border-end-start-radius: 50%; writing-mode: vertical-lr;
border-end-start-radius: 50%; writing-mode: vertical-rl;
<section class="default-example" id="default-example">
<div class="transition-all" id="example-element">
This is a box with a bottom left rounded corner.
</div>
</section>
#example-element {
width: 80%;
height: 80%;
display: flex;
justify-content: center;
flex-direction: column;
background-color: #5b6dcd;
color: white;
padding: 10px;
}
This property affects the corner between the block-end and the inline-start sides of the element. For instance, in a horizontal-tb writing mode with ltr direction, it corresponds to the border-bottom-left-radius property.
/* <length> values */ /* With one value the corner will be a circle */ border-end-start-radius: 10px; border-end-start-radius: 1em; /* With two values the corner will be an ellipse */ border-end-start-radius: 1em 2em; /* Global values */ border-end-start-radius: inherit; border-end-start-radius: initial; border-end-start-radius: revert; border-end-start-radius: revert-layer; border-end-start-radius: unset;
<length-percentage>Denotes the size of the circle radius or the semi-major and semi-minor axes of the ellipse. As absolute length it can be expressed in any unit allowed by the CSS <length> data type. 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.
| Initial value | 0 |
|---|---|
| Applies to | all elements; but User Agents are not required to apply to table and inline-table elements when border-collapse is collapse. The behavior on internal table elements is undefined for the moment.. It also applies to ::first-letter. |
| Inherited | no |
| Percentages | refer to the corresponding dimension of the border box |
| Computed value | two absolute <length>s or <percentage>s |
| Animation type | a length, percentage or calc(); |
border-end-start-radius =
<length-percentage [0,∞]>{1,2}
<length-percentage> =
<length> |
<percentage>
<div> <p class="exampleText">Example</p> </div>
div {
background-color: rebeccapurple;
width: 120px;
height: 120px;
border-end-start-radius: 10px;
}
.exampleText {
writing-mode: vertical-rl;
padding: 10px;
background-color: white;
border-end-start-radius: 10px;
}
| 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-end-start-radius |
89 | 89 | 66 | 75 | 15 | 89 | 66 | 63 | 15 | 15.0 | 89 | 15 |
border-top-right-radius
writing-mode, direction, text-orientation
© 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/border-end-start-radius