📃 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
eventandfirst-inputperformance entries and thePerformanceEventTimingAPI 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. -
Invoker commands:
The
commandandcommandforattributes for the<button>HTML element dispatch an action to an element when the button is invoked (by click or keystroke), as a declarative alternative toaddEventListener()calls oronclickattribute handlers. -
Largest contentful paint (LCP):
The
largest-contentful-paintperformance entry and theLargestContentfulPaintAPI 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
@scopeCSS at-rule sets the scope for a group of rules. -
scrollbar-color:
The
scrollbar-colorCSS property sets the color of the scrollbar track and thumb. -
scrollend:
The
scrollendevent fires when an element or document has finished scrolling. -
Spelling and grammar text decorations:
The
text-decoration-line: spelling-errorandtext-decoration-line: grammar-errorCSS declarations apply the browser's marking for spelling and grammatical mistakes. This is typically a wavy underline in red or green.
Widely available
The following features are now widely available:
-
calc() keywords:
The
e,pi,infinity, andNaNkeywords represent well-defined constants accepted in CSS math functions such ascalc(). -
JavaScript modules in workers:
The
Worker()constructor accepts{ type: "module" }to load scripts that useimportandexport. 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-overrideCSS 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-overrideCSS 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-overrideCSS 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-sizingCSS property allows form controls such as<textarea>to be sized based on their content. -
Math font family:
The
font-family: mathCSS declaration uses the browser default font face for displaying mathematical expressions. -
Map getOrInsert():
The
getOrInsert()andgetOrInsertComputed()methods ofMapobjects 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 usingreduce()or a loop to add together an array of values. -
Navigation API:
The
navigationAPI initiates, intercepts, or modifies browser navigation actions. Not to be confused with thenavigatorAPI. -
random():
The
random()CSS function chooses a random numeric value within a specified range. This allows for dynamic, randomized styling using CSS. -
sibling-count() and sibling-index():
The
sibling-count()andsibling-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 acalc()expression. -
cross-origin() for url():
The
url()CSS function accepts across-origin()modifier to control cross-origin resource sharing (CORS) when requesting the URL. For example,url("https://example.com" cross-origin(anonymous))) does not send credentials to the URL. -
referrer-policy() for url():
The
url()CSS function accepts areferrer-policy()modifier to choose which referrer to send when requesting the URL. For example, `url("https://example.com" referrer-policy(no-referrer)) does not send a referrer to the URL.
New in Safari on iOS
The following features are now available in Safari on iOS:
-
field-sizing:
The
field-sizingCSS property allows form controls such as<textarea>to be sized based on their content. -
Math font family:
The
font-family: mathCSS declaration uses the browser default font face for displaying mathematical expressions. -
Map getOrInsert():
The
getOrInsert()andgetOrInsertComputed()methods ofMapobjects 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 usingreduce()or a loop to add together an array of values. -
Navigation API:
The
navigationAPI initiates, intercepts, or modifies browser navigation actions. Not to be confused with thenavigatorAPI. -
random():
The
random()CSS function chooses a random numeric value within a specified range. This allows for dynamic, randomized styling using CSS. -
sibling-count() and sibling-index():
The
sibling-count()andsibling-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 acalc()expression. -
cross-origin() for url():
The
url()CSS function accepts across-origin()modifier to control cross-origin resource sharing (CORS) when requesting the URL. For example,url("https://example.com" cross-origin(anonymous))) does not send credentials to the URL. -
referrer-policy() for url():
The
url()CSS function accepts areferrer-policy()modifier to choose which referrer to send when requesting the URL. For example, `url("https://example.com" referrer-policy(no-referrer)) does not send a referrer to the URL.