Back to Chromium

Cumulative Layout Shift Changes in Chrome 145

docs/speed/metrics_changelog/2026_02_cls.md

153.0.8008.02.9 KB
Original Source

Cumulative Layout Shift Changes in Chrome 145

Layout Instability attribution reports in CSS pixels

Prior to Chrome 145, the Layout Instability API reported attribution data (prevRect and currentRect in LayoutShift entries) in physical pixels, which varied based on the device's devicePixelRatio. Starting in Chrome 145, these rectangles are now reported in CSS pixels for consistency with other web platform APIs like getBoundingClientRect().

This change makes layout shift data easier to visualize, debug, and combine across devices and tools, as CSS pixels are the standard unit used throughout the web platform for layout measurements.

The specification change was merged in WICG/layout-instability#125.

The source code changes can be seen in the following CLs:

How does this affect a site's metrics?

This change affects the units used to report layout shift attribution data, not the actual CLS score values. The shift scores themselves remain unchanged.

Sites and tools that consume LayoutShift attribution data (primarily Real User Monitoring and analytics tools) will need to update their processing logic if they were assuming physical pixels. Tools that visualize layout shifts on top of page screenshots will need to account for CSS pixels when positioning overlays.

For most use cases, CSS pixels are more intuitive and easier to work with than physical pixels.

When were users affected?

Chrome 145 reached stable users in February 2026.


Sort LayoutShift.sources array by per-source impact area

Starting in Chrome 145, the sources array on LayoutShift performance entries is sorted in descending order by each element's impact area (largest first).

Previously, LayoutShift.sources returned up to five attribution sources in an arbitrary order. Diagnostics tooling and RUM analytics scripts had to iterate through the sources to calculate and find the primary element responsible for the shift.

Sorting guarantees that entry.sources[0] always represents the element with the largest impact area, matching Cumulative Layout Shift calculation semantics.

The specification change was merged in WICG/layout-instability#126. The source code change can be seen in crrev.com/c/7196706.

How does this affect a site's metrics?

  • No change to CLS scores: Total layout shift scores remain unchanged.
  • Simplified debugging & RUM attribution: Profilers and analytics libraries can directly access entry.sources[0] to identify the top layout shift culprit without manual geometric sorting.

When were users affected?

Chrome 145 reached stable users in February 2026.