The scroll-padding-top property insets the scrollport at the physical top edge. Snap and scroll targets stop inside that inset instead of flush against the top.
It always means “top,” no matter the writing mode. Set it on the scroll container, not on the snap target. It is one longhand of scroll-padding. It is not inherited. The initial value is auto.
Physical longhand.
Standard-track and Baseline Widely available. Prefer scroll-padding-block-start when writing mode may change. Lengths and percentages are valid.
Targets use scroll-margin-top. The container uses scroll-padding-top.
layout
It is not padding-top
Layout does not shift. Only scroll and snap aiming change inside the scrollport.
Compatibility
Browser Support
scroll-padding-top is a browser CSS property. Node.js, Deno, and Bun do not apply it.
✓ Baseline · Widely available since Apr 2021
scroll-padding-top
Chrome 69+, Edge 79+, Firefox 68+, Safari 14.1+, Opera 56+, Samsung Internet 10.1+. Internet Explorer has no support.
97%Global reach
Google Chrome69+
Full support
Mozilla Firefox68+
Full support
Apple Safari14.1+
Full support
Microsoft Edge79+
Full support
Opera56+
Full support
Samsung Internet10.1+
Full support
Internet ExplorerNo support
Not supported
scroll-padding-topWidely supported
Bottom line: Safe for modern sites. Prefer the logical longhand when writing-mode may change. Not a server runtime API.
Remember
Key Takeaways
Role: inset the scrollport at the physical top edge only.
Values:auto, length, or percentage.
Initial value:auto. Not inherited. Set on the scroll container.
Tip: pair with scroll-snap-align: start to see the top inset clearly.
One line:scroll-padding-top reserves space at the top of the scrollport — ideal under fixed headers.
Frequently Asked Questions
It insets the scrollport at the physical top edge. Snap and scroll targets stop below that inset instead of flush against the top.
The initial value is auto. Browsers usually treat that like 0px unless they choose another offset.
scroll-padding-top is always the physical top. scroll-padding-block-start follows the block flow, so it adapts when writing-mode is vertical.
scroll-padding is the shorthand for all four sides. This longhand sets only the top.
Use it for fixed headers, top chrome, or extra space when panels snap to the top edge of a scroller.
It is Baseline and widely available since April 2021: Chrome 69+, Edge 79+, Firefox 68+, Safari 14.1+, Opera 56+. Safari 11–14 had partial support. Internet Explorer does not support it. It is a browser CSS property, not a Node.js feature.