baba
Free, no AIfor developers

RTL CSS Checker

Paste a stylesheet and get every physical left/right property flagged, with the logical-property fix applied automatically wherever the swap is mechanical.

Fixed CSS
.notification {
  margin-inline-start: 12px;
  padding-inline-end: 16px;
  text-align: start;
  border-inline-start: 3px solid var(--accent);
  border-start-start-radius: 8px;
  float: inline-end;
}
Report
LineFoundKindNote
2margin-left: 12px;Fixed automaticallymargin-left depends on document direction; use margin-inline-start.
3padding-right: 16px;Fixed automaticallypadding-right depends on document direction; use padding-inline-end.
4text-align: left;Fixed automaticallytext-align: left depends on document direction; use start.
5border-left: 3px solid var(--accent);Fixed automaticallyborder-left depends on document direction; use border-inline-start.
6border-top-left-radius: 8px;Fixed automaticallyborder-top-left-radius names a physical corner; use border-start-start-radius.
7float: right;Fixed automaticallyfloat: right depends on document direction; use float: inline-end (check your target browsers).
6 fixed automatically · 0 need a manual check · 0 notes

The Six RTL Mistakes

Almost every RTL bug traces back to one of six habits: hardcoding margin-left or padding-right instead of the inline-start/end logical property; positioning with left/right instead of inset-inline-start/end; setting text-align to left or right instead of start or end; naming a border side or a border-radius corner physically instead of logically; floating an element left or right instead of to an inline edge; and reaching for transform: translateX or a background-position side, neither of which has a clean logical equivalent, without a direction check.

The fix for the first five is almost always a rename, since logical properties render identically to their physical counterpart in a left-to-right layout and only differ once direction flips. The last category (transforms, background positions, and hardcoded direction) needs a human to decide what should actually happen in RTL.

Frequently Asked Questions

What is a "logical" CSS property?

A logical property names a side relative to text flow (inline-start, inline-end, block-start, block-end) instead of a screen side (left, right, top, bottom). margin-inline-start is the left margin in a left-to-right layout and the right margin in a right-to-left one, automatically, with no media query or [dir] selector.

Does fixing these properties break the LTR layout?

No. Logical properties render identically to their physical equivalent in a left-to-right context; the difference only shows once direction flips.

Why can't everything be auto-fixed?

A few properties (background-position, hardcoded direction, transform: translateX) don't have a drop-in logical equivalent, or depend on layout the checker can't see from CSS text alone, so those are flagged for a manual check instead of rewritten.

More Free Hebrew Tools

All tools