Web platform features explorer

📃 April 2025 release notes

Newly available

The following features are newly available:

  • Atomics.pause(): The Atomics.pause() static method gives a hint to the CPU that the code calling the method is in a short-duration wait for shared memory, known as spinning or a spinlock.
  • Float16Array: Float16Array is a typed array of 16-bit floating point numbers.
  • Single color stop gradients: A single color stop can be provided to the linear-gradient(), radial-gradient(), and conic-gradient() CSS functions, and their repeating counterparts, to create a solid color background.

Widely available

The following features are now widely available:

  • Grid animation: Grid animation allows you to animate the grid-template-columns and grid-template-rows CSS properties.
  • ic unit: The ic CSS length unit corresponds to the width of CJK ideographic characters.

New in Chrome

The following features are now available in Chrome:

  • fetchLater: The fetchLater() method requests a deferred fetch sent at an unknown time. The browser chooses a reliable time to send the request, ideally when the document is unloaded, and ignores the response. This API is useful for sending beacons to a server without expecting a particular response.
  • Invoker commands: The command and commandfor attributes for the <button> HTML element dispatch an action to an element when the button is invoked (by click or keystroke), as a declarative alternative to addEventListener() calls or onclick attribute handlers.
  • Observable: The when() method on a event target returns an Observable object, which provides a declarative API for subscribing to and operating on events. It's an alternative to addEventListener() callbacks.
  • print-color-adjust: The print-color-adjust CSS property sets whether styles of printed pages should be adjusted to use less ink, in cases such as light text on a dark background.
  • RegExp.escape(): The RegExp.escape() static method takes a string and replaces any characters that are potentially special characters of a regular expression with equivalent escape sequences. For example, RegExp.escape("[abc]") returns "\\[abc\\]".
  • Scroll markers: A scroll container can be navigated by activating ::scroll-marker pseudo-elements which appear in a generated ::scroll-marker-group pseudo-element, either before or after the scroll container.
  • Speculation rules: Speculation rules are hints to the browser to proactively download pages in the background so they appear instantly when the user navigates to them.

New in Chrome Android

The following features are now available in Chrome Android:

  • fetchLater: The fetchLater() method requests a deferred fetch sent at an unknown time. The browser chooses a reliable time to send the request, ideally when the document is unloaded, and ignores the response. This API is useful for sending beacons to a server without expecting a particular response.
  • Invoker commands: The command and commandfor attributes for the <button> HTML element dispatch an action to an element when the button is invoked (by click or keystroke), as a declarative alternative to addEventListener() calls or onclick attribute handlers.
  • Observable: The when() method on a event target returns an Observable object, which provides a declarative API for subscribing to and operating on events. It's an alternative to addEventListener() callbacks.
  • print-color-adjust: The print-color-adjust CSS property sets whether styles of printed pages should be adjusted to use less ink, in cases such as light text on a dark background.
  • RegExp.escape(): The RegExp.escape() static method takes a string and replaces any characters that are potentially special characters of a regular expression with equivalent escape sequences. For example, RegExp.escape("[abc]") returns "\\[abc\\]".
  • Speculation rules: Speculation rules are hints to the browser to proactively download pages in the background so they appear instantly when the user navigates to them.

New in Edge

The following features are now available in Edge:

  • fetchLater: The fetchLater() method requests a deferred fetch sent at an unknown time. The browser chooses a reliable time to send the request, ideally when the document is unloaded, and ignores the response. This API is useful for sending beacons to a server without expecting a particular response.
  • Invoker commands: The command and commandfor attributes for the <button> HTML element dispatch an action to an element when the button is invoked (by click or keystroke), as a declarative alternative to addEventListener() calls or onclick attribute handlers.
  • Observable: The when() method on a event target returns an Observable object, which provides a declarative API for subscribing to and operating on events. It's an alternative to addEventListener() callbacks.
  • Scroll markers: A scroll container can be navigated by activating ::scroll-marker pseudo-elements which appear in a generated ::scroll-marker-group pseudo-element, either before or after the scroll container.

New in Firefox

The following features are now available in Firefox:

  • Hyphenate limit chars: The hyphenate-limit-chars CSS property sets the number of characters in a word before it is hyphenated and the minimum number of characters on either side of the hyphen.
  • Error.isError(): The Error.isError() static method checks whether a value is an Error object.
  • Math.sumPrecise(): The Math.sumPrecise() static method returns the sum of an iterable of numbers. It avoids the precision loss of intermediate partial sums, as found using reduce() or a loop to add together an array of values.

New in Firefox for Android

The following features are now available in Firefox for Android:

  • Hyphenate limit chars: The hyphenate-limit-chars CSS property sets the number of characters in a word before it is hyphenated and the minimum number of characters on either side of the hyphen.
  • Error.isError(): The Error.isError() static method checks whether a value is an Error object.
  • Math.sumPrecise(): The Math.sumPrecise() static method returns the sum of an iterable of numbers. It avoids the precision loss of intermediate partial sums, as found using reduce() or a loop to add together an array of values.