Skip to content

Instantly share code, notes, and snippets.

@ddbeck
Created September 11, 2024 11:12
Show Gist options
  • Save ddbeck/c7446b91e0b129b24c5dbea19bdbabfe to your computer and use it in GitHub Desktop.
Save ddbeck/c7446b91e0b129b24c5dbea19bdbabfe to your computer and use it in GitHub Desktop.
--- /var/folders/9l/nhzkyrvj4pl76fxg50t__3nw0000gn/T/web-features-4xWkLS/data.latest.json 2024-09-11 13:10:04
+++ /var/folders/9l/nhzkyrvj4pl76fxg50t__3nw0000gn/T/web-features-4xWkLS/data.HEAD.json 2024-09-11 13:10:09
@@ -1156,6 +1156,10 @@
{
"date": "2024-07-25",
"version": "127"
+ },
+ {
+ "date": "2024-08-22",
+ "version": "128"
}
]
},
@@ -1689,6 +1693,10 @@
{
"date": "2024-08-06",
"version": "129"
+ },
+ {
+ "date": "2024-09-03",
+ "version": "130"
}
]
},
@@ -2146,6 +2154,10 @@
{
"date": "2024-08-06",
"version": "129"
+ },
+ {
+ "date": "2024-09-03",
+ "version": "130"
}
]
},
@@ -2624,7 +2636,12 @@
"api.AbortController.signal",
"api.AbortSignal",
"api.AbortSignal.abort_event",
- "api.AbortSignal.aborted"
+ "api.AbortSignal.abort_static",
+ "api.AbortSignal.abort_static.reason_parameter",
+ "api.AbortSignal.aborted",
+ "api.AbortSignal.reason",
+ "api.AbortSignal.throwIfAborted",
+ "api.AbortSignal.timeout_static"
],
"description": "The AbortController and AbortSignal APIs allow you to cancel an ongoing operation, such as a fetch() request.",
"description_html": "The <code>AbortController</code> and <code>AbortSignal</code> APIs allow you to cancel an ongoing operation, such as a <code>fetch()</code> request.",
@@ -2756,6 +2773,29 @@
"firefox_android": "4",
"safari": "1",
"safari_ios": "1"
+ }
+ }
+ },
+ "alt-text-generated-content": {
+ "compat_features": [
+ "css.properties.content.alt_text"
+ ],
+ "description": "The / notation in content CSS property values adds alternative text to generated content. For example, the content: url('upvote-icon.svg') / 'Upvote' declaration adds accessible 'Upvote' text to the SVG icon. Also known as alternate text.",
+ "description_html": "The <code>/</code> notation in <code>content</code> CSS property values adds alternative text to generated content. For example, the <code>content: url('upvote-icon.svg') / 'Upvote'</code> declaration adds accessible 'Upvote' text to the SVG icon. Also known as alternate text.",
+ "group": "css",
+ "name": "Alt text for generated content",
+ "spec": "https://drafts.csswg.org/css-content-3/#alt",
+ "status": {
+ "baseline": "low",
+ "baseline_low_date": "2024-07-09",
+ "support": {
+ "chrome": "77",
+ "chrome_android": "77",
+ "edge": "79",
+ "firefox": "128",
+ "firefox_android": "128",
+ "safari": "17.4",
+ "safari_ios": "17.4"
}
}
},
@@ -3409,7 +3449,7 @@
"description_html": "The <code>Object.groupBy()</code> and <code>Map.groupBy()</code> static methods group values of arrays and iterables based on a function that returns a key for each value.",
"group": "maps",
"name": "Array grouping",
- "spec": "https://tc39.es/proposal-array-grouping/",
+ "spec": "https://tc39.es/ecma262/multipage/abstract-operations.html#sec-groupby",
"status": {
"baseline": "low",
"baseline_low_date": "2024-03-05",
@@ -3726,14 +3766,20 @@
"api.Clipboard",
"api.Clipboard.read",
"api.Clipboard.readText",
+ "api.Clipboard.type_image-png",
+ "api.Clipboard.type_text-html",
+ "api.Clipboard.type_text-plain",
"api.Clipboard.write",
"api.Clipboard.writeText",
"api.ClipboardItem",
"api.ClipboardItem.ClipboardItem",
"api.ClipboardItem.getType",
"api.ClipboardItem.presentationStyle",
+ "api.ClipboardItem.type_image_svg_xml",
+ "api.ClipboardItem.type_web",
"api.ClipboardItem.types",
- "api.Navigator.clipboard"
+ "api.Navigator.clipboard",
+ "api.Permissions.permission_clipboard-write"
],
"description": "The navigator.clipboard API asynchronously reads and writes to the system clipboard.",
"description_html": "The <code>navigator.clipboard</code> API asynchronously reads and writes to the system clipboard.",
@@ -5045,6 +5091,35 @@
"edge": "13",
"firefox": "45",
"firefox_android": "45",
+ "safari": "10.1",
+ "safari_ios": "10.3"
+ }
+ }
+ },
+ "clipboard-events": {
+ "compat_features": [
+ "api.ClipboardEvent",
+ "api.ClipboardEvent.ClipboardEvent",
+ "api.ClipboardEvent.clipboardData",
+ "api.Element.copy_event",
+ "api.Element.cut_event",
+ "api.Element.paste_event"
+ ],
+ "description": "The \"copy\", \"cut\", and \"paste\" events fire on elements when the user starts an action with the clipboard.",
+ "description_html": "The <code>\"copy\"</code>, <code>\"cut\"</code>, and <code>\"paste\"</code> events fire on elements when the user starts an action with the clipboard.",
+ "group": "clipboard",
+ "name": "Clipboard events",
+ "spec": "https://w3c.github.io/clipboard-apis/#clipboard-event-interfaces",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2019-09-27",
+ "baseline_low_date": "2017-03-27",
+ "support": {
+ "chrome": "41",
+ "chrome_android": "41",
+ "edge": "12",
+ "firefox": "22",
+ "firefox_android": "22",
"safari": "10.1",
"safari_ios": "10.3"
}
@@ -5118,8 +5193,9 @@
"css.types.color.color",
"css.types.color.color.mixed_type_parameters"
],
- "description": "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.",
- "description_html": "The <code>color()</code> function defines a color within a given color space. Wide gamut color spaces like <code>display-p3</code> allow showing more vibrant and saturated colors than the standard <code>srgb</code> color space.",
+ "description": "The color() function picks a color from a given color space. Wide gamut color spaces like display-p3 allow showing more vibrant and saturated colors than the standard srgb color space.",
+ "description_html": "The <code>color()</code> function picks a color from a given color space. Wide gamut color spaces like <code>display-p3</code> allow showing more vibrant and saturated colors than the standard <code>srgb</code> color space.",
+ "group": "color-types",
"name": "color()",
"spec": "https://drafts.csswg.org/css-color-4/#color-function",
"status": {
@@ -5301,11 +5377,7 @@
"compat_features": [
"css.types.image.gradient.conic-gradient",
"css.types.image.gradient.conic-gradient.doubleposition",
- "css.types.image.gradient.conic-gradient.hue_interpolation_method",
- "css.types.image.gradient.conic-gradient.interpolation_color_space",
- "css.types.image.gradient.repeating-conic-gradient",
- "css.types.image.gradient.repeating-conic-gradient.hue_interpolation_method",
- "css.types.image.gradient.repeating-conic-gradient.interpolation_color_space"
+ "css.types.image.gradient.repeating-conic-gradient"
],
"description": "The conic-gradient() and repeating-conic-gradient() CSS functions create backgrounds that progress between two or more colors around a center point.",
"description_html": "The <code>conic-gradient()</code> and <code>repeating-conic-gradient()</code> CSS functions create backgrounds that progress between two or more colors around a center point.",
@@ -5757,8 +5829,8 @@
"css.at-rules.counter-style.symbols",
"css.at-rules.counter-style.system"
],
- "description": "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.",
- "description_html": "The <code>@counter-style</code> 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.",
+ "description": "The @counter-style CSS at-rule sets custom counter styles for list items. For example, you can use a sequence of specific symbols instead of numbers for an ordered list.",
+ "description_html": "The <code>@counter-style</code> CSS at-rule sets custom counter styles for list items. For example, you can use a sequence of specific symbols instead of numbers for an ordered list.",
"name": "@counter-style",
"spec": "https://drafts.csswg.org/css-counter-styles-3/",
"status": {
@@ -5772,6 +5844,38 @@
"firefox_android": "33",
"safari": "17",
"safari_ios": "17"
+ }
+ }
+ },
+ "credential-management": {
+ "compat_features": [
+ "api.Credential",
+ "api.Credential.id",
+ "api.Credential.type",
+ "api.CredentialsContainer",
+ "api.CredentialsContainer.create",
+ "api.CredentialsContainer.get",
+ "api.CredentialsContainer.preventSilentAccess",
+ "api.CredentialsContainer.store",
+ "api.Navigator.credentials"
+ ],
+ "description": "The navigator.credentials API provides generic storage for authentication credentials. Other credential APIs represent specific kinds of credentials, such as password or public key credentials, that the credential management API stores.",
+ "description_html": "The <code>navigator.credentials</code> API provides generic storage for authentication credentials. Other credential APIs represent specific kinds of credentials, such as password or public key credentials, that the credential management API stores.",
+ "group": "credential-management",
+ "name": "Credential management",
+ "spec": "https://w3c.github.io/webappsec-credential-management/",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2022-07-15",
+ "baseline_low_date": "2020-01-15",
+ "support": {
+ "chrome": "60",
+ "chrome_android": "60",
+ "edge": "79",
+ "firefox": "60",
+ "firefox_android": "60",
+ "safari": "13",
+ "safari_ios": "13"
}
}
},
@@ -5789,6 +5893,31 @@
"chrome": "123",
"chrome_android": "123",
"edge": "123"
+ }
+ }
+ },
+ "currentcolor": {
+ "caniuse": "currentcolor",
+ "compat_features": [
+ "css.types.color.currentcolor"
+ ],
+ "description": "The currentColor CSS value allows you to reuse an element's computed text color for other properties.",
+ "description_html": "The <code>currentColor</code> CSS value allows you to reuse an element's computed text color for other properties.",
+ "group": "color-types",
+ "name": "currentColor",
+ "spec": "https://drafts.csswg.org/css-color-3/#currentcolor",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2018-01-29",
+ "baseline_low_date": "2015-07-29",
+ "support": {
+ "chrome": "1",
+ "chrome_android": "18",
+ "edge": "12",
+ "firefox": "1.5",
+ "firefox_android": "4",
+ "safari": "4",
+ "safari_ios": "3.2"
}
}
},
@@ -5872,8 +6001,8 @@
"api.HTMLDataListElement.options",
"html.elements.datalist"
],
- "description": "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.",
- "description_html": "The <code>&#x3C;datalist></code> element defines a set of recommended values for an <code>&#x3C;input></code> element. Browsers may show a dropdown menu of all options, or matching options as the user types.",
+ "description": "The <datalist> element sets recommended values for an <input> element. Browsers may show a dropdown menu of all values or match values as the user types.",
+ "description_html": "The <code>&#x3C;datalist></code> element sets recommended values for an <code>&#x3C;input></code> element. Browsers may show a dropdown menu of all values or match values as the user types.",
"group": "forms",
"name": "<datalist>",
"spec": "https://html.spec.whatwg.org/multipage/form-elements.html#the-datalist-element",
@@ -6080,11 +6209,14 @@
"name": "Mutually exclusive <details> elements",
"spec": "https://html.spec.whatwg.org/multipage/interactive-elements.html#attr-details-name",
"status": {
- "baseline": false,
+ "baseline": "low",
+ "baseline_low_date": "2024-09-03",
"support": {
"chrome": "120",
"chrome_android": "120",
"edge": "120",
+ "firefox": "130",
+ "firefox_android": "130",
"safari": "17.2",
"safari_ios": "17.2"
}
@@ -6309,6 +6441,7 @@
"support": {
"chrome": "128",
"chrome_android": "128",
+ "edge": "128",
"firefox": "20",
"firefox_android": "20"
}
@@ -6516,6 +6649,49 @@
}
}
},
+ "fedcm": {
+ "compat_features": [
+ "api.CredentialsContainer.get.identity_option",
+ "api.IdentityCredential",
+ "api.IdentityCredential.token"
+ ],
+ "description": "The IdentityCredential API delegates authentication to a third-party identity provider, instead of using third-party cookies. Also known as FedCM.",
+ "description_html": "The <code>IdentityCredential</code> API delegates authentication to a third-party identity provider, instead of using third-party cookies. Also known as FedCM.",
+ "group": "credential-management",
+ "name": "Federated credential management",
+ "spec": "https://w3c-fedid.github.io/FedCM/",
+ "status": {
+ "baseline": false,
+ "support": {
+ "chrome": "108",
+ "chrome_android": "108",
+ "edge": "108"
+ }
+ }
+ },
+ "federated-credentials": {
+ "compat_features": [
+ "api.FederatedCredential",
+ "api.FederatedCredential.FederatedCredential",
+ "api.FederatedCredential.iconURL",
+ "api.FederatedCredential.name",
+ "api.FederatedCredential.protocol",
+ "api.FederatedCredential.provider"
+ ],
+ "description": "The FederatedCredential API represents the details required to authenticate a user using a third-party identity provider. Not to be confused with federated credential management (FedCM).",
+ "description_html": "The <code>FederatedCredential</code> API represents the details required to authenticate a user using a third-party identity provider. Not to be confused with federated credential management (FedCM).",
+ "group": "credential-management",
+ "name": "Federated credentials",
+ "spec": "https://w3c.github.io/webappsec-credential-management/#federated",
+ "status": {
+ "baseline": false,
+ "support": {
+ "chrome": "51",
+ "chrome_android": "51",
+ "edge": "79"
+ }
+ }
+ },
"fetch": {
"caniuse": "fetch",
"compat_features": [
@@ -6719,6 +6895,29 @@
}
}
},
+ "file-system-access": {
+ "caniuse": "native-filesystem-api",
+ "compat_features": [
+ "api.DataTransferItem.getAsFileSystemHandle",
+ "api.FileSystemHandle.queryPermission",
+ "api.FileSystemHandle.requestPermission",
+ "api.Window.showDirectoryPicker",
+ "api.Window.showOpenFilePicker",
+ "api.Window.showSaveFilePicker"
+ ],
+ "description": "The showOpenFilePicker(), showDirectoryPicker(), and showSaveFilePicker() methods request access to files and directories on the user's device and returns a handle for reading and writing to them.",
+ "description_html": "The <code>showOpenFilePicker()</code>, <code>showDirectoryPicker()</code>, and <code>showSaveFilePicker()</code> methods request access to files and directories on the user's device and returns a handle for reading and writing to them.",
+ "group": "file-system",
+ "name": "File system access",
+ "spec": "https://wicg.github.io/file-system-access/",
+ "status": {
+ "baseline": false,
+ "support": {
+ "chrome": "86",
+ "edge": "86"
+ }
+ }
+ },
"flexbox": {
"caniuse": "flexbox",
"compat_features": [
@@ -6794,6 +6993,26 @@
}
}
},
+ "float16array": {
+ "compat_features": [
+ "javascript.builtins.DataView.getFloat16",
+ "javascript.builtins.DataView.setFloat16",
+ "javascript.builtins.Float16Array",
+ "javascript.builtins.Math.f16round"
+ ],
+ "description": "Float16Array is a typed array of 16-bit floating point numbers.",
+ "description_html": "Float16Array is a typed array of 16-bit floating point numbers.",
+ "group": "typed-arrays",
+ "name": "Float16Array",
+ "spec": "https://tc39.es/proposal-float16array/",
+ "status": {
+ "baseline": false,
+ "support": {
+ "firefox": "129",
+ "firefox_android": "129"
+ }
+ }
+ },
"focus-visible": {
"caniuse": "css-focus-visible",
"compat_features": [
@@ -6817,14 +7036,45 @@
}
}
},
+ "font-display": {
+ "caniuse": "css-font-rendering-controls",
+ "compat_features": [
+ "css.at-rules.font-face.font-display"
+ ],
+ "description": "The font-display CSS descriptor sets whether to show a substitute font or nothing while a font face loads. The property manages what's known as a flash of unstyled text or flash of invisible text.",
+ "description_html": "The <code>font-display</code> CSS descriptor sets whether to show a substitute font or nothing while a font face loads. The property manages what's known as a flash of unstyled text or flash of invisible text.",
+ "group": "fonts",
+ "name": "font-display",
+ "spec": "https://drafts.csswg.org/css-fonts-4/#font-display-desc",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2022-07-15",
+ "baseline_low_date": "2020-01-15",
+ "support": {
+ "chrome": "60",
+ "chrome_android": "60",
+ "edge": "79",
+ "firefox": "58",
+ "firefox_android": "58",
+ "safari": "11.1",
+ "safari_ios": "11.3"
+ }
+ }
+ },
"font-face": {
- "caniuse": "fontface",
+ "caniuse": [
+ "fontface",
+ "font-unicode-range"
+ ],
"compat_features": [
+ "api.CSSFontFaceRule",
+ "api.CSSFontFaceRule.style",
"css.at-rules.font-face",
"css.at-rules.font-face.WOFF",
"css.at-rules.font-face.WOFF_2",
"css.at-rules.font-face.font-family",
- "css.at-rules.font-face.src"
+ "css.at-rules.font-face.src",
+ "css.at-rules.font-face.unicode-range"
],
"description": "The @font-face CSS at-rule creates a custom font-family value. The at-rule's descriptors set the font's name, source, and various display settings.",
"description_html": "The <code>@font-face</code> CSS at-rule creates a custom <code>font-family</code> value. The at-rule's descriptors set the font's name, source, and various display settings.",
@@ -6843,9 +7093,77 @@
"firefox_android": "39",
"safari": "10",
"safari_ios": "10"
+ }
+ }
+ },
+ "font-feature-settings": {
+ "caniuse": "font-feature",
+ "compat_features": [
+ "css.at-rules.font-face.font-feature-settings",
+ "css.properties.font-feature-settings",
+ "css.properties.font-feature-settings.normal"
+ ],
+ "description": "The font-feature-settings CSS property sets low-level OpenType feature tags for a font. When possible, use font-variant instead.",
+ "description_html": "The <code>font-feature-settings</code> CSS property sets low-level OpenType feature tags for a font. When possible, use <code>font-variant</code> instead.",
+ "group": "font-features",
+ "name": "font-feature-settings",
+ "spec": "https://drafts.csswg.org/css-fonts-4/#font-feature-settings-prop",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2019-10-05",
+ "baseline_low_date": "2017-04-05",
+ "support": {
+ "chrome": "48",
+ "chrome_android": "48",
+ "edge": "15",
+ "firefox": "34",
+ "firefox_android": "34",
+ "safari": "9.1",
+ "safari_ios": "9.3"
+ }
+ }
+ },
+ "font-kerning": {
+ "compat_features": [
+ "css.properties.font-kerning"
+ ],
+ "description": "The font-kerning CSS property sets whether kerning data from a font is used to adjust the space between letters.",
+ "description_html": "The <code>font-kerning</code> CSS property sets whether kerning data from a font is used to adjust the space between letters.",
+ "group": "font-features",
+ "name": "font-kerning",
+ "spec": "https://drafts.csswg.org/css-fonts-4/#font-kerning-prop",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2022-07-15",
+ "baseline_low_date": "2020-01-15",
+ "support": {
+ "chrome": "33",
+ "chrome_android": "33",
+ "edge": "79",
+ "firefox": "32",
+ "firefox_android": "32",
+ "safari": "9",
+ "safari_ios": "9"
}
}
},
+ "font-language-override": {
+ "compat_features": [
+ "css.properties.font-language-override"
+ ],
+ "description": "The font-language-override CSS property sets which language-specific glyphs are displayed.",
+ "description_html": "The <code>font-language-override</code> CSS property sets which language-specific glyphs are displayed.",
+ "group": "font-features",
+ "name": "font-language-override",
+ "spec": "https://drafts.csswg.org/css-fonts-4/#font-language-override-prop",
+ "status": {
+ "baseline": false,
+ "support": {
+ "firefox": "34",
+ "firefox_android": "34"
+ }
+ }
+ },
"font-optical-sizing": {
"compat_features": [
"css.properties.font-optical-sizing",
@@ -6859,16 +7177,16 @@
"spec": "https://drafts.csswg.org/css-fonts-4/#font-optical-sizing-def",
"status": {
"baseline": "high",
- "baseline_high_date": "2023-01-28",
- "baseline_low_date": "2020-07-28",
+ "baseline_high_date": "2022-09-24",
+ "baseline_low_date": "2020-03-24",
"support": {
"chrome": "79",
"chrome_android": "79",
- "edge": "79",
- "firefox": "≤72",
- "firefox_android": "79",
- "safari": "≤13.1",
- "safari_ios": "≤13.4"
+ "edge": "17",
+ "firefox": "62",
+ "firefox_android": "62",
+ "safari": "13.1",
+ "safari_ios": "13.4"
}
}
},
@@ -7073,6 +7391,38 @@
"firefox_android": "111",
"safari": "16.4",
"safari_ios": "16.4"
+ }
+ }
+ },
+ "font-variant": {
+ "compat_features": [
+ "css.at-rules.font-face.font-variant",
+ "css.properties.font-variant",
+ "css.properties.font-variant.historical-forms",
+ "css.properties.font-variant.none",
+ "css.properties.font-variant.normal",
+ "css.properties.font-variant.sub",
+ "css.properties.font-variant.super",
+ "css.properties.font-variant.turkic_is",
+ "svg.global_attributes.font-variant"
+ ],
+ "description": "The font-variant CSS property is a shorthand for font-variant-alternates, font-variant-caps, font-variant-east-asian, font-variant-emoji, font-variant-ligatures, font-variant-numeric, and font-variant-position.",
+ "description_html": "The <code>font-variant</code> CSS property is a shorthand for <code>font-variant-alternates</code>, <code>font-variant-caps</code>, <code>font-variant-east-asian</code>, <code>font-variant-emoji</code>, <code>font-variant-ligatures</code>, <code>font-variant-numeric</code>, and <code>font-variant-position</code>.",
+ "group": "font-features",
+ "name": "font-variant",
+ "spec": "https://drafts.csswg.org/css-fonts-4/#font-variant-prop",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2018-01-29",
+ "baseline_low_date": "2015-07-29",
+ "support": {
+ "chrome": "1",
+ "chrome_android": "18",
+ "edge": "12",
+ "firefox": "1",
+ "firefox_android": "4",
+ "safari": "1",
+ "safari_ios": "1"
}
}
},
@@ -7080,7 +7430,13 @@
"caniuse": "font-variant-alternates",
"compat_features": [
"api.CSSFontFeatureValuesRule",
+ "api.CSSFontFeatureValuesRule.annotation",
+ "api.CSSFontFeatureValuesRule.characterVariant",
"api.CSSFontFeatureValuesRule.fontFamily",
+ "api.CSSFontFeatureValuesRule.ornaments",
+ "api.CSSFontFeatureValuesRule.styleset",
+ "api.CSSFontFeatureValuesRule.stylistic",
+ "api.CSSFontFeatureValuesRule.swash",
"css.at-rules.font-feature-values",
"css.at-rules.font-feature-values.annotation",
"css.at-rules.font-feature-values.character-variant",
@@ -7092,6 +7448,8 @@
"css.properties.font-variant-alternates",
"css.properties.font-variant-alternates.annotation",
"css.properties.font-variant-alternates.character_variant",
+ "css.properties.font-variant-alternates.historical-forms",
+ "css.properties.font-variant-alternates.normal",
"css.properties.font-variant-alternates.ornaments",
"css.properties.font-variant-alternates.styleset",
"css.properties.font-variant-alternates.stylistic",
@@ -7111,11 +7469,240 @@
"edge": "111",
"firefox": "34",
"firefox_android": "34",
- "safari": "16.2",
- "safari_ios": "16.2"
+ "safari": "9.1",
+ "safari_ios": "9.3"
}
}
},
+ "font-variant-caps": {
+ "compat_features": [
+ "css.properties.font-variant-caps",
+ "css.properties.font-variant-caps.all-petite-caps",
+ "css.properties.font-variant-caps.all-small-caps",
+ "css.properties.font-variant-caps.normal",
+ "css.properties.font-variant-caps.petite-caps",
+ "css.properties.font-variant-caps.small-caps",
+ "css.properties.font-variant-caps.titling-caps",
+ "css.properties.font-variant-caps.unicase"
+ ],
+ "description": "The font-variant-caps CSS property sets whether text should be displayed in small caps, petite caps, or with capital letters designed for titles.",
+ "description_html": "The <code>font-variant-caps</code> CSS property sets whether text should be displayed in small caps, petite caps, or with capital letters designed for titles.",
+ "group": "font-features",
+ "name": "font-variant-caps",
+ "spec": "https://drafts.csswg.org/css-fonts-4/#font-variant-caps-prop",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2022-07-15",
+ "baseline_low_date": "2020-01-15",
+ "support": {
+ "chrome": "52",
+ "chrome_android": "52",
+ "edge": "79",
+ "firefox": "34",
+ "firefox_android": "34",
+ "safari": "9.1",
+ "safari_ios": "9.3"
+ }
+ }
+ },
+ "font-variant-east-asian": {
+ "compat_features": [
+ "css.properties.font-variant-east-asian",
+ "css.properties.font-variant-east-asian.full-width",
+ "css.properties.font-variant-east-asian.jis04",
+ "css.properties.font-variant-east-asian.jis78",
+ "css.properties.font-variant-east-asian.jis83",
+ "css.properties.font-variant-east-asian.jis90",
+ "css.properties.font-variant-east-asian.normal",
+ "css.properties.font-variant-east-asian.proportional-width",
+ "css.properties.font-variant-east-asian.ruby",
+ "css.properties.font-variant-east-asian.simplified",
+ "css.properties.font-variant-east-asian.traditional"
+ ],
+ "description": "The font-variant-east-asian CSS property controls glyph substitution and sizing in East Asian text.",
+ "description_html": "The <code>font-variant-east-asian</code> CSS property controls glyph substitution and sizing in East Asian text.",
+ "group": "font-features",
+ "name": "font-variant-east-asian",
+ "spec": "https://drafts.csswg.org/css-fonts-4/#font-variant-east-asian-prop",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2022-07-15",
+ "baseline_low_date": "2020-01-15",
+ "support": {
+ "chrome": "63",
+ "chrome_android": "63",
+ "edge": "79",
+ "firefox": "34",
+ "firefox_android": "34",
+ "safari": "9.1",
+ "safari_ios": "9.3"
+ }
+ }
+ },
+ "font-variant-emoji": {
+ "compat_features": [
+ "css.properties.font-variant-emoji"
+ ],
+ "description": "The font-variant-emoji CSS property sets the default presentation for emoji characters.",
+ "description_html": "The <code>font-variant-emoji</code> CSS property sets the default presentation for emoji characters.",
+ "group": "font-features",
+ "name": "font-variant-emoji",
+ "spec": "https://drafts.csswg.org/css-fonts-4/#font-variant-emoji-prop",
+ "status": {
+ "baseline": false,
+ "support": {}
+ }
+ },
+ "font-variant-ligatures": {
+ "compat_features": [
+ "css.properties.font-variant-ligatures",
+ "css.properties.font-variant-ligatures.common-ligatures",
+ "css.properties.font-variant-ligatures.contextual",
+ "css.properties.font-variant-ligatures.discretionary-ligatures",
+ "css.properties.font-variant-ligatures.historical-ligatures",
+ "css.properties.font-variant-ligatures.no-common-ligatures",
+ "css.properties.font-variant-ligatures.no-contextual",
+ "css.properties.font-variant-ligatures.no-discretionary-ligatures",
+ "css.properties.font-variant-ligatures.no-historical-ligatures",
+ "css.properties.font-variant-ligatures.none",
+ "css.properties.font-variant-ligatures.normal"
+ ],
+ "description": "The font-variant-ligatures CSS property sets how characters can be visually combined for readability or stylistic reasons.",
+ "description_html": "The <code>font-variant-ligatures</code> CSS property sets how characters can be visually combined for readability or stylistic reasons.",
+ "group": "font-features",
+ "name": "font-variant-ligatures",
+ "spec": "https://drafts.csswg.org/css-fonts-4/#font-variant-ligatures-prop",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2022-07-15",
+ "baseline_low_date": "2020-01-15",
+ "support": {
+ "chrome": "34",
+ "chrome_android": "34",
+ "edge": "79",
+ "firefox": "34",
+ "firefox_android": "34",
+ "safari": "9.1",
+ "safari_ios": "9.3"
+ }
+ }
+ },
+ "font-variant-numeric": {
+ "caniuse": "font-variant-numeric",
+ "compat_features": [
+ "css.properties.font-variant-numeric",
+ "css.properties.font-variant-numeric.diagonal-fractions",
+ "css.properties.font-variant-numeric.lining-nums",
+ "css.properties.font-variant-numeric.normal",
+ "css.properties.font-variant-numeric.oldstyle-nums",
+ "css.properties.font-variant-numeric.ordinal",
+ "css.properties.font-variant-numeric.proportional-nums",
+ "css.properties.font-variant-numeric.slashed-zero",
+ "css.properties.font-variant-numeric.stacked-fractions",
+ "css.properties.font-variant-numeric.tabular-nums"
+ ],
+ "description": "The font-variant-numeric CSS property sets how numeric characters are displayed. For example, you can align columns of numbers or use zeroes that have a slash.",
+ "description_html": "The <code>font-variant-numeric</code> CSS property sets how numeric characters are displayed. For example, you can align columns of numbers or use zeroes that have a slash.",
+ "group": "font-features",
+ "name": "font-variant-numeric",
+ "spec": "https://drafts.csswg.org/css-fonts-4/#font-variant-numeric-prop",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2022-07-15",
+ "baseline_low_date": "2020-01-15",
+ "support": {
+ "chrome": "52",
+ "chrome_android": "52",
+ "edge": "79",
+ "firefox": "34",
+ "firefox_android": "34",
+ "safari": "9.1",
+ "safari_ios": "9.3"
+ }
+ }
+ },
+ "font-variant-position": {
+ "compat_features": [
+ "css.properties.font-variant-position",
+ "css.properties.font-variant-position.normal",
+ "css.properties.font-variant-position.sub",
+ "css.properties.font-variant-position.super"
+ ],
+ "description": "The font-variant-position CSS property sets whether to use alternate glyphs for subscript and superscript text.",
+ "description_html": "The <code>font-variant-position</code> CSS property sets whether to use alternate glyphs for subscript and superscript text.",
+ "group": "font-features",
+ "name": "font-variant-position",
+ "spec": "https://drafts.csswg.org/css-fonts-4/#font-variant-position-prop",
+ "status": {
+ "baseline": "low",
+ "baseline_low_date": "2023-09-15",
+ "support": {
+ "chrome": "117",
+ "chrome_android": "117",
+ "edge": "117",
+ "firefox": "≤72",
+ "firefox_android": "79",
+ "safari": "≤13.1",
+ "safari_ios": "≤13.4"
+ }
+ }
+ },
+ "font-variation-settings": {
+ "caniuse": "variable-fonts",
+ "compat_features": [
+ "css.at-rules.font-face.font-variation-settings",
+ "css.properties.font-variation-settings"
+ ],
+ "description": "The font-variation-settings CSS property sets an \"axis of variability\" on a variable font, such as weight, optical size, or a custom axis defined by the typeface designer. When possible, use other CSS font properties, such as font-weight: bold. Also known as variable fonts.",
+ "description_html": "The <code>font-variation-settings</code> CSS property sets an \"axis of variability\" on a variable font, such as weight, optical size, or a custom axis defined by the typeface designer. When possible, use other CSS font properties, such as <code>font-weight: bold</code>. Also known as variable fonts.",
+ "group": "fonts",
+ "name": "font-variation-settings",
+ "spec": "https://drafts.csswg.org/css-fonts-4/#font-variation-settings-def",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2021-03-05",
+ "baseline_low_date": "2018-09-05",
+ "support": {
+ "chrome": "62",
+ "chrome_android": "62",
+ "edge": "17",
+ "firefox": "62",
+ "firefox_android": "62",
+ "safari": "11",
+ "safari_ios": "11"
+ }
+ }
+ },
+ "forced-colors": {
+ "compat_features": [
+ "css.at-rules.media.forced-colors",
+ "css.properties.forced-color-adjust",
+ "css.properties.forced-color-adjust.auto",
+ "css.properties.forced-color-adjust.none",
+ "css.properties.forced-color-adjust.preserve-parent-color"
+ ],
+ "description": "The forced-colors CSS @media rule detects when a user has chosen to use a forced colors mode, also known as high-contrast mode, and the forced-color-adjust CSS property sets whether forced colors apply to an element.",
+ "description_html": "The <code>forced-colors</code> CSS @media rule detects when a user has chosen to use a forced colors mode, also known as high-contrast mode, and the <code>forced-color-adjust</code> CSS property sets whether forced colors apply to an element.",
+ "group": "css",
+ "name": "Forced colors",
+ "spec": [
+ "https://drafts.csswg.org/mediaqueries-5/#forced-colors",
+ "https://drafts.csswg.org/css-color-adjust-1/#forced-color-adjust-prop"
+ ],
+ "status": {
+ "baseline": "low",
+ "baseline_low_date": "2022-09-12",
+ "support": {
+ "chrome": "89",
+ "chrome_android": "89",
+ "edge": "79",
+ "firefox": "89",
+ "firefox_android": "89",
+ "safari": "16",
+ "safari_ios": "16"
+ }
+ }
+ },
"form": {
"compat_features": [
"api.HTMLFormElement",
@@ -7164,8 +7751,8 @@
"edge": "12",
"firefox": "1",
"firefox_android": "4",
- "safari": "≤4",
- "safari_ios": "≤3.2"
+ "safari": "3",
+ "safari_ios": "2"
}
}
},
@@ -7290,6 +7877,40 @@
}
}
},
+ "gradient-interpolation": {
+ "compat_features": [
+ "css.types.image.gradient.conic-gradient.hue_interpolation_method",
+ "css.types.image.gradient.conic-gradient.interpolation_color_space",
+ "css.types.image.gradient.linear-gradient.hue_interpolation_method",
+ "css.types.image.gradient.linear-gradient.interpolation_color_space",
+ "css.types.image.gradient.radial-gradient.hue_interpolation_method",
+ "css.types.image.gradient.radial-gradient.interpolation_color_space",
+ "css.types.image.gradient.repeating-conic-gradient.hue_interpolation_method",
+ "css.types.image.gradient.repeating-conic-gradient.interpolation_color_space",
+ "css.types.image.gradient.repeating-linear-gradient.hue_interpolation_method",
+ "css.types.image.gradient.repeating-linear-gradient.interpolation_color_space",
+ "css.types.image.gradient.repeating-radial-gradient.hue_interpolation_method",
+ "css.types.image.gradient.repeating-radial-gradient.interpolation_color_space"
+ ],
+ "description": "Gradient interpolation controls how the colors between gradient stops are calculated in CSS. For example, linear-gradient(to right in oklch longer hue, red, red); calculates in the oklch color space, with the hue going all the way around the hue circle from red back to red.",
+ "description_html": "Gradient interpolation controls how the colors between gradient stops are calculated in CSS. For example, <code>linear-gradient(to right in oklch longer hue, red, red);</code> calculates in the <code>oklch</code> color space, with the hue going all the way around the hue circle from red back to red.",
+ "group": "gradients",
+ "name": "Gradient interpolation",
+ "spec": "https://drafts.csswg.org/css-color-4/#interpolation-space",
+ "status": {
+ "baseline": "low",
+ "baseline_low_date": "2024-06-11",
+ "support": {
+ "chrome": "111",
+ "chrome_android": "111",
+ "edge": "111",
+ "firefox": "127",
+ "firefox_android": "127",
+ "safari": "16.2",
+ "safari_ios": "16.2"
+ }
+ }
+ },
"gravity-sensor": {
"compat_features": [
"api.GravitySensor",
@@ -7638,6 +8259,34 @@
}
}
},
+ "hsl": {
+ "caniuse": "css3-colors",
+ "compat_features": [
+ "css.types.color.hsl",
+ "css.types.color.hsl.alpha_parameter",
+ "css.types.color.hsl.mixed_type_parameters",
+ "css.types.color.hsl.space_separated_parameters"
+ ],
+ "description": "The hsl() and hsla() CSS functions pick colors using hue, saturation, lightness, and alpha (transparency) channels.",
+ "description_html": "The <code>hsl()</code> and <code>hsla()</code> CSS functions pick colors using hue, saturation, lightness, and alpha (transparency) channels.",
+ "group": "color-types",
+ "name": "HSL",
+ "spec": "https://drafts.csswg.org/css-color-4/#the-hsl-notation",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2022-07-15",
+ "baseline_low_date": "2020-01-15",
+ "support": {
+ "chrome": "65",
+ "chrome_android": "65",
+ "edge": "79",
+ "firefox": "52",
+ "firefox_android": "52",
+ "safari": "12.1",
+ "safari_ios": "12.2"
+ }
+ }
+ },
"html": {
"compat_features": [
"api.HTMLHtmlElement",
@@ -7743,6 +8392,30 @@
}
}
},
+ "hwb": {
+ "compat_features": [
+ "css.types.color.hwb",
+ "css.types.color.hwb.mixed_type_parameters"
+ ],
+ "description": "The hwb() CSS function picks colors using hue, whiteness, and blackness channels.",
+ "description_html": "The <code>hwb()</code> CSS function picks colors using hue, whiteness, and blackness channels.",
+ "group": "color-types",
+ "name": "HWB",
+ "spec": "https://drafts.csswg.org/css-color-4/#the-hwb-notation",
+ "status": {
+ "baseline": "low",
+ "baseline_low_date": "2022-04-28",
+ "support": {
+ "chrome": "101",
+ "chrome_android": "101",
+ "edge": "101",
+ "firefox": "96",
+ "firefox_android": "96",
+ "safari": "15",
+ "safari_ios": "15"
+ }
+ }
+ },
"hyphens": {
"caniuse": "css-hyphens",
"compat_features": [
@@ -7893,6 +8566,31 @@
}
}
},
+ "iframe-srcdoc": {
+ "caniuse": "iframe-srcdoc",
+ "compat_features": [
+ "api.HTMLIFrameElement.srcdoc",
+ "html.elements.iframe.srcdoc"
+ ],
+ "description": "The srcdoc attribute for the <iframe> HTML element sets a string of HTML to embed in the document. The value of srcdoc overrides loading a document from the src attribute.",
+ "description_html": "The <code>srcdoc</code> attribute for the <code>&#x3C;iframe></code> HTML element sets a string of HTML to embed in the document. The value of <code>srcdoc</code> overrides loading a document from the <code>src</code> attribute.",
+ "name": "srcdoc",
+ "spec": "https://html.spec.whatwg.org/multipage/iframe-embed-object.html#attr-iframe-srcdoc",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2022-07-15",
+ "baseline_low_date": "2020-01-15",
+ "support": {
+ "chrome": "20",
+ "chrome_android": "25",
+ "edge": "79",
+ "firefox": "25",
+ "firefox_android": "25",
+ "safari": "6",
+ "safari_ios": "6"
+ }
+ }
+ },
"image-maps": {
"compat_features": [
"api.HTMLAreaElement",
@@ -8152,6 +8850,24 @@
}
}
},
+ "initial-letter": {
+ "compat_features": [
+ "css.properties.initial-letter",
+ "css.properties.initial-letter.normal"
+ ],
+ "description": "The initial-letter CSS property sets the number of lines the first letter of an element occupies. You can use the property to make a raised capital or drop cap.",
+ "description_html": "The <code>initial-letter</code> CSS property sets the number of lines the first letter of an element occupies. You can use the property to make a raised capital or drop cap.",
+ "name": "initial-letter",
+ "spec": "https://drafts.csswg.org/css-inline-3/#sizing-drop-initials",
+ "status": {
+ "baseline": false,
+ "support": {
+ "chrome": "110",
+ "chrome_android": "110",
+ "edge": "110"
+ }
+ }
+ },
"input-event": {
"caniuse": "input-event",
"compat_features": [
@@ -8351,6 +9067,7 @@
"javascript.builtins.Intl.NumberFormat.formatRangeToParts",
"javascript.builtins.Intl.NumberFormat.formatToParts",
"javascript.builtins.Intl.NumberFormat.resolvedOptions",
+ "javascript.builtins.Intl.NumberFormat.supportedLocalesOf",
"javascript.builtins.Intl.getCanonicalLocales",
"javascript.builtins.Intl.supportedValuesOf",
"javascript.builtins.Number.toLocaleString",
@@ -8361,9 +9078,9 @@
"javascript.builtins.String.localeCompare.locales_parameter",
"javascript.builtins.String.localeCompare.options_parameter",
"javascript.builtins.String.toLocaleLowerCase",
- "javascript.builtins.String.toLocaleLowerCase.locale",
+ "javascript.builtins.String.toLocaleLowerCase.locales_parameter",
"javascript.builtins.String.toLocaleUpperCase",
- "javascript.builtins.String.toLocaleUpperCase.locale",
+ "javascript.builtins.String.toLocaleUpperCase.locales_parameter",
"javascript.builtins.TypedArray.toLocaleString"
],
"description": "The Intl API provides language sensitive string comparison, number formatting, date and time formatting, and more.",
@@ -8570,7 +9287,6 @@
"javascript.builtins.Intl.RelativeTimeFormat.format",
"javascript.builtins.Intl.RelativeTimeFormat.formatToParts",
"javascript.builtins.Intl.RelativeTimeFormat.resolvedOptions",
- "javascript.builtins.Intl.RelativeTimeFormat.resolvedOptions.numberingSystem",
"javascript.builtins.Intl.RelativeTimeFormat.supportedLocalesOf"
],
"description": "The Intl.RelativeTimeFormat API creates a locale-aware formatter that turns an object representing a relative time (such as '1 day ago') into a localized string.",
@@ -8583,8 +9299,8 @@
"baseline_high_date": "2023-03-16",
"baseline_low_date": "2020-09-16",
"support": {
- "chrome": "73",
- "chrome_android": "73",
+ "chrome": "71",
+ "chrome_android": "71",
"edge": "79",
"firefox": "76",
"firefox_android": "79",
@@ -8853,6 +9569,7 @@
],
"description": "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.",
"description_html": "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 <code>color()</code>, <code>lab()</code>, and <code>lch()</code> functions. Also known as CIELAB and CIELCH.",
+ "group": "color-types",
"name": "Lab and LCH",
"spec": "https://drafts.csswg.org/css-color-4/#cie-lab",
"status": {
@@ -8878,8 +9595,8 @@
"html.elements.label",
"html.elements.label.for"
],
- "description": "The <label> HTML element represents a caption for a form element.",
- "description_html": "The <code>&#x3C;label></code> HTML element represents a caption for a form element.",
+ "description": "The <label> HTML element represents a caption for a form field.",
+ "description_html": "The <code>&#x3C;label></code> HTML element represents a caption for a form field.",
"group": [
"forms",
"html-elements"
@@ -9696,6 +10413,32 @@
}
}
},
+ "named-color": {
+ "compat_features": [
+ "css.types.color.named-color",
+ "css.types.color.named-color.rebeccapurple",
+ "css.types.color.named-color.transparent"
+ ],
+ "description": "Some CSS color values can be referenced by name, such as red or limegreen. They stand in for specific RGB color values.",
+ "description_html": "Some CSS color values can be referenced by name, such as <code>red</code> or <code>limegreen</code>. They stand in for specific RGB color values.",
+ "group": "color-types",
+ "name": "Named colors",
+ "spec": "https://drafts.csswg.org/css-color-4/#named-colors",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2018-01-29",
+ "baseline_low_date": "2015-07-29",
+ "support": {
+ "chrome": "1",
+ "chrome_android": "18",
+ "edge": "12",
+ "firefox": "1",
+ "firefox_android": "4",
+ "safari": "1",
+ "safari_ios": "1"
+ }
+ }
+ },
"nav": {
"compat_features": [
"html.elements.nav"
@@ -10172,6 +10915,7 @@
],
"description": "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.",
"description_html": "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 <code>color()</code>, <code>oklab()</code>, and <code>oklch()</code> functions.",
+ "group": "color-types",
"name": "Oklab and Oklch",
"spec": "https://drafts.csswg.org/css-color-4/#ok-lab",
"status": {
@@ -10185,9 +10929,62 @@
"firefox_android": "113",
"safari": "15.4",
"safari_ios": "15.4"
+ }
+ }
+ },
+ "opacity": {
+ "compat_features": [
+ "css.properties.opacity",
+ "css.properties.opacity.percentages",
+ "svg.global_attributes.opacity"
+ ],
+ "description": "The opacity CSS property sets the transparency of an element.",
+ "description_html": "The <code>opacity</code> CSS property sets the transparency of an element.",
+ "group": "css",
+ "name": "opacity",
+ "spec": "https://drafts.csswg.org/css-color-3/#transparency",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2018-01-29",
+ "baseline_low_date": "2015-07-29",
+ "support": {
+ "chrome": "1",
+ "chrome_android": "18",
+ "edge": "12",
+ "firefox": "1",
+ "firefox_android": "4",
+ "safari": "2",
+ "safari_ios": "1"
}
}
},
+ "opacity-svg": {
+ "compat_features": [
+ "css.properties.fill-opacity",
+ "css.properties.stroke-opacity",
+ "svg.global_attributes.fill-opacity",
+ "svg.global_attributes.stroke-opacity"
+ ],
+ "description": "The fill-opacity, and stroke-opacity SVG attributes and CSS properties control the transparency of a stroke or fill of an SVG element.",
+ "description_html": "The <code>fill-opacity</code>, and <code>stroke-opacity</code> SVG attributes and CSS properties control the transparency of a stroke or fill of an SVG element.",
+ "group": "svg",
+ "name": "Opacity (SVG)",
+ "spec": "https://svgwg.org/svg2-draft/render.html#ObjectAndGroupOpacityProperties",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2023-01-28",
+ "baseline_low_date": "2020-07-28",
+ "support": {
+ "chrome": "≤80",
+ "chrome_android": "80",
+ "edge": "≤80",
+ "firefox": "≤72",
+ "firefox_android": "79",
+ "safari": "≤13.1",
+ "safari_ios": "≤13.4"
+ }
+ }
+ },
"orientation-sensor": {
"compat_features": [
"api.AbsoluteOrientationSensor",
@@ -10243,6 +11040,7 @@
],
"description": "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.",
"description_html": "The <code>navigator.storage.getDirectory()</code> method returns a <code>FileSystemDirectoryHandle</code> 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.",
+ "group": "file-system",
"name": "Origin private file system",
"spec": "https://fs.spec.whatwg.org/#origin-private-file-system",
"status": {
@@ -10424,6 +11222,28 @@
}
}
},
+ "paint-order": {
+ "compat_features": [
+ "css.properties.paint-order",
+ "svg.global_attributes.paint-order"
+ ],
+ "description": "The paint-order CSS property sets the z-order of strokes, fills, and (in SVG content) markers. For example, paint-order: markers stroke fill; draws the markers, then stroke on top of markers, then fill on top of both markers and stroke.",
+ "description_html": "The <code>paint-order</code> CSS property sets the z-order of strokes, fills, and (in SVG content) markers. For example, <code>paint-order: markers stroke fill;</code> draws the markers, then stroke on top of markers, then fill on top of both markers and stroke.",
+ "group": "css",
+ "name": "paint-order",
+ "spec": "https://svgwg.org/svg2-draft/painting.html#PaintOrder",
+ "status": {
+ "baseline": false,
+ "support": {
+ "chrome": "123",
+ "chrome_android": "123",
+ "edge": "123",
+ "firefox": "≤66",
+ "firefox_android": "66",
+ "safari": "≤12"
+ }
+ }
+ },
"parse-html-unsafe": {
"compat_features": [
"api.Document.parseHTMLUnsafe_static",
@@ -10445,6 +11265,28 @@
"firefox_android": "128",
"safari": "17.4",
"safari_ios": "17.4"
+ }
+ }
+ },
+ "password-credentials": {
+ "compat_features": [
+ "api.PasswordCredential",
+ "api.PasswordCredential.PasswordCredential",
+ "api.PasswordCredential.iconURL",
+ "api.PasswordCredential.name",
+ "api.PasswordCredential.password"
+ ],
+ "description": "The PasswordCredential API represents a username and password.",
+ "description_html": "The <code>PasswordCredential</code> API represents a username and password.",
+ "group": "credential-management",
+ "name": "Password credentials",
+ "spec": "https://w3c.github.io/webappsec-credential-management/#passwords",
+ "status": {
+ "baseline": false,
+ "support": {
+ "chrome": "60",
+ "chrome_android": "60",
+ "edge": "79"
}
}
},
@@ -10976,6 +11818,24 @@
}
}
},
+ "promise-try": {
+ "compat_features": [
+ "javascript.builtins.Promise.try"
+ ],
+ "description": "The Promise.try() static method returns a promise that takes a callback of any kind (returns or throws, synchronously or asynchronously) and wraps its result in a Promise.",
+ "description_html": "The <code>Promise.try()</code> static method returns a promise that takes a callback of any kind (returns or throws, synchronously or asynchronously) and wraps its result in a <code>Promise</code>.",
+ "group": "promises",
+ "name": "Promise.try()",
+ "spec": "https://tc39.es/proposal-promise-try/",
+ "status": {
+ "baseline": false,
+ "support": {
+ "chrome": "128",
+ "chrome_android": "128",
+ "edge": "128"
+ }
+ }
+ },
"promise-withresolvers": {
"compat_features": [
"javascript.builtins.Promise.withResolvers"
@@ -10984,7 +11844,7 @@
"description_html": "The <code>Promise.withResolvers()</code> static method is an alternative to the <code>Promise()</code> constructor that returns both the promise and resolution functions. You can use this to access <code>resolve</code> and <code>reject</code> outside the scope of the executor function.",
"group": "promises",
"name": "Promise.withResolvers()",
- "spec": "https://tc39.es/proposal-promise-with-resolvers/#sec-promise.withResolvers",
+ "spec": "https://tc39.es/ecma262/multipage/control-abstraction-objects.html#sec-promise.withResolvers",
"status": {
"baseline": "low",
"baseline_low_date": "2024-03-05",
@@ -10999,6 +11859,61 @@
}
}
},
+ "proxy-reflect": {
+ "caniuse": "proxy",
+ "compat_features": [
+ "javascript.builtins.Proxy",
+ "javascript.builtins.Proxy.Proxy",
+ "javascript.builtins.Proxy.handler.apply",
+ "javascript.builtins.Proxy.handler.construct",
+ "javascript.builtins.Proxy.handler.defineProperty",
+ "javascript.builtins.Proxy.handler.deleteProperty",
+ "javascript.builtins.Proxy.handler.get",
+ "javascript.builtins.Proxy.handler.getOwnPropertyDescriptor",
+ "javascript.builtins.Proxy.handler.getPrototypeOf",
+ "javascript.builtins.Proxy.handler.has",
+ "javascript.builtins.Proxy.handler.isExtensible",
+ "javascript.builtins.Proxy.handler.ownKeys",
+ "javascript.builtins.Proxy.handler.preventExtensions",
+ "javascript.builtins.Proxy.handler.set",
+ "javascript.builtins.Proxy.handler.setPrototypeOf",
+ "javascript.builtins.Proxy.revocable",
+ "javascript.builtins.Reflect",
+ "javascript.builtins.Reflect.apply",
+ "javascript.builtins.Reflect.construct",
+ "javascript.builtins.Reflect.defineProperty",
+ "javascript.builtins.Reflect.deleteProperty",
+ "javascript.builtins.Reflect.get",
+ "javascript.builtins.Reflect.getOwnPropertyDescriptor",
+ "javascript.builtins.Reflect.getPrototypeOf",
+ "javascript.builtins.Reflect.has",
+ "javascript.builtins.Reflect.isExtensible",
+ "javascript.builtins.Reflect.ownKeys",
+ "javascript.builtins.Reflect.preventExtensions",
+ "javascript.builtins.Reflect.set",
+ "javascript.builtins.Reflect.setPrototypeOf"
+ ],
+ "description": "The Proxy and Reflect JavaScript built-ins intercept and define custom behavior for fundamental language operations (such as property lookup, assignment, enumeration, or function invocation).",
+ "description_html": "The <code>Proxy</code> and <code>Reflect</code> JavaScript built-ins intercept and define custom behavior for fundamental language operations (such as property lookup, assignment, enumeration, or function invocation).",
+ "group": "javascript",
+ "name": "Proxy and Reflect",
+ "snapshot": "ecmascript-2015",
+ "spec": "https://tc39.es/ecma262/multipage/reflection.html#sec-reflection",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2019-03-20",
+ "baseline_low_date": "2016-09-20",
+ "support": {
+ "chrome": "49",
+ "chrome_android": "49",
+ "edge": "12",
+ "firefox": "18",
+ "firefox_android": "18",
+ "safari": "10",
+ "safari_ios": "10"
+ }
+ }
+ },
"push": {
"caniuse": "push-api",
"compat_features": [
@@ -11452,6 +12367,36 @@
}
}
},
+ "rgb": {
+ "compat_features": [
+ "css.types.color.rgb",
+ "css.types.color.rgb.alpha_parameter",
+ "css.types.color.rgb.float_values",
+ "css.types.color.rgb.mixed_type_parameters",
+ "css.types.color.rgb.space_separated_parameters",
+ "css.types.color.rgb_hexadecimal_notation",
+ "css.types.color.rgb_hexadecimal_notation.alpha_hexadecimal_notation"
+ ],
+ "description": "The rgb(), rgba(), and hexadecimal (as in #004488ff`) notations pick colors using red, green, blue, and alpha (transparency) channels.",
+ "description_html": "The <code>rgb()</code>, rgba()<code>, and hexadecimal (as in </code>#004488ff`) notations pick colors using red, green, blue, and alpha (transparency) channels.",
+ "group": "color-types",
+ "name": "RGB",
+ "spec": "https://drafts.csswg.org/css-color-4/#rgb-functions",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2022-07-15",
+ "baseline_low_date": "2020-01-15",
+ "support": {
+ "chrome": "65",
+ "chrome_android": "65",
+ "edge": "79",
+ "firefox": "52",
+ "firefox_android": "52",
+ "safari": "12.1",
+ "safari_ios": "12.2"
+ }
+ }
+ },
"round-mod-rem": {
"compat_features": [
"css.types.mod",
@@ -12562,8 +13507,8 @@
"api.CSSStartingStyleRule",
"css.at-rules.starting-style"
],
- "description": "The @starting-style CSS at-rule defines the starting values for properties that are transitioning when the target element's style is first updated.",
- "description_html": "The <code>@starting-style</code> CSS at-rule defines the starting values for properties that are transitioning when the target element's style is first updated.",
+ "description": "The @starting-style CSS at-rule sets the starting values for properties that are transitioning when the target element's style is first updated.",
+ "description_html": "The <code>@starting-style</code> CSS at-rule sets the starting values for properties that are transitioning when the target element's style is first updated.",
"name": "@starting-style",
"spec": "https://drafts.csswg.org/css-transitions-2/#defining-before-change-style",
"status": {
@@ -12743,9 +13688,348 @@
"firefox_android": "102",
"safari": "14.1",
"safari_ios": "14.5"
+ }
+ }
+ },
+ "string-at": {
+ "compat_features": [
+ "javascript.builtins.String.at"
+ ],
+ "description": "The at() method of strings returns the character (one UTF-16 code unit) at an index, including negative indices for getting the character relative to the end of the string. Also known as the relative indexing method.",
+ "description_html": "The <code>at()</code> method of strings returns the character (one UTF-16 code unit) at an index, including negative indices for getting the character relative to the end of the string. Also known as the relative indexing method.",
+ "group": "string",
+ "name": "String at()",
+ "spec": "https://tc39.es/ecma262/multipage/text-processing.html#sec-string-objects",
+ "status": {
+ "baseline": "low",
+ "baseline_low_date": "2022-03-14",
+ "support": {
+ "chrome": "92",
+ "chrome_android": "92",
+ "edge": "92",
+ "firefox": "90",
+ "firefox_android": "90",
+ "safari": "15.4",
+ "safari_ios": "15.4"
+ }
+ }
+ },
+ "string-codepoint": {
+ "compat_features": [
+ "javascript.builtins.String.codePointAt",
+ "javascript.builtins.String.fromCodePoint"
+ ],
+ "description": "The codePointAt() method returns the numeric value of the UTF-16 code point at an index of the string. The fromCodePoint() method returns a string created from one or more code points.",
+ "description_html": "The <code>codePointAt()</code> method returns the numeric value of the UTF-16 code point at an index of the string. The <code>fromCodePoint()</code> method returns a string created from one or more code points.",
+ "group": "string",
+ "name": "String codePointAt() and fromCodePoint()",
+ "spec": "https://tc39.es/ecma262/multipage/text-processing.html#sec-string-objects",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2018-03-30",
+ "baseline_low_date": "2015-09-30",
+ "support": {
+ "chrome": "41",
+ "chrome_android": "41",
+ "edge": "12",
+ "firefox": "29",
+ "firefox_android": "29",
+ "safari": "9",
+ "safari_ios": "9"
+ }
+ }
+ },
+ "string-includes": {
+ "caniuse": "es6-string-includes",
+ "compat_features": [
+ "javascript.builtins.String.includes"
+ ],
+ "description": "The includes() method of strings returns whether a search string appears within the string.",
+ "description_html": "The <code>includes()</code> method of strings returns whether a search string appears within the string.",
+ "group": "string",
+ "name": "String includes()",
+ "spec": "https://tc39.es/ecma262/multipage/text-processing.html#sec-string-objects",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2018-03-30",
+ "baseline_low_date": "2015-09-30",
+ "support": {
+ "chrome": "41",
+ "chrome_android": "41",
+ "edge": "12",
+ "firefox": "40",
+ "firefox_android": "40",
+ "safari": "9",
+ "safari_ios": "9"
}
}
},
+ "string-matchall": {
+ "compat_features": [
+ "javascript.builtins.String.matchAll"
+ ],
+ "description": "The matchAll() method of strings matches a string against a regular expression and returns an iterator of all results, including capturing groups.",
+ "description_html": "The <code>matchAll()</code> method of strings matches a string against a regular expression and returns an iterator of all results, including capturing groups.",
+ "group": "string",
+ "name": "String matchAll()",
+ "spec": "https://tc39.es/ecma262/multipage/text-processing.html#sec-string-objects",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2022-07-15",
+ "baseline_low_date": "2020-01-15",
+ "support": {
+ "chrome": "73",
+ "chrome_android": "73",
+ "edge": "79",
+ "firefox": "67",
+ "firefox_android": "67",
+ "safari": "13",
+ "safari_ios": "13"
+ }
+ }
+ },
+ "string-normalize": {
+ "compat_features": [
+ "javascript.builtins.String.normalize"
+ ],
+ "description": "The normalize() method of strings returns a Unicode normal form of a string as a new string. More than one code point sequence can represent the same characters. You can use the normalize() method to find canonically or compatibly equivalent strings.",
+ "description_html": "The <code>normalize()</code> method of strings returns a Unicode normal form of a string as a new string. More than one code point sequence can represent the same characters. You can use the <code>normalize()</code> method to find canonically or compatibly equivalent strings.",
+ "group": "string",
+ "name": "String normalize()",
+ "spec": "https://tc39.es/ecma262/multipage/text-processing.html#sec-string-objects",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2019-03-20",
+ "baseline_low_date": "2016-09-20",
+ "support": {
+ "chrome": "34",
+ "chrome_android": "34",
+ "edge": "12",
+ "firefox": "31",
+ "firefox_android": "31",
+ "safari": "10",
+ "safari_ios": "10"
+ }
+ }
+ },
+ "string-pad": {
+ "caniuse": "pad-start-end",
+ "compat_features": [
+ "javascript.builtins.String.padEnd",
+ "javascript.builtins.String.padStart"
+ ],
+ "description": "The padStart() and padEnd() methods of strings return a string lengthened to a minimum number of characters by adding characters to the start or end of the string.",
+ "description_html": "The <code>padStart()</code> and <code>padEnd()</code> methods of strings return a string lengthened to a minimum number of characters by adding characters to the start or end of the string.",
+ "group": "string",
+ "name": "String padStart() and padEnd()",
+ "spec": "https://tc39.es/ecma262/multipage/text-processing.html#sec-string-objects",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2019-10-05",
+ "baseline_low_date": "2017-04-05",
+ "support": {
+ "chrome": "57",
+ "chrome_android": "57",
+ "edge": "15",
+ "firefox": "48",
+ "firefox_android": "48",
+ "safari": "10",
+ "safari_ios": "10"
+ }
+ }
+ },
+ "string-raw": {
+ "compat_features": [
+ "javascript.builtins.String.raw"
+ ],
+ "description": "The String.raw() static method interpolates template literal substitutions, but ignores escape sequences. It is the tag function for template literals.",
+ "description_html": "The <code>String.raw()</code> static method interpolates template literal substitutions, but ignores escape sequences. It is the tag function for template literals.",
+ "group": "string",
+ "name": "String raw()",
+ "spec": "https://tc39.es/ecma262/multipage/text-processing.html#sec-string-objects",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2018-03-30",
+ "baseline_low_date": "2015-09-30",
+ "support": {
+ "chrome": "41",
+ "chrome_android": "41",
+ "edge": "12",
+ "firefox": "34",
+ "firefox_android": "34",
+ "safari": "9",
+ "safari_ios": "9"
+ }
+ }
+ },
+ "string-repeat": {
+ "compat_features": [
+ "javascript.builtins.String.repeat"
+ ],
+ "description": "The repeat() method of strings returns the original string repeated a number of times.",
+ "description_html": "The <code>repeat()</code> method of strings returns the original string repeated a number of times.",
+ "group": "string",
+ "name": "String repeat()",
+ "spec": "https://tc39.es/ecma262/multipage/text-processing.html#sec-string-objects",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2018-03-30",
+ "baseline_low_date": "2015-09-30",
+ "support": {
+ "chrome": "41",
+ "chrome_android": "36",
+ "edge": "12",
+ "firefox": "24",
+ "firefox_android": "24",
+ "safari": "9",
+ "safari_ios": "9"
+ }
+ }
+ },
+ "string-replaceall": {
+ "compat_features": [
+ "javascript.builtins.String.replaceAll"
+ ],
+ "description": "The replaceAll() method of strings returns a new string where all matches of a pattern (a string or regular expression) have been substituted with a replacement string.",
+ "description_html": "The <code>replaceAll()</code> method of strings returns a new string where all matches of a pattern (a string or regular expression) have been substituted with a replacement string.",
+ "group": "string",
+ "name": "String replaceAll()",
+ "spec": "https://tc39.es/ecma262/multipage/text-processing.html#sec-string-objects",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2023-02-27",
+ "baseline_low_date": "2020-08-27",
+ "support": {
+ "chrome": "85",
+ "chrome_android": "85",
+ "edge": "85",
+ "firefox": "77",
+ "firefox_android": "79",
+ "safari": "13.1",
+ "safari_ios": "13.4"
+ }
+ }
+ },
+ "string-startsends-with": {
+ "compat_features": [
+ "javascript.builtins.String.endsWith",
+ "javascript.builtins.String.startsWith"
+ ],
+ "description": "The startsWith() and endsWith() methods of strings returns whether a search string appears at the beginning or end of the provided string.",
+ "description_html": "The <code>startsWith()</code> and <code>endsWith()</code> methods of strings returns whether a search string appears at the beginning or end of the provided string.",
+ "group": "string",
+ "name": "String startsWith() and endsWith()",
+ "spec": "https://tc39.es/ecma262/multipage/text-processing.html#sec-string-objects",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2018-03-30",
+ "baseline_low_date": "2015-09-30",
+ "support": {
+ "chrome": "41",
+ "chrome_android": "36",
+ "edge": "12",
+ "firefox": "17",
+ "firefox_android": "17",
+ "safari": "9",
+ "safari_ios": "9"
+ }
+ }
+ },
+ "string-trim-startend": {
+ "compat_features": [
+ "javascript.builtins.String.trimEnd",
+ "javascript.builtins.String.trimStart"
+ ],
+ "description": "The trimStart() and trimEnd() methods of strings return a new string with whitespace removed from the beginning or end of the string.",
+ "description_html": "The <code>trimStart()</code> and <code>trimEnd()</code> methods of strings return a new string with whitespace removed from the beginning or end of the string.",
+ "group": "string",
+ "name": "String trimStart() and trimEnd()",
+ "spec": "https://tc39.es/ecma262/multipage/text-processing.html#sec-string-objects",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2022-07-15",
+ "baseline_low_date": "2020-01-15",
+ "support": {
+ "chrome": "66",
+ "chrome_android": "66",
+ "edge": "79",
+ "firefox": "61",
+ "firefox_android": "61",
+ "safari": "12",
+ "safari_ios": "12"
+ }
+ }
+ },
+ "string-wellformed": {
+ "compat_features": [
+ "javascript.builtins.String.isWellFormed",
+ "javascript.builtins.String.toWellFormed"
+ ],
+ "description": "The isWellFormed() method of strings returns a boolean indicating if the string contains any Unicode lone surrogates. The toWellFormed() method returns a new string where all lone surrogates are replaced by the Unicode replacement character.",
+ "description_html": "The <code>isWellFormed()</code> method of strings returns a boolean indicating if the string contains any Unicode lone surrogates. The <code>toWellFormed()</code> method returns a new string where all lone surrogates are replaced by the Unicode replacement character.",
+ "group": "string",
+ "name": "String isWellFormed() and toWellFormed()",
+ "spec": "https://tc39.es/ecma262/multipage/text-processing.html#sec-string-objects",
+ "status": {
+ "baseline": "low",
+ "baseline_low_date": "2023-10-24",
+ "support": {
+ "chrome": "111",
+ "chrome_android": "111",
+ "edge": "111",
+ "firefox": "119",
+ "firefox_android": "119",
+ "safari": "16.4",
+ "safari_ios": "16.4"
+ }
+ }
+ },
+ "strings": {
+ "compat_features": [
+ "javascript.builtins.String",
+ "javascript.builtins.String.@@iterator",
+ "javascript.builtins.String.String",
+ "javascript.builtins.String.charAt",
+ "javascript.builtins.String.charCodeAt",
+ "javascript.builtins.String.concat",
+ "javascript.builtins.String.fromCharCode",
+ "javascript.builtins.String.indexOf",
+ "javascript.builtins.String.lastIndexOf",
+ "javascript.builtins.String.length",
+ "javascript.builtins.String.match",
+ "javascript.builtins.String.replace",
+ "javascript.builtins.String.search",
+ "javascript.builtins.String.slice",
+ "javascript.builtins.String.split",
+ "javascript.builtins.String.substring",
+ "javascript.builtins.String.toLowerCase",
+ "javascript.builtins.String.toString",
+ "javascript.builtins.String.toUpperCase",
+ "javascript.builtins.String.trim",
+ "javascript.builtins.String.unicode_code_point_escapes",
+ "javascript.builtins.String.valueOf",
+ "javascript.grammar.string_literals"
+ ],
+ "description": "The string type (and String object) represents a sequence of characters.",
+ "description_html": "The string type (and <code>String</code> object) represents a sequence of characters.",
+ "group": "primitive-types",
+ "name": "String (initial support)",
+ "spec": "https://tc39.es/ecma262/multipage/text-processing.html#sec-string-objects",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2018-01-29",
+ "baseline_low_date": "2015-07-29",
+ "support": {
+ "chrome": "1",
+ "chrome_android": "18",
+ "edge": "12",
+ "firefox": "1",
+ "firefox_android": "4",
+ "safari": "1",
+ "safari_ios": "1"
+ }
+ }
+ },
"strong": {
"compat_features": [
"html.elements.strong"
@@ -12903,14 +14187,66 @@
}
}
},
+ "system-color": {
+ "compat_features": [
+ "css.types.color.system-color",
+ "css.types.color.system-color.accentcolor_accentcolortext",
+ "css.types.color.system-color.mark_marktext_buttonborder"
+ ],
+ "description": "The system color CSS keywords, such as ButtonBorder or LinkText, allow you to match default colors from the user agent.",
+ "description_html": "The system color CSS keywords, such as <code>ButtonBorder</code> or <code>LinkText</code>, allow you to match default colors from the user agent.",
+ "group": "color-types",
+ "name": "System colors",
+ "spec": "https://drafts.csswg.org/css-color-4/#css-system-colors",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2018-01-29",
+ "baseline_low_date": "2015-07-29",
+ "support": {
+ "chrome": "1",
+ "chrome_android": "18",
+ "edge": "12",
+ "firefox": "1",
+ "firefox_android": "4",
+ "safari": "1",
+ "safari_ios": "1"
+ }
+ }
+ },
+ "tab-size": {
+ "caniuse": "css3-tabsize",
+ "compat_features": [
+ "css.properties.tab-size",
+ "css.properties.tab-size.length"
+ ],
+ "description": "The tab-size CSS property sets the width of the tab character.",
+ "description_html": "The <code>tab-size</code> CSS property sets the width of the tab character.",
+ "group": "white-space",
+ "name": "tab-size",
+ "spec": "https://drafts.csswg.org/css-text-4/#tab-size-property",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2024-02-10",
+ "baseline_low_date": "2021-08-10",
+ "support": {
+ "chrome": "42",
+ "chrome_android": "42",
+ "edge": "79",
+ "firefox": "91",
+ "firefox_android": "91",
+ "safari": "13.1",
+ "safari_ios": "13.4"
+ }
+ }
+ },
"tabindex": {
"caniuse": "tabindex-attr",
"compat_features": [
"api.HTMLElement.tabIndex",
"html.global_attributes.tabindex"
],
- "description": "The tabindex HTML attribute make an element focusable, and defines the element's relative ordering for sequential focus navigation.",
- "description_html": "The <code>tabindex</code> HTML attribute make an element focusable, and defines the element's relative ordering for sequential focus navigation.",
+ "description": "The tabindex HTML attribute make an element focusable, and sets the element's relative ordering for sequential focus navigation.",
+ "description_html": "The <code>tabindex</code> HTML attribute make an element focusable, and sets the element's relative ordering for sequential focus navigation.",
"group": "html",
"name": "tabindex",
"spec": "https://html.spec.whatwg.org/multipage/interaction.html#attr-tabindex",
@@ -13491,6 +14827,27 @@
}
}
},
+ "text-wrap-mode": {
+ "compat_features": [
+ "css.properties.text-wrap-mode",
+ "css.properties.text-wrap-mode.nowrap",
+ "css.properties.text-wrap-mode.wrap"
+ ],
+ "description": "The text-wrap-mode CSS property sets whether lines may wrap with the values wrap and nowrap. It is a longhand property for both white-space and text-wrap.",
+ "description_html": "The <code>text-wrap-mode</code> CSS property sets whether lines may wrap with the values <code>wrap</code> and <code>nowrap</code>. It is a longhand property for both <code>white-space</code> and <code>text-wrap</code>.",
+ "group": "white-space",
+ "name": "text-wrap-mode",
+ "spec": "https://drafts.csswg.org/css-text-4/#text-wrap-mode",
+ "status": {
+ "baseline": false,
+ "support": {
+ "firefox": "124",
+ "firefox_android": "124",
+ "safari": "17.4",
+ "safari_ios": "17.4"
+ }
+ }
+ },
"text-wrap-nowrap": {
"compat_features": [
"css.properties.text-wrap.nowrap",
@@ -13660,7 +15017,7 @@
"description": "The transfer() and transferToFixedLength() methods of ArrayBuffer move a buffer from one context to another (for example, to a worker).",
"description_html": "The <code>transfer()</code> and <code>transferToFixedLength()</code> methods of <code>ArrayBuffer</code> move a buffer from one context to another (for example, to a worker).",
"name": "Transferable ArrayBuffer",
- "spec": "https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfer",
+ "spec": "https://tc39.es/ecma262/multipage/structured-data.html#sec-arraybuffer.prototype.transfer",
"status": {
"baseline": "low",
"baseline_low_date": "2024-03-05",
@@ -14192,6 +15549,32 @@
}
}
},
+ "user-select": {
+ "caniuse": "user-select-none",
+ "compat_features": [
+ "css.properties.user-select",
+ "css.properties.user-select.all",
+ "css.properties.user-select.auto",
+ "css.properties.user-select.contain",
+ "css.properties.user-select.none",
+ "css.properties.user-select.text"
+ ],
+ "description": "The user-select CSS property controls which elements can be selected by the user.",
+ "description_html": "The <code>user-select</code> CSS property controls which elements can be selected by the user.",
+ "group": "css",
+ "name": "user-select",
+ "spec": "https://drafts.csswg.org/css-ui-4/#content-selection",
+ "status": {
+ "baseline": false,
+ "support": {
+ "chrome": "54",
+ "chrome_android": "54",
+ "edge": "79",
+ "firefox": "69",
+ "firefox_android": "79"
+ }
+ }
+ },
"var": {
"compat_features": [
"html.elements.var"
@@ -14477,6 +15860,39 @@
}
}
},
+ "weak-references": {
+ "compat_features": [
+ "javascript.builtins.FinalizationRegistry",
+ "javascript.builtins.FinalizationRegistry.FinalizationRegistry",
+ "javascript.builtins.FinalizationRegistry.register",
+ "javascript.builtins.FinalizationRegistry.unregister",
+ "javascript.builtins.WeakRef",
+ "javascript.builtins.WeakRef.WeakRef",
+ "javascript.builtins.WeakRef.deref"
+ ],
+ "description": "The WeakRef and FinalizationRegistry objects hold references to garbage-collectable objects without creating strong references that prevent their garbage collection.",
+ "description_html": "The <code>WeakRef</code> and <code>FinalizationRegistry</code> objects hold references to garbage-collectable objects without creating strong references that prevent their garbage collection.",
+ "group": "javascript",
+ "name": "Weak references",
+ "snapshot": "ecmascript-2021",
+ "spec": [
+ "https://tc39.es/ecma262/multipage/managing-memory.html#sec-managing-memory"
+ ],
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2023-10-26",
+ "baseline_low_date": "2021-04-26",
+ "support": {
+ "chrome": "84",
+ "chrome_android": "84",
+ "edge": "84",
+ "firefox": "79",
+ "firefox_android": "79",
+ "safari": "14.1",
+ "safari_ios": "14.5"
+ }
+ }
+ },
"weakmap": {
"compat_features": [
"javascript.builtins.WeakMap",
@@ -15084,9 +16500,73 @@
"baseline": false,
"support": {
"chrome_android": "89"
+ }
+ }
+ },
+ "web-otp": {
+ "compat_features": [
+ "api.CredentialsContainer.get.otp_option",
+ "api.OTPCredential",
+ "api.OTPCredential.code",
+ "http.headers.Permissions-Policy.otp-credentials"
+ ],
+ "description": "The OTPCredential API represents a one-time-password (OTP).",
+ "description_html": "The <code>OTPCredential</code> API represents a one-time-password (OTP).",
+ "group": "credential-management",
+ "name": "WebOTP",
+ "spec": "https://wicg.github.io/web-otp/",
+ "status": {
+ "baseline": false,
+ "support": {
+ "chrome": "93",
+ "chrome_android": "84",
+ "edge": "93"
}
}
},
+ "webauthn": {
+ "caniuse": "webauthn",
+ "compat_features": [
+ "api.AuthenticatorAssertionResponse",
+ "api.AuthenticatorAssertionResponse.authenticatorData",
+ "api.AuthenticatorAssertionResponse.signature",
+ "api.AuthenticatorAssertionResponse.userHandle",
+ "api.AuthenticatorAttestationResponse",
+ "api.AuthenticatorAttestationResponse.attestationObject",
+ "api.AuthenticatorAttestationResponse.getTransports",
+ "api.AuthenticatorResponse",
+ "api.AuthenticatorResponse.clientDataJSON",
+ "api.CredentialsContainer.create.publicKey_option",
+ "api.CredentialsContainer.create.publicKey_option.extensions",
+ "api.CredentialsContainer.create.publicKey_option.extensions.appidExclude",
+ "api.CredentialsContainer.get.publicKey_option",
+ "api.CredentialsContainer.get.publicKey_option.extensions",
+ "api.CredentialsContainer.get.publicKey_option.extensions.appid",
+ "api.PublicKeyCredential",
+ "api.PublicKeyCredential.getClientExtensionResults",
+ "api.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable_static",
+ "api.PublicKeyCredential.rawId",
+ "api.PublicKeyCredential.response"
+ ],
+ "description": "The web authentication API allows you to create public key-based credentials and use them for authentication, such as when signing in. Also known as WebAuthn.",
+ "description_html": "The web authentication API allows you to create public key-based credentials and use them for authentication, such as when signing in. Also known as WebAuthn.",
+ "name": "Web authentication",
+ "spec": "https://w3c.github.io/webauthn/",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2024-03-07",
+ "baseline_low_date": "2021-09-07",
+ "support": {
+ "chrome": "67",
+ "chrome_android": "70",
+ "edge": "18",
+ "firefox": "60",
+ "firefox_android": "92",
+ "safari": "13",
+ "safari_ios": "13"
+ }
+ }
+ },
"webauthn-public-key-easy": {
"compat_features": [
"api.AuthenticatorAttestationResponse.getAuthenticatorData",
@@ -15242,12 +16722,84 @@
"chrome": "94",
"chrome_android": "94",
"edge": "94"
+ }
+ }
+ },
+ "webdriver": {
+ "compat_features": [
+ "api.Navigator.webdriver",
+ "webdriver.commands.AcceptAlert",
+ "webdriver.commands.AddCookie",
+ "webdriver.commands.Back",
+ "webdriver.commands.CloseWindow",
+ "webdriver.commands.DeleteAllCookies",
+ "webdriver.commands.DeleteCookie",
+ "webdriver.commands.DeleteSession",
+ "webdriver.commands.DismissAlert",
+ "webdriver.commands.ElementClear",
+ "webdriver.commands.ElementClick",
+ "webdriver.commands.ElementSendKeys",
+ "webdriver.commands.ExecuteAsyncScript",
+ "webdriver.commands.ExecuteScript",
+ "webdriver.commands.FindElement",
+ "webdriver.commands.FindElementFromElement",
+ "webdriver.commands.FindElements",
+ "webdriver.commands.FindElementsFromElement",
+ "webdriver.commands.Forward",
+ "webdriver.commands.FullscreenWindow",
+ "webdriver.commands.GetActiveElement",
+ "webdriver.commands.GetAlertText",
+ "webdriver.commands.GetAllCookies",
+ "webdriver.commands.GetCurrentURL",
+ "webdriver.commands.GetElementAttribute",
+ "webdriver.commands.GetElementCSSValue",
+ "webdriver.commands.GetElementProperty",
+ "webdriver.commands.GetElementRect",
+ "webdriver.commands.GetElementTagName",
+ "webdriver.commands.GetElementText",
+ "webdriver.commands.GetNamedCookie",
+ "webdriver.commands.GetPageSource",
+ "webdriver.commands.GetTimeouts",
+ "webdriver.commands.GetTitle",
+ "webdriver.commands.GetWindowHandle",
+ "webdriver.commands.GetWindowHandles",
+ "webdriver.commands.GetWindowRect",
+ "webdriver.commands.IsElementEnabled",
+ "webdriver.commands.IsElementSelected",
+ "webdriver.commands.MaximizeWindow",
+ "webdriver.commands.MinimizeWindow",
+ "webdriver.commands.NavigateTo",
+ "webdriver.commands.NewSession",
+ "webdriver.commands.NewWindow",
+ "webdriver.commands.PerformActions",
+ "webdriver.commands.Refresh",
+ "webdriver.commands.ReleaseActions",
+ "webdriver.commands.SendAlertText",
+ "webdriver.commands.SetTimeouts",
+ "webdriver.commands.SetWindowRect",
+ "webdriver.commands.Status",
+ "webdriver.commands.SwitchToFrame",
+ "webdriver.commands.SwitchToParentFrame",
+ "webdriver.commands.SwitchToWindow",
+ "webdriver.commands.TakeElementScreenshot",
+ "webdriver.commands.TakeScreenshot"
+ ],
+ "description": "The WebDriver interface allows out-of-process programs to inspect and control browsers to, for example, run tests of web applications. Also known as WebDriver classic.",
+ "description_html": "The WebDriver interface allows out-of-process programs to inspect and control browsers to, for example, run tests of web applications. Also known as WebDriver classic.",
+ "group": "webdriver",
+ "name": "WebDriver",
+ "spec": "https://w3c.github.io/webdriver/",
+ "status": {
+ "baseline": false,
+ "support": {
+ "firefox": "66"
}
}
},
"webdriver-bidi": {
"description": "WebDriver BiDi is a bidirectional protocol that allows a WebDriver client and a browser to communicate with each other.",
"description_html": "WebDriver BiDi is a bidirectional protocol that allows a WebDriver client and a browser to communicate with each other.",
+ "group": "webdriver",
"name": "WebDriver BiDi",
"spec": "https://w3c.github.io/webdriver-bidi/",
"status": {
@@ -16395,6 +17947,67 @@
"firefox_android": "82",
"safari": "14",
"safari_ios": "14"
+ }
+ }
+ },
+ "white-space": {
+ "compat_features": [
+ "css.properties.white-space",
+ "css.properties.white-space.break-spaces",
+ "css.properties.white-space.normal",
+ "css.properties.white-space.nowrap",
+ "css.properties.white-space.pre",
+ "css.properties.white-space.pre-line",
+ "css.properties.white-space.pre-wrap",
+ "css.properties.white-space.shorthand_values",
+ "css.properties.white-space.svg_elements",
+ "css.properties.white-space.textarea_support",
+ "svg.global_attributes.white-space"
+ ],
+ "description": "The white-space CSS property sets how white space is collapsed and how lines wrap. It is a shorthand for white-space-collapse and text-wrap-mode.",
+ "description_html": "The <code>white-space</code> CSS property sets how white space is collapsed and how lines wrap. It is a shorthand for <code>white-space-collapse</code> and <code>text-wrap-mode</code>.",
+ "group": "white-space",
+ "name": "white-space",
+ "spec": "https://drafts.csswg.org/css-text-4/#white-space-property",
+ "status": {
+ "baseline": "high",
+ "baseline_high_date": "2018-01-29",
+ "baseline_low_date": "2015-07-29",
+ "support": {
+ "chrome": "1",
+ "chrome_android": "18",
+ "edge": "12",
+ "firefox": "1",
+ "firefox_android": "4",
+ "safari": "1",
+ "safari_ios": "1"
+ }
+ }
+ },
+ "white-space-collapse": {
+ "compat_features": [
+ "css.properties.white-space-collapse",
+ "css.properties.white-space-collapse.break-spaces",
+ "css.properties.white-space-collapse.collapse",
+ "css.properties.white-space-collapse.preserve",
+ "css.properties.white-space-collapse.preserve-breaks"
+ ],
+ "description": "The white-space-collapse CSS property sets whether new line characters are shown as line breaks, and whether multiple consecutive spaces are all displayed or combined.",
+ "description_html": "The <code>white-space-collapse</code> CSS property sets whether new line characters are shown as line breaks, and whether multiple consecutive spaces are all displayed or combined.",
+ "group": "white-space",
+ "name": "white-space-collapse",
+ "spec": "https://drafts.csswg.org/css-text-4/#white-space-collapsing",
+ "status": {
+ "baseline": "low",
+ "baseline_low_date": "2024-03-19",
+ "support": {
+ "chrome": "114",
+ "chrome_android": "114",
+ "edge": "114",
+ "firefox": "124",
+ "firefox_android": "124",
+ "safari": "17.4",
+ "safari_ios": "17.4"
}
}
},
@@ -16604,11 +18217,18 @@
"collections": {
"name": "Collections",
"parent": "javascript"
+ },
+ "color-types": {
+ "name": "Color types",
+ "parent": "css"
},
"containment": {
"name": "Containment",
"parent": "css"
},
+ "credential-management": {
+ "name": "Credential management"
+ },
"css": {
"name": "CSS"
},
@@ -16616,10 +18236,17 @@
"name": "Custom elements",
"parent": "html"
},
+ "file-system": {
+ "name": "File system access"
+ },
"flexbox": {
"name": "Flexbox",
"parent": "layout"
},
+ "font-features": {
+ "name": "Typographic font features",
+ "parent": "fonts"
+ },
"font-synthesis": {
"name": "Font synthesis",
"parent": "fonts"
@@ -16703,6 +18330,13 @@
"streams": {
"name": "Streams"
},
+ "string": {
+ "name": "Strings",
+ "parent": "primitive-types"
+ },
+ "svg": {
+ "name": "SVG"
+ },
"text-fragments": {
"name": "Text fragments"
},
@@ -16720,11 +18354,18 @@
"web-components": {
"name": "Web Components"
},
+ "webdriver": {
+ "name": "WebDriver"
+ },
"webgl": {
"name": "WebGL"
},
"webrtc": {
"name": "WebRTC"
+ },
+ "white-space": {
+ "name": "White space",
+ "parent": "css"
}
},
"snapshots": {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment