In a horizontal left-to-right writing mode, that maps to left and right — like padding-left / padding-right. With direction: rtl, start and end swap sides. With a vertical writing-mode, it can map to top/bottom instead. It is not inherited. Each side starts at 0. Negative values are invalid.
Baseline · Widely available.
Not deprecated. Cross-browser since about April 2021. Prefer it over physical left/right when direction or writing mode may change.
Logical tip.
Pair with padding-block for the other axis. Together they replace classic four-side padding in multilingual layouts.
Flip direction.direction: rtl makes text flow right to left.
Start moves. Inline-start is now the physical right; end is the left.
Values stay logical.0.5rem 1.5rem still means start, then end.
Why it matters. The same rule works for LTR and RTL without rewriting left/right.
Edge Cases & Pitfalls
If the wrong sides get padding, direction, writing mode, or physical longhands are usually why.
physical
Not the same as left/right forever
In horizontal LTR it usually matches left/right. In RTL those sides swap. In vertical writing it can match top/bottom. Prefer physical longhands only for a fixed screen edge.
rtl
RTL flips the inline axis
Unlike block-end, inline-start/end do change with direction. That is the main reason to prefer padding-inline for multilingual UI.
negative
Negative padding is invalid
Like all padding properties, negative lengths are not allowed. The declaration is ignored.
shorthand
It does not set the block axis
padding-inline never sets top/bottom in horizontal mode. Use padding-block or the full padding shorthand for those sides.
override
Later physical padding can override
A following padding-left still wins for that physical side. Keep logical and physical rules from fighting each other.
Compatibility
Browser Support
padding-inline is a browser CSS property for logical box spacing. Node.js, Deno, and Bun do not apply it.
✓ Baseline · Widely available
padding-inline
Chrome 87+, Firefox 66+, Safari 14.1+, Edge 87+. Widely available since April 2021. Not in Internet Explorer.
97%Logical padding support
Google Chrome87+
Full support
Mozilla Firefox66+
Full support
Apple Safari14.1+
Full support
Microsoft Edge87+
Full support
Opera73+
Full support
Samsung Internet14+
Full support
Internet ExplorerNot supported
Not supported
padding-inlineWidely supported
Bottom line: Safe for modern sites. For Internet Explorer, fall back to physical padding-left / padding-right. It is not a runtime API.
Remember
Key Takeaways
Role: logical inner spacing on the inline axis (start and end).
Shorthand: 1 value = both sides; 2 values = start, then end.
Maps by direction: usually left/right in LTR; sides swap in RTL.
Pair with:padding-block for the other axis; no auto, no negatives.
One line:padding-inline sets inline-axis padding that follows direction and writing mode — use 1 or 2 non-negative values.
Frequently Asked Questions
It is a shorthand for padding-inline-start and padding-inline-end. It sets inner spacing on the inline axis, which maps to physical sides based on writing mode and direction.
Each longhand defaults to 0, so there is no inline-axis padding until you set one.
padding-left and padding-right always mean physical left and right. padding-inline follows direction and writing mode, so in RTL it swaps sides, and in vertical text it can map to top/bottom.
Yes. One value sets both start and end. Two values set start, then end. Negative values are invalid.
Use it when horizontal (inline) inner spacing should stay correct for LTR and RTL, or when writing mode may change.
It is Baseline and widely available in modern browsers since about April 2021 (Chrome 87+, Firefox 66+, Safari 14.1+). It is a browser CSS property, not a Node.js feature.