The border-start-start-radius property rounds the corner where the block-start and inline-start sides meet. The physical corner it maps to depends on writing-mode and direction.
In horizontal-tb with left-to-right text, it matches border-top-left-radius. In RTL, the same declaration rounds the top-right corner instead — without rewriting your CSS.
Baseline · Widely available.
Not deprecated and not experimental. Part of CSS Logical Properties. Prefer it over physical corner radii when layouts must stay correct across LTR, RTL, and writing modes.
Write one radius. Both boxes share border-start-start-radius: 28px.
Leave the first box LTR. Start-start maps to the physical top-left corner.
Flip the second with dir="rtl". Inline-start moves to the right, so the curve appears on the top-right.
Why it matters. Physical border-top-left-radius would stay on the left in RTL. The logical property follows reading direction.
Edge Cases & Pitfalls
If the wrong corner rounds, or nothing changes, check these first.
map
It is not always top-left
In RTL, start-start is usually top-right. In vertical writing modes it moves again. Check direction and writing-mode before assuming a physical corner.
vs
Physical and logical can fight
If you set both border-start-start-radius and border-top-left-radius, the cascade decides. Prefer one model — logical or physical — for a layout.
%
Percentages follow width and height
A horizontal percentage uses the box width; a vertical percentage uses the height. On a non-square box, 50% is not a perfect quarter-circle unless both axes match.
table
Collapsed tables are unreliable
User agents are not required to apply border radii on table / inline-table when border-collapse: collapse. Internal table elements are also undefined.
neg
Negative values are invalid
A negative length or percentage is dropped. The property then falls back as if that declaration were not there.
Compatibility
Browser Support
border-start-start-radius is a browser CSS property for logical corner radii. Node.js, Deno, and Bun do not apply it.
✓ Baseline · Widely available since 2021
border-start-start-radius
Chrome 89+, Firefox 66+, Safari 15+, Edge 89+, Opera 75+, Samsung Internet 15+. Internet Explorer has no support.
97%Global support
Google Chrome89+
Full support
Mozilla Firefox66+
Full support
Apple Safari15+
Full support
Microsoft Edge89+
Full support
Opera75+
Full support
Samsung Internet15+
Full support
Internet ExplorerNo support
Not supported
border-start-start-radiusWidely supported
Bottom line: Safe in current browsers for multilingual and writing-mode-aware UI. Fall back to physical radii such as border-top-left-radius only when you must support Internet Explorer. It is not a runtime API.
Remember
Key Takeaways
Role: round the logical block-start + inline-start corner.
Values: one length/percentage for a circle; two values for an ellipse.
Initial value:0. Not inherited.
One line: use border-start-start-radius when the rounded corner should follow reading direction, not a fixed screen corner.
Frequently Asked Questions
It rounds the logical corner where the block-start edge meets the inline-start edge. In horizontal left-to-right text, that is usually the top-left corner.
border-top-left-radius always rounds the physical top-left corner. border-start-start-radius follows writing-mode and direction, so the same rule can round a different physical corner in RTL or vertical layouts.
The initial value is 0, so the start-start corner is square until you set a length or percentage.
Yes. One value makes a circular arc. Two values set the horizontal and vertical radii for an elliptical corner, for example 40px 12px.
Yes. Percentages refer to the corresponding dimension of the border box: the horizontal axis uses the width, and the vertical axis uses the height. Negative values are invalid.
It is Baseline Widely available since September 2021: Chrome 89+, Firefox 66+, Safari 15+, Edge 89+. Internet Explorer has no support. It is a browser CSS property, not a Node.js feature.