![Rachel Andrew](https://web.dev/images/authors/rachelandrew.jpg) Rachel Andrew Technical Writer [GitHub](https://github.com/rachelandrew) [LinkedIn](https://www.linkedin.com/in/rachelandrew) [Mastodon](https://front-end.social/@rachelandrew) [Bluesky](https://bsky.app/profile/rachelandrew.bsky.social) [Homepage](https://rachelandrew.co.uk)

<br />


Published: March 10, 2026

<br />

Chrome 146 is rolling out now, and this post shares some of the key features
from the release. Read the full [Chrome 146 release notes](https://developer.chrome.com/release-notes/146.md.txt).

Highlights from this release:

- [Scroll-triggered animations](https://developer.chrome.com/blog/new-in-chrome-146.md.txt#scroll-animations) adds scroll-position-based control of animations.
- [Scoped custom element registry](https://developer.chrome.com/blog/new-in-chrome-146.md.txt#scoped-registry) prevents custom element name conflicts.
- [The Sanitizer API](https://developer.chrome.com/blog/new-in-chrome-146.md.txt#sanitizer-api) helps build XSS-free web applications.

## Scroll-triggered animations

This feature adds scroll-position-based control of animations, for example,
playing, pausing, and resetting animations.

A common pattern on pages across the web is to start an animation when a scroll
position is reached. Developers often do this by using JavaScript to manually
detect that an element is within its scroll container's viewport and to start a
corresponding animation (for example, sliding that element into view). Many of
these use cases rely on declaratively provided information. This feature lets
you create such interactions declaratively with CSS.

Learn more in [Scroll-triggered animations are coming](https://developer.chrome.com/blog/scroll-triggered-animations.md.txt)

## Scoped custom element registry

This feature lets multiple custom element definitions for a single tag name
exist within a page. This prevents custom element name conflicts when a web app
uses libraries from multiple sources. This is achieved by allowing user code to
create multiple custom element registries and associate them with tree scopes
and elements that function as scoping objects.

Find out more in [Make custom elements behave with scoped registries](https://developer.chrome.com/blog/scoped-registries.md.txt).

## The Sanitizer API

The [Sanitizer API](https://developer.mozilla.org/docs/Web/API/HTML_Sanitizer_API) offers a way to remove content that might execute script from
arbitrary, user-supplied HTML content. The goal is to make it easier to build
XSS-free web applications. This is an updated version of a previous attempt to create a Sanitizer API. This new version is also available in Firefox.

## Further reading

This covers only some key highlights. Check the following links for additional
changes in Chrome 146.

- [Release notes for Chrome 146](https://developer.chrome.com/release-notes/146.md.txt).
- [What's new in Chrome DevTools (146)](https://developer.chrome.com/blog/new-in-devtools-146.md.txt).
- [ChromeStatus.com updates for Chrome
  146](https://chromestatus.com/features#milestone%3D146).
- [Chrome release calendar](https://chromiumdash.appspot.com/schedule).

## Subscribe

To stay up to date, [subscribe](https://goo.gl/6FP1a5) to the [Chrome Developers
YouTube channel](https://www.youtube.com/user/ChromeDevelopers/), and you'll get
an email notification whenever we launch a new video. Or follow us on X or
LinkedIn for new articles and blog posts.

As soon as Chrome 147 is released, we'll be right here to tell you what's new in
Chrome!