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.
  • JSON import attributes: Module import … with { type: "json" } statements load JSON data. Also known as JSON module scripts.
  • 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:

  • Customizable <select>: The <select> element's appearance, including the button, selected option, picker dropdown, and options, can be customized using CSS.
  • 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.
  • interactivity: The interactivity: inert CSS declaration makes an element and its descendants inert, like when using the inert HTML attribute. Inert elements can't be focused or clicked, their text can't be selected or found using the browser's find-in-page feature.
  • 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.

New in Chrome Android

The following features are now available in Chrome Android:

  • Customizable <select>: The <select> element's appearance, including the button, selected option, picker dropdown, and options, can be customized using CSS.
  • 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\\]".

New in Edge

The following features are now available in Edge:

  • Customizable <select>: The <select> element's appearance, including the button, selected option, picker dropdown, and options, can be customized using CSS.
  • 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.
  • interactivity: The interactivity: inert CSS declaration makes an element and its descendants inert, like when using the inert HTML attribute. Inert elements can't be focused or clicked, their text can't be selected or found using the browser's find-in-page feature.
  • 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.