📃 March 2024 release notes
Newly available
The following features are newly available:
-
AbortSignal.any():
The
AbortSignal.any()
static method combines an iterable of abort signals into a single signal, with the abort reason taken from the first signal to abort. -
Array grouping:
The
Object.groupBy()
andMap.groupBy()
static methods group values of arrays and iterables based on a function that returns a key for each value. -
checkVisibility():
The
checkVisibility()
method checks if an element is potentially visible, with optional parameters for the kinds of visibility to check. For example, it checks whether the element has the styledisplay: none
, but can also check forvisibility: hidden
. -
Promise.withResolvers():
The
Promise.withResolvers()
static method is an alternative to thePromise()
constructor that returns both the promise and resolution functions. You can use this to accessresolve
andreject
outside the scope of the executor function. -
text-wrap:
The
text-wrap
CSS property sets how lines break in text that overflows the container. It is a shorthand fortext-wrap-style
andtext-wrap-mode
. -
text-wrap: nowrap:
The
text-wrap: nowrap
CSS declaration prevents text breaking into multiple lines. Text that doesn't fit overflows instead. -
Transferable ArrayBuffer:
The
transfer()
andtransferToFixedLength()
methods ofArrayBuffer
move a buffer from one context to another (for example, to a worker). -
Extended constant expressions (WebAssembly):
The
i32.add
,i32.sub
,i32.mul
,i64.add
,i64.sub
, andi64.mul
operations extend constant expressions to include arithmetic. -
white-space-collapse:
The
white-space-collapse
CSS property sets whether new line characters are shown as line breaks, and whether multiple consecutive spaces are all displayed or combined.
Widely available
The following features are now widely available:
-
aspect-ratio:
The
aspect-ratio
CSS property controls the width-to-height ratio of elements. For<img>
and<video>
elements, thewidth
andheight
attributes used together withheight: auto
control the aspect ratio while the image/video is loading. -
BigInt64Array:
The
BigInt64Array
andBigUint64Array
typed arrays represent 64-bit integers, signed and unsigned respectively. -
Error cause:
The
cause
property of errors records the specific original cause of the error, particularly for errors that have been re-thrown. -
EXT_color_buffer_float WebGL extension:
The
EXT_color_buffer_float
extension for WebGL 2.0 contexts adds color-renderable floating point formats torenderbufferStorage()
. -
System font:
The
font-family: system-ui
CSS declaration uses the operating system default font for text. - IndexedDB: The IndexedDB API is a local storage transactional object database.
-
Logical properties:
CSS logical properties control borders, size, margin, and padding with directions and dimensions relative to the writing mode. For example, in a left to right, top to bottom writing mode,
block-end
refers to the bottom. Also known as flow relative. -
Referrer policy:
The
Referrer-Policy
HTTP header andreferrerpolicy
HTML attributes control whether requests have theReferer
header and what information the header contains. -
Top-level await:
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. - Web authentication: The web authentication API allows you to create public key-based credentials and use them for authentication, such as when signing in. Also known as WebAuthn.
-
WEBGL_color_buffer_float WebGL extension:
The
WEBGL_color_buffer_float
extension for WebGL 1.0 contexts adds the 32-bit floating-point typeRGBA32F
as a color-renderable format. -
WebGL2:
The
WebGL2RenderingContext
API is the"webgl2"
rendering context for the<canvas>
element. It represents a space for drawing two- and three-dimensional graphics and animations. It corresponds to OpenGL ES 3.0.
New in Chrome
The following features are now available in Chrome:
-
align-content in block layouts:
The
align-content
property vertically aligns content in block layouts, like it does in flex or grid layouts. - CSS import attributes: Module `import … with { type: "css" } statements load CSS modules as constructable stylesheets. Also known as CSS module scripts and formerly known as import assertions.
-
display-mode media query:
The
display-mode
CSS media query sets styles based on whether the web page is infullscreen
,standalone
,minimal-ui,
browser
, orpicture-in-picture
mode. -
field-sizing:
The
field-sizing
CSS property allows form controls such as<textarea>
to be sized based on their content. -
JSON import attributes:
Module
import … with { type: "json" }
statements load JSON data. Also known as JSON module scripts and formerly known as import assertions. -
light-dark():
The
light-dark()
CSS function accepts two colors and uses one depending on the current color scheme. -
Long animation frames:
The
long-animation-frame
performance event type and thePerformanceLongAnimationFrameTiming
API provide information about rendering updates that take longer than 50 milliseconds. Also known as LoAFs. -
paint-order:
The
paint-order
CSS property sets the z-order of strokes, fills, and (in SVG content) markers. For example,paint-order: markers stroke fill;
draws the markers, then stroke on top of markers, then fill on top of both markers and stroke. -
text-spacing-trim:
The
text-spacing-trim
CSS property controls spacing around CJK characters, avoiding excessive whitespace when using full-width punctuation characters. -
Zstandard compression:
Zstandard or
zstd
is fast lossless compression algorithm. When used as a content encoding, it is often faster and offers better compression than brotli.
New in Chrome Android
The following features are now available in Chrome Android:
-
align-content in block layouts:
The
align-content
property vertically aligns content in block layouts, like it does in flex or grid layouts. - CSS import attributes: Module `import … with { type: "css" } statements load CSS modules as constructable stylesheets. Also known as CSS module scripts and formerly known as import assertions.
-
field-sizing:
The
field-sizing
CSS property allows form controls such as<textarea>
to be sized based on their content. -
JSON import attributes:
Module
import … with { type: "json" }
statements load JSON data. Also known as JSON module scripts and formerly known as import assertions. -
light-dark():
The
light-dark()
CSS function accepts two colors and uses one depending on the current color scheme. -
Long animation frames:
The
long-animation-frame
performance event type and thePerformanceLongAnimationFrameTiming
API provide information about rendering updates that take longer than 50 milliseconds. Also known as LoAFs. -
paint-order:
The
paint-order
CSS property sets the z-order of strokes, fills, and (in SVG content) markers. For example,paint-order: markers stroke fill;
draws the markers, then stroke on top of markers, then fill on top of both markers and stroke. -
text-spacing-trim:
The
text-spacing-trim
CSS property controls spacing around CJK characters, avoiding excessive whitespace when using full-width punctuation characters. -
Zstandard compression:
Zstandard or
zstd
is fast lossless compression algorithm. When used as a content encoding, it is often faster and offers better compression than brotli.
New in Edge
The following features are now available in Edge:
-
align-content in block layouts:
The
align-content
property vertically aligns content in block layouts, like it does in flex or grid layouts. - CSS import attributes: Module `import … with { type: "css" } statements load CSS modules as constructable stylesheets. Also known as CSS module scripts and formerly known as import assertions.
-
display-mode media query:
The
display-mode
CSS media query sets styles based on whether the web page is infullscreen
,standalone
,minimal-ui,
browser
, orpicture-in-picture
mode. -
field-sizing:
The
field-sizing
CSS property allows form controls such as<textarea>
to be sized based on their content. -
JSON import attributes:
Module
import … with { type: "json" }
statements load JSON data. Also known as JSON module scripts and formerly known as import assertions. -
light-dark():
The
light-dark()
CSS function accepts two colors and uses one depending on the current color scheme. -
Long animation frames:
The
long-animation-frame
performance event type and thePerformanceLongAnimationFrameTiming
API provide information about rendering updates that take longer than 50 milliseconds. Also known as LoAFs. -
paint-order:
The
paint-order
CSS property sets the z-order of strokes, fills, and (in SVG content) markers. For example,paint-order: markers stroke fill;
draws the markers, then stroke on top of markers, then fill on top of both markers and stroke. -
text-spacing-trim:
The
text-spacing-trim
CSS property controls spacing around CJK characters, avoiding excessive whitespace when using full-width punctuation characters. -
Zstandard compression:
Zstandard or
zstd
is fast lossless compression algorithm. When used as a content encoding, it is often faster and offers better compression than brotli.
New in Firefox
The following features are now available in Firefox:
-
text-wrap-mode:
The
text-wrap-mode
CSS property sets whether lines may wrap with the valueswrap
andnowrap
. It is a longhand property for bothwhite-space
andtext-wrap
.
New in Firefox for Android
The following features are now available in Firefox for Android:
-
text-wrap-mode:
The
text-wrap-mode
CSS property sets whether lines may wrap with the valueswrap
andnowrap
. It is a longhand property for bothwhite-space
andtext-wrap
.
New in Safari
The following features are now available in Safari:
-
align-content in block layouts:
The
align-content
property vertically aligns content in block layouts, like it does in flex or grid layouts. -
Alt text for generated content:
The
/
notation incontent
CSS property values adds alternative text to generated content. For example, thecontent: url('upvote-icon.svg') / 'Upvote'
declaration adds accessible 'Upvote' text to the SVG icon. Also known as alternate text. -
Application shortcuts:
The
shortcuts
web app manifest member registers common actions of an installed web app with the device. The device can present these actions to the user in contextually appropriate locations, such as jump lists on Windows or the app launcher on Android. -
Unsanitized HTML parsing methods:
The
Document.parseHTMLUnsafe()
static method parses HTML into a DOM tree, while thesetHTMLUnsafe()
method ofElement
andShadowRoot
parses and inserts HTML into an existing tree. No sanitization applies to these methods, so never call them with user-provided HTML strings. -
@scope:
The
@scope
CSS at-rule sets the scope for a group of rules. -
showPicker() for <input>:
The
showPicker()
method for<input>
elements shows the user interface for picking a value. For example, for<input type="date">
it shows the interface for picking a date. -
::spelling-error and ::grammar-error:
The
::spelling-error
and::grammar-error
CSS pseudo-elements match text that is highlighted as misspelled and grammatically incorrect, respectively. -
:state():
The
:state()
CSS pseudo-class matches custom elements based on their custom state, set through theElementInternals.states
API. -
text-wrap-mode:
The
text-wrap-mode
CSS property sets whether lines may wrap with the valueswrap
andnowrap
. It is a longhand property for bothwhite-space
andtext-wrap
. -
transition-behavior:
The
transition-behavior: allow-discrete
CSS declaration allows transitions for properties whose animation behavior is discrete. Such properties can't be interpolated and swap from their start value to the end value at 50%. -
Vertical form controls:
The
writing-mode
CSS property orients form elements (such as radio buttons, progress bars, or select menus) vertically when the writing mode isvertical-lr
orvertical-rl
. Thedirection
CSS property sets whether inputs flow from top to bottom or bottom to top.
New in Safari on iOS
The following features are now available in Safari on iOS:
-
align-content in block layouts:
The
align-content
property vertically aligns content in block layouts, like it does in flex or grid layouts. -
Alt text for generated content:
The
/
notation incontent
CSS property values adds alternative text to generated content. For example, thecontent: url('upvote-icon.svg') / 'Upvote'
declaration adds accessible 'Upvote' text to the SVG icon. Also known as alternate text. -
Unsanitized HTML parsing methods:
The
Document.parseHTMLUnsafe()
static method parses HTML into a DOM tree, while thesetHTMLUnsafe()
method ofElement
andShadowRoot
parses and inserts HTML into an existing tree. No sanitization applies to these methods, so never call them with user-provided HTML strings. -
@scope:
The
@scope
CSS at-rule sets the scope for a group of rules. -
::spelling-error and ::grammar-error:
The
::spelling-error
and::grammar-error
CSS pseudo-elements match text that is highlighted as misspelled and grammatically incorrect, respectively. -
:state():
The
:state()
CSS pseudo-class matches custom elements based on their custom state, set through theElementInternals.states
API. -
text-wrap-mode:
The
text-wrap-mode
CSS property sets whether lines may wrap with the valueswrap
andnowrap
. It is a longhand property for bothwhite-space
andtext-wrap
. -
transition-behavior:
The
transition-behavior: allow-discrete
CSS declaration allows transitions for properties whose animation behavior is discrete. Such properties can't be interpolated and swap from their start value to the end value at 50%. -
Vertical form controls:
The
writing-mode
CSS property orients form elements (such as radio buttons, progress bars, or select menus) vertically when the writing mode isvertical-lr
orvertical-rl
. Thedirection
CSS property sets whether inputs flow from top to bottom or bottom to top.