Note from 26 January 2023

TIL IntersectionObserver's rootMargin only works if the observer is in the same origin, because of privacy concerns:

There is a risk that the API may be used to probe for information about the geometry of the global viewport itself, which may be used to deduce the user’s hardware configuration.

That's why this demo of a sticky navigation doesn't work in CodePen's default view… 😞