📃 May 2026 release notes
Newly available
The following features are newly available:
-
Container style queries:
Container style queries with the
@containerat-rule apply styles to an element based on the values of custom properties of its container. -
crisp-edges:
The
image-rendering: crisp-edgesCSS declaration scales images to preserve lines without blurring. -
JavaScript modules in shared workers:
The
SharedWorker()constructor accepts{ type: "module" }to load scripts that useimportandexport. Also known as ECMAScript modules or ESM in shared workers. -
:open:
The
:openCSS pseudo-class matches elements that have open states, like<details>,<dialog>, or<select>, based on their state. -
Shared worker:
The
SharedWorker()constructor runs a script in its own thread, which can send and receive messages with other scripts running at the same origin. -
text-decoration-skip-ink: all:
The
text-decoration-skip-ink: allCSS declaration forces interruptions in underlines and overlines where the line would cross a glyph. This contrasts withauto, which does not skip for CJK glyphs. -
ToggleEvent source:
The
sourceproperty of aToggleEventobject is the element which triggered thetoggleevent to fire for a popover,<dialog>, or<details>element, if applicable.
Widely available
The following features are now widely available:
-
Clip path boxes:
The
fill-box,stroke-box, andview-boxvalues forclip-pathset an edge of the element's box to use as the clipping shape. -
lh unit:
The
lhCSS length unit corresponds to the requested line height, the computed value of theline-heightproperty. Some lines may be higher than this based on their content. -
rlh unit:
The
rlhCSS length unit is a font-relative length relative to the line height of root element. -
User activation:
The
navigator.userActivationAPI reveals whether the user has interacted with the page through an "activation" gesture such as a click, tap, or key press. User activation gated APIs (such as the fullscreen API) fail without user interaction, and this API allows you to predict such a failure. -
:user-valid and :user-invalid:
The
:user-validand:user-invalidpseudo-classes match form controls that have been marked as valid or invalid based on their validation constraints.
New in Chrome
The following features are now available in Chrome:
-
LanguageModel:
The
LanguageModelAPI prompts an on-device language model. Also known as the Prompt API.
New in Edge
The following features are now available in Edge:
-
LanguageModel:
The
LanguageModelAPI prompts an on-device language model. Also known as the Prompt API.
New in Firefox
The following features are now available in Firefox:
- Document picture-in-picture: The document picture-in-picture API creates an always-on-top window from arbitrary HTML content.
-
Web serial:
The
navigator.serialAPI communicates with devices over serial ports, such as microcontrollers.
New in Safari
The following features are now available in Safari:
-
Hanging punctuation:
The
hanging-punctuationCSS property puts punctuation characters outside of the box to align the text with the rest of the document. -
Origin:
An
Originobject represents an origin, as in a scheme, hostname, and port. You can use it to make same-site and same-origin comparisons.
New in Safari on iOS
The following features are now available in Safari on iOS:
-
Hanging punctuation:
The
hanging-punctuationCSS property puts punctuation characters outside of the box to align the text with the rest of the document. -
Origin:
An
Originobject represents an origin, as in a scheme, hostname, and port. You can use it to make same-site and same-origin comparisons.