← Back to all briefs
CSS56s read

Chrome 156 Ships CSS random() and a Navigation Source Selector

The stable release adds per-axis scroll control, paired scroll snapping, a selector for the element that started a navigation, and 353 security fixes.

Chrome 156 reached stable on October 20. The CSS additions are the reason to care. random() returns a value between two bounds, with an optional random key that controls whether properties and elements share or cache the result. That makes randomized layouts, offsets, and staggered animations possible without a JavaScript pass.

:navigation-source selects the link, button, or form that initiated a navigation and keeps it selected for the duration. That gives you a stable hook for the element that led to the new page, which is what view transitions need. The release also adds scroll-snap-type: pair, which snaps both axes to the same element, and per-axis scroll containers that combine scroll and clip on different axes.

Two platform changes are lower priority. IndexedDB moves new data stores to a SQLite backend with no API change; existing LevelDB data is unaffected in this phase, so most apps can ignore it unless they inspect storage internals. WebTransport gains custom request headers and server response headers, which matters if you run a low-latency transport.

The release carries 353 security fixes, six of them critical, across Skia, Accessibility, CSS, Paint, and WebRTC. Update your test browsers. The CSS features are new, so feature-detect random() and :navigation-source before you ship them.