+ Chrome Android
+
+
+ 66
+ Released on 2018-04-17
+
+
+
+
+ Edge
+
+
+ 16
+ Released on 2017-10-17
+
+
+
+
+ Firefox
+
+
+ 57
+ Released on 2017-11-14
+
+
+
+
+ Firefox for Android
+
+
+ 57
+ Released on 2017-11-28
+
+
+
+
+ Safari
+
+
+ 12.1
+ Released on 2019-03-25
+
+
+
+
+ Safari on iOS
+
+
+ 12.2
+ Released on 2019-03-25
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2024-03-19 (baseline low)
+
+
+
+
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.
+ Chrome Android
+
+
+ 112
+ Released on 2023-04-04
+
+
+
+
+ Edge
+
+
+ 112
+ Released on 2023-04-06
+
+
+
+
+ Firefox
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Firefox for Android
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Safari
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+ Safari on iOS
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-03-14 (baseline low)
+
+
+
+
appearance
+
The appearance CSS property controls the appearance of form controls. Using appearance: none disables any default native appearance and allows the elements to be styled with CSS.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 1
+ Released on 2004-11-09
+
+
+
+
+ Firefox for Android
+
+
+ 4
+ Released on 2011-03-29
+
+
+
+
+ Safari
+
+
+ 1
+ Released on 2003-06-23
+
+
+
+
+ Safari on iOS
+
+
+ 1
+ Released on 2007-06-29
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-03-14 (baseline low)
+
+
+
+
Array at()
+
The at() method of arrays and typed arrays returns the item at an index, including negative indices for getting items relative to the end of an array. Also known as the relative indexing method.
+ Chrome Android
+
+
+ 92
+ Released on 2021-07-20
+
+
+
+
+ Edge
+
+
+ 92
+ Released on 2021-07-22
+
+
+
+
+ Firefox
+
+
+ 90
+ Released on 2021-07-13
+
+
+
+
+ Firefox for Android
+
+
+ 90
+ Released on 2021-07-13
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-07-04 (baseline low)
+
+
+
+
Array by copy
+
The toReserved(), toSorted(), toSpliced(), and with() methods of arrays and typed arrays return changed copies of arrays. They stand in contrast to methods such as sort() or reverse() that change arrays in place.
+ Chrome Android
+
+
+ 45
+ Released on 2015-09-01
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 25
+ Released on 2013-10-29
+
+
+
+
+ Firefox for Android
+
+
+ 4
+ Released on 2011-03-29
+
+
+
+
+ Safari
+
+
+ 8
+ Released on 2014-10-16
+
+
+
+
+ Safari on iOS
+
+
+ 8
+ Released on 2014-09-17
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-08-23 (baseline low)
+
+
+
+
Array findLast() and findLastIndex()
+
The findLast() and findLastIndex() methods of arrays and typed arrays search an array in reverse order for the first item that satisfies a test function.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 1
+ Released on 2004-11-09
+
+
+
+
+ Firefox for Android
+
+
+ 4
+ Released on 2011-03-29
+
+
+
+
+ Safari
+
+
+ 1
+ Released on 2003-06-23
+
+
+
+
+ Safari on iOS
+
+
+ 1
+ Released on 2007-06-29
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2024-03-20 (baseline high)
+
+
+
aspect-ratio
+
The aspect-ratio CSS property controls the width-to-height ratio of elements. For <img> and <video> elements, the width and height attributes used together with height: auto control the aspect ratio while the image/video is loading.
The navigator.audioSession API controls how audio playback interacts with other applications. For example, playing music can pause audio from other applications, while ambient audio can play at the same time.
+ Chrome Android
+
+
+ 74
+ Released on 2019-04-24
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
baseline-source
+
The baseline-source CSS property controls how inline-level boxes with multiple lines of text are aligned with the surrounding text. By default, which typographic baseline is used depends on the display property value.
+ Chrome Android
+
+
+ 67
+ Released on 2018-05-31
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 68
+ Released on 2019-07-09
+
+
+
+
+ Firefox for Android
+
+
+ 68
+ Released on 2019-07-09
+
+
+
+
+ Safari
+
+
+ 14
+ Released on 2020-09-16
+
+
+
+
+ Safari on iOS
+
+
+ 14
+ Released on 2020-09-16
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
blocking="render"
+
The blocking="render" attribute for <link>, <script>, and <style> elements blocks rendering until the external script or stylesheet has been loaded. For <link rel="expect">, rendering is blocked until a specific element is in the DOM.
+ Chrome Android
+
+
+ 99
+ Released on 2022-03-01
+
+
+
+
+ Edge
+
+
+ 99
+ Released on 2022-03-03
+
+
+
+
+ Firefox
+
+
+ 112
+ Released on 2023-04-11
+
+
+
+
+ Firefox for Android
+
+
+ 112
+ Released on 2023-04-11
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-01-29 (baseline high)
+
+
+
Canvas text metrics
+
The fillText() and strokeText() methods draw text to a 2D canvas. The measureText() method measures the width and other metrics which can be used to position the text.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 3.5
+ Released on 2009-06-30
+
+
+
+
+ Firefox for Android
+
+
+ 31
+ Released on 2014-07-22
+
+
+
+
+ Safari
+
+
+ 4
+ Released on 2009-06-08
+
+
+
+
+ Safari on iOS
+
+
+ 3.2
+ Released on 2010-04-03
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-10-13 (baseline low)
+
+
+
+
Canvas text baselines
+
The alphabeticBaseline, hangingBaseline, and ideographicBaseline canvas text metrics measure the distance from the used textBaseline to the respective typographic baseline.
+ Chrome Android
+
+
+ 117
+ Released on 2023-09-12
+
+
+
+
+ Edge
+
+
+ 117
+ Released on 2023-09-15
+
+
+
+
+ Firefox
+
+
+ 97
+ Released on 2022-02-08
+
+
+
+
+ Firefox for Android
+
+
+ 97
+ Released on 2022-02-08
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-03-14 (baseline low)
+
+
+
+
Cascade layers
+
The @layer CSS at-rule avoids specificity conflicts by providing priority levels for different groups of CSS rules, such as low-priority styles like resets, and high-priority styles like UI components.
+ Chrome Android
+
+
+ 99
+ Released on 2022-03-01
+
+
+
+
+ Edge
+
+
+ 99
+ Released on 2022-03-03
+
+
+
+
+ Firefox
+
+
+ 97
+ Released on 2022-02-08
+
+
+
+
+ Firefox for Android
+
+
+ 97
+ Released on 2022-02-08
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2024-03-05 (baseline low)
+
+
+
+
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 style display: none, but can also check for visibility: hidden.
+ Chrome Android
+
+
+ 42
+ Released on 2015-04-15
+
+
+
+
+ Edge
+
+
+ 13
+ Released on 2015-11-12
+
+
+
+
+ Firefox
+
+
+ 45
+ Released on 2016-03-08
+
+
+
+
+ Firefox for Android
+
+
+ 45
+ Released on 2016-03-08
+
+
+
+
+ Safari
+
+
+ 10.1
+ Released on 2017-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 10.3
+ Released on 2017-03-27
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
ClipboardItem.supports()
+
The ClipboardItem.supports() static method checks if the browser supports writing data types such as "image/svg+xml" or other custom formats to the system clipboard.
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
color()
+
The color() function defines a color within a given color space. Wide gamut color spaces like display-p3 allow showing more vibrant and saturated colors than the standard srgb color space.
+ Chrome Android
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Edge
+
+
+ 111
+ Released on 2023-03-13
+
+
+
+
+ Firefox
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
color-mix()
+
The color-mix() function mixes two colors in a given color space and by a given amount. Commonly, lighter or darker variations of a color are created by mixing with white or black.
+ Chrome Android
+
+
+ 98
+ Released on 2022-02-01
+
+
+
+
+ Edge
+
+
+ 98
+ Released on 2022-02-03
+
+
+
+
+ Firefox
+
+
+ 107
+ Released on 2022-11-15
+
+
+
+
+ Firefox for Android
+
+
+ 107
+ Released on 2022-11-15
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Column breaks
+
In columnar layouts (created by the columns or column-count CSS properties), the break-after, break-before, break-inside properties control where columns start or end.
+ Chrome Android
+
+
+ 80
+ Released on 2020-02-04
+
+
+
+
+ Edge
+
+
+ 80
+ Released on 2020-02-07
+
+
+
+
+ Firefox
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
CPU compute pressure
+
The PressureObserver API monitors CPU load, allowing you to adjust workloads in response to available computing resources. Also known as the Compute Pressure API.
+ Chrome Android
+
+
+ 73
+ Released on 2019-03-12
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 101
+ Released on 2022-05-31
+
+
+
+
+ Firefox for Android
+
+
+ 101
+ Released on 2022-05-31
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-09-18 (baseline low)
+
+
+
+
contain-intrinsic-size
+
The contain-intrinsic-size CSS property sets the intrinsic size of an element. When using size containment, the browser will layout the element as if it had a single child of this size.
+ Chrome Android
+
+
+ 108
+ Released on 2022-11-29
+
+
+
+
+ Edge
+
+
+ 108
+ Released on 2022-12-05
+
+
+
+
+ Firefox
+
+
+ 125
+ Released on 2024-04-16
+
+
+
+
+ Firefox for Android
+
+
+ 125
+ Released on 2024-04-16
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
controlslist
+
The controlslist attribute for <audio> or <video> hides parts of the browser's built-in controls. For example, controlslist="nofullscreen" removes the button to play the video in fullscreen.
+ Chrome Android
+
+
+ 85
+ Released on 2020-08-25
+
+
+
+
+ Edge
+
+
+ 85
+ Released on 2020-08-27
+
+
+
+
+ Firefox
+
+
+ 68
+ Released on 2019-07-09
+
+
+
+
+ Firefox for Android
+
+
+ 68
+ Released on 2019-07-09
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-09-18 (baseline low)
+
+
+
+
@counter-style
+
The @counter-style CSS at-rule defines custom counter styles for list items. For example, you can use a sequence of specific symbols instead of numbers for an ordered list.
+ Chrome Android
+
+
+ 91
+ Released on 2021-05-25
+
+
+
+
+ Edge
+
+
+ 91
+ Released on 2021-05-27
+
+
+
+
+ Firefox
+
+
+ 33
+ Released on 2014-10-14
+
+
+
+
+ Firefox for Android
+
+
+ 33
+ Released on 2014-10-14
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
CSS module scripts
+
CSS module scripts allow CSS code to be organized into reusable units. Other modules use import ... with {type: "css"} to load CSS modules as constructable stylesheets.
+ Chrome Android
+
+
+ 123
+ Released on 2024-03-19
+
+
+
+
+ Edge
+
+
+ 123
+ Released on 2024-03-22
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2019-10-05 (baseline high)
+
+
+
Custom properties
+
Custom properties are CSS properties prefixed with -- that set values you can reuse with the var() function. For example, you can set a --key-color property to reuse as border-color: var(--key-color). Also known as CSS variables.
The <datalist> element defines a set of recommended values for an <input> element. Browsers may show a dropdown menu of all options, or matching options as the user types.
+ Chrome Android
+
+
+ 69
+ Released on 2018-09-04
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 110
+ Released on 2023-02-14
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 12.1
+ Released on 2019-03-25
+
+
+
+
+ Safari on iOS
+
+
+ 12.2
+ Released on 2019-03-25
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2024-02-20 (baseline low)
+
+
+
+
Declarative shadow DOM
+
The shadowrootmode attribute on <template> creates a shadow root without the use of JavaScript. It is a declarative alternative to the attachShadow() method.
+ Chrome Android
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Edge
+
+
+ 111
+ Released on 2023-03-13
+
+
+
+
+ Firefox
+
+
+ 123
+ Released on 2024-02-20
+
+
+
+
+ Firefox for Android
+
+
+ 123
+ Released on 2024-02-20
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2022-07-15 (baseline high)
+
+
+
:default
+
The :default CSS pseudo-class matches the default element in a group of related form controls, such as checkboxes and radio buttons with the checked attribute.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 4
+ Released on 2011-03-22
+
+
+
+
+ Firefox for Android
+
+
+ 4
+ Released on 2011-03-29
+
+
+
+
+ Safari
+
+
+ 5
+ Released on 2010-06-07
+
+
+
+
+ Safari on iOS
+
+
+ 5
+ Released on 2011-10-12
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2022-07-15 (baseline high)
+
+
+
<details>
+
The <details> element is a disclosure widget which can be expanded to reveal additional content. When closed, only the nested <summary> element is visible.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 49
+ Released on 2016-09-20
+
+
+
+
+ Firefox for Android
+
+
+ 49
+ Released on 2016-09-20
+
+
+
+
+ Safari
+
+
+ 6
+ Released on 2012-07-25
+
+
+
+
+ Safari on iOS
+
+
+ 6
+ Released on 2012-09-10
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Mutually exclusive <details> elements
+
Multiple <details> elements which use the same name attribute are mutually exclusive. When one member of the group is opened, all other members are closed.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 116
+ Released on 2023-08-01
+
+
+
+
+ Firefox for Android
+
+
+ 116
+ Released on 2023-08-01
+
+
+
+
+ Safari
+
+
+ 6
+ Released on 2012-07-25
+
+
+
+
+ Safari on iOS
+
+
+ 6
+ Released on 2012-09-10
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
display animation
+
You can animate elements between display: none and any other display value or animate between content-visibility: hidden and any other content-visibility value. This also applies to transitions.
The EditContext API allows you to build rich text editors that support advanced text input, such as Input Method Editor (IME) composition, an emoji picker, or other platform-specific editing UI.
+ Chrome Android
+
+
+ 42
+ Released on 2015-04-15
+
+
+
+
+ Edge
+
+
+ 14
+ Released on 2016-08-02
+
+
+
+
+ Firefox
+
+
+ 39
+ Released on 2015-07-02
+
+
+
+
+ Firefox for Android
+
+
+ 39
+ Released on 2015-07-02
+
+
+
+
+ Safari
+
+
+ 10.1
+ Released on 2017-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 10.3
+ Released on 2017-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Fetch metadata request headers
+
The Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site, and Sec-Fetch-User` HTTP headers provide extra information about the way a request was made, to help servers reject certain kinds of malicious requests.
+ Chrome Android
+
+
+ 80
+ Released on 2020-02-04
+
+
+
+
+ Edge
+
+
+ 80
+ Released on 2020-02-07
+
+
+
+
+ Firefox
+
+
+ 90
+ Released on 2021-07-13
+
+
+
+
+ Firefox for Android
+
+
+ 90
+ Released on 2021-07-13
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Fetch priority
+
The fetch()priority option and the fetchPriority HTML attribute give hints to the browser about which requests to do before other requests of the same type.
+ Chrome Android
+
+
+ 84
+ Released on 2020-07-27
+
+
+
+
+ Edge
+
+
+ 84
+ Released on 2020-07-16
+
+
+
+
+ Firefox
+
+
+ 63
+ Released on 2018-10-23
+
+
+
+
+ Firefox for Android
+
+
+ 63
+ Released on 2018-10-23
+
+
+
+
+ Safari
+
+
+ 14.1
+ Released on 2021-04-26
+
+
+
+
+ Safari on iOS
+
+
+ 14.5
+ Released on 2021-04-26
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-03-14 (baseline low)
+
+
+
+
:focus-visible
+
The :focus-visible CSS pseudo-class selects elements that match the :focus pseudo-class and meets the browser's criteria for visually emphasizing focused elements.
+ Chrome Android
+
+
+ 121
+ Released on 2024-01-23
+
+
+
+
+ Edge
+
+
+ 121
+ Released on 2024-01-25
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
font-size-adjust
+
The font-size-adjust CSS property preserves apparent text size, regardless of the font used, by scaling fonts to the same size with respect to a specific metric, such as x-height. This can help make fallback fonts look the same size.
+ Firefox for Android
+
+
+ 4
+ Released on 2011-03-29
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-01-06 (baseline low)
+
+
+
+
font-synthesis
+
The font-synthesis CSS shorthand property disables all font synthesis except the given kinds. To disable a specific kind of font synthesis, instead use the longhand properties such as font-synthesis-style and font-synthesis-weight.
+ Chrome Android
+
+
+ 97
+ Released on 2022-01-04
+
+
+
+
+ Edge
+
+
+ 97
+ Released on 2022-01-06
+
+
+
+
+ Firefox
+
+
+ 34
+ Released on 2014-12-01
+
+
+
+
+ Firefox for Android
+
+
+ 34
+ Released on 2014-12-01
+
+
+
+
+ Safari
+
+
+ 9
+ Released on 2015-09-30
+
+
+
+
+ Safari on iOS
+
+
+ 9
+ Released on 2015-09-16
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
font-synthesis-position
+
The font-synthesis-position CSS property sets whether or not the browser should synthesize subscript and superscript typefaces when they're missing from the font.
+ Chrome Android
+
+
+ 97
+ Released on 2022-01-04
+
+
+
+
+ Edge
+
+
+ 97
+ Released on 2022-01-06
+
+
+
+
+ Firefox
+
+
+ 111
+ Released on 2023-03-14
+
+
+
+
+ Firefox for Android
+
+
+ 111
+ Released on 2023-03-14
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
font-synthesis-style
+
The font-synthesis-style CSS property sets whether or not the browser should synthesize italic and oblique typefaces when they're missing from the font.
+ Chrome Android
+
+
+ 105
+ Released on 2022-09-02
+
+
+
+
+ Edge
+
+
+ 105
+ Released on 2022-09-01
+
+
+
+
+ Firefox
+
+
+ 121
+ Released on 2023-12-19
+
+
+
+
+ Firefox for Android
+
+
+ 121
+ Released on 2023-12-19
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
hidden="until-found"
+
The hidden="until-found" attribute hides an element until it is found using the browser's find-in-page search or it is directly navigated to by following a URL fragment.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 1
+ Released on 2004-11-09
+
+
+
+
+ Firefox for Android
+
+
+ 4
+ Released on 2011-03-29
+
+
+
+
+ Safari
+
+
+ 1
+ Released on 2003-06-23
+
+
+
+
+ Safari on iOS
+
+
+ 1
+ Released on 2007-06-29
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-03-30 (baseline high)
+
+
+
HTTP/2
+
The HTTP/2 protocol is a major revision of the HTTP network protocol, providing improved performance and efficiency by using a single TCP connection to send multiple streams of data at once.
+ Chrome Android
+
+
+ 41
+ Released on 2015-03-11
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 36
+ Released on 2015-02-24
+
+
+
+
+ Firefox for Android
+
+
+ 36
+ Released on 2015-02-27
+
+
+
+
+ Safari
+
+
+ 9
+ Released on 2015-09-30
+
+
+
+
+ Safari on iOS
+
+
+ 9
+ Released on 2015-09-16
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
HTTP/3
+
HTTP/3 is a major revision of the HTTP network protocol, providing improved performance and efficiency by using QUIC as the underlying transport protocol.
+ Chrome Android
+
+
+ 87
+ Released on 2020-11-17
+
+
+
+
+ Edge
+
+
+ 87
+ Released on 2020-11-19
+
+
+
+
+ Firefox
+
+
+ 88
+ Released on 2021-04-19
+
+
+
+
+ Firefox for Android
+
+
+ 88
+ Released on 2021-04-19
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-09-18 (baseline low)
+
+
+
+
Hyphenation
+
The hyphens CSS property controls when long words are broken by line wrapping. Although called hyphens, the property applies to word-splitting behavior across languages, such as customary spelling changes or the use of other characters to mark an intraword line break.
+ Chrome Android
+
+
+ 94
+ Released on 2021-09-21
+
+
+
+
+ Edge
+
+
+ 114
+ Released on 2023-06-02
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-09-18 (baseline low)
+
+
+
+
image-set()
+
The image-set() CSS function provides a set of images at different resolutions or pixel densities, which the browser can pick from, depending on the device capabilities.
+ Chrome Android
+
+
+ 113
+ Released on 2023-05-02
+
+
+
+
+ Edge
+
+
+ 113
+ Released on 2023-05-05
+
+
+
+
+ Firefox
+
+
+ 89
+ Released on 2021-06-01
+
+
+
+
+ Firefox for Android
+
+
+ 89
+ Released on 2021-06-01
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Import maps
+
A <script type="importmap"> HTML element provides an import map as a JSON string. An import map controls how the browser should resolve module specifiers when importing JavaScript modules.
+ Chrome Android
+
+
+ 89
+ Released on 2021-03-02
+
+
+
+
+ Edge
+
+
+ 89
+ Released on 2021-03-04
+
+
+
+
+ Firefox
+
+
+ 108
+ Released on 2022-12-13
+
+
+
+
+ Firefox for Android
+
+
+ 108
+ Released on 2022-12-13
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2022-07-15 (baseline high)
+
+
+
:indeterminate
+
The :indeterminate CSS pseudo-class selects any form element whose state is indeterminate, such as checkboxes that have been set to an indeterminate state with JavaScript, or radio buttons which are members of a group in which all radio buttons are unchecked.
+ Chrome Android
+
+
+ 60
+ Released on 2017-08-01
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 87
+ Released on 2021-03-23
+
+
+
+
+ Firefox for Android
+
+
+ 87
+ Released on 2021-03-23
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2021-09-25 (baseline high)
+
+
+
Intersection observer
+
The Intersection Observer API asynchronously observes changes in the intersection of a target element with an ancestor element or with a top-level document's viewport.
+ Chrome Android
+
+
+ 58
+ Released on 2017-04-25
+
+
+
+
+ Edge
+
+
+ 16
+ Released on 2017-10-17
+
+
+
+
+ Firefox
+
+
+ 55
+ Released on 2017-08-08
+
+
+
+
+ Firefox for Android
+
+
+ 55
+ Released on 2017-08-08
+
+
+
+
+ Safari
+
+
+ 12.1
+ Released on 2019-03-25
+
+
+
+
+ Safari on iOS
+
+
+ 12.2
+ Released on 2019-03-25
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Intersection observer visibility tracking
+
The trackVisibility parameter for the IntersectionObserver constructor enables tracking the visibility of an element, to detect if it may be obscured by other content or visual effects. Also known as IntersectionObserver v2.
+ Chrome Android
+
+
+ 74
+ Released on 2019-04-24
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2023-07-21 (baseline high)
+
+
+
:is()
+
The :is() CSS functional pseudo-class takes a selector list as its argument, and matches any element that can be selected by one of the selectors in that list.
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2020-11-09 (baseline high)
+
+
+
JavaScript modules
+
JavaScript modules allow code to be organized into reusable units. Modules use import to load other modules and export to declare what is available to import from other modules. In HTML, modules are loaded with <script type="module">.
+ Chrome Android
+
+
+ 61
+ Released on 2017-09-05
+
+
+
+
+ Edge
+
+
+ 16
+ Released on 2017-10-17
+
+
+
+
+ Firefox
+
+
+ 60
+ Released on 2018-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 60
+ Released on 2018-05-09
+
+
+
+
+ Safari
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
JavaScript modules in service workers
+
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.
+ Chrome Android
+
+
+ 91
+ Released on 2021-05-25
+
+
+
+
+ Edge
+
+
+ 91
+ Released on 2021-05-27
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
JavaScript modules in shared workers
+
The SharedWorker() constructor accepts { type: "module" } to load scripts that use import and export. Also known as ECMAScript modules or ESM in shared workers.
+ Chrome Android
+
+
+ 80
+ Released on 2020-02-04
+
+
+
+
+ Edge
+
+
+ 80
+ Released on 2020-02-07
+
+
+
+
+ Firefox
+
+
+ 114
+ Released on 2023-06-06
+
+
+
+
+ Firefox for Android
+
+
+ 114
+ Released on 2023-06-06
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
Lab and LCH
+
The CIE Lab color space expresses colors in terms of lightness and how red/green and blue/yellow a color is. LCH is a variant of Lab with polar coordinates. These color spaces can be used with the CSS color(), lab(), and lch() functions. Also known as CIELAB and CIELCH.
+ Chrome Android
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Edge
+
+
+ 111
+ Released on 2023-03-13
+
+
+
+
+ Firefox
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-11-21 (baseline low)
+
+
+
+
lh unit
+
The CSS lh unit corresponds to the requested line height, the computed value of the line-height property. Some lines may be higher than this based on their content.
+ Chrome Android
+
+
+ 123
+ Released on 2024-03-19
+
+
+
+
+ Edge
+
+
+ 123
+ Released on 2024-03-22
+
+
+
+
+ Firefox
+
+
+ 120
+ Released on 2023-11-21
+
+
+
+
+ Firefox for Android
+
+
+ 120
+ Released on 2023-11-21
+
+
+
+
+ Safari
+
+
+ 17.5
+ Released on 2024-05-13
+
+
+
+
+ Safari on iOS
+
+
+ 17.5
+ Released on 2024-05-13
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
line-clamp
+
The line-clamp CSS property limits the text in a block container to a certain number of lines. The prefixed -webkit-line-clamp is widely supported but only works with -webkit-box-orient: vertical in combination with display: -webkit-box or display: -webkit-inline-box.
+
+ Newly available since 2023-12-11 (baseline low)
+
+
+
+
linear() easing
+
The linear() easing function for animations and transitions interpolates linearly between the control points, and can be used to approximate complex easing functions, such as a bounce effect.
+ Chrome Android
+
+
+ 113
+ Released on 2023-05-02
+
+
+
+
+ Edge
+
+
+ 113
+ Released on 2023-05-05
+
+
+
+
+ Firefox
+
+
+ 112
+ Released on 2023-04-11
+
+
+
+
+ Firefox for Android
+
+
+ 112
+ Released on 2023-04-11
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-12-19 (baseline low)
+
+
+
+
Lazy-loading images and iframes
+
The loading="lazy" attribute for <img> and <iframe> elements blocks loading the external resource until the user scrolls to that element's part of the page.
+ Chrome Android
+
+
+ 120
+ Released on 2023-12-05
+
+
+
+
+ Edge
+
+
+ 120
+ Released on 2023-12-07
+
+
+
+
+ Firefox
+
+
+ 53
+ Released on 2017-04-19
+
+
+
+
+ Firefox for Android
+
+
+ 53
+ Released on 2017-04-19
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Masonry
+
Masonry is a type of CSS grid layout where the items on one of the axes are tightly packed together, like brickwork, instead of leaving gaps to align across the other axis.
+ Chrome Android
+
+
+ 53
+ Released on 2016-09-07
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 39
+ Released on 2015-07-02
+
+
+
+
+ Firefox for Android
+
+
+ 39
+ Released on 2015-07-02
+
+
+
+
+ Safari
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Media element pseudo-classes
+
The :playing, :paused, :seeking, :buffering, :stalled, :muted, and :volume-locked CSS pseudo-classes match <audio> and <video> elements based on their state.
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Media query range syntax
+
The range syntax of CSS media queries allows you to use mathematical comparison operators such as <, >, <=, and >= to define a range of values for a media feature. For example, (400px < width < 1000px) returns true if the viewport width is between 400px and 1000px.
+ Chrome Android
+
+
+ 104
+ Released on 2022-08-02
+
+
+
+
+ Edge
+
+
+ 104
+ Released on 2022-08-05
+
+
+
+
+ Firefox
+
+
+ 102
+ Released on 2022-06-28
+
+
+
+
+ Firefox for Android
+
+
+ 102
+ Released on 2022-06-28
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Media session
+
The navigator.mediaSession API integrates with platform UI for media playback. It can be used to set metadata such as title and artwork, and to handle user actions like playing, pausing, or seeking.
+ Chrome Android
+
+
+ 31
+ Released on 2013-11-14
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 42
+ Released on 2015-11-03
+
+
+
+
+ Firefox for Android
+
+
+ 42
+ Released on 2015-11-03
+
+
+
+
+ Safari
+
+
+ 8
+ Released on 2014-10-16
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
messageerror
+
The messageerror event fires on a target, such as a window or worker, when an incoming message cannot be deserialized. This event can fire for many types of messages, such as cross-document messages or broadcast channel messages.
+ Chrome Android
+
+
+ 79
+ Released on 2019-12-17
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 75
+ Released on 2020-04-07
+
+
+
+
+ Firefox for Android
+
+
+ 79
+ Released on 2020-07-28
+
+
+
+
+ Safari
+
+
+ 13.1
+ Released on 2020-03-24
+
+
+
+
+ Safari on iOS
+
+
+ 13.4
+ Released on 2020-03-24
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-09-02 (baseline low)
+
+
+
+
:modal
+
The :modal pseudo-class selects elements that put other elements into a non-interactive state, such as a fullscreen element or a <dialog> element used with showModal().
+ Chrome Android
+
+
+ 105
+ Released on 2022-09-02
+
+
+
+
+ Edge
+
+
+ 105
+ Released on 2022-09-01
+
+
+
+
+ Firefox
+
+
+ 103
+ Released on 2022-07-26
+
+
+
+
+ Firefox for Android
+
+
+ 103
+ Released on 2022-07-26
+
+
+
+
+ Safari
+
+
+ 15.6
+ Released on 2022-07-20
+
+
+
+
+ Safari on iOS
+
+
+ 15.6
+ Released on 2022-07-20
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-09-18 (baseline low)
+
+
+
+
<link rel="modulepreload">
+
The rel="modulepreload" attribute for the <link> HTML element indicates that a module script should be fetched, parsed, and compiled preemptively, and stored for later execution.
+ Chrome Android
+
+
+ 42
+ Released on 2015-04-15
+
+
+
+
+ Edge
+
+
+ 14
+ Released on 2016-08-02
+
+
+
+
+ Firefox
+
+
+ 22
+ Released on 2013-06-25
+
+
+
+
+ Firefox for Android
+
+
+ 22
+ Released on 2013-06-25
+
+
+
+
+ Safari
+
+
+ 6
+ Released on 2012-07-25
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-01-29 (baseline high)
+
+
+
:nth-child() (initial support)
+
The :nth-child() and :nth-last-child() CSS functional pseudo-classes match elements by the relative position of elements (first, second, third, fourth, and so on), counted from the first or last sibling.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 3.5
+ Released on 2009-06-30
+
+
+
+
+ Firefox for Android
+
+
+ 4
+ Released on 2011-03-29
+
+
+
+
+ Safari
+
+
+ 3.1
+ Released on 2008-03-18
+
+
+
+
+ Safari on iOS
+
+
+ 2
+ Released on 2008-07-11
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
:nth-child() of <selector>
+
The of syntax for the :nth-child() and :nth-last-child() CSS functional pseudo-classes match elements by the relative position of elements, counted from the first or last sibling matching a selector list.
+ Chrome Android
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Edge
+
+
+ 111
+ Released on 2023-03-13
+
+
+
+
+ Firefox
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Safari
+
+
+ 9
+ Released on 2015-09-30
+
+
+
+
+ Safari on iOS
+
+
+ 9
+ Released on 2015-09-16
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Offscreen canvas
+
The OffscreenCanvas API provides a canvas that can be drawn to off screen, with no dependencies on the DOM, which can be used to run heavy rendering operations inside a worker context.
+ Chrome Android
+
+
+ 80
+ Released on 2020-02-04
+
+
+
+
+ Edge
+
+
+ 80
+ Released on 2020-02-07
+
+
+
+
+ Firefox
+
+
+ 105
+ Released on 2022-09-20
+
+
+
+
+ Firefox for Android
+
+
+ 105
+ Released on 2022-09-20
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
Oklab and Oklch
+
The Oklab color space expresses colors in terms of lightness and how red/green and blue/yellow a color is, aiming to match how humans perceive colors. Oklch is a variant of Oklab with polar coordinates. These color spaces can be used with the CSS color(), oklab(), and oklch() functions.
+ Chrome Android
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Edge
+
+
+ 111
+ Released on 2023-03-13
+
+
+
+
+ Firefox
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-14 (baseline low)
+
+
+
+
Origin private file system
+
The navigator.storage.getDirectory() method returns a FileSystemDirectoryHandle that is restricted to a specific origin and invisible to the user's actual file system for faster file-based applications, such as SQLite databases.
+ Chrome Android
+
+
+ 90
+ Released on 2021-04-13
+
+
+
+
+ Edge
+
+
+ 90
+ Released on 2021-04-15
+
+
+
+
+ Firefox
+
+
+ 81
+ Released on 2020-09-22
+
+
+
+
+ Firefox for Android
+
+
+ 81
+ Released on 2020-09-22
+
+
+
+
+ Safari
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+ Safari on iOS
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Page breaks
+
The break-after, break-before, break-inside CSS properties (along with page-break- aliases) control where printed pages start and end. Also known as pagination or page breaking.
+ Chrome Android
+
+
+ 65
+ Released on 2018-03-06
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2024-04-18 (baseline low)
+
+
+
+
Unsanitized HTML parsing methods
+
The Document.parseHTMLUnsafe() static method parses HTML into a DOM tree, while the setHTMLUnsafe() method of Element and ShadowRoot parses and inserts HTML into an existing tree. No sanitization applies to these methods, so never call them with user-provided HTML strings.
+ Chrome Android
+
+
+ 37
+ Released on 2014-09-03
+
+
+
+
+ Edge
+
+
+ 13
+ Released on 2015-11-12
+
+
+
+
+ Firefox
+
+
+ 50
+ Released on 2016-11-15
+
+
+
+
+ Firefox for Android
+
+
+ 50
+ Released on 2016-11-15
+
+
+
+
+ Safari
+
+
+ 10.1
+ Released on 2017-03-27
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2024-04-16 (baseline low)
+
+
+
+
Popover
+
The popover HTML attribute creates an overlay to display content on top of other page content. Popovers can be shown declaratively using HTML, or using the showPopover() method.
+ Chrome Android
+
+
+ 76
+ Released on 2019-07-30
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 67
+ Released on 2019-05-21
+
+
+
+
+ Firefox for Android
+
+
+ 67
+ Released on 2019-05-21
+
+
+
+
+ Safari
+
+
+ 12.1
+ Released on 2019-03-25
+
+
+
+
+ Safari on iOS
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-12-11 (baseline low)
+
+
+
+
Preloading responsive images
+
The imagesrcset and imagesizes attributes with the rel="preload" attribute for the <link> HTML element starts fetching responsive images before they're found in the body of the document.
+ Chrome Android
+
+
+ 73
+ Released on 2019-03-12
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 78
+ Released on 2020-06-30
+
+
+
+
+ Firefox for Android
+
+
+ 79
+ Released on 2020-07-28
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-12-11 (baseline low)
+
+
+
+
preservesPitch
+
The preservesPitch property for <audio> or <video> adjusts the pitch of audio to sound more natural when the playback rate is faster or slower than the default.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 1
+ Released on 2004-11-09
+
+
+
+
+ Firefox for Android
+
+
+ 114
+ Released on 2023-06-06
+
+
+
+
+ Safari
+
+
+ 1.1
+ Released on 2003-10-24
+
+
+
+
+ Safari on iOS
+
+
+ 1
+ Released on 2007-06-29
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2022-03-19 (baseline high)
+
+
+
Print events
+
An alternative to @media print queries, the beforeprint and afterprint events allow you to change the page for printing and and restore the page after printing.
+ Chrome Android
+
+
+ 76
+ Released on 2019-07-30
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 71
+ Released on 2019-12-10
+
+
+
+
+ Firefox for Android
+
+
+ 79
+ Released on 2020-07-28
+
+
+
+
+ Safari
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2023-03-16 (baseline high)
+
+
+
Promise.any()
+
The Promise.any() static method returns a promise that fulfills as soon as the first of an iterable of promises fulfills, with that promise's value. Otherwise, it rejects with an AggregateError when all of the promises have rejected.
+ Chrome Android
+
+
+ 63
+ Released on 2017-12-05
+
+
+
+
+ Edge
+
+
+ 18
+ Released on 2018-10-02
+
+
+
+
+ Firefox
+
+
+ 58
+ Released on 2018-01-23
+
+
+
+
+ Firefox for Android
+
+
+ 58
+ Released on 2018-01-22
+
+
+
+
+ Safari
+
+
+ 11.1
+ Released on 2018-04-12
+
+
+
+
+ Safari on iOS
+
+
+ 11.3
+ Released on 2018-03-29
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2024-03-05 (baseline low)
+
+
+
+
Promise.withResolvers()
+
The Promise.withResolvers() static method is an alternative to the Promise() constructor that returns both the promise and resolution functions. You can use this to access resolve and reject outside the scope of the executor function.
+ Chrome Android
+
+
+ 119
+ Released on 2023-10-31
+
+
+
+
+ Edge
+
+
+ 119
+ Released on 2023-11-02
+
+
+
+
+ Firefox
+
+
+ 121
+ Released on 2023-12-19
+
+
+
+
+ Firefox for Android
+
+
+ 121
+ Released on 2023-12-19
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Push messages
+
The Push API subscribes to and receives server-initiated messages. Subscribers receive pushed messages in the background, even after periods inactive or offline.
+ Chrome Android
+
+
+ 50
+ Released on 2016-04-13
+
+
+
+
+ Edge
+
+
+ 17
+ Released on 2018-04-30
+
+
+
+
+ Firefox
+
+
+ 44
+ Released on 2016-01-26
+
+
+
+
+ Firefox for Android
+
+
+ 48
+ Released on 2016-08-02
+
+
+
+
+ Safari
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2023-01-28 (baseline high)
+
+
+
:read-only and :read-write
+
The :read-only and :read-write CSS pseudo-classes match elements that are read-only or read-write, respectively. For example, :read-only matches <input> and <textarea> elements with the readonly attribute.
+ Chrome Android
+
+
+ 85
+ Released on 2020-08-25
+
+
+
+
+ Edge
+
+
+ 85
+ Released on 2020-08-27
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Relative colors
+
The from keyword for color functions (color(), hsl(), oklch(), etc.) creates a new color based on a given color by modifying the values of the input color. Also known as relative color syntax (RCS).
+ Chrome Android
+
+
+ 25
+ Released on 2013-02-27
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 23
+ Released on 2013-08-06
+
+
+
+
+ Firefox for Android
+
+
+ 23
+ Released on 2013-08-06
+
+
+
+
+ Safari
+
+
+ 7
+ Released on 2013-10-22
+
+
+
+
+ Safari on iOS
+
+
+ 7
+ Released on 2013-09-18
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
requestAnimationFrame() in workers
+
The requestAnimationFrame() method in workers schedules a function that runs before the next repaint. Together with offscreen canvas, you can animate content from a worker.
+ Chrome Android
+
+
+ 69
+ Released on 2018-09-04
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 99
+ Released on 2022-04-05
+
+
+
+
+ Firefox for Android
+
+
+ 99
+ Released on 2022-04-05
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
requestVideoFrameCallback()
+
The requestVideoFrameCallback() method for <video> schedules a function that runs with the next video frame. It is similar to requestAnimationFrame(), but for video.
+ Chrome Android
+
+
+ 54
+ Released on 2016-10-19
+
+
+
+
+ Edge
+
+
+ 17
+ Released on 2018-04-30
+
+
+
+
+ Firefox
+
+
+ 45
+ Released on 2016-03-08
+
+
+
+
+ Firefox for Android
+
+
+ 45
+ Released on 2016-03-08
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2020-03-19 (baseline high)
+
+
+
Resource timing (initial support)
+
PerformanceResourceTiming entries report when network events happen while loading a resource, such as when connections start and end. You can use this information to measure loading times.
+ Chrome Android
+
+
+ 118
+ Released on 2023-10-10
+
+
+
+
+ Edge
+
+
+ 118
+ Released on 2023-10-13
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Screen orientation
+
The screen.orientation API gets information about the orientation of the viewport, such as landscape or portrait. With this API, you can adapt an application's layout or behavior in response to changes in orientation.
+ Chrome Android
+
+
+ 39
+ Released on 2014-11-12
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 43
+ Released on 2015-12-15
+
+
+
+
+ Firefox for Android
+
+
+ 43
+ Released on 2015-12-15
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Screen orientation lock
+
The screen.orientation.lock() method prevents changes to the screen orientation, typically in fullscreen applications such as games. For example, while locked, rotating a phone to the side won't change the screen orientation from landscape to portrait.
+ Chrome Android
+
+
+ 69
+ Released on 2018-09-04
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 68
+ Released on 2019-07-09
+
+
+
+
+ Firefox for Android
+
+
+ 68
+ Released on 2019-07-09
+
+
+
+
+ Safari
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Scroll to text fragment
+
Text fragments are URL fragments on the form #:~:text=snippet and link to a snippet of text within a page. The browser may scroll, highlight, or otherwise bring that text to the reader's attention.
+ Chrome Android
+
+
+ 118
+ Released on 2023-10-10
+
+
+
+
+ Edge
+
+
+ 118
+ Released on 2023-10-13
+
+
+
+
+ Firefox
+
+
+ 118
+ Released on 2023-09-26
+
+
+
+
+ Firefox for Android
+
+
+ 118
+ Released on 2023-09-26
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-01-29 (baseline high)
+
+
+
<input type="search">
+
The <input> HTML element with the type="search" attribute represents a text field for search queries, which might be styled differently by the browser.
+ Chrome Android
+
+
+ 38
+ Released on 2014-10-08
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 13
+ Released on 2012-06-05
+
+
+
+
+ Firefox for Android
+
+
+ 13
+ Released on
+
+
+
+
+ Safari
+
+
+ 8
+ Released on 2014-10-16
+
+
+
+
+ Safari on iOS
+
+
+ 8
+ Released on 2014-09-17
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Set methods
+
The difference(), intersection(), isDisjointFrom(), isSubsetOf(), isSupersetOf(), symmetricDifference(), and union() methods of the JavaScript Set object performs operations between two sets.
+ Chrome Android
+
+
+ 122
+ Released on 2024-02-20
+
+
+
+
+ Edge
+
+
+ 122
+ Released on 2024-02-23
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2022-07-15 (baseline high)
+
+
+
Shadow DOM
+
Shadow DOM allows you to attach encapsulated "shadow" DOM trees to elements. A shadow DOM tree is a separate component, isolated from the scripts and styles in other parts of the document. This is a part of Web Components.
+ Chrome Android
+
+
+ 54
+ Released on 2016-10-19
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 63
+ Released on 2018-10-23
+
+
+
+
+ Firefox for Android
+
+
+ 63
+ Released on 2018-10-23
+
+
+
+
+ Safari
+
+
+ 10.1
+ Released on 2017-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 10.3
+ Released on 2017-03-27
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
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.
+ Chrome Android
+
+
+ 53
+ Released on 2016-09-07
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 63
+ Released on 2018-10-23
+
+
+
+
+ Firefox for Android
+
+
+ 63
+ Released on 2018-10-23
+
+
+
+
+ Safari
+
+
+ 10
+ Released on 2016-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 10
+ Released on 2016-09-13
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Imperative slot assignment
+
The assign() method for <slot> elements assigns nodes to the slot, as an alternative to using the slot and name HTML attributes. The nodes must be children of a shadow host and the shadow root must be created with the slotAssignment set to "manual". Also known as manual slot assignment.
+ Chrome Android
+
+
+ 117
+ Released on 2023-09-12
+
+
+
+
+ Edge
+
+
+ 117
+ Released on 2023-09-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 17.5
+ Released on 2024-05-13
+
+
+
+
+ Safari on iOS
+
+
+ 17.5
+ Released on 2024-05-13
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2022-03-19 (baseline high)
+
+
+
Sticky positioning
+
The position: sticky CSS declaration positions an element in the normal flow until it crosses a specified threshold, at which points it becomes fixed (stuck) at that position.
+ Chrome Android
+
+
+ 56
+ Released on 2017-02-01
+
+
+
+
+ Edge
+
+
+ 16
+ Released on 2017-10-17
+
+
+
+
+ Firefox
+
+
+ 59
+ Released on 2018-03-13
+
+
+
+
+ Firefox for Android
+
+
+ 59
+ Released on 2018-03-13
+
+
+
+
+ Safari
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-12-05 (baseline low)
+
+
+
+
Storage access
+
The document.requestStorageAccess() method allows content in iframes to request storing and reading cookies and other site data, while the document.hasStorageAccess() method checks if such access is granted.
+ Chrome Android
+
+
+ 120
+ Released on 2023-12-05
+
+
+
+
+ Edge
+
+
+ 85
+ Released on 2020-08-27
+
+
+
+
+ Firefox
+
+
+ 65
+ Released on 2019-01-29
+
+
+
+
+ Firefox for Android
+
+
+ 65
+ Released on 2019-01-29
+
+
+
+
+ Safari
+
+
+ 11.1
+ Released on 2018-04-12
+
+
+
+
+ Safari on iOS
+
+
+ 11.3
+ Released on 2018-03-29
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Storage buckets
+
The navigator.storageBuckets API allows you to organize locally stored data into groups called storage buckets. Each bucket can have different settings, allowing the browser to manage and delete buckets independently rather than applying the same treatment to all.
+ Chrome Android
+
+
+ 59
+ Released on 2017-06-06
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 102
+ Released on 2022-06-28
+
+
+
+
+ Firefox for Android
+
+
+ 102
+ Released on 2022-06-28
+
+
+
+
+ Safari
+
+
+ 14.1
+ Released on 2021-04-26
+
+
+
+
+ Safari on iOS
+
+
+ 14.5
+ Released on 2021-04-26
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-03-14 (baseline low)
+
+
+
+
structuredClone()
+
The structuredClone() global method creates a deep copy of an object. Values that cannot be cloned can instead be transferred, making the original value no longer usable.
+ Chrome Android
+
+
+ 98
+ Released on 2022-02-01
+
+
+
+
+ Edge
+
+
+ 98
+ Released on 2022-02-03
+
+
+
+
+ Firefox
+
+
+ 94
+ Released on 2021-11-02
+
+
+
+
+ Firefox for Android
+
+
+ 94
+ Released on 2021-11-02
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-09-15 (baseline low)
+
+
+
+
Subgrid
+
The subgrid value for the grid-template-columns and grid-template-rows properties allows a grid item to inherit the grid definition of its parent grid container.
+ Chrome Android
+
+
+ 114
+ Released on 2023-05-30
+
+
+
+
+ Edge
+
+
+ 114
+ Released on 2023-06-02
+
+
+
+
+ Firefox
+
+
+ 122
+ Released on 2024-01-23
+
+
+
+
+ Firefox for Android
+
+
+ 122
+ Released on 2024-01-23
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-03-30 (baseline high)
+
+
+
2D transforms
+
The transform CSS property and its 2D transform functions allow rotating, scaling, skewing, and translating an element. Arbitrary 2D transforms are also possible using a transformation matrix.
+ Chrome Android
+
+
+ 36
+ Released on 2014-07-16
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 16
+ Released on 2012-10-09
+
+
+
+
+ Firefox for Android
+
+
+ 16
+ Released on 2012-10-09
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
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%.
+ Chrome Android
+
+
+ 83
+ Released on 2020-05-19
+
+
+
+
+ Edge
+
+
+ 83
+ Released on 2020-05-21
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-07-21 (baseline low)
+
+
+
+
Two-value display property
+
The display CSS property accepts multiple keyword values, such as inline flex or block flow, to explicitly set an element's inner and outer layout mode. Also known as 2-value, multi-keyword, or multiple value syntax.
+ Chrome Android
+
+
+ 38
+ Released on 2014-10-08
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 36
+ Released on 2015-02-24
+
+
+
+
+ Firefox for Android
+
+
+ 36
+ Released on 2015-02-27
+
+
+
+
+ Safari
+
+
+ 10
+ Released on 2016-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 10
+ Released on 2016-09-13
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-01-29 (baseline high)
+
+
+
Typed arrays (initial support)
+
Typed arrays are ordered lists of JavaScript values, where all values are of the same numerical type, such as 8-bit integers or 32-bit floating point numbers.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 4
+ Released on 2011-03-22
+
+
+
+
+ Firefox for Android
+
+
+ 4
+ Released on 2011-03-29
+
+
+
+
+ Safari
+
+
+ 5.1
+ Released on 2011-07-20
+
+
+
+
+ Safari on iOS
+
+
+ 4.2
+ Released on 2010-11-22
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-12-07 (baseline low)
+
+
+
+
URL.canParse()
+
The URL.canParse() static method checks whether a URL can be parsed into a valid URL object. It's an alternative to calling new URL() in a try…catch statement.
+ Chrome Android
+
+
+ 120
+ Released on 2023-12-05
+
+
+
+
+ Edge
+
+
+ 120
+ Released on 2023-12-07
+
+
+
+
+ Firefox
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Firefox for Android
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-11-21 (baseline low)
+
+
+
+
User activation
+
The navigator.userActivation API 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.
+
+ Newly available since 2022-12-05 (baseline low)
+
+
+
+
Small, large, and dynamic viewport units
+
The sv*, lv*, and dv* CSS viewport units are relative to the smallest, largest, and current (dynamic) viewport size. They are used to size elements in relation to the viewport's dimensions.
+ Chrome Android
+
+
+ 108
+ Released on 2022-11-29
+
+
+
+
+ Edge
+
+
+ 108
+ Released on 2022-12-05
+
+
+
+
+ Firefox
+
+
+ 101
+ Released on 2022-05-31
+
+
+
+
+ Firefox for Android
+
+
+ 101
+ Released on 2022-05-31
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2020-04-17 (baseline high)
+
+
+
Viewport units
+
The vw, vh, vmin, and vmax CSS viewport units are relative to the size of the viewport, and are used to size elements in relation to the viewport's dimensions.
+ Chrome Android
+
+
+ 61
+ Released on 2017-09-05
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 91
+ Released on 2021-08-10
+
+
+
+
+ Firefox for Android
+
+
+ 68
+ Released on 2019-07-09
+
+
+
+
+ Safari
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
WebAssembly SIMD
+
The 128-bit SIMD (Single Instruction Multiple Data) extension to WebAssembly performs one instruction on multiple units of data, when running on hardware that supports such instructions. Also known as vector instructions.
+ Chrome Android
+
+
+ 89
+ Released on 2021-03-02
+
+
+
+
+ Edge
+
+
+ ❌
+
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-10-24 (baseline low)
+
+
+
+
Web authentication easy public key access
+
The getAuthenticatorData(), getPublicKey(), and getPublicKeyAlgorithm() methods of AuthenticatorAttestationResponse access credential data inside attestationObject without the need to parse it.
+ Chrome Android
+
+
+ 106
+ Released on 2022-09-27
+
+
+
+
+ Edge
+
+
+ 106
+ Released on 2022-10-03
+
+
+
+
+ Firefox
+
+
+ 102
+ Released on 2022-06-28
+
+
+
+
+ Firefox for Android
+
+
+ 102
+ Released on 2022-06-28
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-12-13 (baseline low)
+
+
+
+
WebGL OES_draw_buffers_indexed extension
+
The OES_draw_buffers_indexed extension to WebGL allows you to control blending on a per-color basis when writing to multiple color buffers simultaneously.
+ Chrome Android
+
+
+ 56
+ Released on 2017-02-01
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 44
+ Released on 2016-01-26
+
+
+
+
+ Firefox for Android
+
+
+ 44
+ Released on 2016-01-26
+
+
+
+
+ Safari
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
WebRTC encoded transform
+
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.
+ Firefox for Android
+
+
+ 117
+ Released on 2023-08-29
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
WebRTC SCTP information
+
The sctp object on RTCPeerConnection represents the negotiated SCTP transport. SCTP (Stream Control Transmission Protocol) is the protocol that RTCDataChannel uses.
+ Chrome Android
+
+
+ 61
+ Released on 2017-09-05
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-01-29 (baseline high)
+
+
+
WebVTT
+
WebVTT is a captions and subtitles format. WebVTT files are loaded using the <track> element, and the VTTCue API can be used to create or update cues dynamically.
+ Chrome Android
+
+
+ 25
+ Released on 2013-02-27
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 31
+ Released on 2014-07-22
+
+
+
+
+ Firefox for Android
+
+
+ 31
+ Released on 2014-07-22
+
+
+
+
+ Safari
+
+
+ 6
+ Released on 2012-07-25
+
+
+
+
+ Safari on iOS
+
+
+ 8
+ Released on 2014-09-17
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
WebVTT cue alignment
+
The WebVTT cue alignment settings control which part of the cue is aligned with the given line and position. Cue alignment is set using line and position settings in WebVTT files or the lineAlign and positionAlign properties of VTTCue using JavaScript.
+ Firefox for Android
+
+
+ 59
+ Released on 2018-03-13
+
+
+
+
+ Safari
+
+
+ 7
+ Released on 2013-10-22
+
+
+
+
+ Safari on iOS
+
+
+ 7
+ Released on 2013-09-18
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2023-07-21 (baseline high)
+
+
+
:where()
+
The :where() CSS functional pseudo-class takes a selector list as its argument, and matches any element that can be selected by one of the selectors in that list. It is functionally equivalent to the selectors in the list, but doesn't affect the CSS rule specificity.
+ Chrome Android
+
+
+ 88
+ Released on 2021-01-19
+
+
+
+
+ Edge
+
+
+ 88
+ Released on 2021-01-21
+
+
+
+
+ Firefox
+
+
+ 82
+ Released on 2020-10-20
+
+
+
+
+ Firefox for Android
+
+
+ 82
+ Released on 2020-10-20
+
+
+
+
+ Safari
+
+
+ 14
+ Released on 2020-09-16
+
+
+
+
+ Safari on iOS
+
+
+ 14
+ Released on 2020-09-16
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2022-07-15 (baseline high)
+
+
+
will-change
+
The will-change CSS property gives hints to the browser about expected changes to an element's scroll position, contents, or style. These hints allow browsers to optimize for upcoming style changes.
These features have been supported across all core browsers for a while.
+
+
+
+
+
+
+
+
+ Widely available since 2024-03-20 (baseline high)
+
+
+
aspect-ratio
+
The aspect-ratio CSS property controls the width-to-height ratio of elements. For <img> and <video> elements, the width and height attributes used together with height: auto control the aspect ratio while the image/video is loading.
+ Chrome Android
+
+
+ 84
+ Released on 2020-07-27
+
+
+
+
+ Edge
+
+
+ 84
+ Released on 2020-07-16
+
+
+
+
+ Firefox
+
+
+ 63
+ Released on 2018-10-23
+
+
+
+
+ Firefox for Android
+
+
+ 63
+ Released on 2018-10-23
+
+
+
+
+ Safari
+
+
+ 14.1
+ Released on 2021-04-26
+
+
+
+
+ Safari on iOS
+
+
+ 14.5
+ Released on 2021-04-26
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2023-07-21 (baseline high)
+
+
+
:is()
+
The :is() CSS functional pseudo-class takes a selector list as its argument, and matches any element that can be selected by one of the selectors in that list.
+ Chrome Android
+
+
+ 88
+ Released on 2021-01-19
+
+
+
+
+ Edge
+
+
+ 88
+ Released on 2021-01-21
+
+
+
+
+ Firefox
+
+
+ 82
+ Released on 2020-10-20
+
+
+
+
+ Firefox for Android
+
+
+ 82
+ Released on 2020-10-20
+
+
+
+
+ Safari
+
+
+ 14
+ Released on 2020-09-16
+
+
+
+
+ Safari on iOS
+
+
+ 14
+ Released on 2020-09-16
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2023-07-21 (baseline high)
+
+
+
:where()
+
The :where() CSS functional pseudo-class takes a selector list as its argument, and matches any element that can be selected by one of the selectors in that list. It is functionally equivalent to the selectors in the list, but doesn't affect the CSS rule specificity.
+ Chrome Android
+
+
+ 67
+ Released on 2018-05-31
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 68
+ Released on 2019-07-09
+
+
+
+
+ Firefox for Android
+
+
+ 68
+ Released on 2019-07-09
+
+
+
+
+ Safari
+
+
+ 14
+ Released on 2020-09-16
+
+
+
+
+ Safari on iOS
+
+
+ 14
+ Released on 2020-09-16
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2023-03-16 (baseline high)
+
+
+
Promise.any()
+
The Promise.any() static method returns a promise that fulfills as soon as the first of an iterable of promises fulfills, with that promise's value. Otherwise, it rejects with an AggregateError when all of the promises have rejected.
+ Chrome Android
+
+
+ 76
+ Released on 2019-07-30
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 71
+ Released on 2019-12-10
+
+
+
+
+ Firefox for Android
+
+
+ 79
+ Released on 2020-07-28
+
+
+
+
+ Safari
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2023-01-28 (baseline high)
+
+
+
:read-only and :read-write
+
The :read-only and :read-write CSS pseudo-classes match elements that are read-only or read-write, respectively. For example, :read-only matches <input> and <textarea> elements with the readonly attribute.
+ Chrome Android
+
+
+ 54
+ Released on 2016-10-19
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 63
+ Released on 2018-10-23
+
+
+
+
+ Firefox for Android
+
+
+ 63
+ Released on 2018-10-23
+
+
+
+
+ Safari
+
+
+ 10.1
+ Released on 2017-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 10.3
+ Released on 2017-03-27
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2022-07-15 (baseline high)
+
+
+
:default
+
The :default CSS pseudo-class matches the default element in a group of related form controls, such as checkboxes and radio buttons with the checked attribute.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 4
+ Released on 2011-03-22
+
+
+
+
+ Firefox for Android
+
+
+ 4
+ Released on 2011-03-29
+
+
+
+
+ Safari
+
+
+ 5
+ Released on 2010-06-07
+
+
+
+
+ Safari on iOS
+
+
+ 5
+ Released on 2011-10-12
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2022-07-15 (baseline high)
+
+
+
<details>
+
The <details> element is a disclosure widget which can be expanded to reveal additional content. When closed, only the nested <summary> element is visible.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 49
+ Released on 2016-09-20
+
+
+
+
+ Firefox for Android
+
+
+ 49
+ Released on 2016-09-20
+
+
+
+
+ Safari
+
+
+ 6
+ Released on 2012-07-25
+
+
+
+
+ Safari on iOS
+
+
+ 6
+ Released on 2012-09-10
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2022-07-15 (baseline high)
+
+
+
:indeterminate
+
The :indeterminate CSS pseudo-class selects any form element whose state is indeterminate, such as checkboxes that have been set to an indeterminate state with JavaScript, or radio buttons which are members of a group in which all radio buttons are unchecked.
+ Chrome Android
+
+
+ 76
+ Released on 2019-07-30
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 67
+ Released on 2019-05-21
+
+
+
+
+ Firefox for Android
+
+
+ 67
+ Released on 2019-05-21
+
+
+
+
+ Safari
+
+
+ 12.1
+ Released on 2019-03-25
+
+
+
+
+ Safari on iOS
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2022-07-15 (baseline high)
+
+
+
Shadow DOM
+
Shadow DOM allows you to attach encapsulated "shadow" DOM trees to elements. A shadow DOM tree is a separate component, isolated from the scripts and styles in other parts of the document. This is a part of Web Components.
+ Chrome Android
+
+
+ 56
+ Released on 2017-02-01
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 44
+ Released on 2016-01-26
+
+
+
+
+ Firefox for Android
+
+
+ 44
+ Released on 2016-01-26
+
+
+
+
+ Safari
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2022-07-15 (baseline high)
+
+
+
will-change
+
The will-change CSS property gives hints to the browser about expected changes to an element's scroll position, contents, or style. These hints allow browsers to optimize for upcoming style changes.
+ Chrome Android
+
+
+ 79
+ Released on 2019-12-17
+
+
+
+
+ Edge
+
+
+ 17
+ Released on 2018-04-30
+
+
+
+
+ Firefox
+
+
+ 62
+ Released on 2018-09-05
+
+
+
+
+ Firefox for Android
+
+
+ 62
+ Released on 2018-09-05
+
+
+
+
+ Safari
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2022-03-19 (baseline high)
+
+
+
Print events
+
An alternative to @media print queries, the beforeprint and afterprint events allow you to change the page for printing and and restore the page after printing.
+ Chrome Android
+
+
+ 63
+ Released on 2017-12-05
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 6
+ Released on 2011-08-16
+
+
+
+
+ Firefox for Android
+
+
+ 6
+ Released on 2011-08-16
+
+
+
+
+ Safari
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2022-03-19 (baseline high)
+
+
+
Sticky positioning
+
The position: sticky CSS declaration positions an element in the normal flow until it crosses a specified threshold, at which points it becomes fixed (stuck) at that position.
+ Chrome Android
+
+
+ 66
+ Released on 2018-04-17
+
+
+
+
+ Edge
+
+
+ 16
+ Released on 2017-10-17
+
+
+
+
+ Firefox
+
+
+ 57
+ Released on 2017-11-14
+
+
+
+
+ Firefox for Android
+
+
+ 57
+ Released on 2017-11-28
+
+
+
+
+ Safari
+
+
+ 12.1
+ Released on 2019-03-25
+
+
+
+
+ Safari on iOS
+
+
+ 12.2
+ Released on 2019-03-25
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2021-09-25 (baseline high)
+
+
+
Intersection observer
+
The Intersection Observer API asynchronously observes changes in the intersection of a target element with an ancestor element or with a top-level document's viewport.
+ Chrome Android
+
+
+ 33
+ Released on 2014-02-26
+
+
+
+
+ Edge
+
+
+ 14
+ Released on 2016-08-02
+
+
+
+
+ Firefox
+
+
+ 49
+ Released on 2016-09-20
+
+
+
+
+ Firefox for Android
+
+
+ 62
+ Released on 2018-09-05
+
+
+
+
+ Safari
+
+
+ 7
+ Released on 2013-10-22
+
+
+
+
+ Safari on iOS
+
+
+ 7
+ Released on 2013-09-18
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2020-11-09 (baseline high)
+
+
+
JavaScript modules
+
JavaScript modules allow code to be organized into reusable units. Modules use import to load other modules and export to declare what is available to import from other modules. In HTML, modules are loaded with <script type="module">.
+ Chrome Android
+
+
+ 61
+ Released on 2017-09-05
+
+
+
+
+ Edge
+
+
+ 16
+ Released on 2017-10-17
+
+
+
+
+ Firefox
+
+
+ 60
+ Released on 2018-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 60
+ Released on 2018-05-09
+
+
+
+
+ Safari
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2020-04-17 (baseline high)
+
+
+
Viewport units
+
The vw, vh, vmin, and vmax CSS viewport units are relative to the size of the viewport, and are used to size elements in relation to the viewport's dimensions.
+ Chrome Android
+
+
+ 53
+ Released on 2016-09-07
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 39
+ Released on 2015-07-02
+
+
+
+
+ Firefox for Android
+
+
+ 39
+ Released on 2015-07-02
+
+
+
+
+ Safari
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2020-03-19 (baseline high)
+
+
+
Resource timing (initial support)
+
PerformanceResourceTiming entries report when network events happen while loading a resource, such as when connections start and end. You can use this information to measure loading times.
+ Chrome Android
+
+
+ 55
+ Released on 2016-12-06
+
+
+
+
+ Edge
+
+
+ 15
+ Released on 2017-04-05
+
+
+
+
+ Firefox
+
+
+ 52
+ Released on 2017-03-07
+
+
+
+
+ Firefox for Android
+
+
+ 52
+ Released on 2017-03-07
+
+
+
+
+ Safari
+
+
+ 10.1
+ Released on 2017-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 10.3
+ Released on 2017-03-27
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2019-10-05 (baseline high)
+
+
+
Custom properties
+
Custom properties are CSS properties prefixed with -- that set values you can reuse with the var() function. For example, you can set a --key-color property to reuse as border-color: var(--key-color). Also known as CSS variables.
+ Chrome Android
+
+
+ 39
+ Released on 2014-11-12
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 25
+ Released on 2013-10-29
+
+
+
+
+ Firefox for Android
+
+
+ 25
+ Released on 2013-10-29
+
+
+
+
+ Safari
+
+
+ 9
+ Released on 2015-09-30
+
+
+
+
+ Safari on iOS
+
+
+ 9
+ Released on 2015-09-16
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-03-30 (baseline high)
+
+
+
HTTP/2
+
The HTTP/2 protocol is a major revision of the HTTP network protocol, providing improved performance and efficiency by using a single TCP connection to send multiple streams of data at once.
+ Chrome Android
+
+
+ 41
+ Released on 2015-03-11
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 36
+ Released on 2015-02-24
+
+
+
+
+ Firefox for Android
+
+
+ 36
+ Released on 2015-02-27
+
+
+
+
+ Safari
+
+
+ 9
+ Released on 2015-09-30
+
+
+
+
+ Safari on iOS
+
+
+ 9
+ Released on 2015-09-16
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-03-30 (baseline high)
+
+
+
2D transforms
+
The transform CSS property and its 2D transform functions allow rotating, scaling, skewing, and translating an element. Arbitrary 2D transforms are also possible using a transformation matrix.
+ Chrome Android
+
+
+ 28
+ Released on 2013-07-10
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 16
+ Released on 2012-10-09
+
+
+
+
+ Firefox for Android
+
+
+ 16
+ Released on 2012-10-09
+
+
+
+
+ Safari
+
+
+ 7
+ Released on 2013-10-22
+
+
+
+
+ Safari on iOS
+
+
+ 7
+ Released on 2013-09-18
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-01-29 (baseline high)
+
+
+
Canvas text metrics
+
The fillText() and strokeText() methods draw text to a 2D canvas. The measureText() method measures the width and other metrics which can be used to position the text.
+ Chrome Android
+
+
+ 38
+ Released on 2014-10-08
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 13
+ Released on 2012-06-05
+
+
+
+
+ Firefox for Android
+
+
+ 14
+ Released on 2012-06-26
+
+
+
+
+ Safari
+
+
+ 8
+ Released on 2014-10-16
+
+
+
+
+ Safari on iOS
+
+
+ 8
+ Released on 2014-09-17
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-01-29 (baseline high)
+
+
+
:nth-child() (initial support)
+
The :nth-child() and :nth-last-child() CSS functional pseudo-classes match elements by the relative position of elements (first, second, third, fourth, and so on), counted from the first or last sibling.
+ Chrome Android
+
+
+ 25
+ Released on 2013-02-27
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 23
+ Released on 2013-08-06
+
+
+
+
+ Firefox for Android
+
+
+ 23
+ Released on 2013-08-06
+
+
+
+
+ Safari
+
+
+ 7
+ Released on 2013-10-22
+
+
+
+
+ Safari on iOS
+
+
+ 7
+ Released on 2013-09-18
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-01-29 (baseline high)
+
+
+
<input type="search">
+
The <input> HTML element with the type="search" attribute represents a text field for search queries, which might be styled differently by the browser.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 1
+ Released on 2004-11-09
+
+
+
+
+ Firefox for Android
+
+
+ 4
+ Released on 2011-03-29
+
+
+
+
+ Safari
+
+
+ 1
+ Released on 2003-06-23
+
+
+
+
+ Safari on iOS
+
+
+ 1
+ Released on 2007-06-29
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-01-29 (baseline high)
+
+
+
Typed arrays (initial support)
+
Typed arrays are ordered lists of JavaScript values, where all values are of the same numerical type, such as 8-bit integers or 32-bit floating point numbers.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 4
+ Released on 2011-03-22
+
+
+
+
+ Firefox for Android
+
+
+ 4
+ Released on 2011-03-29
+
+
+
+
+ Safari
+
+
+ 5.1
+ Released on 2011-07-20
+
+
+
+
+ Safari on iOS
+
+
+ 4.2
+ Released on 2010-11-22
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-01-29 (baseline high)
+
+
+
WebVTT
+
WebVTT is a captions and subtitles format. WebVTT files are loaded using the <track> element, and the VTTCue API can be used to create or update cues dynamically.
+
+ Newly available since 2024-03-19 (baseline low)
+
+
+
+
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.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 116
+ Released on 2023-08-15
+
+
+
+
+ Chrome Android
+
+
+ 116
+ Released on 2023-08-15
+
+
+
+
+ Edge
+
+
+ 116
+ Released on 2023-08-21
+
+
+
+
+ Firefox
+
+
+ 124
+ Released on 2024-03-19
+
+
+
+
+ Firefox for Android
+
+
+ 124
+ Released on 2024-03-19
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+ Newly available since 2022-03-14 (baseline low)
+
+
+
+
appearance
+
The appearance CSS property controls the appearance of form controls. Using appearance: none disables any default native appearance and allows the elements to be styled with CSS.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 84
+ Released on 2020-07-27
+
+
+
+
+ Chrome Android
+
+
+ 84
+ Released on 2020-07-27
+
+
+
+
+ Edge
+
+
+ 84
+ Released on 2020-07-16
+
+
+
+
+ Firefox
+
+
+ 80
+ Released on 2020-08-25
+
+
+
+
+ Firefox for Android
+
+
+ 80
+ Released on 2020-08-31
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+ Newly available since 2022-03-14 (baseline low)
+
+
+
+
Array at()
+
The at() method of arrays and typed arrays returns the item at an index, including negative indices for getting items relative to the end of an array. Also known as the relative indexing method.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 92
+ Released on 2021-07-20
+
+
+
+
+ Chrome Android
+
+
+ 92
+ Released on 2021-07-20
+
+
+
+
+ Edge
+
+
+ 92
+ Released on 2021-07-22
+
+
+
+
+ Firefox
+
+
+ 90
+ Released on 2021-07-13
+
+
+
+
+ Firefox for Android
+
+
+ 90
+ Released on 2021-07-13
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+ Newly available since 2023-07-04 (baseline low)
+
+
+
+
Array by copy
+
The toReserved(), toSorted(), toSpliced(), and with() methods of arrays and typed arrays return changed copies of arrays. They stand in contrast to methods such as sort() or reverse() that change arrays in place.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 110
+ Released on 2023-02-07
+
+
+
+
+ Chrome Android
+
+
+ 110
+ Released on 2023-02-07
+
+
+
+
+ Edge
+
+
+ 110
+ Released on 2023-02-09
+
+
+
+
+ Firefox
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Firefox for Android
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Safari
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+ Safari on iOS
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+ Newly available since 2022-08-23 (baseline low)
+
+
+
+
Array findLast() and findLastIndex()
+
The findLast() and findLastIndex() methods of arrays and typed arrays search an array in reverse order for the first item that satisfies a test function.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 97
+ Released on 2022-01-04
+
+
+
+
+ Chrome Android
+
+
+ 97
+ Released on 2022-01-04
+
+
+
+
+ Edge
+
+
+ 97
+ Released on 2022-01-06
+
+
+
+
+ Firefox
+
+
+ 104
+ Released on 2022-08-23
+
+
+
+
+ Firefox for Android
+
+
+ 104
+ Released on 2022-08-23
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Widely available since 2024-03-20 (baseline high)
+
+
+
aspect-ratio
+
The aspect-ratio CSS property controls the width-to-height ratio of elements. For <img> and <video> elements, the width and height attributes used together with height: auto control the aspect ratio while the image/video is loading.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 88
+ Released on 2021-01-19
+
+
+
+
+ Chrome Android
+
+
+ 88
+ Released on 2021-01-19
+
+
+
+
+ Edge
+
+
+ 88
+ Released on 2021-01-21
+
+
+
+
+ Firefox
+
+
+ 89
+ Released on 2021-06-01
+
+
+
+
+ Firefox for Android
+
+
+ 89
+ Released on 2021-06-01
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
The navigator.audioSession API controls how audio playback interacts with other applications. For example, playing music can pause audio from other applications, while ambient audio can play at the same time.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ ❌
+
+
+
+
+
+ Chrome Android
+
+
+ ❌
+
+
+
+
+
+ Edge
+
+
+ ❌
+
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
The baseline-source CSS property controls how inline-level boxes with multiple lines of text are aligned with the surrounding text. By default, which typographic baseline is used depends on the display property value.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Chrome Android
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Edge
+
+
+ 111
+ Released on 2023-03-13
+
+
+
+
+ Firefox
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Firefox for Android
+
+
+ 115
+ Released on 2023-07-04
+
+
The blocking="render" attribute for <link>, <script>, and <style> elements blocks rendering until the external script or stylesheet has been loaded. For <link rel="expect">, rendering is blocked until a specific element is in the DOM.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 105
+ Released on 2022-09-02
+
+
+
+
+ Chrome Android
+
+
+ 105
+ Released on 2022-09-02
+
+
+
+ Newly available since 2023-10-13 (baseline low)
+
+
+
+
Canvas text baselines
+
The alphabeticBaseline, hangingBaseline, and ideographicBaseline canvas text metrics measure the distance from the used textBaseline to the respective typographic baseline.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 118
+ Released on 2023-10-10
+
+
+
+
+ Chrome Android
+
+
+ 118
+ Released on 2023-10-10
+
+
+
+
+ Edge
+
+
+ 118
+ Released on 2023-10-13
+
+
+
+
+ Firefox
+
+
+ 116
+ Released on 2023-08-01
+
+
+
+
+ Firefox for Android
+
+
+ 116
+ Released on 2023-08-01
+
+
+
+
+ Safari
+
+
+ 11.1
+ Released on 2018-04-12
+
+
+
+
+ Safari on iOS
+
+
+ 11.3
+ Released on 2018-03-29
+
+
+
+
+ Widely available since 2018-01-29 (baseline high)
+
+
+
Canvas text metrics
+
The fillText() and strokeText() methods draw text to a 2D canvas. The measureText() method measures the width and other metrics which can be used to position the text.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 2
+ Released on 2009-05-21
+
+
+
+
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 3.5
+ Released on 2009-06-30
+
+
+
+
+ Firefox for Android
+
+
+ 31
+ Released on 2014-07-22
+
+
+
+
+ Safari
+
+
+ 4
+ Released on 2009-06-08
+
+
+
+
+ Safari on iOS
+
+
+ 3.2
+ Released on 2010-04-03
+
+
+
+ Newly available since 2022-03-14 (baseline low)
+
+
+
+
Cascade layers
+
The @layer CSS at-rule avoids specificity conflicts by providing priority levels for different groups of CSS rules, such as low-priority styles like resets, and high-priority styles like UI components.
+
+ Newly available since 2024-03-05 (baseline low)
+
+
+
+
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 style display: none, but can also check for visibility: hidden.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 105
+ Released on 2022-09-02
+
+
+
+
+ Chrome Android
+
+
+ 105
+ Released on 2022-09-02
+
+
+
+
+ Edge
+
+
+ 105
+ Released on 2022-09-01
+
+
+
+
+ Firefox
+
+
+ 106
+ Released on 2022-10-18
+
+
+
+
+ Firefox for Android
+
+
+ 106
+ Released on 2022-10-18
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
The ClipboardItem.supports() static method checks if the browser supports writing data types such as "image/svg+xml" or other custom formats to the system clipboard.
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
color()
+
The color() function defines a color within a given color space. Wide gamut color spaces like display-p3 allow showing more vibrant and saturated colors than the standard srgb color space.
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
color-mix()
+
The color-mix() function mixes two colors in a given color space and by a given amount. Commonly, lighter or darker variations of a color are created by mixing with white or black.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Chrome Android
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Edge
+
+
+ 111
+ Released on 2023-03-13
+
+
+
+
+ Firefox
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Safari
+
+
+ 16.2
+ Released on 2022-12-13
+
+
+
+
+ Safari on iOS
+
+
+ 16.2
+ Released on 2022-12-13
+
+
In columnar layouts (created by the columns or column-count CSS properties), the break-after, break-before, break-inside properties control where columns start or end.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 102
+ Released on 2022-05-24
+
+
+
+
+ Chrome Android
+
+
+ 102
+ Released on 2022-05-24
+
+
The PressureObserver API monitors CPU load, allowing you to adjust workloads in response to available computing resources. Also known as the Compute Pressure API.
+
+ Newly available since 2023-09-18 (baseline low)
+
+
+
+
contain-intrinsic-size
+
The contain-intrinsic-size CSS property sets the intrinsic size of an element. When using size containment, the browser will layout the element as if it had a single child of this size.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 95
+ Released on 2021-10-19
+
+
+
+
+ Chrome Android
+
+
+ 95
+ Released on 2021-10-19
+
+
+
+
+ Edge
+
+
+ 95
+ Released on 2021-10-21
+
+
+
+
+ Firefox
+
+
+ 107
+ Released on 2022-11-15
+
+
+
+
+ Firefox for Android
+
+
+ 107
+ Released on 2022-11-15
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
The controlslist attribute for <audio> or <video> hides parts of the browser's built-in controls. For example, controlslist="nofullscreen" removes the button to play the video in fullscreen.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 58
+ Released on 2017-04-19
+
+
+
+
+ Chrome Android
+
+
+ 58
+ Released on 2017-04-25
+
+
+
+ Newly available since 2023-09-18 (baseline low)
+
+
+
+
@counter-style
+
The @counter-style CSS at-rule defines custom counter styles for list items. For example, you can use a sequence of specific symbols instead of numbers for an ordered list.
CSS module scripts allow CSS code to be organized into reusable units. Other modules use import ... with {type: "css"} to load CSS modules as constructable stylesheets.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 123
+ Released on 2024-03-19
+
+
+
+
+ Chrome Android
+
+
+ 123
+ Released on 2024-03-19
+
+
+
+
+ Widely available since 2019-10-05 (baseline high)
+
+
+
Custom properties
+
Custom properties are CSS properties prefixed with -- that set values you can reuse with the var() function. For example, you can set a --key-color property to reuse as border-color: var(--key-color). Also known as CSS variables.
The <datalist> element defines a set of recommended values for an <input> element. Browsers may show a dropdown menu of all options, or matching options as the user types.
+
+ Newly available since 2024-02-20 (baseline low)
+
+
+
+
Declarative shadow DOM
+
The shadowrootmode attribute on <template> creates a shadow root without the use of JavaScript. It is a declarative alternative to the attachShadow() method.
+
+
+ Widely available since 2022-07-15 (baseline high)
+
+
+
:default
+
The :default CSS pseudo-class matches the default element in a group of related form controls, such as checkboxes and radio buttons with the checked attribute.
Multiple <details> elements which use the same name attribute are mutually exclusive. When one member of the group is opened, all other members are closed.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 120
+ Released on 2023-12-05
+
+
+
+
+ Chrome Android
+
+
+ 120
+ Released on 2023-12-05
+
+
+
+
+ Widely available since 2022-07-15 (baseline high)
+
+
+
<details>
+
The <details> element is a disclosure widget which can be expanded to reveal additional content. When closed, only the nested <summary> element is visible.
You can animate elements between display: none and any other display value or animate between content-visibility: hidden and any other content-visibility value. This also applies to transitions.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 117
+ Released on 2023-09-12
+
+
+
+
+ Chrome Android
+
+
+ 117
+ Released on 2023-09-12
+
+
The EditContext API allows you to build rich text editors that support advanced text input, such as Input Method Editor (IME) composition, an emoji picker, or other platform-specific editing UI.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 121
+ Released on 2024-01-23
+
+
+
+
+ Chrome Android
+
+
+ 121
+ Released on 2024-01-23
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Fetch metadata request headers
+
The Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site, and Sec-Fetch-User` HTTP headers provide extra information about the way a request was made, to help servers reject certain kinds of malicious requests.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 80
+ Released on 2020-02-04
+
+
+
+
+ Chrome Android
+
+
+ 80
+ Released on 2020-02-04
+
+
+
+
+ Edge
+
+
+ 80
+ Released on 2020-02-07
+
+
+
+
+ Firefox
+
+
+ 90
+ Released on 2021-07-13
+
+
+
+
+ Firefox for Android
+
+
+ 90
+ Released on 2021-07-13
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
The fetch()priority option and the fetchPriority HTML attribute give hints to the browser about which requests to do before other requests of the same type.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 102
+ Released on 2022-05-24
+
+
+
+
+ Chrome Android
+
+
+ 102
+ Released on 2022-05-24
+
+
+
+
+ Edge
+
+
+ 102
+ Released on 2022-05-31
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+ Newly available since 2022-03-14 (baseline low)
+
+
+
+
:focus-visible
+
The :focus-visible CSS pseudo-class selects elements that match the :focus pseudo-class and meets the browser's criteria for visually emphasizing focused elements.
The font-size-adjust CSS property preserves apparent text size, regardless of the font used, by scaling fonts to the same size with respect to a specific metric, such as x-height. This can help make fallback fonts look the same size.
The font-synthesis-position CSS property sets whether or not the browser should synthesize subscript and superscript typefaces when they're missing from the font.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ ❌
+
+
+
+
+
+ Chrome Android
+
+
+ ❌
+
+
+
+
+
+ Edge
+
+
+ ❌
+
+
+
+
+
+ Firefox
+
+
+ 118
+ Released on 2023-09-26
+
+
+
+
+ Firefox for Android
+
+
+ 118
+ Released on 2023-09-26
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
font-synthesis-style
+
The font-synthesis-style CSS property sets whether or not the browser should synthesize italic and oblique typefaces when they're missing from the font.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 97
+ Released on 2022-01-04
+
+
+
+
+ Chrome Android
+
+
+ 97
+ Released on 2022-01-04
+
+
+
+
+ Edge
+
+
+ 97
+ Released on 2022-01-06
+
+
+
+
+ Firefox
+
+
+ 111
+ Released on 2023-03-14
+
+
+
+
+ Firefox for Android
+
+
+ 111
+ Released on 2023-03-14
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+ Newly available since 2022-01-06 (baseline low)
+
+
+
+
font-synthesis
+
The font-synthesis CSS shorthand property disables all font synthesis except the given kinds. To disable a specific kind of font synthesis, instead use the longhand properties such as font-synthesis-style and font-synthesis-weight.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 97
+ Released on 2022-01-04
+
+
+
+
+ Chrome Android
+
+
+ 97
+ Released on 2022-01-04
+
+
+
+
+ Edge
+
+
+ 97
+ Released on 2022-01-06
+
+
+
+
+ Firefox
+
+
+ 34
+ Released on 2014-12-01
+
+
+
+
+ Firefox for Android
+
+
+ 34
+ Released on 2014-12-01
+
+
+
+
+ Safari
+
+
+ 9
+ Released on 2015-09-30
+
+
+
+
+ Safari on iOS
+
+
+ 9
+ Released on 2015-09-16
+
+
The hidden="until-found" attribute hides an element until it is found using the browser's find-in-page search or it is directly navigated to by following a URL fragment.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 102
+ Released on 2022-05-24
+
+
+
+
+ Chrome Android
+
+
+ 102
+ Released on 2022-05-24
+
+
+
+
+ Widely available since 2018-03-30 (baseline high)
+
+
+
HTTP/2
+
The HTTP/2 protocol is a major revision of the HTTP network protocol, providing improved performance and efficiency by using a single TCP connection to send multiple streams of data at once.
HTTP/3 is a major revision of the HTTP network protocol, providing improved performance and efficiency by using QUIC as the underlying transport protocol.
+
+ Newly available since 2023-09-18 (baseline low)
+
+
+
+
Hyphenation
+
The hyphens CSS property controls when long words are broken by line wrapping. Although called hyphens, the property applies to word-splitting behavior across languages, such as customary spelling changes or the use of other characters to mark an intraword line break.
+
+ Newly available since 2023-09-18 (baseline low)
+
+
+
+
image-set()
+
The image-set() CSS function provides a set of images at different resolutions or pixel densities, which the browser can pick from, depending on the device capabilities.
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Import maps
+
A <script type="importmap"> HTML element provides an import map as a JSON string. An import map controls how the browser should resolve module specifiers when importing JavaScript modules.
+
+
+ Widely available since 2022-07-15 (baseline high)
+
+
+
:indeterminate
+
The :indeterminate CSS pseudo-class selects any form element whose state is indeterminate, such as checkboxes that have been set to an indeterminate state with JavaScript, or radio buttons which are members of a group in which all radio buttons are unchecked.
The trackVisibility parameter for the IntersectionObserver constructor enables tracking the visibility of an element, to detect if it may be obscured by other content or visual effects. Also known as IntersectionObserver v2.
+
+
+ Widely available since 2021-09-25 (baseline high)
+
+
+
Intersection observer
+
The Intersection Observer API asynchronously observes changes in the intersection of a target element with an ancestor element or with a top-level document's viewport.
+
+
+ Widely available since 2023-07-21 (baseline high)
+
+
+
:is()
+
The :is() CSS functional pseudo-class takes a selector list as its argument, and matches any element that can be selected by one of the selectors in that list.
+
+
+
+
+
+
diff --git a/docs/features/js-modules-service-workers/index.html b/docs/features/js-modules-service-workers/index.html
new file mode 100644
index 0000000000..d6cab27201
--- /dev/null
+++ b/docs/features/js-modules-service-workers/index.html
@@ -0,0 +1,159 @@
+
+
+
+
+ JavaScript modules in service workers
+
+
+
+
+
+ web-features explorer
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
JavaScript modules in service workers
+
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.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 91
+ Released on 2021-05-25
+
+
+
+
+ Chrome Android
+
+
+ 91
+ Released on 2021-05-25
+
+
+
+
+ Edge
+
+
+ 91
+ Released on 2021-05-27
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
The SharedWorker() constructor accepts { type: "module" } to load scripts that use import and export. Also known as ECMAScript modules or ESM in shared workers.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 80
+ Released on 2020-02-04
+
+
+
+
+ Chrome Android
+
+
+ ❌
+
+
+
+
+
+ Edge
+
+
+ 80
+ Released on 2020-02-07
+
+
+
+
+ Firefox
+
+
+ 114
+ Released on 2023-06-06
+
+
+
+
+ Firefox for Android
+
+
+ 114
+ Released on 2023-06-06
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Widely available since 2020-11-09 (baseline high)
+
+
+
JavaScript modules
+
JavaScript modules allow code to be organized into reusable units. Modules use import to load other modules and export to declare what is available to import from other modules. In HTML, modules are loaded with <script type="module">.
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
Lab and LCH
+
The CIE Lab color space expresses colors in terms of lightness and how red/green and blue/yellow a color is. LCH is a variant of Lab with polar coordinates. These color spaces can be used with the CSS color(), lab(), and lch() functions. Also known as CIELAB and CIELCH.
+
+ Newly available since 2023-11-21 (baseline low)
+
+
+
+
lh unit
+
The CSS lh unit corresponds to the requested line height, the computed value of the line-height property. Some lines may be higher than this based on their content.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 109
+ Released on 2023-01-10
+
+
+
+
+ Chrome Android
+
+
+ 109
+ Released on 2023-01-10
+
+
+
+
+ Edge
+
+
+ 109
+ Released on 2023-01-12
+
+
+
+
+ Firefox
+
+
+ 120
+ Released on 2023-11-21
+
+
+
+
+ Firefox for Android
+
+
+ 120
+ Released on 2023-11-21
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
The line-clamp CSS property limits the text in a block container to a certain number of lines. The prefixed -webkit-line-clamp is widely supported but only works with -webkit-box-orient: vertical in combination with display: -webkit-box or display: -webkit-inline-box.
+
+ Newly available since 2023-12-11 (baseline low)
+
+
+
+
linear() easing
+
The linear() easing function for animations and transitions interpolates linearly between the control points, and can be used to approximate complex easing functions, such as a bounce effect.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 113
+ Released on 2023-05-02
+
+
+
+
+ Chrome Android
+
+
+ 113
+ Released on 2023-05-02
+
+
+
+
+ Edge
+
+
+ 113
+ Released on 2023-05-05
+
+
+
+
+ Firefox
+
+
+ 112
+ Released on 2023-04-11
+
+
+
+
+ Firefox for Android
+
+
+ 112
+ Released on 2023-04-11
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+ Newly available since 2023-12-19 (baseline low)
+
+
+
+
Lazy-loading images and iframes
+
The loading="lazy" attribute for <img> and <iframe> elements blocks loading the external resource until the user scrolls to that element's part of the page.
Masonry is a type of CSS grid layout where the items on one of the axes are tightly packed together, like brickwork, instead of leaving gaps to align across the other axis.
+
+
+
+
+
+
diff --git a/docs/features/media-pseudos/index.html b/docs/features/media-pseudos/index.html
new file mode 100644
index 0000000000..ae919763d3
--- /dev/null
+++ b/docs/features/media-pseudos/index.html
@@ -0,0 +1,205 @@
+
+
+
+
+ Media element pseudo-classes
+
+
+
+
+
+ web-features explorer
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Media element pseudo-classes
+
The :playing, :paused, :seeking, :buffering, :stalled, :muted, and :volume-locked CSS pseudo-classes match <audio> and <video> elements based on their state.
+
+
+
+
+
+
diff --git a/docs/features/media-query-range-syntax/index.html b/docs/features/media-query-range-syntax/index.html
new file mode 100644
index 0000000000..309b99dcee
--- /dev/null
+++ b/docs/features/media-query-range-syntax/index.html
@@ -0,0 +1,168 @@
+
+
+
+
+ Media query range syntax
+
+
+
+
+
+ web-features explorer
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Media query range syntax
+
The range syntax of CSS media queries allows you to use mathematical comparison operators such as <, >, <=, and >= to define a range of values for a media feature. For example, (400px < width < 1000px) returns true if the viewport width is between 400px and 1000px.
The navigator.mediaSession API integrates with platform UI for media playback. It can be used to set metadata such as title and artwork, and to handle user actions like playing, pausing, or seeking.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 73
+ Released on 2019-03-12
+
+
+
+
+ Chrome Android
+
+
+ 57
+ Released on 2017-03-16
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 82
+ Released on 2020-10-20
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
messageerror
+
The messageerror event fires on a target, such as a window or worker, when an incoming message cannot be deserialized. This event can fire for many types of messages, such as cross-document messages or broadcast channel messages.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 80
+ Released on 2020-02-04
+
+
+
+
+ Chrome Android
+
+
+ 80
+ Released on 2020-02-04
+
+
+
+
+ Edge
+
+
+ 80
+ Released on 2020-02-07
+
+
+
+
+ Firefox
+
+
+ 65
+ Released on 2019-01-29
+
+
+
+
+ Firefox for Android
+
+
+ 65
+ Released on 2019-01-29
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+ Newly available since 2022-09-02 (baseline low)
+
+
+
+
:modal
+
The :modal pseudo-class selects elements that put other elements into a non-interactive state, such as a fullscreen element or a <dialog> element used with showModal().
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 105
+ Released on 2022-09-02
+
+
+
+
+ Chrome Android
+
+
+ 105
+ Released on 2022-09-02
+
+
+
+
+ Edge
+
+
+ 105
+ Released on 2022-09-01
+
+
+
+
+ Firefox
+
+
+ 103
+ Released on 2022-07-26
+
+
+
+
+ Firefox for Android
+
+
+ 103
+ Released on 2022-07-26
+
+
+
+
+ Safari
+
+
+ 15.6
+ Released on 2022-07-20
+
+
+
+
+ Safari on iOS
+
+
+ 15.6
+ Released on 2022-07-20
+
+
+
+ Newly available since 2023-09-18 (baseline low)
+
+
+
+
<link rel="modulepreload">
+
The rel="modulepreload" attribute for the <link> HTML element indicates that a module script should be fetched, parsed, and compiled preemptively, and stored for later execution.
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
:nth-child() of <selector>
+
The of syntax for the :nth-child() and :nth-last-child() CSS functional pseudo-classes match elements by the relative position of elements, counted from the first or last sibling matching a selector list.
+
+
+ Widely available since 2018-01-29 (baseline high)
+
+
+
:nth-child() (initial support)
+
The :nth-child() and :nth-last-child() CSS functional pseudo-classes match elements by the relative position of elements (first, second, third, fourth, and so on), counted from the first or last sibling.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 4
+ Released on 2010-01-25
+
+
+
+
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 3.5
+ Released on 2009-06-30
+
+
+
+
+ Firefox for Android
+
+
+ 4
+ Released on 2011-03-29
+
+
+
+
+ Safari
+
+
+ 3.1
+ Released on 2008-03-18
+
+
+
+
+ Safari on iOS
+
+
+ 2
+ Released on 2008-07-11
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Offscreen canvas
+
The OffscreenCanvas API provides a canvas that can be drawn to off screen, with no dependencies on the DOM, which can be used to run heavy rendering operations inside a worker context.
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
Oklab and Oklch
+
The Oklab color space expresses colors in terms of lightness and how red/green and blue/yellow a color is, aiming to match how humans perceive colors. Oklch is a variant of Oklab with polar coordinates. These color spaces can be used with the CSS color(), oklab(), and oklch() functions.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Chrome Android
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Edge
+
+
+ 111
+ Released on 2023-03-13
+
+
+
+
+ Firefox
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+ Newly available since 2023-03-14 (baseline low)
+
+
+
+
Origin private file system
+
The navigator.storage.getDirectory() method returns a FileSystemDirectoryHandle that is restricted to a specific origin and invisible to the user's actual file system for faster file-based applications, such as SQLite databases.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 102
+ Released on 2022-05-24
+
+
+
+
+ Chrome Android
+
+
+ 109
+ Released on 2023-01-10
+
+
+
+
+ Edge
+
+
+ 102
+ Released on 2022-05-31
+
+
+
+
+ Firefox
+
+
+ 111
+ Released on 2023-03-14
+
+
+
+
+ Firefox for Android
+
+
+ 111
+ Released on 2023-03-14
+
+
+
+
+ Safari
+
+
+ 15.2
+ Released on 2021-12-13
+
+
+
+
+ Safari on iOS
+
+
+ 15.2
+ Released on 2021-12-13
+
+
The break-after, break-before, break-inside CSS properties (along with page-break- aliases) control where printed pages start and end. Also known as pagination or page breaking.
+
+ Newly available since 2024-04-18 (baseline low)
+
+
+
+
Unsanitized HTML parsing methods
+
The Document.parseHTMLUnsafe() static method parses HTML into a DOM tree, while the setHTMLUnsafe() method of Element and ShadowRoot parses and inserts HTML into an existing tree. No sanitization applies to these methods, so never call them with user-provided HTML strings.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 124
+ Released on 2024-04-16
+
+
+
+
+ Chrome Android
+
+
+ 124
+ Released on 2024-04-16
+
+
+
+
+ Edge
+
+
+ 124
+ Released on 2024-04-18
+
+
+
+
+ Firefox
+
+
+ 123
+ Released on 2024-02-20
+
+
+
+
+ Firefox for Android
+
+
+ 123
+ Released on 2024-02-20
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+ Newly available since 2024-04-16 (baseline low)
+
+
+
+
Popover
+
The popover HTML attribute creates an overlay to display content on top of other page content. Popovers can be shown declaratively using HTML, or using the showPopover() method.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 114
+ Released on 2023-05-30
+
+
+
+
+ Chrome Android
+
+
+ 114
+ Released on 2023-05-30
+
+
+
+
+ Edge
+
+
+ 114
+ Released on 2023-06-02
+
+
+
+
+ Firefox
+
+
+ 125
+ Released on 2024-04-16
+
+
+
+
+ Firefox for Android
+
+
+ 125
+ Released on 2024-04-16
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+ Newly available since 2023-12-11 (baseline low)
+
+
+
+
Preloading responsive images
+
The imagesrcset and imagesizes attributes with the rel="preload" attribute for the <link> HTML element starts fetching responsive images before they're found in the body of the document.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 73
+ Released on 2019-03-12
+
+
+
+
+ Chrome Android
+
+
+ 73
+ Released on 2019-03-12
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 78
+ Released on 2020-06-30
+
+
+
+
+ Firefox for Android
+
+
+ 79
+ Released on 2020-07-28
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+ Newly available since 2023-12-11 (baseline low)
+
+
+
+
preservesPitch
+
The preservesPitch property for <audio> or <video> adjusts the pitch of audio to sound more natural when the playback rate is faster or slower than the default.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 86
+ Released on 2020-10-20
+
+
+
+
+ Chrome Android
+
+
+ 86
+ Released on 2020-10-20
+
+
+
+
+ Edge
+
+
+ 86
+ Released on 2020-10-09
+
+
+
+
+ Firefox
+
+
+ 101
+ Released on 2022-05-31
+
+
+
+
+ Firefox for Android
+
+
+ 101
+ Released on 2022-05-31
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Widely available since 2022-03-19 (baseline high)
+
+
+
Print events
+
An alternative to @media print queries, the beforeprint and afterprint events allow you to change the page for printing and and restore the page after printing.
+
+
+ Widely available since 2023-03-16 (baseline high)
+
+
+
Promise.any()
+
The Promise.any() static method returns a promise that fulfills as soon as the first of an iterable of promises fulfills, with that promise's value. Otherwise, it rejects with an AggregateError when all of the promises have rejected.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 85
+ Released on 2020-08-25
+
+
+
+
+ Chrome Android
+
+
+ 85
+ Released on 2020-08-25
+
+
+
+
+ Edge
+
+
+ 85
+ Released on 2020-08-27
+
+
+
+
+ Firefox
+
+
+ 79
+ Released on 2020-07-28
+
+
+
+
+ Firefox for Android
+
+
+ 79
+ Released on 2020-07-28
+
+
+
+
+ Safari
+
+
+ 14
+ Released on 2020-09-16
+
+
+
+
+ Safari on iOS
+
+
+ 14
+ Released on 2020-09-16
+
+
+
+ Newly available since 2024-03-05 (baseline low)
+
+
+
+
Promise.withResolvers()
+
The Promise.withResolvers() static method is an alternative to the Promise() constructor that returns both the promise and resolution functions. You can use this to access resolve and reject outside the scope of the executor function.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 119
+ Released on 2023-10-31
+
+
+
+
+ Chrome Android
+
+
+ 119
+ Released on 2023-10-31
+
+
+
+
+ Edge
+
+
+ 119
+ Released on 2023-11-02
+
+
+
+
+ Firefox
+
+
+ 121
+ Released on 2023-12-19
+
+
+
+
+ Firefox for Android
+
+
+ 121
+ Released on 2023-12-19
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Push messages
+
The Push API subscribes to and receives server-initiated messages. Subscribers receive pushed messages in the background, even after periods inactive or offline.
+
+
+ Widely available since 2023-01-28 (baseline high)
+
+
+
:read-only and :read-write
+
The :read-only and :read-write CSS pseudo-classes match elements that are read-only or read-write, respectively. For example, :read-only matches <input> and <textarea> elements with the readonly attribute.
The from keyword for color functions (color(), hsl(), oklch(), etc.) creates a new color based on a given color by modifying the values of the input color. Also known as relative color syntax (RCS).
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
requestAnimationFrame() in workers
+
The requestAnimationFrame() method in workers schedules a function that runs before the next repaint. Together with offscreen canvas, you can animate content from a worker.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 69
+ Released on 2018-09-04
+
+
+
+
+ Chrome Android
+
+
+ 69
+ Released on 2018-09-04
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 99
+ Released on 2022-04-05
+
+
+
+
+ Firefox for Android
+
+
+ 99
+ Released on 2022-04-05
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
The requestVideoFrameCallback() method for <video> schedules a function that runs with the next video frame. It is similar to requestAnimationFrame(), but for video.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 83
+ Released on 2020-05-19
+
+
+
+
+ Chrome Android
+
+
+ 83
+ Released on 2020-05-19
+
+
+
+
+ Widely available since 2020-03-19 (baseline high)
+
+
+
Resource timing (initial support)
+
PerformanceResourceTiming entries report when network events happen while loading a resource, such as when connections start and end. You can use this information to measure loading times.
The screen.orientation.lock() method prevents changes to the screen orientation, typically in fullscreen applications such as games. For example, while locked, rotating a phone to the side won't change the screen orientation from landscape to portrait.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ ❌
+
+
+
+
+
+ Chrome Android
+
+
+ 38
+ Released on 2014-10-08
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Screen orientation
+
The screen.orientation API gets information about the orientation of the viewport, such as landscape or portrait. With this API, you can adapt an application's layout or behavior in response to changes in orientation.
+
+
+
+
+
+
diff --git a/docs/features/scroll-to-text-fragment/index.html b/docs/features/scroll-to-text-fragment/index.html
new file mode 100644
index 0000000000..a54f6820f1
--- /dev/null
+++ b/docs/features/scroll-to-text-fragment/index.html
@@ -0,0 +1,155 @@
+
+
+
+
+ Scroll to text fragment
+
+
+
+
+
+ web-features explorer
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Scroll to text fragment
+
Text fragments are URL fragments on the form #:~:text=snippet and link to a snippet of text within a page. The browser may scroll, highlight, or otherwise bring that text to the reader's attention.
+
+
+ Widely available since 2018-01-29 (baseline high)
+
+
+
<input type="search">
+
The <input> HTML element with the type="search" attribute represents a text field for search queries, which might be styled differently by the browser.
The difference(), intersection(), isDisjointFrom(), isSubsetOf(), isSupersetOf(), symmetricDifference(), and union() methods of the JavaScript Set object performs operations between two sets.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 122
+ Released on 2024-02-20
+
+
+
+
+ Chrome Android
+
+
+ 122
+ Released on 2024-02-20
+
+
+
+
+ Edge
+
+
+ 122
+ Released on 2024-02-23
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Widely available since 2022-07-15 (baseline high)
+
+
+
Shadow DOM
+
Shadow DOM allows you to attach encapsulated "shadow" DOM trees to elements. A shadow DOM tree is a separate component, isolated from the scripts and styles in other parts of the document. This is a part of Web Components.
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.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 99
+ Released on 2022-03-01
+
+
+
+
+ Chrome Android
+
+
+ 99
+ Released on 2022-03-01
+
+
+
+
+ Edge
+
+
+ 99
+ Released on 2022-03-03
+
+
+
+
+ Firefox
+
+
+ 101
+ Released on 2022-05-31
+
+
+
+
+ Firefox for Android
+
+
+ 101
+ Released on 2022-05-31
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Imperative slot assignment
+
The assign() method for <slot> elements assigns nodes to the slot, as an alternative to using the slot and name HTML attributes. The nodes must be children of a shadow host and the shadow root must be created with the slotAssignment set to "manual". Also known as manual slot assignment.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 86
+ Released on 2020-10-20
+
+
+
+
+ Chrome Android
+
+
+ 86
+ Released on 2020-10-20
+
+
+
+
+ Edge
+
+
+ 86
+ Released on 2020-10-09
+
+
+
+
+ Firefox
+
+
+ 92
+ Released on 2021-09-07
+
+
+
+
+ Firefox for Android
+
+
+ 92
+ Released on 2021-09-07
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Widely available since 2022-03-19 (baseline high)
+
+
+
Sticky positioning
+
The position: sticky CSS declaration positions an element in the normal flow until it crosses a specified threshold, at which points it becomes fixed (stuck) at that position.
+
+ Newly available since 2023-12-05 (baseline low)
+
+
+
+
Storage access
+
The document.requestStorageAccess() method allows content in iframes to request storing and reading cookies and other site data, while the document.hasStorageAccess() method checks if such access is granted.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 119
+ Released on 2023-10-31
+
+
+
+
+ Chrome Android
+
+
+ 120
+ Released on 2023-12-05
+
+
+
+
+ Edge
+
+
+ 85
+ Released on 2020-08-27
+
+
+
+
+ Firefox
+
+
+ 65
+ Released on 2019-01-29
+
+
+
+
+ Firefox for Android
+
+
+ 65
+ Released on 2019-01-29
+
+
+
+
+ Safari
+
+
+ 11.1
+ Released on 2018-04-12
+
+
+
+
+ Safari on iOS
+
+
+ 11.3
+ Released on 2018-03-29
+
+
The navigator.storageBuckets API allows you to organize locally stored data into groups called storage buckets. Each bucket can have different settings, allowing the browser to manage and delete buckets independently rather than applying the same treatment to all.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 122
+ Released on 2024-02-20
+
+
+
+
+ Chrome Android
+
+
+ 122
+ Released on 2024-02-20
+
+
+
+ Newly available since 2022-03-14 (baseline low)
+
+
+
+
structuredClone()
+
The structuredClone() global method creates a deep copy of an object. Values that cannot be cloned can instead be transferred, making the original value no longer usable.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 98
+ Released on 2022-02-01
+
+
+
+
+ Chrome Android
+
+
+ 98
+ Released on 2022-02-01
+
+
+
+
+ Edge
+
+
+ 98
+ Released on 2022-02-03
+
+
+
+
+ Firefox
+
+
+ 94
+ Released on 2021-11-02
+
+
+
+
+ Firefox for Android
+
+
+ 94
+ Released on 2021-11-02
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+ Newly available since 2023-09-15 (baseline low)
+
+
+
+
Subgrid
+
The subgrid value for the grid-template-columns and grid-template-rows properties allows a grid item to inherit the grid definition of its parent grid container.
+
+
+ Widely available since 2018-03-30 (baseline high)
+
+
+
2D transforms
+
The transform CSS property and its 2D transform functions allow rotating, scaling, skewing, and translating an element. Arbitrary 2D transforms are also possible using a transformation matrix.
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%.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 117
+ Released on 2023-09-12
+
+
+
+
+ Chrome Android
+
+
+ 117
+ Released on 2023-09-12
+
+
+
+
+ Edge
+
+
+ 117
+ Released on 2023-09-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1805727
+
+
+
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+ Newly available since 2023-07-21 (baseline low)
+
+
+
+
Two-value display property
+
The display CSS property accepts multiple keyword values, such as inline flex or block flow, to explicitly set an element's inner and outer layout mode. Also known as 2-value, multi-keyword, or multiple value syntax.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 115
+ Released on 2023-07-18
+
+
+
+
+ Chrome Android
+
+
+ 115
+ Released on 2023-07-21
+
+
+
+
+ Edge
+
+
+ 115
+ Released on 2023-07-21
+
+
+
+
+ Firefox
+
+
+ 70
+ Released on 2019-10-22
+
+
+
+
+ Firefox for Android
+
+
+ 79
+ Released on 2020-07-28
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Widely available since 2018-01-29 (baseline high)
+
+
+
Typed arrays (initial support)
+
Typed arrays are ordered lists of JavaScript values, where all values are of the same numerical type, such as 8-bit integers or 32-bit floating point numbers.
+
+ Newly available since 2023-12-07 (baseline low)
+
+
+
+
URL.canParse()
+
The URL.canParse() static method checks whether a URL can be parsed into a valid URL object. It's an alternative to calling new URL() in a try…catch statement.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 120
+ Released on 2023-12-05
+
+
+
+
+ Chrome Android
+
+
+ 120
+ Released on 2023-12-05
+
+
+
+
+ Edge
+
+
+ 120
+ Released on 2023-12-07
+
+
+
+
+ Firefox
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Firefox for Android
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+ Newly available since 2023-11-21 (baseline low)
+
+
+
+
User activation
+
The navigator.userActivation API 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.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 72
+ Released on 2019-01-29
+
+
+
+
+ Chrome Android
+
+
+ 72
+ Released on 2019-01-29
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 120
+ Released on 2023-11-21
+
+
+
+
+ Firefox for Android
+
+
+ 120
+ Released on 2023-11-21
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
diff --git a/docs/features/viewport-unit-variants/index.html b/docs/features/viewport-unit-variants/index.html
new file mode 100644
index 0000000000..df36e6d82b
--- /dev/null
+++ b/docs/features/viewport-unit-variants/index.html
@@ -0,0 +1,167 @@
+
+
+
+
+ Small, large, and dynamic viewport units
+
+
+
+
+
+ web-features explorer
+
+
+
+
+
+
+
+
+ Newly available since 2022-12-05 (baseline low)
+
+
+
+
Small, large, and dynamic viewport units
+
The sv*, lv*, and dv* CSS viewport units are relative to the smallest, largest, and current (dynamic) viewport size. They are used to size elements in relation to the viewport's dimensions.
+
+
+ Widely available since 2020-04-17 (baseline high)
+
+
+
Viewport units
+
The vw, vh, vmin, and vmax CSS viewport units are relative to the size of the viewport, and are used to size elements in relation to the viewport's dimensions.
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
WebAssembly SIMD
+
The 128-bit SIMD (Single Instruction Multiple Data) extension to WebAssembly performs one instruction on multiple units of data, when running on hardware that supports such instructions. Also known as vector instructions.
+
+
+
+
+
+
diff --git a/docs/features/webauthn-public-key-easy/index.html b/docs/features/webauthn-public-key-easy/index.html
new file mode 100644
index 0000000000..3db6f7df12
--- /dev/null
+++ b/docs/features/webauthn-public-key-easy/index.html
@@ -0,0 +1,176 @@
+
+
+
+
+ Web authentication easy public key access
+
+
+
+
+
+ web-features explorer
+
+
+
+
+
+
+
+
+ Newly available since 2023-10-24 (baseline low)
+
+
+
+
Web authentication easy public key access
+
The getAuthenticatorData(), getPublicKey(), and getPublicKeyAlgorithm() methods of AuthenticatorAttestationResponse access credential data inside attestationObject without the need to parse it.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 85
+ Released on 2020-08-25
+
+
+
+
+ Chrome Android
+
+
+ 85
+ Released on 2020-08-25
+
+
+
+
+ Edge
+
+
+ 85
+ Released on 2020-08-27
+
+
+
+
+ Firefox
+
+
+ 119
+ Released on 2023-10-24
+
+
+
+
+ Firefox for Android
+
+
+ 119
+ Released on 2023-10-24
+
+
+
+
+ Safari
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+ Safari on iOS
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+ Newly available since 2022-12-13 (baseline low)
+
+
+
+
WebGL OES_draw_buffers_indexed extension
+
The OES_draw_buffers_indexed extension to WebGL allows you to control blending on a per-color basis when writing to multiple color buffers simultaneously.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 100
+ Released on 2022-03-29
+
+
+
+
+ Chrome Android
+
+
+ 100
+ Released on 2022-03-29
+
+
+
+
+ Edge
+
+
+ 100
+ Released on 2022-04-01
+
+
+
+
+ Firefox
+
+
+ 108
+ Released on 2022-12-13
+
+
+
+
+ Firefox for Android
+
+
+ 108
+ Released on 2022-12-13
+
+
+
+
+ Safari
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+ Safari on iOS
+
+
+ 16
+ Released on 2022-09-12
+
+
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.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ ❌
+
+
+
+
+
+ Chrome Android
+
+
+ ❌
+
+
+
+
+
+ Edge
+
+
+ ❌
+
+
+
+
+
+ Firefox
+
+
+ 117
+ Released on 2023-08-29
+
+
+
+
+ Firefox for Android
+
+
+ 117
+ Released on 2023-08-29
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
WebRTC SCTP information
+
The sctp object on RTCPeerConnection represents the negotiated SCTP transport. SCTP (Stream Control Transmission Protocol) is the protocol that RTCDataChannel uses.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 76
+ Released on 2019-07-30
+
+
+
+
+ Chrome Android
+
+
+ 76
+ Released on 2019-07-30
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
The WebVTT cue alignment settings control which part of the cue is aligned with the given line and position. Cue alignment is set using line and position settings in WebVTT files or the lineAlign and positionAlign properties of VTTCue using JavaScript.
+
+
+ Widely available since 2018-01-29 (baseline high)
+
+
+
WebVTT
+
WebVTT is a captions and subtitles format. WebVTT files are loaded using the <track> element, and the VTTCue API can be used to create or update cues dynamically.
+
+
+ Widely available since 2023-07-21 (baseline high)
+
+
+
:where()
+
The :where() CSS functional pseudo-class takes a selector list as its argument, and matches any element that can be selected by one of the selectors in that list. It is functionally equivalent to the selectors in the list, but doesn't affect the CSS rule specificity.
+
+
Compatibility
+
+
+
+ Chrome
+
+
+ 88
+ Released on 2021-01-19
+
+
+
+
+ Chrome Android
+
+
+ 88
+ Released on 2021-01-19
+
+
+
+
+ Edge
+
+
+ 88
+ Released on 2021-01-21
+
+
+
+
+ Firefox
+
+
+ 82
+ Released on 2020-10-20
+
+
+
+
+ Firefox for Android
+
+
+ 82
+ Released on 2020-10-20
+
+
+
+
+ Safari
+
+
+ 14
+ Released on 2020-09-16
+
+
+
+
+ Safari on iOS
+
+
+ 14
+ Released on 2020-09-16
+
+
+
+
+ Widely available since 2022-07-15 (baseline high)
+
+
+
will-change
+
The will-change CSS property gives hints to the browser about expected changes to an element's scroll position, contents, or style. These hints allow browsers to optimize for upcoming style changes.
The font-size-adjust CSS property preserves apparent text size, regardless of the font used, by scaling fonts to the same size with respect to a specific metric, such as x-height. This can help make fallback fonts look the same size.
The font-size-adjust CSS property preserves apparent text size, regardless of the font used, by scaling fonts to the same size with respect to a specific metric, such as x-height. This can help make fallback fonts look the same size.
+ Firefox for Android
+
+
+ 31
+ Released on 2014-07-22
+
+
+
+
+ Safari
+
+
+ 8
+ Released on 2014-10-16
+
+
+
+
+ Safari on iOS
+
+
+ 8
+ Released on 2014-09-17
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
WebVTT cue alignment
+
The WebVTT cue alignment settings control which part of the cue is aligned with the given line and position. Cue alignment is set using line and position settings in WebVTT files or the lineAlign and positionAlign properties of VTTCue using JavaScript.
+ Firefox for Android
+
+
+ 31
+ Released on 2014-07-22
+
+
+
+
+ Safari
+
+
+ 8
+ Released on 2014-10-16
+
+
+
+
+ Safari on iOS
+
+
+ 8
+ Released on 2014-09-17
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
WebVTT cue alignment
+
The WebVTT cue alignment settings control which part of the cue is aligned with the given line and position. Cue alignment is set using line and position settings in WebVTT files or the lineAlign and positionAlign properties of VTTCue using JavaScript.
The screen.orientation.lock() method prevents changes to the screen orientation, typically in fullscreen applications such as games. For example, while locked, rotating a phone to the side won't change the screen orientation from landscape to portrait.
The <datalist> element defines a set of recommended values for an <input> element. Browsers may show a dropdown menu of all options, or matching options as the user types.
+ Chrome Android
+
+
+ 31
+ Released on 2013-11-14
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 42
+ Released on 2015-11-03
+
+
+
+
+ Firefox for Android
+
+
+ 42
+ Released on 2015-11-03
+
+
+
+
+ Safari
+
+
+ 8
+ Released on 2014-10-16
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Page breaks
+
The break-after, break-before, break-inside CSS properties (along with page-break- aliases) control where printed pages start and end. Also known as pagination or page breaking.
The break-after, break-before, break-inside CSS properties (along with page-break- aliases) control where printed pages start and end. Also known as pagination or page breaking.
The break-after, break-before, break-inside CSS properties (along with page-break- aliases) control where printed pages start and end. Also known as pagination or page breaking.
The navigator.mediaSession API integrates with platform UI for media playback. It can be used to set metadata such as title and artwork, and to handle user actions like playing, pausing, or seeking.
The controlslist attribute for <audio> or <video> hides parts of the browser's built-in controls. For example, controlslist="nofullscreen" removes the button to play the video in fullscreen.
+ Chrome Android
+
+
+ 58
+ Released on 2017-04-25
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome Android this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
controlslist
+
The controlslist attribute for <audio> or <video> hides parts of the browser's built-in controls. For example, controlslist="nofullscreen" removes the button to play the video in fullscreen.
+ Chrome Android
+
+
+ 28
+ Released on 2013-07-10
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 16
+ Released on 2012-10-09
+
+
+
+
+ Firefox for Android
+
+
+ 16
+ Released on 2012-10-09
+
+
+
+
+ Safari
+
+
+ 7
+ Released on 2013-10-22
+
+
+
+
+ Safari on iOS
+
+
+ 7
+ Released on 2013-09-18
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-01-29 (baseline high)
+
+
+
Canvas text metrics
+
The fillText() and strokeText() methods draw text to a 2D canvas. The measureText() method measures the width and other metrics which can be used to position the text.
+ Chrome Android
+
+
+ 38
+ Released on 2014-10-08
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 13
+ Released on 2012-06-05
+
+
+
+
+ Firefox for Android
+
+
+ 14
+ Released on 2012-06-26
+
+
+
+
+ Safari
+
+
+ 8
+ Released on 2014-10-16
+
+
+
+
+ Safari on iOS
+
+
+ 8
+ Released on 2014-09-17
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-01-29 (baseline high)
+
+
+
:nth-child() (initial support)
+
The :nth-child() and :nth-last-child() CSS functional pseudo-classes match elements by the relative position of elements (first, second, third, fourth, and so on), counted from the first or last sibling.
+ Chrome Android
+
+
+ 25
+ Released on 2013-02-27
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 23
+ Released on 2013-08-06
+
+
+
+
+ Firefox for Android
+
+
+ 23
+ Released on 2013-08-06
+
+
+
+
+ Safari
+
+
+ 7
+ Released on 2013-10-22
+
+
+
+
+ Safari on iOS
+
+
+ 7
+ Released on 2013-09-18
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-01-29 (baseline high)
+
+
+
<input type="search">
+
The <input> HTML element with the type="search" attribute represents a text field for search queries, which might be styled differently by the browser.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 1
+ Released on 2004-11-09
+
+
+
+
+ Firefox for Android
+
+
+ 4
+ Released on 2011-03-29
+
+
+
+
+ Safari
+
+
+ 1
+ Released on 2003-06-23
+
+
+
+
+ Safari on iOS
+
+
+ 1
+ Released on 2007-06-29
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-01-29 (baseline high)
+
+
+
Typed arrays (initial support)
+
Typed arrays are ordered lists of JavaScript values, where all values are of the same numerical type, such as 8-bit integers or 32-bit floating point numbers.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 4
+ Released on 2011-03-22
+
+
+
+
+ Firefox for Android
+
+
+ 4
+ Released on 2011-03-29
+
+
+
+
+ Safari
+
+
+ 5.1
+ Released on 2011-07-20
+
+
+
+
+ Safari on iOS
+
+
+ 4.2
+ Released on 2010-11-22
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-01-29 (baseline high)
+
+
+
WebVTT
+
WebVTT is a captions and subtitles format. WebVTT files are loaded using the <track> element, and the VTTCue API can be used to create or update cues dynamically.
+ Chrome Android
+
+
+ 39
+ Released on 2014-11-12
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 25
+ Released on 2013-10-29
+
+
+
+
+ Firefox for Android
+
+
+ 25
+ Released on 2013-10-29
+
+
+
+
+ Safari
+
+
+ 9
+ Released on 2015-09-30
+
+
+
+
+ Safari on iOS
+
+
+ 9
+ Released on 2015-09-16
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-03-30 (baseline high)
+
+
+
HTTP/2
+
The HTTP/2 protocol is a major revision of the HTTP network protocol, providing improved performance and efficiency by using a single TCP connection to send multiple streams of data at once.
+ Chrome Android
+
+
+ 41
+ Released on 2015-03-11
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 36
+ Released on 2015-02-24
+
+
+
+
+ Firefox for Android
+
+
+ 36
+ Released on 2015-02-27
+
+
+
+
+ Safari
+
+
+ 9
+ Released on 2015-09-30
+
+
+
+
+ Safari on iOS
+
+
+ 9
+ Released on 2015-09-16
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2018-03-30 (baseline high)
+
+
+
2D transforms
+
The transform CSS property and its 2D transform functions allow rotating, scaling, skewing, and translating an element. Arbitrary 2D transforms are also possible using a transformation matrix.
+ Chrome Android
+
+
+ 45
+ Released on 2015-09-01
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 37
+ Released on 2015-03-31
+
+
+
+
+ Firefox for Android
+
+
+ 37
+ Released on 2015-03-31
+
+
+
+
+ Safari
+
+
+ 9.1
+ Released on 2016-03-21
+
+
+
+
+ Safari on iOS
+
+
+ 9.3
+ Released on 2016-03-21
+
+
+
+
+
+
+
+
+
+
+
Just became available in all browsers this month
+
+
+
No features became available this month.
+
+
+
+
+
Got implemented in Chrome this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
<datalist>
+
The <datalist> element defines a set of recommended values for an <input> element. Browsers may show a dropdown menu of all options, or matching options as the user types.
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1463402
+
+
+
+
+
+
+
+ Safari
+
+
+ 13.1
+ Released on 2020-03-24
+
+
+
+
+ Safari on iOS
+
+
+ 13.4
+ Released on 2020-03-24
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome Android this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
<datalist>
+
The <datalist> element defines a set of recommended values for an <input> element. Browsers may show a dropdown menu of all options, or matching options as the user types.
+ Chrome Android
+
+
+ 38
+ Released on 2014-10-08
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 36
+ Released on 2015-02-24
+
+
+
+
+ Firefox for Android
+
+
+ 36
+ Released on 2015-02-27
+
+
+
+
+ Safari
+
+
+ 10
+ Released on 2016-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 10
+ Released on 2016-09-13
+
+
+
+
+
+
+
+
+
+
+
Just became available in all browsers this month
+
+
+
No features became available this month.
+
+
+
+
+
Got implemented in Chrome this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Media session
+
The navigator.mediaSession API integrates with platform UI for media playback. It can be used to set metadata such as title and artwork, and to handle user actions like playing, pausing, or seeking.
+ Chrome Android
+
+
+ 57
+ Released on 2017-03-16
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 82
+ Released on 2020-10-20
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Safari this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
<datalist>
+
The <datalist> element defines a set of recommended values for an <input> element. Browsers may show a dropdown menu of all options, or matching options as the user types.
+ Chrome Android
+
+
+ 69
+ Released on 2018-09-04
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 110
+ Released on 2023-02-14
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 12.1
+ Released on 2019-03-25
+
+
+
+
+ Safari on iOS
+
+
+ 12.2
+ Released on 2019-03-25
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Safari on iOS this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
<datalist>
+
The <datalist> element defines a set of recommended values for an <input> element. Browsers may show a dropdown menu of all options, or matching options as the user types.
+ Chrome Android
+
+
+ 74
+ Released on 2019-04-24
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Intersection observer visibility tracking
+
The trackVisibility parameter for the IntersectionObserver constructor enables tracking the visibility of an element, to detect if it may be obscured by other content or visual effects. Also known as IntersectionObserver v2.
+ Chrome Android
+
+
+ 74
+ Released on 2019-04-24
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Intersection observer visibility tracking
+
The trackVisibility parameter for the IntersectionObserver constructor enables tracking the visibility of an element, to detect if it may be obscured by other content or visual effects. Also known as IntersectionObserver v2.
+ Chrome Android
+
+
+ 55
+ Released on 2016-12-06
+
+
+
+
+ Edge
+
+
+ 15
+ Released on 2017-04-05
+
+
+
+
+ Firefox
+
+
+ 52
+ Released on 2017-03-07
+
+
+
+
+ Firefox for Android
+
+
+ 52
+ Released on 2017-03-07
+
+
+
+
+ Safari
+
+
+ 10.1
+ Released on 2017-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 10.3
+ Released on 2017-03-27
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2019-10-05 (baseline high)
+
+
+
Custom properties
+
Custom properties are CSS properties prefixed with -- that set values you can reuse with the var() function. For example, you can set a --key-color property to reuse as border-color: var(--key-color). Also known as CSS variables.
+ Chrome Android
+
+
+ 74
+ Released on 2019-04-24
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
controlslist
+
The controlslist attribute for <audio> or <video> hides parts of the browser's built-in controls. For example, controlslist="nofullscreen" removes the button to play the video in fullscreen.
+ Chrome Android
+
+
+ 71
+ Released on 2018-12-04
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 64
+ Released on 2018-12-11
+
+
+
+
+ Firefox for Android
+
+
+ 64
+ Released on 2018-12-11
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Intersection observer visibility tracking
+
The trackVisibility parameter for the IntersectionObserver constructor enables tracking the visibility of an element, to detect if it may be obscured by other content or visual effects. Also known as IntersectionObserver v2.
+ Chrome Android
+
+
+ 74
+ Released on 2019-04-24
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Media session
+
The navigator.mediaSession API integrates with platform UI for media playback. It can be used to set metadata such as title and artwork, and to handle user actions like playing, pausing, or seeking.
The SharedWorker() constructor accepts { type: "module" } to load scripts that use import and export. Also known as ECMAScript modules or ESM in shared workers.
+ Firefox for Android
+
+
+ 114
+ Released on 2023-06-06
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Edge this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
JavaScript modules in shared workers
+
The SharedWorker() constructor accepts { type: "module" } to load scripts that use import and export. Also known as ECMAScript modules or ESM in shared workers.
+ Chrome Android
+
+
+ 53
+ Released on 2016-09-07
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 39
+ Released on 2015-07-02
+
+
+
+
+ Firefox for Android
+
+
+ 39
+ Released on 2015-07-02
+
+
+
+
+ Safari
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2020-03-19 (baseline high)
+
+
+
Resource timing (initial support)
+
PerformanceResourceTiming entries report when network events happen while loading a resource, such as when connections start and end. You can use this information to measure loading times.
+
+
+ Widely available since 2020-04-17 (baseline high)
+
+
+
Viewport units
+
The vw, vh, vmin, and vmax CSS viewport units are relative to the size of the viewport, and are used to size elements in relation to the viewport's dimensions.
+ Chrome Android
+
+
+ 26
+ Released on 2013-04-03
+
+
+
+
+ Edge
+
+
+ 16
+ Released on 2017-10-17
+
+
+
+
+ Firefox
+
+
+ 19
+ Released on 2013-02-19
+
+
+
+
+ Firefox for Android
+
+
+ 19
+ Released on 2013-02-19
+
+
+
+
+ Safari
+
+
+ 7
+ Released on 2013-10-22
+
+
+
+
+ Safari on iOS
+
+
+ 7
+ Released on 2013-09-18
+
+
+
+
+
+
+
+
+
+
+
Just became available in all browsers this month
+
+
+
No features became available this month.
+
+
+
+
+
Got implemented in Chrome this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Scroll to text fragment
+
Text fragments are URL fragments on the form #:~:text=snippet and link to a snippet of text within a page. The browser may scroll, highlight, or otherwise bring that text to the reader's attention.
+ Chrome Android
+
+
+ 81
+ Released on 2020-04-07
+
+
+
+
+ Edge
+
+
+ 83
+ Released on 2020-05-21
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 16.1
+ Released on 2022-10-24
+
+
+
+
+ Safari on iOS
+
+
+ 16.1
+ Released on 2022-10-24
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome Android this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Scroll to text fragment
+
Text fragments are URL fragments on the form #:~:text=snippet and link to a snippet of text within a page. The browser may scroll, highlight, or otherwise bring that text to the reader's attention.
The requestVideoFrameCallback() method for <video> schedules a function that runs with the next video frame. It is similar to requestAnimationFrame(), but for video.
+ Chrome Android
+
+
+ 83
+ Released on 2020-05-19
+
+
+
+
+ Edge
+
+
+ 83
+ Released on 2020-05-21
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome Android this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
requestVideoFrameCallback()
+
The requestVideoFrameCallback() method for <video> schedules a function that runs with the next video frame. It is similar to requestAnimationFrame(), but for video.
+ Chrome Android
+
+
+ 83
+ Released on 2020-05-19
+
+
+
+
+ Edge
+
+
+ 83
+ Released on 2020-05-21
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Edge this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
requestVideoFrameCallback()
+
The requestVideoFrameCallback() method for <video> schedules a function that runs with the next video frame. It is similar to requestAnimationFrame(), but for video.
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1800882
+
+
+
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Scroll to text fragment
+
Text fragments are URL fragments on the form #:~:text=snippet and link to a snippet of text within a page. The browser may scroll, highlight, or otherwise bring that text to the reader's attention.
The navigator.mediaSession API integrates with platform UI for media playback. It can be used to set metadata such as title and artwork, and to handle user actions like playing, pausing, or seeking.
+
+
+ Widely available since 2020-11-09 (baseline high)
+
+
+
JavaScript modules
+
JavaScript modules allow code to be organized into reusable units. Modules use import to load other modules and export to declare what is available to import from other modules. In HTML, modules are loaded with <script type="module">.
+ Chrome Android
+
+
+ 61
+ Released on 2017-09-05
+
+
+
+
+ Edge
+
+
+ 16
+ Released on 2017-10-17
+
+
+
+
+ Firefox
+
+
+ 60
+ Released on 2018-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 60
+ Released on 2018-05-09
+
+
+
+
+ Safari
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+
+
+
+
+
+
+
Just became available in all browsers this month
+
+
+
No features became available this month.
+
+
+
+
+
Got implemented in Chrome this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
HTTP/3
+
HTTP/3 is a major revision of the HTTP network protocol, providing improved performance and efficiency by using QUIC as the underlying transport protocol.
+ Chrome Android
+
+
+ 87
+ Released on 2020-11-17
+
+
+
+
+ Edge
+
+
+ 87
+ Released on 2020-11-19
+
+
+
+
+ Firefox
+
+
+ 88
+ Released on 2021-04-19
+
+
+
+
+ Firefox for Android
+
+
+ 88
+ Released on 2021-04-19
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome Android this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
HTTP/3
+
HTTP/3 is a major revision of the HTTP network protocol, providing improved performance and efficiency by using QUIC as the underlying transport protocol.
+ Chrome Android
+
+
+ 87
+ Released on 2020-11-17
+
+
+
+
+ Edge
+
+
+ 87
+ Released on 2020-11-19
+
+
+
+
+ Firefox
+
+
+ 88
+ Released on 2021-04-19
+
+
+
+
+ Firefox for Android
+
+
+ 88
+ Released on 2021-04-19
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Edge this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
HTTP/3
+
HTTP/3 is a major revision of the HTTP network protocol, providing improved performance and efficiency by using QUIC as the underlying transport protocol.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 18
+ Released on 2018-10-02
+
+
+
+
+ Firefox
+
+
+ 1.5
+ Released on 2005-11-29
+
+
+
+
+ Firefox for Android
+
+
+ 4
+ Released on 2011-03-29
+
+
+
+
+ Safari
+
+
+ 4
+ Released on 2009-06-08
+
+
+
+
+ Safari on iOS
+
+
+ 3.2
+ Released on 2010-04-03
+
+
+
+
+
+
+
+
+
+
+
Just became available in all browsers this month
+
+
+
No features became available this month.
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Firefox this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
HTTP/3
+
HTTP/3 is a major revision of the HTTP network protocol, providing improved performance and efficiency by using QUIC as the underlying transport protocol.
+ Chrome Android
+
+
+ 87
+ Released on 2020-11-17
+
+
+
+
+ Edge
+
+
+ 87
+ Released on 2020-11-19
+
+
+
+
+ Firefox
+
+
+ 88
+ Released on 2021-04-19
+
+
+
+
+ Firefox for Android
+
+
+ 88
+ Released on 2021-04-19
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Firefox for Android this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
HTTP/3
+
HTTP/3 is a major revision of the HTTP network protocol, providing improved performance and efficiency by using QUIC as the underlying transport protocol.
+ Chrome Android
+
+
+ 87
+ Released on 2020-11-17
+
+
+
+
+ Edge
+
+
+ 87
+ Released on 2020-11-19
+
+
+
+
+ Firefox
+
+
+ 88
+ Released on 2021-04-19
+
+
+
+
+ Firefox for Android
+
+
+ 88
+ Released on 2021-04-19
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Safari this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
WebVTT cue alignment
+
The WebVTT cue alignment settings control which part of the cue is aligned with the given line and position. Cue alignment is set using line and position settings in WebVTT files or the lineAlign and positionAlign properties of VTTCue using JavaScript.
+ Firefox for Android
+
+
+ 31
+ Released on 2014-07-22
+
+
+
+
+ Safari
+
+
+ 14.1
+ Released on 2021-04-26
+
+
+
+
+ Safari on iOS
+
+
+ 14.5
+ Released on 2021-04-26
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Safari on iOS this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
WebVTT cue alignment
+
The WebVTT cue alignment settings control which part of the cue is aligned with the given line and position. Cue alignment is set using line and position settings in WebVTT files or the lineAlign and positionAlign properties of VTTCue using JavaScript.
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.
+ Chrome Android
+
+
+ 91
+ Released on 2021-05-25
+
+
+
+
+ Edge
+
+
+ 91
+ Released on 2021-05-27
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome Android this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
JavaScript modules in service workers
+
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.
+ Chrome Android
+
+
+ 91
+ Released on 2021-05-25
+
+
+
+
+ Edge
+
+
+ 91
+ Released on 2021-05-27
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Edge this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
JavaScript modules in service workers
+
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.
+ Chrome Android
+
+
+ 66
+ Released on 2018-04-17
+
+
+
+
+ Edge
+
+
+ 16
+ Released on 2017-10-17
+
+
+
+
+ Firefox
+
+
+ 57
+ Released on 2017-11-14
+
+
+
+
+ Firefox for Android
+
+
+ 57
+ Released on 2017-11-28
+
+
+
+
+ Safari
+
+
+ 12.1
+ Released on 2019-03-25
+
+
+
+
+ Safari on iOS
+
+
+ 12.2
+ Released on 2019-03-25
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2021-09-25 (baseline high)
+
+
+
Intersection observer
+
The Intersection Observer API asynchronously observes changes in the intersection of a target element with an ancestor element or with a top-level document's viewport.
+ Chrome Android
+
+
+ 94
+ Released on 2021-09-21
+
+
+
+
+ Edge
+
+
+ 94
+ Released on 2021-09-24
+
+
+
+
+ Firefox
+
+
+ 97
+ Released on 2022-02-08
+
+
+
+
+ Firefox for Android
+
+
+ 97
+ Released on 2022-02-08
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Safari this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
JavaScript modules in service workers
+
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.
+ Chrome Android
+
+
+ 91
+ Released on 2021-05-25
+
+
+
+
+ Edge
+
+
+ 91
+ Released on 2021-05-27
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
JavaScript modules in shared workers
+
The SharedWorker() constructor accepts { type: "module" } to load scripts that use import and export. Also known as ECMAScript modules or ESM in shared workers.
+ Firefox for Android
+
+
+ 114
+ Released on 2023-06-06
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Media session
+
The navigator.mediaSession API integrates with platform UI for media playback. It can be used to set metadata such as title and artwork, and to handle user actions like playing, pausing, or seeking.
+ Chrome Android
+
+
+ 57
+ Released on 2017-03-16
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 82
+ Released on 2020-10-20
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Safari on iOS this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
JavaScript modules in service workers
+
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.
+ Chrome Android
+
+
+ 91
+ Released on 2021-05-25
+
+
+
+
+ Edge
+
+
+ 91
+ Released on 2021-05-27
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
JavaScript modules in shared workers
+
The SharedWorker() constructor accepts { type: "module" } to load scripts that use import and export. Also known as ECMAScript modules or ESM in shared workers.
+ Firefox for Android
+
+
+ 114
+ Released on 2023-06-06
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Media session
+
The navigator.mediaSession API integrates with platform UI for media playback. It can be used to set metadata such as title and artwork, and to handle user actions like playing, pausing, or seeking.
+ Chrome Android
+
+
+ 69
+ Released on 2018-09-04
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 68
+ Released on 2019-07-09
+
+
+
+
+ Firefox for Android
+
+
+ 68
+ Released on 2019-07-09
+
+
+
+
+ Safari
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+
+
+
+
+
+
+
Just became available in all browsers this month
+
+
+
+
+
+
+
+
+ Newly available since 2022-01-06 (baseline low)
+
+
+
+
font-synthesis
+
The font-synthesis CSS shorthand property disables all font synthesis except the given kinds. To disable a specific kind of font synthesis, instead use the longhand properties such as font-synthesis-style and font-synthesis-weight.
+
+
+ Widely available since 2022-03-19 (baseline high)
+
+
+
Print events
+
An alternative to @media print queries, the beforeprint and afterprint events allow you to change the page for printing and and restore the page after printing.
+ Chrome Android
+
+
+ 63
+ Released on 2017-12-05
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 6
+ Released on 2011-08-16
+
+
+
+
+ Firefox for Android
+
+
+ 6
+ Released on 2011-08-16
+
+
+
+
+ Safari
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2022-03-19 (baseline high)
+
+
+
Sticky positioning
+
The position: sticky CSS declaration positions an element in the normal flow until it crosses a specified threshold, at which points it becomes fixed (stuck) at that position.
+ Chrome Android
+
+
+ 93
+ Released on 2021-08-31
+
+
+
+
+ Edge
+
+
+ 93
+ Released on 2021-09-02
+
+
+
+
+ Firefox
+
+
+ 92
+ Released on 2021-09-07
+
+
+
+
+ Firefox for Android
+
+
+ 92
+ Released on 2021-09-07
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-03-14 (baseline low)
+
+
+
+
appearance
+
The appearance CSS property controls the appearance of form controls. Using appearance: none disables any default native appearance and allows the elements to be styled with CSS.
+ Chrome Android
+
+
+ 84
+ Released on 2020-07-27
+
+
+
+
+ Edge
+
+
+ 84
+ Released on 2020-07-16
+
+
+
+
+ Firefox
+
+
+ 80
+ Released on 2020-08-25
+
+
+
+
+ Firefox for Android
+
+
+ 80
+ Released on 2020-08-31
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-03-14 (baseline low)
+
+
+
+
Array at()
+
The at() method of arrays and typed arrays returns the item at an index, including negative indices for getting items relative to the end of an array. Also known as the relative indexing method.
+ Chrome Android
+
+
+ 60
+ Released on 2017-08-01
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 57
+ Released on 2017-11-14
+
+
+
+
+ Firefox for Android
+
+
+ 57
+ Released on 2017-11-28
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-03-14 (baseline low)
+
+
+
+
Cascade layers
+
The @layer CSS at-rule avoids specificity conflicts by providing priority levels for different groups of CSS rules, such as low-priority styles like resets, and high-priority styles like UI components.
+ Chrome Android
+
+
+ 37
+ Released on 2014-09-03
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 98
+ Released on 2022-03-08
+
+
+
+
+ Firefox for Android
+
+
+ 98
+ Released on 2022-03-08
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-03-14 (baseline low)
+
+
+
+
:focus-visible
+
The :focus-visible CSS pseudo-class selects elements that match the :focus pseudo-class and meets the browser's criteria for visually emphasizing focused elements.
+ Chrome Android
+
+
+ 86
+ Released on 2020-10-20
+
+
+
+
+ Edge
+
+
+ 86
+ Released on 2020-10-09
+
+
+
+
+ Firefox
+
+
+ 85
+ Released on 2021-01-26
+
+
+
+
+ Firefox for Android
+
+
+ 85
+ Released on 2021-01-26
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-03-14 (baseline low)
+
+
+
+
structuredClone()
+
The structuredClone() global method creates a deep copy of an object. Values that cannot be cloned can instead be transferred, making the original value no longer usable.
+ Chrome Android
+
+
+ 99
+ Released on 2022-03-01
+
+
+
+
+ Edge
+
+
+ 99
+ Released on 2022-03-03
+
+
+
+
+ Firefox
+
+
+ 125
+ Released on 2024-04-16
+
+
+
+
+ Firefox for Android
+
+
+ 125
+ Released on 2024-04-16
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
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.
+ Chrome Android
+
+
+ 99
+ Released on 2022-03-01
+
+
+
+
+ Edge
+
+
+ 99
+ Released on 2022-03-03
+
+
+
+
+ Firefox
+
+
+ 125
+ Released on 2024-04-16
+
+
+
+
+ Firefox for Android
+
+
+ 125
+ Released on 2024-04-16
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
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.
+ Chrome Android
+
+
+ 99
+ Released on 2022-03-01
+
+
+
+
+ Edge
+
+
+ 99
+ Released on 2022-03-03
+
+
+
+
+ Firefox
+
+
+ 125
+ Released on 2024-04-16
+
+
+
+
+ Firefox for Android
+
+
+ 125
+ Released on 2024-04-16
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
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.
+ Firefox for Android
+
+
+ 118
+ Released on 2023-09-26
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Media element pseudo-classes
+
The :playing, :paused, :seeking, :buffering, :stalled, :muted, and :volume-locked CSS pseudo-classes match <audio> and <video> elements based on their state.
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
requestVideoFrameCallback()
+
The requestVideoFrameCallback() method for <video> schedules a function that runs with the next video frame. It is similar to requestAnimationFrame(), but for video.
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1800882
+
+
+
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
WebRTC encoded transform
+
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.
+ Firefox for Android
+
+
+ 118
+ Released on 2023-09-26
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Media element pseudo-classes
+
The :playing, :paused, :seeking, :buffering, :stalled, :muted, and :volume-locked CSS pseudo-classes match <audio> and <video> elements based on their state.
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
requestVideoFrameCallback()
+
The requestVideoFrameCallback() method for <video> schedules a function that runs with the next video frame. It is similar to requestAnimationFrame(), but for video.
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1800882
+
+
+
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
WebRTC encoded transform
+
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.
In columnar layouts (created by the columns or column-count CSS properties), the break-after, break-before, break-inside properties control where columns start or end.
+ Chrome Android
+
+
+ 102
+ Released on 2022-05-24
+
+
+
+
+ Edge
+
+
+ 102
+ Released on 2022-05-31
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Fetch priority
+
The fetch()priority option and the fetchPriority HTML attribute give hints to the browser about which requests to do before other requests of the same type.
+ Chrome Android
+
+
+ 102
+ Released on 2022-05-24
+
+
+
+
+ Edge
+
+
+ 102
+ Released on 2022-05-31
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
hidden="until-found"
+
The hidden="until-found" attribute hides an element until it is found using the browser's find-in-page search or it is directly navigated to by following a URL fragment.
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1777171
+
+
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome Android this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Column breaks
+
In columnar layouts (created by the columns or column-count CSS properties), the break-after, break-before, break-inside properties control where columns start or end.
+ Chrome Android
+
+
+ 102
+ Released on 2022-05-24
+
+
+
+
+ Edge
+
+
+ 102
+ Released on 2022-05-31
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Fetch priority
+
The fetch()priority option and the fetchPriority HTML attribute give hints to the browser about which requests to do before other requests of the same type.
+ Chrome Android
+
+
+ 102
+ Released on 2022-05-24
+
+
+
+
+ Edge
+
+
+ 102
+ Released on 2022-05-31
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
hidden="until-found"
+
The hidden="until-found" attribute hides an element until it is found using the browser's find-in-page search or it is directly navigated to by following a URL fragment.
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1777171
+
+
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Edge this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Column breaks
+
In columnar layouts (created by the columns or column-count CSS properties), the break-after, break-before, break-inside properties control where columns start or end.
+ Chrome Android
+
+
+ 102
+ Released on 2022-05-24
+
+
+
+
+ Edge
+
+
+ 102
+ Released on 2022-05-31
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Fetch priority
+
The fetch()priority option and the fetchPriority HTML attribute give hints to the browser about which requests to do before other requests of the same type.
+ Chrome Android
+
+
+ 102
+ Released on 2022-05-24
+
+
+
+
+ Edge
+
+
+ 102
+ Released on 2022-05-31
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
hidden="until-found"
+
The hidden="until-found" attribute hides an element until it is found using the browser's find-in-page search or it is directly navigated to by following a URL fragment.
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1777171
+
+
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Firefox this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
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.
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.
+ Chrome Android
+
+
+ 54
+ Released on 2016-10-19
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 63
+ Released on 2018-10-23
+
+
+
+
+ Firefox for Android
+
+
+ 63
+ Released on 2018-10-23
+
+
+
+
+ Safari
+
+
+ 10.1
+ Released on 2017-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 10.3
+ Released on 2017-03-27
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2022-07-15 (baseline high)
+
+
+
:default
+
The :default CSS pseudo-class matches the default element in a group of related form controls, such as checkboxes and radio buttons with the checked attribute.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 4
+ Released on 2011-03-22
+
+
+
+
+ Firefox for Android
+
+
+ 4
+ Released on 2011-03-29
+
+
+
+
+ Safari
+
+
+ 5
+ Released on 2010-06-07
+
+
+
+
+ Safari on iOS
+
+
+ 5
+ Released on 2011-10-12
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2022-07-15 (baseline high)
+
+
+
<details>
+
The <details> element is a disclosure widget which can be expanded to reveal additional content. When closed, only the nested <summary> element is visible.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 49
+ Released on 2016-09-20
+
+
+
+
+ Firefox for Android
+
+
+ 49
+ Released on 2016-09-20
+
+
+
+
+ Safari
+
+
+ 6
+ Released on 2012-07-25
+
+
+
+
+ Safari on iOS
+
+
+ 6
+ Released on 2012-09-10
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2022-07-15 (baseline high)
+
+
+
:indeterminate
+
The :indeterminate CSS pseudo-class selects any form element whose state is indeterminate, such as checkboxes that have been set to an indeterminate state with JavaScript, or radio buttons which are members of a group in which all radio buttons are unchecked.
+ Chrome Android
+
+
+ 76
+ Released on 2019-07-30
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 67
+ Released on 2019-05-21
+
+
+
+
+ Firefox for Android
+
+
+ 67
+ Released on 2019-05-21
+
+
+
+
+ Safari
+
+
+ 12.1
+ Released on 2019-03-25
+
+
+
+
+ Safari on iOS
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2022-07-15 (baseline high)
+
+
+
Shadow DOM
+
Shadow DOM allows you to attach encapsulated "shadow" DOM trees to elements. A shadow DOM tree is a separate component, isolated from the scripts and styles in other parts of the document. This is a part of Web Components.
+ Chrome Android
+
+
+ 56
+ Released on 2017-02-01
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 44
+ Released on 2016-01-26
+
+
+
+
+ Firefox for Android
+
+
+ 44
+ Released on 2016-01-26
+
+
+
+
+ Safari
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2022-07-15 (baseline high)
+
+
+
will-change
+
The will-change CSS property gives hints to the browser about expected changes to an element's scroll position, contents, or style. These hints allow browsers to optimize for upcoming style changes.
+
+ Newly available since 2022-08-23 (baseline low)
+
+
+
+
Array findLast() and findLastIndex()
+
The findLast() and findLastIndex() methods of arrays and typed arrays search an array in reverse order for the first item that satisfies a test function.
+
+ Newly available since 2022-09-02 (baseline low)
+
+
+
+
:modal
+
The :modal pseudo-class selects elements that put other elements into a non-interactive state, such as a fullscreen element or a <dialog> element used with showModal().
+ Chrome Android
+
+
+ 84
+ Released on 2020-07-27
+
+
+
+
+ Edge
+
+
+ 84
+ Released on 2020-07-16
+
+
+
+
+ Firefox
+
+
+ 80
+ Released on 2020-08-25
+
+
+
+
+ Firefox for Android
+
+
+ 80
+ Released on 2020-08-31
+
+
+
+
+ Safari
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+ Safari on iOS
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
blocking="render"
+
The blocking="render" attribute for <link>, <script>, and <style> elements blocks rendering until the external script or stylesheet has been loaded. For <link rel="expect">, rendering is blocked until a specific element is in the DOM.
+ Chrome Android
+
+
+ 106
+ Released on 2022-09-27
+
+
+
+
+ Edge
+
+
+ 106
+ Released on 2022-10-03
+
+
+
+
+ Firefox
+
+
+ 102
+ Released on 2022-06-28
+
+
+
+
+ Firefox for Android
+
+
+ 102
+ Released on 2022-06-28
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome Android this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
blocking="render"
+
The blocking="render" attribute for <link>, <script>, and <style> elements blocks rendering until the external script or stylesheet has been loaded. For <link rel="expect">, rendering is blocked until a specific element is in the DOM.
+ Chrome Android
+
+
+ 106
+ Released on 2022-09-27
+
+
+
+
+ Edge
+
+
+ 106
+ Released on 2022-10-03
+
+
+
+
+ Firefox
+
+
+ 102
+ Released on 2022-06-28
+
+
+
+
+ Firefox for Android
+
+
+ 102
+ Released on 2022-06-28
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Edge this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
blocking="render"
+
The blocking="render" attribute for <link>, <script>, and <style> elements blocks rendering until the external script or stylesheet has been loaded. For <link rel="expect">, rendering is blocked until a specific element is in the DOM.
+ Chrome Android
+
+
+ 106
+ Released on 2022-09-27
+
+
+
+
+ Edge
+
+
+ 106
+ Released on 2022-10-03
+
+
+
+
+ Firefox
+
+
+ 102
+ Released on 2022-06-28
+
+
+
+
+ Firefox for Android
+
+
+ 102
+ Released on 2022-06-28
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Safari this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Scroll to text fragment
+
Text fragments are URL fragments on the form #:~:text=snippet and link to a snippet of text within a page. The browser may scroll, highlight, or otherwise bring that text to the reader's attention.
+ Chrome Android
+
+
+ 81
+ Released on 2020-04-07
+
+
+
+
+ Edge
+
+
+ 83
+ Released on 2020-05-21
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 16.1
+ Released on 2022-10-24
+
+
+
+
+ Safari on iOS
+
+
+ 16.1
+ Released on 2022-10-24
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Safari on iOS this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Scroll to text fragment
+
Text fragments are URL fragments on the form #:~:text=snippet and link to a snippet of text within a page. The browser may scroll, highlight, or otherwise bring that text to the reader's attention.
+
+ Newly available since 2022-12-05 (baseline low)
+
+
+
+
Small, large, and dynamic viewport units
+
The sv*, lv*, and dv* CSS viewport units are relative to the smallest, largest, and current (dynamic) viewport size. They are used to size elements in relation to the viewport's dimensions.
+ Chrome Android
+
+
+ 108
+ Released on 2022-11-29
+
+
+
+
+ Edge
+
+
+ 108
+ Released on 2022-12-05
+
+
+
+
+ Firefox
+
+
+ 101
+ Released on 2022-05-31
+
+
+
+
+ Firefox for Android
+
+
+ 101
+ Released on 2022-05-31
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-12-13 (baseline low)
+
+
+
+
WebGL OES_draw_buffers_indexed extension
+
The OES_draw_buffers_indexed extension to WebGL allows you to control blending on a per-color basis when writing to multiple color buffers simultaneously.
+ Chrome Android
+
+
+ 76
+ Released on 2019-07-30
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 71
+ Released on 2019-12-10
+
+
+
+
+ Firefox for Android
+
+
+ 79
+ Released on 2020-07-28
+
+
+
+
+ Safari
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2023-01-28 (baseline high)
+
+
+
:read-only and :read-write
+
The :read-only and :read-write CSS pseudo-classes match elements that are read-only or read-write, respectively. For example, :read-only matches <input> and <textarea> elements with the readonly attribute.
+ Chrome Android
+
+
+ 105
+ Released on 2022-09-02
+
+
+
+
+ Edge
+
+
+ 105
+ Released on 2022-09-01
+
+
+
+
+ Firefox
+
+
+ 110
+ Released on 2023-02-14
+
+
+
+
+ Firefox for Android
+
+
+ 110
+ Released on 2023-02-14
+
+
+
+
+ Safari
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+ Safari on iOS
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Firefox this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
<datalist>
+
The <datalist> element defines a set of recommended values for an <input> element. Browsers may show a dropdown menu of all options, or matching options as the user types.
+ Chrome Android
+
+
+ 59
+ Released on 2017-06-06
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 81
+ Released on 2020-09-22
+
+
+
+
+ Firefox for Android
+
+
+ 81
+ Released on 2020-09-22
+
+
+
+
+ Safari
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 11
+ Released on 2017-09-19
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2023-03-16 (baseline high)
+
+
+
Promise.any()
+
The Promise.any() static method returns a promise that fulfills as soon as the first of an iterable of promises fulfills, with that promise's value. Otherwise, it rejects with an AggregateError when all of the promises have rejected.
+ Chrome Android
+
+
+ 73
+ Released on 2019-03-12
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 101
+ Released on 2022-05-31
+
+
+
+
+ Firefox for Android
+
+
+ 101
+ Released on 2022-05-31
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Fetch metadata request headers
+
The Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site, and Sec-Fetch-User` HTTP headers provide extra information about the way a request was made, to help servers reject certain kinds of malicious requests.
+ Chrome Android
+
+
+ 97
+ Released on 2022-01-04
+
+
+
+
+ Edge
+
+
+ 97
+ Released on 2022-01-06
+
+
+
+
+ Firefox
+
+
+ 111
+ Released on 2023-03-14
+
+
+
+
+ Firefox for Android
+
+
+ 111
+ Released on 2023-03-14
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
font-synthesis-style
+
The font-synthesis-style CSS property sets whether or not the browser should synthesize italic and oblique typefaces when they're missing from the font.
+ Chrome Android
+
+
+ 77
+ Released on 2019-09-10
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 98
+ Released on 2022-03-08
+
+
+
+
+ Firefox for Android
+
+
+ 98
+ Released on 2022-03-08
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Import maps
+
A <script type="importmap"> HTML element provides an import map as a JSON string. An import map controls how the browser should resolve module specifiers when importing JavaScript modules.
+ Chrome Android
+
+
+ 60
+ Released on 2017-08-01
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 87
+ Released on 2021-03-23
+
+
+
+
+ Firefox for Android
+
+
+ 87
+ Released on 2021-03-23
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Media query range syntax
+
The range syntax of CSS media queries allows you to use mathematical comparison operators such as <, >, <=, and >= to define a range of values for a media feature. For example, (400px < width < 1000px) returns true if the viewport width is between 400px and 1000px.
+ Chrome Android
+
+
+ 104
+ Released on 2022-08-02
+
+
+
+
+ Edge
+
+
+ 104
+ Released on 2022-08-05
+
+
+
+
+ Firefox
+
+
+ 102
+ Released on 2022-06-28
+
+
+
+
+ Firefox for Android
+
+
+ 102
+ Released on 2022-06-28
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
messageerror
+
The messageerror event fires on a target, such as a window or worker, when an incoming message cannot be deserialized. This event can fire for many types of messages, such as cross-document messages or broadcast channel messages.
+ Chrome Android
+
+
+ 80
+ Released on 2020-02-04
+
+
+
+
+ Edge
+
+
+ 80
+ Released on 2020-02-07
+
+
+
+
+ Firefox
+
+
+ 65
+ Released on 2019-01-29
+
+
+
+
+ Firefox for Android
+
+
+ 65
+ Released on 2019-01-29
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Offscreen canvas
+
The OffscreenCanvas API provides a canvas that can be drawn to off screen, with no dependencies on the DOM, which can be used to run heavy rendering operations inside a worker context.
+ Chrome Android
+
+
+ 80
+ Released on 2020-02-04
+
+
+
+
+ Edge
+
+
+ 80
+ Released on 2020-02-07
+
+
+
+
+ Firefox
+
+
+ 105
+ Released on 2022-09-20
+
+
+
+
+ Firefox for Android
+
+
+ 105
+ Released on 2022-09-20
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-14 (baseline low)
+
+
+
+
Origin private file system
+
The navigator.storage.getDirectory() method returns a FileSystemDirectoryHandle that is restricted to a specific origin and invisible to the user's actual file system for faster file-based applications, such as SQLite databases.
+ Chrome Android
+
+
+ 109
+ Released on 2023-01-10
+
+
+
+
+ Edge
+
+
+ 102
+ Released on 2022-05-31
+
+
+
+
+ Firefox
+
+
+ 111
+ Released on 2023-03-14
+
+
+
+
+ Firefox for Android
+
+
+ 111
+ Released on 2023-03-14
+
+
+
+
+ Safari
+
+
+ 15.2
+ Released on 2021-12-13
+
+
+
+
+ Safari on iOS
+
+
+ 15.2
+ Released on 2021-12-13
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Push messages
+
The Push API subscribes to and receives server-initiated messages. Subscribers receive pushed messages in the background, even after periods inactive or offline.
+ Chrome Android
+
+
+ 50
+ Released on 2016-04-13
+
+
+
+
+ Edge
+
+
+ 17
+ Released on 2018-04-30
+
+
+
+
+ Firefox
+
+
+ 44
+ Released on 2016-01-26
+
+
+
+
+ Firefox for Android
+
+
+ 48
+ Released on 2016-08-02
+
+
+
+
+ Safari
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
requestAnimationFrame() in workers
+
The requestAnimationFrame() method in workers schedules a function that runs before the next repaint. Together with offscreen canvas, you can animate content from a worker.
+ Chrome Android
+
+
+ 54
+ Released on 2016-10-19
+
+
+
+
+ Edge
+
+
+ 17
+ Released on 2018-04-30
+
+
+
+
+ Firefox
+
+
+ 45
+ Released on 2016-03-08
+
+
+
+
+ Firefox for Android
+
+
+ 45
+ Released on 2016-03-08
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Screen orientation
+
The screen.orientation API gets information about the orientation of the viewport, such as landscape or portrait. With this API, you can adapt an application's layout or behavior in response to changes in orientation.
+ Chrome Android
+
+
+ 65
+ Released on 2018-03-06
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 61
+ Released on 2018-06-26
+
+
+
+
+ Firefox for Android
+
+
+ 61
+ Released on 2018-06-26
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Imperative slot assignment
+
The assign() method for <slot> elements assigns nodes to the slot, as an alternative to using the slot and name HTML attributes. The nodes must be children of a shadow host and the shadow root must be created with the slotAssignment set to "manual". Also known as manual slot assignment.
+ Chrome Android
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Edge
+
+
+ 111
+ Released on 2023-03-13
+
+
+
+
+ Firefox
+
+
+ 108
+ Released on 2022-12-13
+
+
+
+
+ Firefox for Android
+
+
+ 108
+ Released on 2022-12-13
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
WebAssembly SIMD
+
The 128-bit SIMD (Single Instruction Multiple Data) extension to WebAssembly performs one instruction on multiple units of data, when running on hardware that supports such instructions. Also known as vector instructions.
+ Chrome Android
+
+
+ 91
+ Released on 2021-05-25
+
+
+
+
+ Edge
+
+
+ 91
+ Released on 2021-05-27
+
+
+
+
+ Firefox
+
+
+ 89
+ Released on 2021-06-01
+
+
+
+
+ Firefox for Android
+
+
+ 89
+ Released on 2021-06-01
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
baseline-source
+
The baseline-source CSS property controls how inline-level boxes with multiple lines of text are aligned with the surrounding text. By default, which typographic baseline is used depends on the display property value.
The baseline-source CSS property controls how inline-level boxes with multiple lines of text are aligned with the surrounding text. By default, which typographic baseline is used depends on the display property value.
The baseline-source CSS property controls how inline-level boxes with multiple lines of text are aligned with the surrounding text. By default, which typographic baseline is used depends on the display property value.
The navigator.audioSession API controls how audio playback interacts with other applications. For example, playing music can pause audio from other applications, while ambient audio can play at the same time.
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
font-size-adjust
+
The font-size-adjust CSS property preserves apparent text size, regardless of the font used, by scaling fonts to the same size with respect to a specific metric, such as x-height. This can help make fallback fonts look the same size.
+ Chrome Android
+
+
+ 85
+ Released on 2020-08-25
+
+
+
+
+ Edge
+
+
+ 85
+ Released on 2020-08-27
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Relative colors
+
The from keyword for color functions (color(), hsl(), oklch(), etc.) creates a new color based on a given color by modifying the values of the input color. Also known as relative color syntax (RCS).
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1701488
+
+
+
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Safari on iOS this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Audio session
+
The navigator.audioSession API controls how audio playback interacts with other applications. For example, playing music can pause audio from other applications, while ambient audio can play at the same time.
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
font-size-adjust
+
The font-size-adjust CSS property preserves apparent text size, regardless of the font used, by scaling fonts to the same size with respect to a specific metric, such as x-height. This can help make fallback fonts look the same size.
+ Chrome Android
+
+
+ 85
+ Released on 2020-08-25
+
+
+
+
+ Edge
+
+
+ 85
+ Released on 2020-08-27
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Relative colors
+
The from keyword for color functions (color(), hsl(), oklch(), etc.) creates a new color based on a given color by modifying the values of the input color. Also known as relative color syntax (RCS).
+ Chrome Android
+
+
+ 72
+ Released on 2019-01-29
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 83
+ Released on 2020-11-17
+
+
+
+
+ Firefox for Android
+
+
+ 83
+ Released on 2020-11-17
+
+
+
+
+ Safari
+
+
+ 12.1
+ Released on 2019-03-25
+
+
+
+
+ Safari on iOS
+
+
+ 12.2
+ Released on 2019-03-25
+
+
+
+
+
+
+
+
+
+
+
Just became available in all browsers this month
+
+
+
+
+
+
+
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
color()
+
The color() function defines a color within a given color space. Wide gamut color spaces like display-p3 allow showing more vibrant and saturated colors than the standard srgb color space.
+ Chrome Android
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Edge
+
+
+ 111
+ Released on 2023-03-13
+
+
+
+
+ Firefox
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
color-mix()
+
The color-mix() function mixes two colors in a given color space and by a given amount. Commonly, lighter or darker variations of a color are created by mixing with white or black.
+ Chrome Android
+
+
+ 80
+ Released on 2020-02-04
+
+
+
+
+ Edge
+
+
+ 80
+ Released on 2020-02-07
+
+
+
+
+ Firefox
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
Lab and LCH
+
The CIE Lab color space expresses colors in terms of lightness and how red/green and blue/yellow a color is. LCH is a variant of Lab with polar coordinates. These color spaces can be used with the CSS color(), lab(), and lch() functions. Also known as CIELAB and CIELCH.
+ Chrome Android
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Edge
+
+
+ 111
+ Released on 2023-03-13
+
+
+
+
+ Firefox
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
:nth-child() of <selector>
+
The of syntax for the :nth-child() and :nth-last-child() CSS functional pseudo-classes match elements by the relative position of elements, counted from the first or last sibling matching a selector list.
+ Chrome Android
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Edge
+
+
+ 111
+ Released on 2023-03-13
+
+
+
+
+ Firefox
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Safari
+
+
+ 9
+ Released on 2015-09-30
+
+
+
+
+ Safari on iOS
+
+
+ 9
+ Released on 2015-09-16
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
Oklab and Oklch
+
The Oklab color space expresses colors in terms of lightness and how red/green and blue/yellow a color is, aiming to match how humans perceive colors. Oklch is a variant of Oklab with polar coordinates. These color spaces can be used with the CSS color(), oklab(), and oklch() functions.
+ Chrome Android
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Edge
+
+
+ 111
+ Released on 2023-03-13
+
+
+
+
+ Firefox
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
WebRTC SCTP information
+
The sctp object on RTCPeerConnection represents the negotiated SCTP transport. SCTP (Stream Control Transmission Protocol) is the protocol that RTCDataChannel uses.
The SharedWorker() constructor accepts { type: "module" } to load scripts that use import and export. Also known as ECMAScript modules or ESM in shared workers.
+ Chrome Android
+
+
+ 97
+ Released on 2022-01-04
+
+
+
+
+ Edge
+
+
+ 97
+ Released on 2022-01-06
+
+
+
+
+ Firefox
+
+
+ 114
+ Released on 2023-06-06
+
+
+
+
+ Firefox for Android
+
+
+ 114
+ Released on 2023-06-06
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Firefox for Android this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
JavaScript modules in shared workers
+
The SharedWorker() constructor accepts { type: "module" } to load scripts that use import and export. Also known as ECMAScript modules or ESM in shared workers.
+
+
+ Widely available since 2023-07-21 (baseline high)
+
+
+
:is()
+
The :is() CSS functional pseudo-class takes a selector list as its argument, and matches any element that can be selected by one of the selectors in that list.
+ Chrome Android
+
+
+ 88
+ Released on 2021-01-19
+
+
+
+
+ Edge
+
+
+ 88
+ Released on 2021-01-21
+
+
+
+
+ Firefox
+
+
+ 82
+ Released on 2020-10-20
+
+
+
+
+ Firefox for Android
+
+
+ 82
+ Released on 2020-10-20
+
+
+
+
+ Safari
+
+
+ 14
+ Released on 2020-09-16
+
+
+
+
+ Safari on iOS
+
+
+ 14
+ Released on 2020-09-16
+
+
+
+
+
+
+
+
+
+
+
+
+ Widely available since 2023-07-21 (baseline high)
+
+
+
:where()
+
The :where() CSS functional pseudo-class takes a selector list as its argument, and matches any element that can be selected by one of the selectors in that list. It is functionally equivalent to the selectors in the list, but doesn't affect the CSS rule specificity.
+ Chrome Android
+
+
+ 112
+ Released on 2023-04-04
+
+
+
+
+ Edge
+
+
+ 112
+ Released on 2023-04-06
+
+
+
+
+ Firefox
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Firefox for Android
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Safari
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+ Safari on iOS
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-07-04 (baseline low)
+
+
+
+
Array by copy
+
The toReserved(), toSorted(), toSpliced(), and with() methods of arrays and typed arrays return changed copies of arrays. They stand in contrast to methods such as sort() or reverse() that change arrays in place.
+ Chrome Android
+
+
+ 110
+ Released on 2023-02-07
+
+
+
+
+ Edge
+
+
+ 110
+ Released on 2023-02-09
+
+
+
+
+ Firefox
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Firefox for Android
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Safari
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+ Safari on iOS
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-07-21 (baseline low)
+
+
+
+
Two-value display property
+
The display CSS property accepts multiple keyword values, such as inline flex or block flow, to explicitly set an element's inner and outer layout mode. Also known as 2-value, multi-keyword, or multiple value syntax.
The baseline-source CSS property controls how inline-level boxes with multiple lines of text are aligned with the surrounding text. By default, which typographic baseline is used depends on the display property value.
+ Chrome Android
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Edge
+
+
+ 111
+ Released on 2023-03-13
+
+
+
+
+ Firefox
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Firefox for Android
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Firefox for Android this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
baseline-source
+
The baseline-source CSS property controls how inline-level boxes with multiple lines of text are aligned with the surrounding text. By default, which typographic baseline is used depends on the display property value.
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.
+ Firefox for Android
+
+
+ 117
+ Released on 2023-08-29
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Firefox for Android this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
WebRTC encoded transform
+
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.
+
+ Newly available since 2023-09-18 (baseline low)
+
+
+
+
contain-intrinsic-size
+
The contain-intrinsic-size CSS property sets the intrinsic size of an element. When using size containment, the browser will layout the element as if it had a single child of this size.
+ Chrome Android
+
+
+ 95
+ Released on 2021-10-19
+
+
+
+
+ Edge
+
+
+ 95
+ Released on 2021-10-21
+
+
+
+
+ Firefox
+
+
+ 107
+ Released on 2022-11-15
+
+
+
+
+ Firefox for Android
+
+
+ 107
+ Released on 2022-11-15
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-09-18 (baseline low)
+
+
+
+
@counter-style
+
The @counter-style CSS at-rule defines custom counter styles for list items. For example, you can use a sequence of specific symbols instead of numbers for an ordered list.
+ Chrome Android
+
+
+ 31
+ Released on 2013-11-14
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 6
+ Released on 2011-08-16
+
+
+
+
+ Firefox for Android
+
+
+ 6
+ Released on 2011-08-16
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 4.2
+ Released on 2010-11-22
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-09-18 (baseline low)
+
+
+
+
Hyphenation
+
The hyphens CSS property controls when long words are broken by line wrapping. Although called hyphens, the property applies to word-splitting behavior across languages, such as customary spelling changes or the use of other characters to mark an intraword line break.
+ Chrome Android
+
+
+ 55
+ Released on 2016-12-06
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 43
+ Released on 2015-12-15
+
+
+
+
+ Firefox for Android
+
+
+ 43
+ Released on 2015-12-15
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-09-18 (baseline low)
+
+
+
+
image-set()
+
The image-set() CSS function provides a set of images at different resolutions or pixel densities, which the browser can pick from, depending on the device capabilities.
+ Chrome Android
+
+
+ 113
+ Released on 2023-05-02
+
+
+
+
+ Edge
+
+
+ 113
+ Released on 2023-05-05
+
+
+
+
+ Firefox
+
+
+ 89
+ Released on 2021-06-01
+
+
+
+
+ Firefox for Android
+
+
+ 89
+ Released on 2021-06-01
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-09-18 (baseline low)
+
+
+
+
<link rel="modulepreload">
+
The rel="modulepreload" attribute for the <link> HTML element indicates that a module script should be fetched, parsed, and compiled preemptively, and stored for later execution.
+ Chrome Android
+
+
+ 66
+ Released on 2018-04-17
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Firefox for Android
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-09-15 (baseline low)
+
+
+
+
Subgrid
+
The subgrid value for the grid-template-columns and grid-template-rows properties allows a grid item to inherit the grid definition of its parent grid container.
+ Chrome Android
+
+
+ 117
+ Released on 2023-09-12
+
+
+
+
+ Edge
+
+
+ 117
+ Released on 2023-09-15
+
+
+
+
+ Firefox
+
+
+ 71
+ Released on 2019-12-10
+
+
+
+
+ Firefox for Android
+
+
+ 79
+ Released on 2020-07-28
+
+
+
+
+ Safari
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+ Safari on iOS
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
display animation
+
You can animate elements between display: none and any other display value or animate between content-visibility: hidden and any other content-visibility value. This also applies to transitions.
+ Chrome Android
+
+
+ 117
+ Released on 2023-09-12
+
+
+
+
+ Edge
+
+
+ 117
+ Released on 2023-09-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
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%.
+ Chrome Android
+
+
+ 117
+ Released on 2023-09-12
+
+
+
+
+ Edge
+
+
+ 117
+ Released on 2023-09-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1805727
+
+
+
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome Android this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
display animation
+
You can animate elements between display: none and any other display value or animate between content-visibility: hidden and any other content-visibility value. This also applies to transitions.
+ Chrome Android
+
+
+ 117
+ Released on 2023-09-12
+
+
+
+
+ Edge
+
+
+ 117
+ Released on 2023-09-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
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%.
+ Chrome Android
+
+
+ 117
+ Released on 2023-09-12
+
+
+
+
+ Edge
+
+
+ 117
+ Released on 2023-09-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1805727
+
+
+
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Edge this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
display animation
+
You can animate elements between display: none and any other display value or animate between content-visibility: hidden and any other content-visibility value. This also applies to transitions.
+ Chrome Android
+
+
+ 117
+ Released on 2023-09-12
+
+
+
+
+ Edge
+
+
+ 117
+ Released on 2023-09-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
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%.
+ Firefox for Android
+
+
+ 118
+ Released on 2023-09-26
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
font-synthesis-position
+
The font-synthesis-position CSS property sets whether or not the browser should synthesize subscript and superscript typefaces when they're missing from the font.
+ Firefox for Android
+
+
+ 118
+ Released on 2023-09-26
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
font-synthesis-position
+
The font-synthesis-position CSS property sets whether or not the browser should synthesize subscript and superscript typefaces when they're missing from the font.
+ Safari on iOS
+
+
+ 17.1
+ Released on 2023-10-25
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Set methods
+
The difference(), intersection(), isDisjointFrom(), isSubsetOf(), isSupersetOf(), symmetricDifference(), and union() methods of the JavaScript Set object performs operations between two sets.
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Set methods
+
The difference(), intersection(), isDisjointFrom(), isSubsetOf(), isSupersetOf(), symmetricDifference(), and union() methods of the JavaScript Set object performs operations between two sets.
+ Chrome Android
+
+
+ 103
+ Released on 2022-06-21
+
+
+
+
+ Edge
+
+
+ 103
+ Released on 2022-06-23
+
+
+
+
+ Firefox
+
+
+ 119
+ Released on 2023-10-24
+
+
+
+
+ Firefox for Android
+
+
+ 119
+ Released on 2023-10-24
+
+
+
+
+ Safari
+
+
+ 12.1
+ Released on 2019-03-25
+
+
+
+
+ Safari on iOS
+
+
+ 12.2
+ Released on 2019-03-25
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-10-13 (baseline low)
+
+
+
+
Canvas text baselines
+
The alphabeticBaseline, hangingBaseline, and ideographicBaseline canvas text metrics measure the distance from the used textBaseline to the respective typographic baseline.
+ Chrome Android
+
+
+ 118
+ Released on 2023-10-10
+
+
+
+
+ Edge
+
+
+ 118
+ Released on 2023-10-13
+
+
+
+
+ Firefox
+
+
+ 118
+ Released on 2023-09-26
+
+
+
+
+ Firefox for Android
+
+
+ 118
+ Released on 2023-09-26
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-10-24 (baseline low)
+
+
+
+
Web authentication easy public key access
+
The getAuthenticatorData(), getPublicKey(), and getPublicKeyAlgorithm() methods of AuthenticatorAttestationResponse access credential data inside attestationObject without the need to parse it.
+ Chrome Android
+
+
+ 85
+ Released on 2020-08-25
+
+
+
+
+ Edge
+
+
+ 85
+ Released on 2020-08-27
+
+
+
+
+ Firefox
+
+
+ 119
+ Released on 2023-10-24
+
+
+
+
+ Firefox for Android
+
+
+ 119
+ Released on 2023-10-24
+
+
+
+
+ Safari
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+ Safari on iOS
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Relative colors
+
The from keyword for color functions (color(), hsl(), oklch(), etc.) creates a new color based on a given color by modifying the values of the input color. Also known as relative color syntax (RCS).
+ Chrome Android
+
+
+ 118
+ Released on 2023-10-10
+
+
+
+
+ Edge
+
+
+ 118
+ Released on 2023-10-13
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome Android this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Relative colors
+
The from keyword for color functions (color(), hsl(), oklch(), etc.) creates a new color based on a given color by modifying the values of the input color. Also known as relative color syntax (RCS).
+
+ Newly available since 2023-11-21 (baseline low)
+
+
+
+
lh unit
+
The CSS lh unit corresponds to the requested line height, the computed value of the line-height property. Some lines may be higher than this based on their content.
+ Chrome Android
+
+
+ 109
+ Released on 2023-01-10
+
+
+
+
+ Edge
+
+
+ 109
+ Released on 2023-01-12
+
+
+
+
+ Firefox
+
+
+ 120
+ Released on 2023-11-21
+
+
+
+
+ Firefox for Android
+
+
+ 120
+ Released on 2023-11-21
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-11-21 (baseline low)
+
+
+
+
User activation
+
The navigator.userActivation API 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.
+ Chrome Android
+
+
+ 119
+ Released on 2023-10-31
+
+
+
+
+ Edge
+
+
+ 119
+ Released on 2023-11-02
+
+
+
+
+ Firefox
+
+
+ 88
+ Released on 2021-04-19
+
+
+
+
+ Firefox for Android
+
+
+ 88
+ Released on 2021-04-19
+
+
+
+
+ Safari
+
+
+ 16.5
+ Released on 2023-05-18
+
+
+
+
+ Safari on iOS
+
+
+ 16.5
+ Released on 2023-05-18
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Edge this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Relative colors
+
The from keyword for color functions (color(), hsl(), oklch(), etc.) creates a new color based on a given color by modifying the values of the input color. Also known as relative color syntax (RCS).
+ Chrome Android
+
+
+ 105
+ Released on 2022-09-02
+
+
+
+
+ Edge
+
+
+ 105
+ Released on 2022-09-01
+
+
+
+
+ Firefox
+
+
+ 121
+ Released on 2023-12-19
+
+
+
+
+ Firefox for Android
+
+
+ 121
+ Released on 2023-12-19
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-12-11 (baseline low)
+
+
+
+
linear() easing
+
The linear() easing function for animations and transitions interpolates linearly between the control points, and can be used to approximate complex easing functions, such as a bounce effect.
+ Chrome Android
+
+
+ 113
+ Released on 2023-05-02
+
+
+
+
+ Edge
+
+
+ 113
+ Released on 2023-05-05
+
+
+
+
+ Firefox
+
+
+ 112
+ Released on 2023-04-11
+
+
+
+
+ Firefox for Android
+
+
+ 112
+ Released on 2023-04-11
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-12-19 (baseline low)
+
+
+
+
Lazy-loading images and iframes
+
The loading="lazy" attribute for <img> and <iframe> elements blocks loading the external resource until the user scrolls to that element's part of the page.
+ Chrome Android
+
+
+ 120
+ Released on 2023-12-05
+
+
+
+
+ Edge
+
+
+ 120
+ Released on 2023-12-07
+
+
+
+
+ Firefox
+
+
+ 117
+ Released on 2023-08-29
+
+
+
+
+ Firefox for Android
+
+
+ 117
+ Released on 2023-08-29
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-12-11 (baseline low)
+
+
+
+
Preloading responsive images
+
The imagesrcset and imagesizes attributes with the rel="preload" attribute for the <link> HTML element starts fetching responsive images before they're found in the body of the document.
+ Chrome Android
+
+
+ 73
+ Released on 2019-03-12
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 78
+ Released on 2020-06-30
+
+
+
+
+ Firefox for Android
+
+
+ 79
+ Released on 2020-07-28
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-12-11 (baseline low)
+
+
+
+
preservesPitch
+
The preservesPitch property for <audio> or <video> adjusts the pitch of audio to sound more natural when the playback rate is faster or slower than the default.
+ Chrome Android
+
+
+ 86
+ Released on 2020-10-20
+
+
+
+
+ Edge
+
+
+ 86
+ Released on 2020-10-09
+
+
+
+
+ Firefox
+
+
+ 101
+ Released on 2022-05-31
+
+
+
+
+ Firefox for Android
+
+
+ 101
+ Released on 2022-05-31
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-12-05 (baseline low)
+
+
+
+
Storage access
+
The document.requestStorageAccess() method allows content in iframes to request storing and reading cookies and other site data, while the document.hasStorageAccess() method checks if such access is granted.
+ Chrome Android
+
+
+ 120
+ Released on 2023-12-05
+
+
+
+
+ Edge
+
+
+ 85
+ Released on 2020-08-27
+
+
+
+
+ Firefox
+
+
+ 65
+ Released on 2019-01-29
+
+
+
+
+ Firefox for Android
+
+
+ 65
+ Released on 2019-01-29
+
+
+
+
+ Safari
+
+
+ 11.1
+ Released on 2018-04-12
+
+
+
+
+ Safari on iOS
+
+
+ 11.3
+ Released on 2018-03-29
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-12-07 (baseline low)
+
+
+
+
URL.canParse()
+
The URL.canParse() static method checks whether a URL can be parsed into a valid URL object. It's an alternative to calling new URL() in a try…catch statement.
+ Chrome Android
+
+
+ 120
+ Released on 2023-12-05
+
+
+
+
+ Edge
+
+
+ 120
+ Released on 2023-12-07
+
+
+
+
+ Firefox
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Firefox for Android
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Mutually exclusive <details> elements
+
Multiple <details> elements which use the same name attribute are mutually exclusive. When one member of the group is opened, all other members are closed.
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1856460
+
+
+
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome Android this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Mutually exclusive <details> elements
+
Multiple <details> elements which use the same name attribute are mutually exclusive. When one member of the group is opened, all other members are closed.
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1856460
+
+
+
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Edge this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Mutually exclusive <details> elements
+
Multiple <details> elements which use the same name attribute are mutually exclusive. When one member of the group is opened, all other members are closed.
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1856460
+
+
+
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Safari this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Mutually exclusive <details> elements
+
Multiple <details> elements which use the same name attribute are mutually exclusive. When one member of the group is opened, all other members are closed.
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1856460
+
+
+
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Fetch priority
+
The fetch()priority option and the fetchPriority HTML attribute give hints to the browser about which requests to do before other requests of the same type.
+ Chrome Android
+
+
+ 105
+ Released on 2022-09-02
+
+
+
+
+ Edge
+
+
+ 105
+ Released on 2022-09-01
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1703961
+
+
+
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Safari on iOS this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Mutually exclusive <details> elements
+
Multiple <details> elements which use the same name attribute are mutually exclusive. When one member of the group is opened, all other members are closed.
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1856460
+
+
+
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Fetch priority
+
The fetch()priority option and the fetchPriority HTML attribute give hints to the browser about which requests to do before other requests of the same type.
+ Chrome Android
+
+
+ 85
+ Released on 2020-08-25
+
+
+
+
+ Edge
+
+
+ 121
+ Released on 2024-01-25
+
+
+
+
+ Firefox
+
+
+ 93
+ Released on 2021-10-05
+
+
+
+
+ Firefox for Android
+
+
+ 93
+ Released on 2021-10-05
+
+
+
+
+ Safari
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+ Safari on iOS
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
ClipboardItem.supports()
+
The ClipboardItem.supports() static method checks if the browser supports writing data types such as "image/svg+xml" or other custom formats to the system clipboard.
The EditContext API allows you to build rich text editors that support advanced text input, such as Input Method Editor (IME) composition, an emoji picker, or other platform-specific editing UI.
+ Chrome Android
+
+
+ 121
+ Released on 2024-01-23
+
+
+
+
+ Edge
+
+
+ 121
+ Released on 2024-01-25
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome Android this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
EditContext
+
The EditContext API allows you to build rich text editors that support advanced text input, such as Input Method Editor (IME) composition, an emoji picker, or other platform-specific editing UI.
+ Chrome Android
+
+
+ 121
+ Released on 2024-01-23
+
+
+
+
+ Edge
+
+
+ 121
+ Released on 2024-01-25
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Edge this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
ClipboardItem.supports()
+
The ClipboardItem.supports() static method checks if the browser supports writing data types such as "image/svg+xml" or other custom formats to the system clipboard.
The EditContext API allows you to build rich text editors that support advanced text input, such as Input Method Editor (IME) composition, an emoji picker, or other platform-specific editing UI.
+ Chrome Android
+
+
+ 61
+ Released on 2017-09-05
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 91
+ Released on 2021-08-10
+
+
+
+
+ Firefox for Android
+
+
+ 68
+ Released on 2019-07-09
+
+
+
+
+ Safari
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+
+
+
+
+
+
+
Just became available in all browsers this month
+
+
+
+
+
+
+
+
+ Newly available since 2024-02-20 (baseline low)
+
+
+
+
Declarative shadow DOM
+
The shadowrootmode attribute on <template> creates a shadow root without the use of JavaScript. It is a declarative alternative to the attachShadow() method.
+ Chrome Android
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Edge
+
+
+ 111
+ Released on 2023-03-13
+
+
+
+
+ Firefox
+
+
+ 123
+ Released on 2024-02-20
+
+
+
+
+ Firefox for Android
+
+
+ 123
+ Released on 2024-02-20
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Set methods
+
The difference(), intersection(), isDisjointFrom(), isSubsetOf(), isSupersetOf(), symmetricDifference(), and union() methods of the JavaScript Set object performs operations between two sets.
+ Chrome Android
+
+
+ 122
+ Released on 2024-02-20
+
+
+
+
+ Edge
+
+
+ 122
+ Released on 2024-02-23
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Storage buckets
+
The navigator.storageBuckets API allows you to organize locally stored data into groups called storage buckets. Each bucket can have different settings, allowing the browser to manage and delete buckets independently rather than applying the same treatment to all.
+ Chrome Android
+
+
+ 122
+ Released on 2024-02-20
+
+
+
+
+ Edge
+
+
+ 122
+ Released on 2024-02-23
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome Android this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Set methods
+
The difference(), intersection(), isDisjointFrom(), isSubsetOf(), isSupersetOf(), symmetricDifference(), and union() methods of the JavaScript Set object performs operations between two sets.
+ Chrome Android
+
+
+ 122
+ Released on 2024-02-20
+
+
+
+
+ Edge
+
+
+ 122
+ Released on 2024-02-23
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Storage buckets
+
The navigator.storageBuckets API allows you to organize locally stored data into groups called storage buckets. Each bucket can have different settings, allowing the browser to manage and delete buckets independently rather than applying the same treatment to all.
+ Chrome Android
+
+
+ 122
+ Released on 2024-02-20
+
+
+
+
+ Edge
+
+
+ 122
+ Released on 2024-02-23
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Edge this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Set methods
+
The difference(), intersection(), isDisjointFrom(), isSubsetOf(), isSupersetOf(), symmetricDifference(), and union() methods of the JavaScript Set object performs operations between two sets.
+ Chrome Android
+
+
+ 122
+ Released on 2024-02-20
+
+
+
+
+ Edge
+
+
+ 122
+ Released on 2024-02-23
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Storage buckets
+
The navigator.storageBuckets API allows you to organize locally stored data into groups called storage buckets. Each bucket can have different settings, allowing the browser to manage and delete buckets independently rather than applying the same treatment to all.
+
+
+ Widely available since 2024-03-20 (baseline high)
+
+
+
aspect-ratio
+
The aspect-ratio CSS property controls the width-to-height ratio of elements. For <img> and <video> elements, the width and height attributes used together with height: auto control the aspect ratio while the image/video is loading.
+ Chrome Android
+
+
+ 88
+ Released on 2021-01-19
+
+
+
+
+ Edge
+
+
+ 88
+ Released on 2021-01-21
+
+
+
+
+ Firefox
+
+
+ 89
+ Released on 2021-06-01
+
+
+
+
+ Firefox for Android
+
+
+ 89
+ Released on 2021-06-01
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+
+
+
+
+
+
+
Just became available in all browsers this month
+
+
+
+
+
+
+
+
+ Newly available since 2024-03-19 (baseline low)
+
+
+
+
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.
+ Chrome Android
+
+
+ 117
+ Released on 2023-09-12
+
+
+
+
+ Edge
+
+
+ 117
+ Released on 2023-09-15
+
+
+
+
+ Firefox
+
+
+ 119
+ Released on 2023-10-24
+
+
+
+
+ Firefox for Android
+
+
+ 119
+ Released on 2023-10-24
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2024-03-05 (baseline low)
+
+
+
+
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 style display: none, but can also check for visibility: hidden.
+ Chrome Android
+
+
+ 105
+ Released on 2022-09-02
+
+
+
+
+ Edge
+
+
+ 105
+ Released on 2022-09-01
+
+
+
+
+ Firefox
+
+
+ 106
+ Released on 2022-10-18
+
+
+
+
+ Firefox for Android
+
+
+ 106
+ Released on 2022-10-18
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2024-03-05 (baseline low)
+
+
+
+
Promise.withResolvers()
+
The Promise.withResolvers() static method is an alternative to the Promise() constructor that returns both the promise and resolution functions. You can use this to access resolve and reject outside the scope of the executor function.
+ Chrome Android
+
+
+ 114
+ Released on 2023-05-30
+
+
+
+
+ Edge
+
+
+ 114
+ Released on 2023-06-02
+
+
+
+
+ Firefox
+
+
+ 122
+ Released on 2024-01-23
+
+
+
+
+ Firefox for Android
+
+
+ 122
+ Released on 2024-01-23
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
CSS module scripts
+
CSS module scripts allow CSS code to be organized into reusable units. Other modules use import ... with {type: "css"} to load CSS modules as constructable stylesheets.
+ Chrome Android
+
+
+ 123
+ Released on 2024-03-19
+
+
+
+
+ Edge
+
+
+ 123
+ Released on 2024-03-22
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Chrome Android this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
CSS module scripts
+
CSS module scripts allow CSS code to be organized into reusable units. Other modules use import ... with {type: "css"} to load CSS modules as constructable stylesheets.
+ Chrome Android
+
+
+ 123
+ Released on 2024-03-19
+
+
+
+
+ Edge
+
+
+ 123
+ Released on 2024-03-22
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+
+
Got implemented in Edge this month
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
CSS module scripts
+
CSS module scripts allow CSS code to be organized into reusable units. Other modules use import ... with {type: "css"} to load CSS modules as constructable stylesheets.
+ Chrome Android
+
+
+ 118
+ Released on 2023-10-10
+
+
+
+
+ Edge
+
+
+ 118
+ Released on 2023-10-13
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
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.
+ Chrome Android
+
+
+ 121
+ Released on 2024-01-23
+
+
+
+
+ Edge
+
+
+ 121
+ Released on 2024-01-25
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
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%.
+ Chrome Android
+
+
+ 121
+ Released on 2024-01-23
+
+
+
+
+ Edge
+
+
+ 121
+ Released on 2024-01-25
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
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%.
+
+ Newly available since 2024-04-18 (baseline low)
+
+
+
+
Unsanitized HTML parsing methods
+
The Document.parseHTMLUnsafe() static method parses HTML into a DOM tree, while the setHTMLUnsafe() method of Element and ShadowRoot parses and inserts HTML into an existing tree. No sanitization applies to these methods, so never call them with user-provided HTML strings.
+ Chrome Android
+
+
+ 124
+ Released on 2024-04-16
+
+
+
+
+ Edge
+
+
+ 124
+ Released on 2024-04-18
+
+
+
+
+ Firefox
+
+
+ 123
+ Released on 2024-02-20
+
+
+
+
+ Firefox for Android
+
+
+ 123
+ Released on 2024-02-20
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2024-04-16 (baseline low)
+
+
+
+
Popover
+
The popover HTML attribute creates an overlay to display content on top of other page content. Popovers can be shown declaratively using HTML, or using the showPopover() method.
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1838746
+
+
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
CPU compute pressure
+
The PressureObserver API monitors CPU load, allowing you to adjust workloads in response to available computing resources. Also known as the Compute Pressure API.
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1838746
+
+
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
CPU compute pressure
+
The PressureObserver API monitors CPU load, allowing you to adjust workloads in response to available computing resources. Also known as the Compute Pressure API.
The navigator.audioSession API controls how audio playback interacts with other applications. For example, playing music can pause audio from other applications, while ambient audio can play at the same time.
+ Chrome Android
+
+
+ 74
+ Released on 2019-04-24
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
baseline-source
+
The baseline-source CSS property controls how inline-level boxes with multiple lines of text are aligned with the surrounding text. By default, which typographic baseline is used depends on the display property value.
+ Chrome Android
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Edge
+
+
+ 111
+ Released on 2023-03-13
+
+
+
+
+ Firefox
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Firefox for Android
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
blocking="render"
+
The blocking="render" attribute for <link>, <script>, and <style> elements blocks rendering until the external script or stylesheet has been loaded. For <link rel="expect">, rendering is blocked until a specific element is in the DOM.
+ Chrome Android
+
+
+ 99
+ Released on 2022-03-01
+
+
+
+
+ Edge
+
+
+ 99
+ Released on 2022-03-03
+
+
+
+
+ Firefox
+
+
+ 125
+ Released on 2024-04-16
+
+
+
+
+ Firefox for Android
+
+
+ 125
+ Released on 2024-04-16
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
ClipboardItem.supports()
+
The ClipboardItem.supports() static method checks if the browser supports writing data types such as "image/svg+xml" or other custom formats to the system clipboard.
+ Chrome Android
+
+
+ 98
+ Released on 2022-02-01
+
+
+
+
+ Edge
+
+
+ 98
+ Released on 2022-02-03
+
+
+
+
+ Firefox
+
+
+ 107
+ Released on 2022-11-15
+
+
+
+
+ Firefox for Android
+
+
+ 107
+ Released on 2022-11-15
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Column breaks
+
In columnar layouts (created by the columns or column-count CSS properties), the break-after, break-before, break-inside properties control where columns start or end.
+ Chrome Android
+
+
+ 102
+ Released on 2022-05-24
+
+
+
+
+ Edge
+
+
+ 102
+ Released on 2022-05-31
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
CPU compute pressure
+
The PressureObserver API monitors CPU load, allowing you to adjust workloads in response to available computing resources. Also known as the Compute Pressure API.
+ Chrome Android
+
+
+ 108
+ Released on 2022-11-29
+
+
+
+
+ Edge
+
+
+ 108
+ Released on 2022-12-05
+
+
+
+
+ Firefox
+
+
+ 125
+ Released on 2024-04-16
+
+
+
+
+ Firefox for Android
+
+
+ 125
+ Released on 2024-04-16
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
controlslist
+
The controlslist attribute for <audio> or <video> hides parts of the browser's built-in controls. For example, controlslist="nofullscreen" removes the button to play the video in fullscreen.
+ Chrome Android
+
+
+ 58
+ Released on 2017-04-25
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
CSS module scripts
+
CSS module scripts allow CSS code to be organized into reusable units. Other modules use import ... with {type: "css"} to load CSS modules as constructable stylesheets.
The <datalist> element defines a set of recommended values for an <input> element. Browsers may show a dropdown menu of all options, or matching options as the user types.
+ Chrome Android
+
+
+ 69
+ Released on 2018-09-04
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 110
+ Released on 2023-02-14
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 12.1
+ Released on 2019-03-25
+
+
+
+
+ Safari on iOS
+
+
+ 12.2
+ Released on 2019-03-25
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Mutually exclusive <details> elements
+
Multiple <details> elements which use the same name attribute are mutually exclusive. When one member of the group is opened, all other members are closed.
You can animate elements between display: none and any other display value or animate between content-visibility: hidden and any other content-visibility value. This also applies to transitions.
The EditContext API allows you to build rich text editors that support advanced text input, such as Input Method Editor (IME) composition, an emoji picker, or other platform-specific editing UI.
+ Firefox for Android
+
+
+ 31
+ Released on 2014-07-22
+
+
+
+
+ Safari
+
+
+ 8
+ Released on 2014-10-16
+
+
+
+
+ Safari on iOS
+
+
+ 8
+ Released on 2014-09-17
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Fetch priority
+
The fetch()priority option and the fetchPriority HTML attribute give hints to the browser about which requests to do before other requests of the same type.
+ Chrome Android
+
+
+ 121
+ Released on 2024-01-23
+
+
+
+
+ Edge
+
+
+ 121
+ Released on 2024-01-25
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
font-size-adjust
+
The font-size-adjust CSS property preserves apparent text size, regardless of the font used, by scaling fonts to the same size with respect to a specific metric, such as x-height. This can help make fallback fonts look the same size.
+ Firefox for Android
+
+
+ 4
+ Released on 2011-03-29
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
font-synthesis-position
+
The font-synthesis-position CSS property sets whether or not the browser should synthesize subscript and superscript typefaces when they're missing from the font.
+ Chrome Android
+
+
+ 71
+ Released on 2018-12-04
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 64
+ Released on 2018-12-11
+
+
+
+
+ Firefox for Android
+
+
+ 64
+ Released on 2018-12-11
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
hidden="until-found"
+
The hidden="until-found" attribute hides an element until it is found using the browser's find-in-page search or it is directly navigated to by following a URL fragment.
+ Chrome Android
+
+
+ 25
+ Released on 2013-02-27
+
+
+
+
+ Edge
+
+
+ ❌
+
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ 79
+ Released on 2020-07-28
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ 10
+ Released on 2016-09-13
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
HTTP/3
+
HTTP/3 is a major revision of the HTTP network protocol, providing improved performance and efficiency by using QUIC as the underlying transport protocol.
+ Chrome Android
+
+
+ 94
+ Released on 2021-09-21
+
+
+
+
+ Edge
+
+
+ 114
+ Released on 2023-06-02
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Intersection observer visibility tracking
+
The trackVisibility parameter for the IntersectionObserver constructor enables tracking the visibility of an element, to detect if it may be obscured by other content or visual effects. Also known as IntersectionObserver v2.
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
JavaScript modules in service workers
+
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.
+ Chrome Android
+
+
+ 91
+ Released on 2021-05-25
+
+
+
+
+ Edge
+
+
+ 91
+ Released on 2021-05-27
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
JavaScript modules in shared workers
+
The SharedWorker() constructor accepts { type: "module" } to load scripts that use import and export. Also known as ECMAScript modules or ESM in shared workers.
+ Firefox for Android
+
+
+ 114
+ Released on 2023-06-06
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
line-clamp
+
The line-clamp CSS property limits the text in a block container to a certain number of lines. The prefixed -webkit-line-clamp is widely supported but only works with -webkit-box-orient: vertical in combination with display: -webkit-box or display: -webkit-inline-box.
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1506241
+
+
+
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Masonry
+
Masonry is a type of CSS grid layout where the items on one of the axes are tightly packed together, like brickwork, instead of leaving gaps to align across the other axis.
The :playing, :paused, :seeking, :buffering, :stalled, :muted, and :volume-locked CSS pseudo-classes match <audio> and <video> elements based on their state.
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Media session
+
The navigator.mediaSession API integrates with platform UI for media playback. It can be used to set metadata such as title and artwork, and to handle user actions like playing, pausing, or seeking.
+ Chrome Android
+
+
+ 42
+ Released on 2015-04-15
+
+
+
+
+ Edge
+
+
+ 14
+ Released on 2016-08-02
+
+
+
+
+ Firefox
+
+
+ 22
+ Released on 2013-06-25
+
+
+
+
+ Firefox for Android
+
+
+ 22
+ Released on 2013-06-25
+
+
+
+
+ Safari
+
+
+ 6
+ Released on 2012-07-25
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Page breaks
+
The break-after, break-before, break-inside CSS properties (along with page-break- aliases) control where printed pages start and end. Also known as pagination or page breaking.
+ Chrome Android
+
+
+ 85
+ Released on 2020-08-25
+
+
+
+
+ Edge
+
+
+ 85
+ Released on 2020-08-27
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Relative colors
+
The from keyword for color functions (color(), hsl(), oklch(), etc.) creates a new color based on a given color by modifying the values of the input color. Also known as relative color syntax (RCS).
+ Firefox for Android
+
+
+ ❌
+
+
+ See
+
+ bugzil.la/1701488
+
+
+
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
requestVideoFrameCallback()
+
The requestVideoFrameCallback() method for <video> schedules a function that runs with the next video frame. It is similar to requestAnimationFrame(), but for video.
+ Chrome Android
+
+
+ 118
+ Released on 2023-10-10
+
+
+
+
+ Edge
+
+
+ 118
+ Released on 2023-10-13
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Screen orientation lock
+
The screen.orientation.lock() method prevents changes to the screen orientation, typically in fullscreen applications such as games. For example, while locked, rotating a phone to the side won't change the screen orientation from landscape to portrait.
Text fragments are URL fragments on the form #:~:text=snippet and link to a snippet of text within a page. The browser may scroll, highlight, or otherwise bring that text to the reader's attention.
The difference(), intersection(), isDisjointFrom(), isSubsetOf(), isSupersetOf(), symmetricDifference(), and union() methods of the JavaScript Set object performs operations between two sets.
+ Chrome Android
+
+
+ 122
+ Released on 2024-02-20
+
+
+
+
+ Edge
+
+
+ 122
+ Released on 2024-02-23
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
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.
+ Chrome Android
+
+
+ 117
+ Released on 2023-09-12
+
+
+
+
+ Edge
+
+
+ 117
+ Released on 2023-09-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ 17.5
+ Released on 2024-05-13
+
+
+
+
+ Safari on iOS
+
+
+ 17.5
+ Released on 2024-05-13
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
Storage buckets
+
The navigator.storageBuckets API allows you to organize locally stored data into groups called storage buckets. Each bucket can have different settings, allowing the browser to manage and delete buckets independently rather than applying the same treatment to all.
+ Chrome Android
+
+
+ 117
+ Released on 2023-09-12
+
+
+
+
+ Edge
+
+
+ 117
+ Released on 2023-09-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
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%.
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.
+ Chrome Android
+
+
+ 61
+ Released on 2017-09-05
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ ❌
+
+
+
+
+
+ Firefox for Android
+
+
+ ❌
+
+
+
+
+
+ Safari
+
+
+ ❌
+
+
+
+
+
+ Safari on iOS
+
+
+ ❌
+
+
+
+
+
+
+
+
+
+
+
+ Limited availability
+
+
+
+
+
WebVTT cue alignment
+
The WebVTT cue alignment settings control which part of the cue is aligned with the given line and position. Cue alignment is set using line and position settings in WebVTT files or the lineAlign and positionAlign properties of VTTCue using JavaScript.
+ Chrome Android
+
+
+ 114
+ Released on 2023-05-30
+
+
+
+
+ Edge
+
+
+ 114
+ Released on 2023-06-02
+
+
+
+
+ Firefox
+
+
+ 121
+ Released on 2023-12-19
+
+
+
+
+ Firefox for Android
+
+
+ 121
+ Released on 2023-12-19
+
+
+
+
+ Safari
+
+
+ 17.5
+ Released on 2024-05-13
+
+
+
+
+ Safari on iOS
+
+
+ 17.5
+ Released on 2024-05-13
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2024-04-18 (baseline low)
+
+
+
+
Unsanitized HTML parsing methods
+
The Document.parseHTMLUnsafe() static method parses HTML into a DOM tree, while the setHTMLUnsafe() method of Element and ShadowRoot parses and inserts HTML into an existing tree. No sanitization applies to these methods, so never call them with user-provided HTML strings.
+ Chrome Android
+
+
+ 124
+ Released on 2024-04-16
+
+
+
+
+ Edge
+
+
+ 124
+ Released on 2024-04-18
+
+
+
+
+ Firefox
+
+
+ 123
+ Released on 2024-02-20
+
+
+
+
+ Firefox for Android
+
+
+ 123
+ Released on 2024-02-20
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2024-04-16 (baseline low)
+
+
+
+
Popover
+
The popover HTML attribute creates an overlay to display content on top of other page content. Popovers can be shown declaratively using HTML, or using the showPopover() method.
+ Chrome Android
+
+
+ 114
+ Released on 2023-05-30
+
+
+
+
+ Edge
+
+
+ 114
+ Released on 2023-06-02
+
+
+
+
+ Firefox
+
+
+ 125
+ Released on 2024-04-16
+
+
+
+
+ Firefox for Android
+
+
+ 125
+ Released on 2024-04-16
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2024-03-19 (baseline low)
+
+
+
+
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.
+ Chrome Android
+
+
+ 117
+ Released on 2023-09-12
+
+
+
+
+ Edge
+
+
+ 117
+ Released on 2023-09-15
+
+
+
+
+ Firefox
+
+
+ 119
+ Released on 2023-10-24
+
+
+
+
+ Firefox for Android
+
+
+ 119
+ Released on 2023-10-24
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2024-03-05 (baseline low)
+
+
+
+
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 style display: none, but can also check for visibility: hidden.
+ Chrome Android
+
+
+ 105
+ Released on 2022-09-02
+
+
+
+
+ Edge
+
+
+ 105
+ Released on 2022-09-01
+
+
+
+
+ Firefox
+
+
+ 106
+ Released on 2022-10-18
+
+
+
+
+ Firefox for Android
+
+
+ 106
+ Released on 2022-10-18
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2024-03-05 (baseline low)
+
+
+
+
Promise.withResolvers()
+
The Promise.withResolvers() static method is an alternative to the Promise() constructor that returns both the promise and resolution functions. You can use this to access resolve and reject outside the scope of the executor function.
+ Chrome Android
+
+
+ 114
+ Released on 2023-05-30
+
+
+
+
+ Edge
+
+
+ 114
+ Released on 2023-06-02
+
+
+
+
+ Firefox
+
+
+ 122
+ Released on 2024-01-23
+
+
+
+
+ Firefox for Android
+
+
+ 122
+ Released on 2024-01-23
+
+
+
+
+ Safari
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+ Safari on iOS
+
+
+ 17.4
+ Released on 2024-03-05
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2024-02-20 (baseline low)
+
+
+
+
Declarative shadow DOM
+
The shadowrootmode attribute on <template> creates a shadow root without the use of JavaScript. It is a declarative alternative to the attachShadow() method.
+ Chrome Android
+
+
+ 105
+ Released on 2022-09-02
+
+
+
+
+ Edge
+
+
+ 105
+ Released on 2022-09-01
+
+
+
+
+ Firefox
+
+
+ 121
+ Released on 2023-12-19
+
+
+
+
+ Firefox for Android
+
+
+ 121
+ Released on 2023-12-19
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-12-19 (baseline low)
+
+
+
+
Lazy-loading images and iframes
+
The loading="lazy" attribute for <img> and <iframe> elements blocks loading the external resource until the user scrolls to that element's part of the page.
+ Chrome Android
+
+
+ 85
+ Released on 2020-08-25
+
+
+
+
+ Edge
+
+
+ 85
+ Released on 2020-08-27
+
+
+
+
+ Firefox
+
+
+ 68
+ Released on 2019-07-09
+
+
+
+
+ Firefox for Android
+
+
+ 68
+ Released on 2019-07-09
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-12-11 (baseline low)
+
+
+
+
linear() easing
+
The linear() easing function for animations and transitions interpolates linearly between the control points, and can be used to approximate complex easing functions, such as a bounce effect.
+ Chrome Android
+
+
+ 120
+ Released on 2023-12-05
+
+
+
+
+ Edge
+
+
+ 120
+ Released on 2023-12-07
+
+
+
+
+ Firefox
+
+
+ 117
+ Released on 2023-08-29
+
+
+
+
+ Firefox for Android
+
+
+ 117
+ Released on 2023-08-29
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-12-11 (baseline low)
+
+
+
+
Preloading responsive images
+
The imagesrcset and imagesizes attributes with the rel="preload" attribute for the <link> HTML element starts fetching responsive images before they're found in the body of the document.
+ Chrome Android
+
+
+ 73
+ Released on 2019-03-12
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 78
+ Released on 2020-06-30
+
+
+
+
+ Firefox for Android
+
+
+ 79
+ Released on 2020-07-28
+
+
+
+
+ Safari
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+ Safari on iOS
+
+
+ 17.2
+ Released on 2023-12-11
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-12-11 (baseline low)
+
+
+
+
preservesPitch
+
The preservesPitch property for <audio> or <video> adjusts the pitch of audio to sound more natural when the playback rate is faster or slower than the default.
+ Chrome Android
+
+
+ 120
+ Released on 2023-12-05
+
+
+
+
+ Edge
+
+
+ 120
+ Released on 2023-12-07
+
+
+
+
+ Firefox
+
+
+ 53
+ Released on 2017-04-19
+
+
+
+
+ Firefox for Android
+
+
+ 53
+ Released on 2017-04-19
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-12-07 (baseline low)
+
+
+
+
URL.canParse()
+
The URL.canParse() static method checks whether a URL can be parsed into a valid URL object. It's an alternative to calling new URL() in a try…catch statement.
+ Chrome Android
+
+
+ 120
+ Released on 2023-12-05
+
+
+
+
+ Edge
+
+
+ 120
+ Released on 2023-12-07
+
+
+
+
+ Firefox
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Firefox for Android
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-12-05 (baseline low)
+
+
+
+
Storage access
+
The document.requestStorageAccess() method allows content in iframes to request storing and reading cookies and other site data, while the document.hasStorageAccess() method checks if such access is granted.
+ Chrome Android
+
+
+ 120
+ Released on 2023-12-05
+
+
+
+
+ Edge
+
+
+ 85
+ Released on 2020-08-27
+
+
+
+
+ Firefox
+
+
+ 65
+ Released on 2019-01-29
+
+
+
+
+ Firefox for Android
+
+
+ 65
+ Released on 2019-01-29
+
+
+
+
+ Safari
+
+
+ 11.1
+ Released on 2018-04-12
+
+
+
+
+ Safari on iOS
+
+
+ 11.3
+ Released on 2018-03-29
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-11-21 (baseline low)
+
+
+
+
lh unit
+
The CSS lh unit corresponds to the requested line height, the computed value of the line-height property. Some lines may be higher than this based on their content.
+ Chrome Android
+
+
+ 109
+ Released on 2023-01-10
+
+
+
+
+ Edge
+
+
+ 109
+ Released on 2023-01-12
+
+
+
+
+ Firefox
+
+
+ 120
+ Released on 2023-11-21
+
+
+
+
+ Firefox for Android
+
+
+ 120
+ Released on 2023-11-21
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-11-21 (baseline low)
+
+
+
+
User activation
+
The navigator.userActivation API 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.
+ Chrome Android
+
+
+ 103
+ Released on 2022-06-21
+
+
+
+
+ Edge
+
+
+ 103
+ Released on 2022-06-23
+
+
+
+
+ Firefox
+
+
+ 119
+ Released on 2023-10-24
+
+
+
+
+ Firefox for Android
+
+
+ 119
+ Released on 2023-10-24
+
+
+
+
+ Safari
+
+
+ 12.1
+ Released on 2019-03-25
+
+
+
+
+ Safari on iOS
+
+
+ 12.2
+ Released on 2019-03-25
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-10-24 (baseline low)
+
+
+
+
Web authentication easy public key access
+
The getAuthenticatorData(), getPublicKey(), and getPublicKeyAlgorithm() methods of AuthenticatorAttestationResponse access credential data inside attestationObject without the need to parse it.
+ Chrome Android
+
+
+ 85
+ Released on 2020-08-25
+
+
+
+
+ Edge
+
+
+ 85
+ Released on 2020-08-27
+
+
+
+
+ Firefox
+
+
+ 119
+ Released on 2023-10-24
+
+
+
+
+ Firefox for Android
+
+
+ 119
+ Released on 2023-10-24
+
+
+
+
+ Safari
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+ Safari on iOS
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-10-13 (baseline low)
+
+
+
+
Canvas text baselines
+
The alphabeticBaseline, hangingBaseline, and ideographicBaseline canvas text metrics measure the distance from the used textBaseline to the respective typographic baseline.
+ Chrome Android
+
+
+ 118
+ Released on 2023-10-10
+
+
+
+
+ Edge
+
+
+ 118
+ Released on 2023-10-13
+
+
+
+
+ Firefox
+
+
+ 118
+ Released on 2023-09-26
+
+
+
+
+ Firefox for Android
+
+
+ 118
+ Released on 2023-09-26
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-09-18 (baseline low)
+
+
+
+
contain-intrinsic-size
+
The contain-intrinsic-size CSS property sets the intrinsic size of an element. When using size containment, the browser will layout the element as if it had a single child of this size.
+ Chrome Android
+
+
+ 95
+ Released on 2021-10-19
+
+
+
+
+ Edge
+
+
+ 95
+ Released on 2021-10-21
+
+
+
+
+ Firefox
+
+
+ 107
+ Released on 2022-11-15
+
+
+
+
+ Firefox for Android
+
+
+ 107
+ Released on 2022-11-15
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-09-18 (baseline low)
+
+
+
+
@counter-style
+
The @counter-style CSS at-rule defines custom counter styles for list items. For example, you can use a sequence of specific symbols instead of numbers for an ordered list.
+ Chrome Android
+
+
+ 31
+ Released on 2013-11-14
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 6
+ Released on 2011-08-16
+
+
+
+
+ Firefox for Android
+
+
+ 6
+ Released on 2011-08-16
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 4.2
+ Released on 2010-11-22
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-09-18 (baseline low)
+
+
+
+
Hyphenation
+
The hyphens CSS property controls when long words are broken by line wrapping. Although called hyphens, the property applies to word-splitting behavior across languages, such as customary spelling changes or the use of other characters to mark an intraword line break.
+ Chrome Android
+
+
+ 55
+ Released on 2016-12-06
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 43
+ Released on 2015-12-15
+
+
+
+
+ Firefox for Android
+
+
+ 43
+ Released on 2015-12-15
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-09-18 (baseline low)
+
+
+
+
image-set()
+
The image-set() CSS function provides a set of images at different resolutions or pixel densities, which the browser can pick from, depending on the device capabilities.
+ Chrome Android
+
+
+ 113
+ Released on 2023-05-02
+
+
+
+
+ Edge
+
+
+ 113
+ Released on 2023-05-05
+
+
+
+
+ Firefox
+
+
+ 89
+ Released on 2021-06-01
+
+
+
+
+ Firefox for Android
+
+
+ 89
+ Released on 2021-06-01
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-09-18 (baseline low)
+
+
+
+
<link rel="modulepreload">
+
The rel="modulepreload" attribute for the <link> HTML element indicates that a module script should be fetched, parsed, and compiled preemptively, and stored for later execution.
+ Chrome Android
+
+
+ 66
+ Released on 2018-04-17
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Firefox for Android
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Safari
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+ Safari on iOS
+
+
+ 17
+ Released on 2023-09-18
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-09-15 (baseline low)
+
+
+
+
Subgrid
+
The subgrid value for the grid-template-columns and grid-template-rows properties allows a grid item to inherit the grid definition of its parent grid container.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 116
+ Released on 2023-08-01
+
+
+
+
+ Firefox for Android
+
+
+ 116
+ Released on 2023-08-01
+
+
+
+
+ Safari
+
+
+ 6
+ Released on 2012-07-25
+
+
+
+
+ Safari on iOS
+
+
+ 6
+ Released on 2012-09-10
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-07-21 (baseline low)
+
+
+
+
Two-value display property
+
The display CSS property accepts multiple keyword values, such as inline flex or block flow, to explicitly set an element's inner and outer layout mode. Also known as 2-value, multi-keyword, or multiple value syntax.
+ Chrome Android
+
+
+ 112
+ Released on 2023-04-04
+
+
+
+
+ Edge
+
+
+ 112
+ Released on 2023-04-06
+
+
+
+
+ Firefox
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Firefox for Android
+
+
+ 115
+ Released on 2023-07-04
+
+
+
+
+ Safari
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+ Safari on iOS
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-07-04 (baseline low)
+
+
+
+
Array by copy
+
The toReserved(), toSorted(), toSpliced(), and with() methods of arrays and typed arrays return changed copies of arrays. They stand in contrast to methods such as sort() or reverse() that change arrays in place.
+ Chrome Android
+
+
+ 18
+ Released on 2012-06-27
+
+
+
+
+ Edge
+
+
+ 12
+ Released on 2015-07-29
+
+
+
+
+ Firefox
+
+
+ 1
+ Released on 2004-11-09
+
+
+
+
+ Firefox for Android
+
+
+ 114
+ Released on 2023-06-06
+
+
+
+
+ Safari
+
+
+ 1.1
+ Released on 2003-10-24
+
+
+
+
+ Safari on iOS
+
+
+ 1
+ Released on 2007-06-29
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
color()
+
The color() function defines a color within a given color space. Wide gamut color spaces like display-p3 allow showing more vibrant and saturated colors than the standard srgb color space.
+ Chrome Android
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Edge
+
+
+ 111
+ Released on 2023-03-13
+
+
+
+
+ Firefox
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
color-mix()
+
The color-mix() function mixes two colors in a given color space and by a given amount. Commonly, lighter or darker variations of a color are created by mixing with white or black.
+ Chrome Android
+
+
+ 80
+ Released on 2020-02-04
+
+
+
+
+ Edge
+
+
+ 80
+ Released on 2020-02-07
+
+
+
+
+ Firefox
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
Lab and LCH
+
The CIE Lab color space expresses colors in terms of lightness and how red/green and blue/yellow a color is. LCH is a variant of Lab with polar coordinates. These color spaces can be used with the CSS color(), lab(), and lch() functions. Also known as CIELAB and CIELCH.
+ Chrome Android
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Edge
+
+
+ 111
+ Released on 2023-03-13
+
+
+
+
+ Firefox
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Safari
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 15
+ Released on 2021-09-20
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
:nth-child() of <selector>
+
The of syntax for the :nth-child() and :nth-last-child() CSS functional pseudo-classes match elements by the relative position of elements, counted from the first or last sibling matching a selector list.
+ Chrome Android
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Edge
+
+
+ 111
+ Released on 2023-03-13
+
+
+
+
+ Firefox
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Safari
+
+
+ 9
+ Released on 2015-09-30
+
+
+
+
+ Safari on iOS
+
+
+ 9
+ Released on 2015-09-16
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
Oklab and Oklch
+
The Oklab color space expresses colors in terms of lightness and how red/green and blue/yellow a color is, aiming to match how humans perceive colors. Oklch is a variant of Oklab with polar coordinates. These color spaces can be used with the CSS color(), oklab(), and oklch() functions.
+ Chrome Android
+
+
+ 111
+ Released on 2023-03-07
+
+
+
+
+ Edge
+
+
+ 111
+ Released on 2023-03-13
+
+
+
+
+ Firefox
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Firefox for Android
+
+
+ 113
+ Released on 2023-05-09
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-05-09 (baseline low)
+
+
+
+
WebRTC SCTP information
+
The sctp object on RTCPeerConnection represents the negotiated SCTP transport. SCTP (Stream Control Transmission Protocol) is the protocol that RTCDataChannel uses.
+ Chrome Android
+
+
+ 73
+ Released on 2019-03-12
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 101
+ Released on 2022-05-31
+
+
+
+
+ Firefox for Android
+
+
+ 101
+ Released on 2022-05-31
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Fetch metadata request headers
+
The Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site, and Sec-Fetch-User` HTTP headers provide extra information about the way a request was made, to help servers reject certain kinds of malicious requests.
+ Chrome Android
+
+
+ 97
+ Released on 2022-01-04
+
+
+
+
+ Edge
+
+
+ 97
+ Released on 2022-01-06
+
+
+
+
+ Firefox
+
+
+ 111
+ Released on 2023-03-14
+
+
+
+
+ Firefox for Android
+
+
+ 111
+ Released on 2023-03-14
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
font-synthesis-style
+
The font-synthesis-style CSS property sets whether or not the browser should synthesize italic and oblique typefaces when they're missing from the font.
+ Chrome Android
+
+
+ 77
+ Released on 2019-09-10
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 98
+ Released on 2022-03-08
+
+
+
+
+ Firefox for Android
+
+
+ 98
+ Released on 2022-03-08
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Import maps
+
A <script type="importmap"> HTML element provides an import map as a JSON string. An import map controls how the browser should resolve module specifiers when importing JavaScript modules.
+ Chrome Android
+
+
+ 60
+ Released on 2017-08-01
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 87
+ Released on 2021-03-23
+
+
+
+
+ Firefox for Android
+
+
+ 87
+ Released on 2021-03-23
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Media query range syntax
+
The range syntax of CSS media queries allows you to use mathematical comparison operators such as <, >, <=, and >= to define a range of values for a media feature. For example, (400px < width < 1000px) returns true if the viewport width is between 400px and 1000px.
+ Chrome Android
+
+
+ 104
+ Released on 2022-08-02
+
+
+
+
+ Edge
+
+
+ 104
+ Released on 2022-08-05
+
+
+
+
+ Firefox
+
+
+ 102
+ Released on 2022-06-28
+
+
+
+
+ Firefox for Android
+
+
+ 102
+ Released on 2022-06-28
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
messageerror
+
The messageerror event fires on a target, such as a window or worker, when an incoming message cannot be deserialized. This event can fire for many types of messages, such as cross-document messages or broadcast channel messages.
+ Chrome Android
+
+
+ 80
+ Released on 2020-02-04
+
+
+
+
+ Edge
+
+
+ 80
+ Released on 2020-02-07
+
+
+
+
+ Firefox
+
+
+ 65
+ Released on 2019-01-29
+
+
+
+
+ Firefox for Android
+
+
+ 65
+ Released on 2019-01-29
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Offscreen canvas
+
The OffscreenCanvas API provides a canvas that can be drawn to off screen, with no dependencies on the DOM, which can be used to run heavy rendering operations inside a worker context.
+ Chrome Android
+
+
+ 80
+ Released on 2020-02-04
+
+
+
+
+ Edge
+
+
+ 80
+ Released on 2020-02-07
+
+
+
+
+ Firefox
+
+
+ 105
+ Released on 2022-09-20
+
+
+
+
+ Firefox for Android
+
+
+ 105
+ Released on 2022-09-20
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Push messages
+
The Push API subscribes to and receives server-initiated messages. Subscribers receive pushed messages in the background, even after periods inactive or offline.
+ Chrome Android
+
+
+ 50
+ Released on 2016-04-13
+
+
+
+
+ Edge
+
+
+ 17
+ Released on 2018-04-30
+
+
+
+
+ Firefox
+
+
+ 44
+ Released on 2016-01-26
+
+
+
+
+ Firefox for Android
+
+
+ 48
+ Released on 2016-08-02
+
+
+
+
+ Safari
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
requestAnimationFrame() in workers
+
The requestAnimationFrame() method in workers schedules a function that runs before the next repaint. Together with offscreen canvas, you can animate content from a worker.
+ Chrome Android
+
+
+ 54
+ Released on 2016-10-19
+
+
+
+
+ Edge
+
+
+ 17
+ Released on 2018-04-30
+
+
+
+
+ Firefox
+
+
+ 45
+ Released on 2016-03-08
+
+
+
+
+ Firefox for Android
+
+
+ 45
+ Released on 2016-03-08
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Screen orientation
+
The screen.orientation API gets information about the orientation of the viewport, such as landscape or portrait. With this API, you can adapt an application's layout or behavior in response to changes in orientation.
+ Chrome Android
+
+
+ 65
+ Released on 2018-03-06
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 61
+ Released on 2018-06-26
+
+
+
+
+ Firefox for Android
+
+
+ 61
+ Released on 2018-06-26
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
Imperative slot assignment
+
The assign() method for <slot> elements assigns nodes to the slot, as an alternative to using the slot and name HTML attributes. The nodes must be children of a shadow host and the shadow root must be created with the slotAssignment set to "manual". Also known as manual slot assignment.
+ Chrome Android
+
+
+ 86
+ Released on 2020-10-20
+
+
+
+
+ Edge
+
+
+ 86
+ Released on 2020-10-09
+
+
+
+
+ Firefox
+
+
+ 92
+ Released on 2021-09-07
+
+
+
+
+ Firefox for Android
+
+
+ 92
+ Released on 2021-09-07
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-27 (baseline low)
+
+
+
+
WebAssembly SIMD
+
The 128-bit SIMD (Single Instruction Multiple Data) extension to WebAssembly performs one instruction on multiple units of data, when running on hardware that supports such instructions. Also known as vector instructions.
+ Chrome Android
+
+
+ 91
+ Released on 2021-05-25
+
+
+
+
+ Edge
+
+
+ 91
+ Released on 2021-05-27
+
+
+
+
+ Firefox
+
+
+ 89
+ Released on 2021-06-01
+
+
+
+
+ Firefox for Android
+
+
+ 89
+ Released on 2021-06-01
+
+
+
+
+ Safari
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+ Safari on iOS
+
+
+ 16.4
+ Released on 2023-03-27
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2023-03-14 (baseline low)
+
+
+
+
Origin private file system
+
The navigator.storage.getDirectory() method returns a FileSystemDirectoryHandle that is restricted to a specific origin and invisible to the user's actual file system for faster file-based applications, such as SQLite databases.
+ Chrome Android
+
+
+ 109
+ Released on 2023-01-10
+
+
+
+
+ Edge
+
+
+ 109
+ Released on 2023-01-12
+
+
+
+
+ Firefox
+
+
+ 4
+ Released on 2011-03-22
+
+
+
+
+ Firefox for Android
+
+
+ 4
+ Released on 2011-03-29
+
+
+
+
+ Safari
+
+
+ 10
+ Released on 2016-09-20
+
+
+
+
+ Safari on iOS
+
+
+ 10
+ Released on 2016-09-13
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-12-13 (baseline low)
+
+
+
+
WebGL OES_draw_buffers_indexed extension
+
The OES_draw_buffers_indexed extension to WebGL allows you to control blending on a per-color basis when writing to multiple color buffers simultaneously.
+ Chrome Android
+
+
+ 100
+ Released on 2022-03-29
+
+
+
+
+ Edge
+
+
+ 100
+ Released on 2022-04-01
+
+
+
+
+ Firefox
+
+
+ 108
+ Released on 2022-12-13
+
+
+
+
+ Firefox for Android
+
+
+ 108
+ Released on 2022-12-13
+
+
+
+
+ Safari
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+ Safari on iOS
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-12-05 (baseline low)
+
+
+
+
Small, large, and dynamic viewport units
+
The sv*, lv*, and dv* CSS viewport units are relative to the smallest, largest, and current (dynamic) viewport size. They are used to size elements in relation to the viewport's dimensions.
+ Chrome Android
+
+
+ 84
+ Released on 2020-07-27
+
+
+
+
+ Edge
+
+
+ 84
+ Released on 2020-07-16
+
+
+
+
+ Firefox
+
+
+ 80
+ Released on 2020-08-25
+
+
+
+
+ Firefox for Android
+
+
+ 80
+ Released on 2020-08-31
+
+
+
+
+ Safari
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+ Safari on iOS
+
+
+ 16
+ Released on 2022-09-12
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-09-02 (baseline low)
+
+
+
+
:modal
+
The :modal pseudo-class selects elements that put other elements into a non-interactive state, such as a fullscreen element or a <dialog> element used with showModal().
+ Chrome Android
+
+
+ 105
+ Released on 2022-09-02
+
+
+
+
+ Edge
+
+
+ 105
+ Released on 2022-09-01
+
+
+
+
+ Firefox
+
+
+ 103
+ Released on 2022-07-26
+
+
+
+
+ Firefox for Android
+
+
+ 103
+ Released on 2022-07-26
+
+
+
+
+ Safari
+
+
+ 15.6
+ Released on 2022-07-20
+
+
+
+
+ Safari on iOS
+
+
+ 15.6
+ Released on 2022-07-20
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-08-23 (baseline low)
+
+
+
+
Array findLast() and findLastIndex()
+
The findLast() and findLastIndex() methods of arrays and typed arrays search an array in reverse order for the first item that satisfies a test function.
+ Chrome Android
+
+
+ 93
+ Released on 2021-08-31
+
+
+
+
+ Edge
+
+
+ 93
+ Released on 2021-09-02
+
+
+
+
+ Firefox
+
+
+ 92
+ Released on 2021-09-07
+
+
+
+
+ Firefox for Android
+
+
+ 92
+ Released on 2021-09-07
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-03-14 (baseline low)
+
+
+
+
appearance
+
The appearance CSS property controls the appearance of form controls. Using appearance: none disables any default native appearance and allows the elements to be styled with CSS.
+ Chrome Android
+
+
+ 84
+ Released on 2020-07-27
+
+
+
+
+ Edge
+
+
+ 84
+ Released on 2020-07-16
+
+
+
+
+ Firefox
+
+
+ 80
+ Released on 2020-08-25
+
+
+
+
+ Firefox for Android
+
+
+ 80
+ Released on 2020-08-31
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-03-14 (baseline low)
+
+
+
+
Array at()
+
The at() method of arrays and typed arrays returns the item at an index, including negative indices for getting items relative to the end of an array. Also known as the relative indexing method.
+ Chrome Android
+
+
+ 60
+ Released on 2017-08-01
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 57
+ Released on 2017-11-14
+
+
+
+
+ Firefox for Android
+
+
+ 57
+ Released on 2017-11-28
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-03-14 (baseline low)
+
+
+
+
Cascade layers
+
The @layer CSS at-rule avoids specificity conflicts by providing priority levels for different groups of CSS rules, such as low-priority styles like resets, and high-priority styles like UI components.
+ Chrome Android
+
+
+ 37
+ Released on 2014-09-03
+
+
+
+
+ Edge
+
+
+ 79
+ Released on 2020-01-15
+
+
+
+
+ Firefox
+
+
+ 98
+ Released on 2022-03-08
+
+
+
+
+ Firefox for Android
+
+
+ 98
+ Released on 2022-03-08
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-03-14 (baseline low)
+
+
+
+
:focus-visible
+
The :focus-visible CSS pseudo-class selects elements that match the :focus pseudo-class and meets the browser's criteria for visually emphasizing focused elements.
+ Chrome Android
+
+
+ 86
+ Released on 2020-10-20
+
+
+
+
+ Edge
+
+
+ 86
+ Released on 2020-10-09
+
+
+
+
+ Firefox
+
+
+ 85
+ Released on 2021-01-26
+
+
+
+
+ Firefox for Android
+
+
+ 85
+ Released on 2021-01-26
+
+
+
+
+ Safari
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+ Safari on iOS
+
+
+ 15.4
+ Released on 2022-03-14
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-03-14 (baseline low)
+
+
+
+
structuredClone()
+
The structuredClone() global method creates a deep copy of an object. Values that cannot be cloned can instead be transferred, making the original value no longer usable.
+ Chrome Android
+
+
+ 98
+ Released on 2022-02-01
+
+
+
+
+ Edge
+
+
+ 98
+ Released on 2022-02-03
+
+
+
+
+ Firefox
+
+
+ 96
+ Released on 2022-01-11
+
+
+
+
+ Firefox for Android
+
+
+ 96
+ Released on 2022-01-11
+
+
+
+
+ Safari
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+ Safari on iOS
+
+
+ 13
+ Released on 2019-09-19
+
+
+
+
+
+
+
+
+
+
+
+ Newly available since 2022-01-06 (baseline low)
+
+
+
+
font-synthesis
+
The font-synthesis CSS shorthand property disables all font synthesis except the given kinds. To disable a specific kind of font synthesis, instead use the longhand properties such as font-synthesis-style and font-synthesis-weight.
+ {% if not feature.status.baseline %}Limited availability{% endif %}
+ {% if feature.status.baseline === "low" %}Newly available since {{ feature.status.baseline_low_date }} (baseline low){% endif %}
+ {% if feature.status.baseline === "high" %}Widely available since {{ feature.status.baseline_high_date }} (baseline high){% endif %}
+
\ No newline at end of file
diff --git a/site/_includes/compat.njk b/site/_includes/compat.njk
new file mode 100644
index 0000000000..cba87236b0
--- /dev/null
+++ b/site/_includes/compat.njk
@@ -0,0 +1,22 @@
+
+ {% for browser in browsers %}
+
+ {{ browser.name }}
+ {%set version = feature.status.support[browser.id] %}
+ {% if version %}
+ {{ version }}
+ Released on {{ browser.releases[version].release_date }}
+ {% else %}
+ ❌
+ {% if feature.implUrls[browser.id] and feature.implUrls[browser.id].length %}
+
+ See
+ {% for implUrl in feature.implUrls[browser.id] %}
+ {{ implUrl | replace("https://", "") }}
+ {% endfor %}
+
+ {% endif %}
+ {% endif %}
+
+ {% endfor %}
+
\ No newline at end of file
diff --git a/site/_includes/feature_full.njk b/site/_includes/feature_full.njk
new file mode 100644
index 0000000000..57b302debc
--- /dev/null
+++ b/site/_includes/feature_full.njk
@@ -0,0 +1,45 @@
+
\ No newline at end of file
diff --git a/site/_includes/feature_short.njk b/site/_includes/feature_short.njk
new file mode 100644
index 0000000000..332bee5cef
--- /dev/null
+++ b/site/_includes/feature_short.njk
@@ -0,0 +1,9 @@
+
+{% endif %}
\ No newline at end of file
diff --git a/site/_includes/specs.njk b/site/_includes/specs.njk
new file mode 100644
index 0000000000..621fd65ecd
--- /dev/null
+++ b/site/_includes/specs.njk
@@ -0,0 +1,10 @@
+{% if feature.spec.length %}
+
+{% endif %}
\ No newline at end of file
diff --git a/site/all.njk b/site/all.njk
new file mode 100644
index 0000000000..6cd95891f7
--- /dev/null
+++ b/site/all.njk
@@ -0,0 +1,14 @@
+---
+title: All features
+layout: layout.njk
+---
+
+
These features have been supported across all core browsers for a while.
+
+
+ {% for feature in baselineFeatures %}
+
+ {% include "feature_short.njk" %}
+
+ {% endfor %}
+
diff --git a/site/feature.njk b/site/feature.njk
new file mode 100644
index 0000000000..d0c9a9ddaf
--- /dev/null
+++ b/site/feature.njk
@@ -0,0 +1,12 @@
+---
+layout: layout.njk
+pagination:
+ data: allFeatures
+ size: 1
+ alias: feature
+permalink: "features/{{ feature.id | slugify }}/"
+eleventyComputed:
+ title: "{{ feature.name }}"
+---
+
+{% include "feature_full.njk" %}
\ No newline at end of file
diff --git a/site/index.njk b/site/index.njk
new file mode 100644
index 0000000000..cb48ab1d61
--- /dev/null
+++ b/site/index.njk
@@ -0,0 +1,8 @@
+---
+title: Web features explorer
+layout: layout.njk
+---
+
+
{{ title }}
+
+
This website displays various lists of web features, organized by whether they are available on the web platform or not.
\ No newline at end of file
diff --git a/site/missingone.njk b/site/missingone.njk
new file mode 100644
index 0000000000..8d7b845b3f
--- /dev/null
+++ b/site/missingone.njk
@@ -0,0 +1,15 @@
+---
+title: Features missing in just one engine
+layout: layout.njk
+---
+
{{ title }}
+
+
These web features are not yet available, one browser engine has not implemented it yet.
+
+
+ {% for feature in missingOneBrowserFeatures %}
+