← Back to release summary

Propagate Viewport overscroll-behavior from Root

Category
CSS
Type
No developer-visible change
Status
Proposed (Chrome Proposed)
Intent stage
None

Summary

Propagate overscroll-behavior from the root instead of the body. The CSS working group resolved[0] on not propagating properties from the <body> to the viewport. Rather, properties of the viewport are to be propagated from the root (i.e. <html>) element e.g. scroll-behavior[1], scroll-snap-type[2], scroll-padding[3]. As such, overscroll-behavior should be propagated from the root element. However, Chrome has had a longstanding issue of propagating overscroll-behavior from the <body> rather than the root, which deviates from the behavior of Safari(WebKit) and Firefox(Gecko). This feature intends to fix this by propagating overscroll-behavior from the root rather than the <body>. [0] https://github.com/w3c/csswg-drafts/issues/6079#issuecomment-816307011 [1] https://drafts.csswg.org/css-overflow/#:~:text=not%20propagated%20to%20the%20viewport [2] https://drafts.csswg.org/css-scroll-snap/#:~:text=not%20propagated%20from%20HTML%20body [3] https://drafts.csswg.org/css-scroll-snap/#:~:text=padding%20values%20are%20not%20propagated%20from%20HTML%20body

Motivation

Blink exhibits a behavior that differs from Gecko and WebKit in the way it propagates overscroll-behavior to the viewport. The value of this property, when propagated to the viewport, controls whether the user agent allows certain default user agent actions when the viewport is dragged/scrolled beyond its boundaries. Examples of these default actions are pull-to-refresh (typical on mobile) and swiping for forward/backward navigation (typical on Desktop). By modifying Chrome to propagate overscroll-behavior from the root and not the body, we are bringing the 3 major engines closer to interoperable implementations of the property.

Standards & signals

View on chromestatus.com