Web platform features explorer

📃 March 2025 release notes

Newly available

The following features are newly available:

  • ClipboardItem.supports(): The ClipboardItem.supports() static method checks if the browser supports writing data types such as "image/svg+xml" or other custom formats to the system clipboard.
  • contenteditable="plaintext-only": The contenteditable="plaintext-only" global HTML attribute allows the user to edit the content of an element, but prevents rich-text formatting.
  • Intl.DurationFormat: The Intl.DurationFormat API creates a locale-aware formatter that turns an object representing a duration (such as days, hours, and minutes) into a string.
  • Screen wake lock: The navigator.wakeLock.request("screen") API prevents the device's screen from dimming or being turned off.

Widely available

The following features are now widely available:

  • Inline-size containment: The contain: inline-size CSS declaration prevents the element's inline dimension from being set by the element's contents. This permits the browser to avoid slower layout calculations.
  • Forced colors: The forced-colors CSS @media rule detects when a user has chosen to use a forced colors mode, also known as high-contrast mode, and the forced-color-adjust CSS property sets whether forced colors apply to an element.
  • :modal: The :modal pseudo-class selects elements that put other elements into a non-interactive state, such as a fullscreen element or a <dialog> element used with showModal().
  • Motion path: The offset CSS property animates an element along a defined motion path.
  • overflow: clip: The overflow: clip CSS declaration clips an element's overflowing content to the box that's defined by the overflow-clip-margin property. Unlike overflow: hidden, it allows you to hide overflow on one axis while keeping overflow on the other axis visible.
  • overscroll-behavior: The overscroll-behavior CSS property disables default scrolling behaviors when the edges of a scrolling area are reached.
  • Permissions: The navigator.permissions API checks whether a permission, such as access to geolocation data, has been granted.
  • resolution media query: The resolution CSS media query sets styles based on the pixel density, or how many pixels a device uses to display a single CSS pixel.
  • text-align-last: The text-align-last CSS property sets the alignment of the last line of text before a forced line break.

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.
  • :has-slotted: The :has-slotted CSS pseudo-class matches <slot> elements where the fallback content is not shown. The pseudo-class matches any slotted content, including white space, text nodes, or elements.
  • Error.isError(): The Error.isError() static method checks whether a value is an Error object.
  • <meta name="application-title">: The name="application-title" attribute for the <meta> HTML element sets an installed web application's title bar text.
  • dialog.requestClose(): The requestClose() method of a <dialog> HTML element closes the dialog, firing a cancel event first, which listeners can use to prevent the dialog from closing. This differs from the close() method, which only fires the non-cancelable close event.
  • Shared storage locks: The withLock option to set(), append(), delete(), clear(), and batchUpdate() methods of the sharedStorage API prevents duplicate reporting from cross-site race conditions.

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.
  • :has-slotted: The :has-slotted CSS pseudo-class matches <slot> elements where the fallback content is not shown. The pseudo-class matches any slotted content, including white space, text nodes, or elements.
  • Error.isError(): The Error.isError() static method checks whether a value is an Error object.
  • <meta name="application-title">: The name="application-title" attribute for the <meta> HTML element sets an installed web application's title bar text.
  • dialog.requestClose(): The requestClose() method of a <dialog> HTML element closes the dialog, firing a cancel event first, which listeners can use to prevent the dialog from closing. This differs from the close() method, which only fires the non-cancelable close event.
  • Shared storage locks: The withLock option to set(), append(), delete(), clear(), and batchUpdate() methods of the sharedStorage API prevents duplicate reporting from cross-site race conditions.

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.
  • :has-slotted: The :has-slotted CSS pseudo-class matches <slot> elements where the fallback content is not shown. The pseudo-class matches any slotted content, including white space, text nodes, or elements.
  • Error.isError(): The Error.isError() static method checks whether a value is an Error object.
  • <meta name="application-title">: The name="application-title" attribute for the <meta> HTML element sets an installed web application's title bar text.
  • dialog.requestClose(): The requestClose() method of a <dialog> HTML element closes the dialog, firing a cancel event first, which listeners can use to prevent the dialog from closing. This differs from the close() method, which only fires the non-cancelable close event.
  • Shared storage locks: The withLock option to set(), append(), delete(), clear(), and batchUpdate() methods of the sharedStorage API prevents duplicate reporting from cross-site race conditions.

New in Firefox

The following features are now available in Firefox:

  • autocorrect: The autocorrect global HTML attribute controls whether to automatically correct spelling or punctuation errors for user input.
  • :has-slotted: The :has-slotted CSS pseudo-class matches <slot> elements where the fallback content is not shown. The pseudo-class matches any slotted content, including white space, text nodes, or elements.
  • 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.

New in Firefox for Android

The following features are now available in Firefox for Android:

  • autocorrect: The autocorrect global HTML attribute controls whether to automatically correct spelling or punctuation errors for user input.
  • :has-slotted: The :has-slotted CSS pseudo-class matches <slot> elements where the fallback content is not shown. The pseudo-class matches any slotted content, including white space, text nodes, or elements.
  • 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.

New in Safari

The following features are now available in Safari:

  • 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.
  • ::details-content: The ::details-content pseudo-element selects the expandable content of a <details> element, excluding the <summary>.
  • font-width: The font-width CSS property selects a font face from a font family based on width, either by a keyword such as condensed or a percentage.
  • Partitioned cookies: Partitioned cookies allow you to opt a cookie into partitioned storage, with a separate cookie jar per top-level site. Also known as Cookies Having Independent Partitioned State or CHIPS.
  • dialog.requestClose(): The requestClose() method of a <dialog> HTML element closes the dialog, firing a cancel event first, which listeners can use to prevent the dialog from closing. This differs from the close() method, which only fires the non-cancelable close event.
  • text-autospace: The text-autospace CSS property sets whether and how to insert spaces in inter-script text (such as when mixing Latin and Chinese characters) and around punctuation.
  • Exception references with exnref (WebAssembly): When caught, an exception is reified into an exception reference, a value of the new type exnref.

New in Safari on iOS

The following features are now available in Safari on iOS:

  • 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.
  • ::details-content: The ::details-content pseudo-element selects the expandable content of a <details> element, excluding the <summary>.
  • Partitioned cookies: Partitioned cookies allow you to opt a cookie into partitioned storage, with a separate cookie jar per top-level site. Also known as Cookies Having Independent Partitioned State or CHIPS.
  • dialog.requestClose(): The requestClose() method of a <dialog> HTML element closes the dialog, firing a cancel event first, which listeners can use to prevent the dialog from closing. This differs from the close() method, which only fires the non-cancelable close event.
  • Exception references with exnref (WebAssembly): When caught, an exception is reified into an exception reference, a value of the new type exnref.