Web platform features explorer

📃 December 2025 release notes

Newly available

The following features are newly available:

  • document.caretPositionFromPoint(): The document.caretPositionFromPoint() method finds an insertion point, represented by a DOM node and an offset within that node, for given coordinates in the viewport.
  • Event timing: The event and first-input performance entries and the PerformanceEventTiming API measures the latency of user input events, such as mouse clicks or keypresses. They're used to calculate Interaction to Next Paint (INP), a common metric for perceived responsiveness.
  • Largest contentful paint (LCP): The largest-contentful-paint performance entry and the LargestContentfulPaint API measures the time it takes for the largest image or text to appear. Largest contentful paint (LCP) is a common metric for perceived loading times.
  • @scope: The @scope CSS at-rule sets the scope for a group of rules.
  • scrollbar-color: The scrollbar-color CSS property sets the color of the scrollbar track and thumb.
  • scrollend: The scrollend event fires when an element or document has finished scrolling.

Widely available

The following features are now widely available:

  • calc() keywords: The e, pi, infinity, and NaN keywords represent well-defined constants accepted in CSS math functions such as calc().
  • JavaScript modules in workers: The Worker() constructor accepts { type: "module" } to load scripts that use import and export. Also known as ECMAScript modules or ESM in workers.
  • window.print(): The window.print() method opens the browser's print dialog.

New in Chrome

The following features are now available in Chrome:

  • Anchor position container queries: Anchor position container queries with the @container anchored(fallback: …) at-rule apply styles to an element based on the element's anchor position.
  • font-language-override: The font-language-override CSS property sets which language-specific glyphs are displayed.

New in Chrome Android

The following features are now available in Chrome Android:

  • Anchor position container queries: Anchor position container queries with the @container anchored(fallback: …) at-rule apply styles to an element based on the element's anchor position.
  • font-language-override: The font-language-override CSS property sets which language-specific glyphs are displayed.

New in Edge

The following features are now available in Edge:

  • Anchor position container queries: Anchor position container queries with the @container anchored(fallback: …) at-rule apply styles to an element based on the element's anchor position.
  • font-language-override: The font-language-override CSS property sets which language-specific glyphs are displayed.

New in Firefox

The following features are now available in Firefox:

  • contrast-color(): The contrast-color() CSS function picks a color that has guaranteed contrast against a specified foreground or background color.
  • Relaxed-width SIMD (WebAssembly): Relaxed SIMD (Single Instruction Multiple Data) introduces local non-determinism, where the results of the instructions may vary based on hardware support.

New in Firefox for Android

The following features are now available in Firefox for Android:

  • contrast-color(): The contrast-color() CSS function picks a color that has guaranteed contrast against a specified foreground or background color.
  • Relaxed-width SIMD (WebAssembly): Relaxed SIMD (Single Instruction Multiple Data) introduces local non-determinism, where the results of the instructions may vary based on hardware support.

New in Safari

The following features are now available in Safari:

  • field-sizing: The field-sizing CSS property allows form controls such as <textarea> to be sized based on their content.
  • Map getOrInsert(): The getOrInsert() and getOrInsertComputed() methods of Map objects get a value, setting and getting a default value if needed.
  • 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.
  • Navigation API: The navigation API initiates, intercepts, or modifies browser navigation actions. Not to be confused with the navigator API.
  • sibling-count() and sibling-index(): The sibling-count() and sibling-index() CSS functions return integers that are useful to style elements based on their positions among siblings or on the number of siblings, for example as part of a calc() expression.

New in Safari on iOS

The following features are now available in Safari on iOS:

  • field-sizing: The field-sizing CSS property allows form controls such as <textarea> to be sized based on their content.
  • Map getOrInsert(): The getOrInsert() and getOrInsertComputed() methods of Map objects get a value, setting and getting a default value if needed.
  • 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.
  • Navigation API: The navigation API initiates, intercepts, or modifies browser navigation actions. Not to be confused with the navigator API.
  • sibling-count() and sibling-index(): The sibling-count() and sibling-index() CSS functions return integers that are useful to style elements based on their positions among siblings or on the number of siblings, for example as part of a calc() expression.