2026
30 featuresThe revert-rule CSS keyword resets a property to its previous value in the cascade, as if the current style rule had not been present. It's especially useful with conditionals, to cancel a declaration when the condition is not met.
The animation property of an AnimationEvent or TransitionEvent object is the Animation object that represents the animation (and thus the element) that fired an animation event.
The ariaNotify() method of Element and Document requests assistive technology software, if activated, to announce a message to the user. This can help make dynamic content changes more accessible to users.
The alpha() CSS function computes a relative color value by adjusting the opacity of an origin color.
The light-dark() CSS function accepts, in addition to colors, two <image> values, such as a gradient or URL, and uses one depending on the current color scheme.
The JavaScript promise integration (JSPI) suspends a WebAssembly module when it calls a JavaScript method that returns a promise. The module resumes when the promise is resolved. You can use this to call asynchronous Web APIs from synchronous WebAssembly.
The await keyword, when used at the top level of a module (outside of an async function), delays parent module execution until after a promise fulfills.
The overflow-anchor CSS property sets an element as a possible scroll anchor, reducing unintended scrolling when document changes occur above the current scrollport. This is enabled by default where supported.
Asynchronous iteration of a stream allows you to use for await … of loops to iterate through a stream's incoming data.
The autocorrect global HTML attribute controls whether to automatically correct spelling or punctuation errors for user input.
The progress() CSS function returns a ratio for the relative position of one value between two other values, clamped between 0 and 1. You can use it to interpolate a value for other calculations.
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.
The getter methods of the Intl.Locale API provide supplemental information about a Unicode locale, such as the locale's calendar (for example, the first day in a week or the weekend start day), writing direction, 12- or 24-hour cycles, and numbering system.
The field-sizing CSS property allows form controls such as <textarea> to be sized based on their content.
Container style queries with the @container at-rule apply styles to an element based on the values of custom properties of its container.
The source property of a ToggleEvent object is the element which triggered the toggle event to fire for a popover, <dialog>, or <details> element, if applicable.
The :open CSS pseudo-class matches elements that have open states, like <details>, <dialog>, or <select>, based on their state.
Name-only container queries with the @container … at-rule apply styles to an element based on the name of the element's container alone.
The text-decoration-skip-ink: all CSS declaration forces interruptions in underlines and overlines where the line would cross a glyph. This contrasts with auto, which does not skip for CJK glyphs.
The image-rendering: crisp-edges CSS declaration scales images to preserve lines without blurring.
The contrast-color() CSS function picks a color that has guaranteed contrast against a specified foreground or background color.
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.
The @scope CSS at-rule sets the scope for a group of rules.
The baseline-shift CSS property sets the position of an element relative to its dominant baseline.
CSP violation reporting sends a report to a URL nominated by the Reporting-Endpoints header or the ReportingObserver API when a page violates its content security policy.
Custom highlights style arbitrary text ranges, without adding extra elements to the DOM.
The Iterator.concat() JavaScript method returns an iterator that yields values from a sequence of iterators, exhausting each iterator before moving on to the next.
A ReadableStream constructed with { type: "bytes" } reads bytes from a stream without making extra copies, improving efficiency for streams of large chunks. Also known as BYOB or bring your own buffer.