In a horizontal writing mode (the usual default), that maps to top and bottom — like padding-top / padding-bottom. With a vertical writing-mode, it can map to the physical left/right sides 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 top/bottom when writing mode may change.
Logical tip.
Pair with padding-inline for the other axis. Together they replace the classic four physical paddings in writing-mode-aware layouts.
Change the flow.writing-mode: vertical-rl makes lines run top to bottom.
Block axis flips. Block-start/end are no longer physical top/bottom.
Padding stays logical.padding-block: 1rem still means before and after on the block axis.
Why it matters. The same rule stays correct if the page switches writing mode later.
Edge Cases & Pitfalls
If the wrong sides get padding, writing mode or physical longhands are usually why.
physical
Not the same as top/bottom forever
In horizontal writing it usually matches top/bottom. In vertical writing it can match left/right. Prefer physical longhands only when you mean a fixed screen edge.
negative
Negative padding is invalid
Like all padding properties, negative lengths are not allowed. The declaration is ignored.
percent
Percentages use the containing block width
Percentage padding resolves against the containing block’s inline size (usually width), even for block-axis sides.
shorthand
It does not set the inline axis
padding-block never sets left/right in horizontal mode. Use padding-inline or the full padding shorthand for those sides.
override
Later physical padding can override
A following padding-top still wins for that physical side. Keep logical and physical rules from fighting each other.
Compatibility
Browser Support
padding-block is a browser CSS property for logical box spacing. Node.js, Deno, and Bun do not apply it.
✓ Baseline · Widely available
padding-block
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-blockWidely supported
Bottom line: Safe for modern sites. For Internet Explorer, fall back to physical padding-top / padding-bottom. It is not a runtime API.
Remember
Key Takeaways
Role: logical inner spacing on the block axis (start and end).
Shorthand: 1 value = both sides; 2 values = start, then end.
Maps by writing mode: usually top/bottom in English; can be left/right in vertical text.
Pair with:padding-inline for the other axis; no auto, no negatives.
One line:padding-block sets block-axis padding that follows writing mode — use 1 or 2 non-negative values.
Frequently Asked Questions
It is a shorthand for padding-block-start and padding-block-end. It sets inner spacing on the block axis, which maps to physical sides based on writing mode.
Each longhand defaults to 0, so there is no block-axis padding until you set one.
padding-top and padding-bottom always mean physical top and bottom. padding-block follows the writing mode, so in horizontal text it is usually top/bottom, and in vertical text it can map to left/right.
Yes. One value sets both start and end. Two values set start, then end. Negative values are invalid.
Use it when block-axis inner spacing should stay correct if writing-mode or direction changes, especially in multilingual layouts.
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.