2026
13 featuresThe text-indent: hanging CSS declaration indents all lines except the first.
Branch hints in WebAssembly allows a browser to optimize performance when a branch is a likely to take a specific path.
Trusted types allow you to lock down insecure parts of the DOM API and prevent client-side cross-site scripting (XSS) attacks.
The shape() CSS function creates shapes with a series of commands like line, move, and curve. It can be used with clip-path and shape-outside.
The getOrInsert() and getOrInsertComputed() methods of Map objects get a value, setting and getting a default value if needed.
Zstandard or zstd is a fast lossless compression algorithm. When used as a content encoding, it is often faster and offers better compression than brotli.
The :active-view-transition CSS pseudo-class matches the root element when a view transition is active. The :active-view-transition-type() CSS pseudo-class matches only when the active view transition was started with the specified type.
The navigator.serviceWorker.register() method accepts { type: "module" } to load scripts that use import and export. Also known as ECMAScript modules or ESM in service workers.
2025
17 featuresAn event or first-input performance entry 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.
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.
A largest-contentful-paint performance entry 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.
The text-decoration-line: spelling-error and text-decoration-line: grammar-error CSS declarations apply the browser's marking for spelling and grammatical mistakes. This is typically a wavy underline in red or green.
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.
The scrollbar-color CSS property sets the color of the scrollbar track and thumb.
The Atomics.waitAsync() static method waits for a value in a shared memory location, providing a promise when the expected value is not yet in memory. The waitAsync() method is a non-blocking alternative to Atomics.wait().
View transitions allow you to create animated visual transitions between different states of a document.
The view-transition-class CSS property sets a name that can be used to apply styles to multiple named view transition pseudo-elements.
The WebRTC encoded transform API allows you to modify audio and video streams in WebRTC connections. For example, it can be used for visual effects or custom codecs.
The ::details-content pseudo-element selects the expandable content of a <details> element, excluding the <summary>.
The rel="dns-prefetch" attribute for the <link> HTML element is a hint to the browser that the page or user is likely to request resources from another domain, so the browser should preemptively resolve DNS for the href value's domain.
The URLPattern API creates patterns that can be matched against URLs or URL components.
The Document.parseHTMLUnsafe() static method parses HTML into a DOM tree, much like the setHTMLUnsafe() DOM method inserts HTML into an existing tree. No sanitization applies, so never call it with user-provided strings.
The content-visibility CSS property delays rendering an element, including layout and painting, until it is needed.
The static Uint8Array.fromBase64() method and the Uint8Array instance methods toBase64() and setFromBase64() convert to and from base64 strings. Similarly, the static Uint8Array.fromHex() method and the instance methods toHex() and setFromHex() convert to and from hex strings.