-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathdata.json
1 lines (1 loc) · 185 KB
/
data.json
1
[{"name":"aac","title":"AAC audio file format","url":"https://caniuse.com/#feat=aac","description":"Advanced Audio Coding format, designed to be the successor format to MP3, with generally better sound quality.","keywords":"audio/aac","stats":"IE: 9+, E: 12+, FF: 108!pa., GC: 12+, S: 4+"},{"name":"abortcontroller","title":"AbortController & AbortSignal","url":"https://caniuse.com/#feat=abortcontroller","description":"Controller object that allows you to abort one or more DOM requests made with the Fetch API.","keywords":"abort api","stats":"E: 16+, FF: 57+, GC: 66+, S: 12.1+"},{"name":"accelerometer","title":"Accelerometer","url":"https://caniuse.com/#feat=accelerometer","description":"Defines `Accelerometer`, `LinearAccelerationSensor` and `GravitySensor` interfaces for obtaining information about acceleration applied to the X, Y and Z axis of a device that hosts the sensor.","keywords":"","stats":"E: 79+, GC: 67+"},{"name":"addeventlistener","title":"EventTarget.addEventListener()","url":"https://caniuse.com/#feat=addeventlistener","description":"The modern standard API for adding DOM event handlers. Introduced in the DOM Level 2 Events spec. Also implies support for `removeEventListener`, the [capture phase](https://dom.spec.whatwg.org/#dom-event-capturing_phase) of DOM event dispatch, as well as the `stopPropagation()` and `preventDefault()` event methods.","keywords":"event,target,add,remove,listener,capture,capturing,phase","stats":"IE: 9+, E: 12+, FF: 7+, GC: 4+, S: 3.1+"},{"name":"ambient-light","title":"Ambient Light Sensor","url":"https://caniuse.com/#feat=ambient-light","description":"Defines a concrete sensor interface to monitor the ambient light level or illuminance of the deviceÕs environment.","keywords":"","stats":"E: 18!pa., FF: 59!pa."},{"name":"apng","title":"Animated PNG (APNG)","url":"https://caniuse.com/#feat=apng","description":"Like animated GIFs, but allowing 24-bit colors and alpha transparency","keywords":"","stats":"E: 79+, FF: 3+, GC: 59+, S: 8+"},{"name":"array-find","title":"Array.prototype.find","url":"https://caniuse.com/#feat=array-find","description":"The `find()` method returns the value of the first item in the array based on the result of the provided testing function.","keywords":"array.find","stats":"E: 15+, FF: 25+, GC: 45+, S: 7.1+"},{"name":"array-find-index","title":"Array.prototype.findIndex","url":"https://caniuse.com/#feat=array-find-index","description":"The `findIndex()` method returns the index of the first element in the array that satisfies the provided testing function.","keywords":"array.findIndex","stats":"E: 12+, FF: 25+, GC: 45+, S: 7.1+"},{"name":"array-flat","title":"flat & flatMap array methods","url":"https://caniuse.com/#feat=array-flat","description":"Methods to flatten any sub-arrays found in an array by concatenating their elements.","keywords":"array.prototype.flat,array.prototype.flatmap","stats":"E: 79+, FF: 62+, GC: 69+, S: 12+"},{"name":"array-includes","title":"Array.prototype.includes","url":"https://caniuse.com/#feat=array-includes","description":"Determines whether or not an array includes the given value, returning a boolean value (unlike `indexOf`).","keywords":"array.includes","stats":"E: 14+, FF: 43+, GC: 47+, S: 9+"},{"name":"arrow-functions","title":"Arrow functions","url":"https://caniuse.com/#feat=arrow-functions","description":"Function shorthand using `=>` syntax and lexical `this` binding.","keywords":"ES6,JavaScript,fat,arrow,function,lexical,this,()=>","stats":"E: 12+, FF: 22+, GC: 45+, S: 10+"},{"name":"asmjs","title":"asm.js","url":"https://caniuse.com/#feat=asmjs","description":"An extraordinarily optimizable, low-level subset of JavaScript, intended to be a compile target from languages like C++.","keywords":"asm,asm.js,asmjs,WebAssembly","stats":"E: 13+, FF: 22+, GC: 110!pa."},{"name":"async-clipboard","title":"Asynchronous Clipboard API","url":"https://caniuse.com/#feat=async-clipboard","description":"A modern, asynchronous Clipboard API based on Promises","keywords":"clipboard,async,cut,copy,paste,clipboarddata,clipboardevent","stats":"E: 79+, FF: 108!pa., GC: 62+, S: 13.1+"},{"name":"async-functions","title":"Async functions","url":"https://caniuse.com/#feat=async-functions","description":"Async functions make it possible to treat functions returning Promise objects as if they were synchronous.","keywords":"ES2017,JavaScript,function,async,await,promises,asynchronous","stats":"E: 15+, FF: 52+, GC: 55+, S: 11+"},{"name":"atob-btoa","title":"Base64 encoding and decoding","url":"https://caniuse.com/#feat=atob-btoa","description":"Utility functions for of encoding and decoding strings to and from base 64: window.atob() and window.btoa().","keywords":"atob,btoa","stats":"IE: 10+, E: 12+, FF: 2+, GC: 4+, S: 3.1+"},{"name":"audio","title":"Audio element","url":"https://caniuse.com/#feat=audio","description":"Method of playing sound on webpages (without requiring a plug-in). Includes support for the following media properties: `currentSrc`, `currentTime`, `paused`, `playbackRate`, `buffered`, `duration`, `played`, `seekable`, `ended`, `autoplay`, `loop`, `controls`, `volume` & `muted`","keywords":"<audio>","stats":"IE: 9+, E: 12+, FF: 20+, GC: 4+, S: 4+"},{"name":"audio-api","title":"Web Audio API","url":"https://caniuse.com/#feat=audio-api","description":"High-level JavaScript API for processing and synthesizing audio","keywords":"web-audio,webaudio,AudioContext,AudioBuffer,AudioNode","stats":"E: 12+, FF: 25+, GC: 34+, S: 14.1+"},{"name":"audiotracks","title":"Audio Tracks","url":"https://caniuse.com/#feat=audiotracks","description":"Method of specifying and selecting between multiple audio tracks. Useful for providing audio descriptions, director's commentary, additional languages, alternative takes, etc.","keywords":"AudioTrack,AudioTrackList,media,multiple,selection","stats":"IE: 10+, E: 12+, S: 6.1+"},{"name":"autofocus","title":"Autofocus attribute","url":"https://caniuse.com/#feat=autofocus","description":"Allows a form field to be immediately focused on page load.","keywords":"","stats":"IE: 10+, E: 12+, FF: 4+, GC: 5+, S: 5+"},{"name":"auxclick","title":"Auxclick","url":"https://caniuse.com/#feat=auxclick","description":"The click event for non-primary buttons of input devices","keywords":"click,auxclick,non-primary button,middle click","stats":"E: 79+, GC: 55+"},{"name":"av1","title":"AV1 video format","url":"https://caniuse.com/#feat=av1","description":"AV1 (AOMedia Video 1) is a royalty-free video format by the Alliance for Open Media, meant to succeed its predecessor VP9 and compete with the [HEVC/H.265](/hevc) format.","keywords":"","stats":"FF: 67+, GC: 70+"},{"name":"avif","title":"AVIF image format","url":"https://caniuse.com/#feat=avif","description":"A modern image format based on the [AV1 video format](/av1). AVIF generally has better compression than [WebP](/webp), JPEG, PNG and GIF and is designed to supersede them. AVIF competes with [JPEG XL](/jpegxl) which has similar compression quality and is generally seen as more feature-rich than AVIF.","keywords":"","stats":"GC: 85+, S: 16.2!pa."},{"name":"background-attachment","title":"CSS background-attachment","url":"https://caniuse.com/#feat=background-attachment","description":"Method of defining how a background image is attached to a scrollable element. Values include `scroll` (default), `fixed` and `local`.","keywords":"","stats":"IE: 9+, E: 12+, FF: 25+, GC: 4+, S: 5+"},{"name":"background-clip-text","title":"Background-clip: text","url":"https://caniuse.com/#feat=background-clip-text","description":"Non-standard method of clipping a background image to the foreground text.","keywords":"background-clip,text,clip","stats":"E: 15+, FF: 49+, GC: 110-px-, S: 14+"},{"name":"background-img-opts","title":"CSS3 Background-image options","url":"https://caniuse.com/#feat=background-img-opts","description":"New properties to affect background images, including background-clip, background-origin and background-size","keywords":"","stats":"IE: 9+, E: 12+, FF: 4+, GC: 15+, S: 7+"},{"name":"background-position-x-y","title":"background-position-x & background-position-y","url":"https://caniuse.com/#feat=background-position-x-y","description":"CSS longhand properties to define x or y positions separately.","keywords":"","stats":"IE: 5.5+, E: 12+, FF: 49+, GC: 4+, S: 3.1+"},{"name":"background-repeat-round-space","title":"CSS background-repeat round and space","url":"https://caniuse.com/#feat=background-repeat-round-space","description":"Allows CSS background images to be repeated without clipping.","keywords":"4 value syntax,background-repeat: round,background-repeat: space","stats":"IE: 10+, E: 12+, FF: 49+, GC: 32+, S: 7+"},{"name":"background-sync","title":"Background Sync API","url":"https://caniuse.com/#feat=background-sync","description":"Provides one-off and periodic synchronization for Service Workers with an onsync event.","keywords":"syncmanager","stats":"E: 79+, GC: 49+"},{"name":"battery-status","title":"Battery Status API","url":"https://caniuse.com/#feat=battery-status","description":"Method to provide information about the battery status of the hosting device.","keywords":"navigator.battery,navigator.getbattery,batterymanager","stats":"E: 79+, FF: 43+, GC: 38+"},{"name":"beacon","title":"Beacon API","url":"https://caniuse.com/#feat=beacon","description":"Allows data to be sent asynchronously to a server with `navigator.sendBeacon`, even after a page was closed. Useful for posting analytics data the moment a user was finished using the page.","keywords":"","stats":"E: 14+, FF: 31+, GC: 39+, S: 11.1+"},{"name":"beforeafterprint","title":"Printing Events","url":"https://caniuse.com/#feat=beforeafterprint","description":"Window fires `beforeprint` and `afterprint` events so the printed document can be annotated.","keywords":"print,printer,printing,beforeprint,afterprint","stats":"IE: 6+, E: 12+, FF: 6+, GC: 63+, S: 13+"},{"name":"bigint","title":"BigInt","url":"https://caniuse.com/#feat=bigint","description":"Arbitrary-precision integers in JavaScript.","keywords":"int,integer,precision","stats":"E: 79+, FF: 68+, GC: 67+, S: 14+"},{"name":"blobbuilder","title":"Blob constructing","url":"https://caniuse.com/#feat=blobbuilder","description":"Construct Blobs (binary large objects) either using the BlobBuilder API (deprecated) or the Blob constructor.","keywords":"","stats":"IE: 10+, E: 12+, FF: 13+, GC: 20+, S: 6+"},{"name":"bloburls","title":"Blob URLs","url":"https://caniuse.com/#feat=bloburls","description":"Method of creating URL handles to the specified File or Blob object.","keywords":"createobjecturl,revokeobjecturl","stats":"E: 15+, FF: 4+, GC: 23+, S: 6.1+"},{"name":"border-image","title":"CSS3 Border images","url":"https://caniuse.com/#feat=border-image","description":"Method of using images for borders","keywords":"border-image-source,border-image-slice,border-image-repeat,border-image-width,,border-image-outset","stats":"IE: 11+, E: 14+, FF: 50+, GC: 56+, S: 15.4+"},{"name":"border-radius","title":"CSS3 Border-radius (rounded corners)","url":"https://caniuse.com/#feat=border-radius","description":"Method of making the border corners round. Covers support for the shorthand `border-radius` as well as the long-hand properties (e.g. `border-top-left-radius`)","keywords":"roundedcorners, border radius,-moz-border-radius","stats":"IE: 9+, E: 12+, FF: 50+, GC: 5+, S: 5+"},{"name":"broadcastchannel","title":"BroadcastChannel","url":"https://caniuse.com/#feat=broadcastchannel","description":"BroadcastChannel allows scripts from the same origin but other browsing contexts (windows, workers) to send each other messages.","keywords":"broadcast,channel,messaging","stats":"E: 79+, FF: 38+, GC: 54+, S: 15.4+"},{"name":"brotli","title":"Brotli Accept-Encoding/Content-Encoding","url":"https://caniuse.com/#feat=brotli","description":"More effective lossless compression algorithm than gzip and deflate.","keywords":"http,compression,accept,content,encoding","stats":"E: 15+, FF: 44+, GC: 51+, S: 13+"},{"name":"calc","title":"calc() as CSS unit value","url":"https://caniuse.com/#feat=calc","description":"Method of allowing calculated values for length units, i.e. `width: calc(100% - 3em)`","keywords":"","stats":"IE: 11!pa., E: 12+, FF: 16+, GC: 26+, S: 6.1+"},{"name":"canvas","title":"Canvas (basic support)","url":"https://caniuse.com/#feat=canvas","description":"Method of generating fast, dynamic graphics using JavaScript.","keywords":"canvas,toDataURL()","stats":"IE: 9+, E: 12+, FF: 3.6+, GC: 4+, S: 4+"},{"name":"canvas-blending","title":"Canvas blend modes","url":"https://caniuse.com/#feat=canvas-blending","description":"Method of defining the effect resulting from overlaying two layers on a Canvas element.","keywords":"","stats":"E: 13+, FF: 20+, GC: 30+, S: 6.1+"},{"name":"canvas-text","title":"Text API for Canvas","url":"https://caniuse.com/#feat=canvas-text","description":"Method of displaying text on Canvas elements","keywords":"","stats":"IE: 9+, E: 12+, FF: 3.5+, GC: 4+, S: 4+"},{"name":"ch-unit","title":"ch (character) unit","url":"https://caniuse.com/#feat=ch-unit","description":"Unit representing the width of the character \"0\" in the current font, of particular use in combination with monospace fonts.","keywords":"ch unit,character unit","stats":"IE: 11!pa., E: 12+, FF: 2+, GC: 27+, S: 7+"},{"name":"chacha20-poly1305","title":"ChaCha20-Poly1305 cipher suites for TLS","url":"https://caniuse.com/#feat=chacha20-poly1305","description":"A set of cipher suites used in Transport Layer Security (TLS) protocol, using ChaCha20 for symmetric encryption and Poly1305 for authentication.","keywords":"chacha20,poly1305,tls,cipher","stats":"E: 79+, FF: 47+, GC: 49+, S: 11.1+"},{"name":"channel-messaging","title":"Channel messaging","url":"https://caniuse.com/#feat=channel-messaging","description":"Method for having two-way communication between browsing contexts (using MessageChannel)","keywords":"","stats":"IE: 10+, E: 12+, FF: 41+, GC: 4+, S: 5+"},{"name":"childnode-remove","title":"ChildNode.remove()","url":"https://caniuse.com/#feat=childnode-remove","description":"DOM node method to remove the node itself from the document.","keywords":"ChildNode,remove,delete,node,DOM","stats":"E: 13+, FF: 23+, GC: 24+, S: 6.1+"},{"name":"classlist","title":"classList (DOMTokenList)","url":"https://caniuse.com/#feat=classlist","description":"Method of easily manipulating classes on elements, using the `DOMTokenList` object.","keywords":"classlist.contains(),classlist.toggle(),classlist.add(),classlist.remove()","stats":"IE: 11!pa., E: 12+, FF: 26+, GC: 28+, S: 7+"},{"name":"client-hints-dpr-width-viewport","title":"Client Hints: DPR, Width, Viewport-Width","url":"https://caniuse.com/#feat=client-hints-dpr-width-viewport","description":"DPR, Width, and Viewport-Width hints enable proactive content negotiation between client and server, enabling automated delivery of optimized assets - e.g. auto-negotiating image DPR resolution.","keywords":"client hints, client-hints, dpr, viewport, content-dpr","stats":"E: 79+, GC: 46+"},{"name":"clipboard","title":"Synchronous Clipboard API","url":"https://caniuse.com/#feat=clipboard","description":"API to provide copy, cut and paste events as well as provide access to the OS clipboard.","keywords":"cut,copy,paste,clipboarddata,clipboardevent","stats":"IE: 11!pa., E: 106!pa., FF: 108!pa., GC: 110!pa., S: 12+"},{"name":"colr","title":"COLR/CPAL(v0) Font Formats","url":"https://caniuse.com/#feat=colr","description":"The COLR table adds support for multi-colored glyphs in a manner that integrates with the rasterizers of existing text engines. COLRv0 only supports pure colors, does not support gradients, transformations and various blending modes.","keywords":"colr,cpal,font,color-font,fontface,webfonts","stats":"E: 12+, FF: 32+, S: 14+"},{"name":"colr-v1","title":"COLR/CPAL(v1) Font Formats","url":"https://caniuse.com/#feat=colr-v1","description":"COLRv1 is an improved version of COLRv0, this is also part of the OpenType specification. COLRv1 supports additional graphic capabilities. In addition to solid colors, gradient fills can be used, as well as more complex fills using other graphic operations, including affine transformations and various blending modes.","keywords":"colr,colrv1,cpal,font,color-font,fontface,webfonts","stats":"E: 98+, FF: 107+, GC: 98+"},{"name":"comparedocumentposition","title":"Node.compareDocumentPosition()","url":"https://caniuse.com/#feat=comparedocumentposition","description":"Compares the relative position of two nodes to each other in the DOM tree.","keywords":"Node,compareDocumentPosition,compare,document,position,preceding,following,disconnected,before,after,contains,contained,DOM","stats":"IE: 9+, E: 12+, FF: 4+, GC: 30+, S: 10+"},{"name":"console-basic","title":"Basic console logging functions","url":"https://caniuse.com/#feat=console-basic","description":"Method of outputting data to the browser's console, intended for development purposes.","keywords":"console.log,console.info,console.warn,console.error,window.console","stats":"IE: 10+, E: 12+, FF: 4+, GC: 4+, S: 3.1+"},{"name":"console-time","title":"console.time and console.timeEnd","url":"https://caniuse.com/#feat=console-time","description":"Functions for measuring performance","keywords":"console.time,console.timeEnd,window.console","stats":"IE: 11+, E: 12+, FF: 10+, GC: 4+, S: 4+"},{"name":"const","title":"const","url":"https://caniuse.com/#feat=const","description":"Declares a constant with block level scope","keywords":"ES6,constant,block,scope","stats":"IE: 11!pa., E: 12+, FF: 36+, GC: 49+, S: 11+"},{"name":"constraint-validation","title":"Constraint Validation API","url":"https://caniuse.com/#feat=constraint-validation","description":"API for better control over form field validation. Includes support for `checkValidity()`, `setCustomValidity()`, `reportValidity()` and validation states.","keywords":"","stats":"IE: 11!pa., E: 17+, FF: 51+, GC: 40+, S: 10+"},{"name":"contenteditable","title":"contenteditable attribute (basic support)","url":"https://caniuse.com/#feat=contenteditable","description":"Method of making any HTML element editable.","keywords":"iscontenteditable","stats":"IE: 5.5+, E: 12+, FF: 3.5+, GC: 4+, S: 3.1+"},{"name":"contentsecuritypolicy","title":"Content Security Policy 1.0","url":"https://caniuse.com/#feat=contentsecuritypolicy","description":"Mitigate cross-site scripting attacks by only allowing certain sources of script, style, and other resources.","keywords":"csp,security,header","stats":"IE: 11!pa., E: 12+, FF: 23+, GC: 25+, S: 7+"},{"name":"contentsecuritypolicy2","title":"Content Security Policy Level 2","url":"https://caniuse.com/#feat=contentsecuritypolicy2","description":"Mitigate cross-site scripting attacks by only allowing certain sources of script, style, and other resources. CSP 2 adds hash-source, nonce-source, and five new directives","keywords":"csp,header,nonce,hash","stats":"E: 79+, FF: 45+, GC: 40+, S: 10+"},{"name":"cookie-store-api","title":"Cookie Store API","url":"https://caniuse.com/#feat=cookie-store-api","description":"An API for reading and modifying cookies. Compared to the existing `document.cookie` method, the API provides a much more modern interface, which can also be used in service workers.","keywords":"document.cookie,cookieStore,window.cookieStore","stats":"E: 87+, GC: 87+"},{"name":"cors","title":"Cross-Origin Resource Sharing","url":"https://caniuse.com/#feat=cors","description":"Method of performing XMLHttpRequests across domains","keywords":"","stats":"IE: 11+, E: 12+, FF: 3.5+, GC: 13+, S: 5.1!pa."},{"name":"createimagebitmap","title":"createImageBitmap","url":"https://caniuse.com/#feat=createimagebitmap","description":"Create image bitmap with support for resizing and adjusting quality","keywords":"","stats":"E: 79+, FF: 108!pa., GC: 59+, S: 16.2!pa."},{"name":"credential-management","title":"Credential Management API","url":"https://caniuse.com/#feat=credential-management","description":"API that provides a programmatic interface to the browser's credential manager. In short, an origin can request a user's credentials to sign them in, or can ask the browser to save credentials on the user's behalf. Both of these requests are user-mediated.","keywords":"credential,navigator.credentials","stats":"E: 79+, GC: 57+"},{"name":"cryptography","title":"Web Cryptography","url":"https://caniuse.com/#feat=cryptography","description":"JavaScript API for performing basic cryptographic operations in web applications","keywords":"subtle,subtlecrypto","stats":"IE: 11!pa., E: 79+, FF: 34+, GC: 37+, S: 11+"},{"name":"css-all","title":"CSS all property","url":"https://caniuse.com/#feat=css-all","description":"A shorthand property for resetting all CSS properties except for `direction` and `unicode-bidi`.","keywords":"CSS,all,property,shorthand,reset","stats":"E: 79+, FF: 27+, GC: 37+, S: 9.1+"},{"name":"css-animation","title":"CSS Animation","url":"https://caniuse.com/#feat=css-animation","description":"Complex method of animating certain properties of an element","keywords":"animations,css-animations,animation-name,animation-duration,animation-delay,animation-timing-function,animation-iteration-count,@keyframes,animationstart,animationend,animationiteration,css3 animation,steps,step-start,step-end,cubic-bezier","stats":"IE: 10+, E: 12+, FF: 16+, GC: 43+, S: 9+"},{"name":"css-any-link","title":"CSS :any-link selector","url":"https://caniuse.com/#feat=css-any-link","description":"The `:any-link` CSS pseudo-class matches all elements that match `:link` or `:visited`","keywords":"any-link,css4,selector,visited","stats":"E: 79+, FF: 50+, GC: 65+, S: 9+"},{"name":"css-appearance","title":"CSS Appearance","url":"https://caniuse.com/#feat=css-appearance","description":"The `appearance` property defines how elements (particularly form controls) appear by default. By setting the value to `none` the default appearance can be entirely redefined using other CSS properties.","keywords":"","stats":"E: 84+, FF: 80+, GC: 84+, S: 15.4+"},{"name":"css-at-counter-style","title":"CSS Counter Styles","url":"https://caniuse.com/#feat=css-at-counter-style","description":"The @counter-style CSS at-rule allows custom counter styles to be defined. A @counter-style rule defines how to convert a counter value into a string representation.","keywords":"css @counter-style, list-style","stats":"E: 106!pa., FF: 108!pa., GC: 110!pa."},{"name":"css-backdrop-filter","title":"CSS Backdrop Filter","url":"https://caniuse.com/#feat=css-backdrop-filter","description":"Method of applying filter effects (like blur, grayscale or hue) to content/elements below the target element.","keywords":"blue,hue-rotate,invert,saturate,filter","stats":"E: 79+, FF: 103+, GC: 76+, S: 16.2-px-"},{"name":"css-background-offsets","title":"CSS background-position edge offsets","url":"https://caniuse.com/#feat=css-background-offsets","description":"Allows CSS background images to be positioned relative to the specified edge using the 3 to 4 value syntax. For example: `background-position: right 5px bottom 5px;` for positioning 5px from the bottom-right corner.","keywords":"4 value syntax","stats":"IE: 9+, E: 12+, FF: 13+, GC: 25+, S: 7+"},{"name":"css-backgroundblendmode","title":"CSS background-blend-mode","url":"https://caniuse.com/#feat=css-backgroundblendmode","description":"Allows blending between CSS background images, gradients, and colors.","keywords":"css blend modes,css blending modes,blending,multiply,screen,background","stats":"E: 79+, FF: 30+, GC: 35+, S: 10.1+"},{"name":"css-boxdecorationbreak","title":"CSS box-decoration-break","url":"https://caniuse.com/#feat=css-boxdecorationbreak","description":"Controls whether the box's margins, borders, padding, and other decorations wrap the broken edges of the box fragments (when the box is split by a break (page/column/region/line).","keywords":"box-decoration,box decoration,break","stats":"E: 106!pa., FF: 32+, GC: 110!pa., S: 16.2!pa."},{"name":"css-boxshadow","title":"CSS3 Box-shadow","url":"https://caniuse.com/#feat=css-boxshadow","description":"Method of displaying an inner or outer shadow effect to elements","keywords":"box-shadows,boxshadows,box shadow,shaow","stats":"IE: 9+, E: 12+, FF: 4+, GC: 10+, S: 5.1+"},{"name":"css-canvas","title":"CSS Canvas Drawings","url":"https://caniuse.com/#feat=css-canvas","description":"Method of using HTML5 Canvas as a background image. Not currently part of any specification.","keywords":"","stats":"GC: 47-px-, S: 16.2-px-"},{"name":"css-caret-color","title":"CSS caret-color","url":"https://caniuse.com/#feat=css-caret-color","description":"The `caret-color` property allows the color to be set of the caret (blinking text insertion pointer) in an editable text area.","keywords":"","stats":"E: 79+, FF: 53+, GC: 57+, S: 11.1+"},{"name":"css-cascade-layers","title":"CSS Cascade Layers","url":"https://caniuse.com/#feat=css-cascade-layers","description":"The `@layer` at-rule allows authors to explicitly layer their styles in the cascade, before specificity and order of appearance are considered.","keywords":"","stats":"E: 99+, FF: 97+, GC: 99+, S: 15.4+"},{"name":"css-case-insensitive","title":"Case-insensitive CSS attribute selectors","url":"https://caniuse.com/#feat=css-case-insensitive","description":"Including an `i` before the `]` in a CSS attribute selector causes the attribute value to be matched in an ASCII-case-insensitive manner. For example, `[b=\"xyz\" i]` would match both `<a b=\"xyz\">` and `<a b=\"XYZ\">`.","keywords":"i,attribute,case,insensitive,sensitive,sensitivity,insensitivity","stats":"E: 79+, FF: 47+, GC: 49+, S: 9+"},{"name":"css-clip-path","title":"CSS clip-path property (for HTML)","url":"https://caniuse.com/#feat=css-clip-path","description":"Method of defining the visible region of an HTML element using SVG or a shape definition.","keywords":"clippath","stats":"E: 106!pa., FF: 54+, GC: 110!pa., S: 16.2!pa."},{"name":"css-color-adjust","title":"CSS print-color-adjust","url":"https://caniuse.com/#feat=css-color-adjust","description":"The `print-color-adjust` (or `-webkit-print-color-adjust` as prefixed in WebKit/Blink browsers) property is a CSS extension that can be used to force printing of background colors and images.","keywords":"color-adjust,print-color-adjust,color adjust,print color adjust,coloradjust,printcoloradjust","stats":"E: 106-px-, FF: 48+, GC: 110-px-, S: 16.2-px-"},{"name":"css-color-function","title":"CSS color() function","url":"https://caniuse.com/#feat=css-color-function","description":"The CSS `color()` function allows the browser to display colors in any color space, such as the P3 color space which can display colors outside of the default sRGB color space.","keywords":"color(),Display-P3,A98-RGB,ProPhoto-RGB,REC-2020,Device-Dependent Colors,Profiled Colors,@color-profile,color space","stats":"S: 15+"},{"name":"css-conic-gradients","title":"CSS Conical Gradients","url":"https://caniuse.com/#feat=css-conic-gradients","description":"Method of defining a conical or repeating conical color gradient as a CSS image.","keywords":"conical-gradient,repeating-conical-gradient,gradient,conical","stats":"E: 79+, FF: 83+, GC: 69+, S: 12.1+"},{"name":"css-container-queries","title":"CSS Container Queries (Size)","url":"https://caniuse.com/#feat=css-container-queries","description":"Size queries in Container Queries provide a way to query the size of a container, and conditionally apply CSS to the content of that container.","keywords":"container query,@container,container-name,container-type","stats":"E: 106+, GC: 106+, S: 16.0+"},{"name":"css-container-query-units","title":"CSS Container Query Units","url":"https://caniuse.com/#feat=css-container-query-units","description":"Container Query Units specify a length relative to the dimensions of a query container. The units include: `cqw`, `cqh`, `cqi`, `cqb`, `cqmin`, and `cqmax`.","keywords":"container query","stats":"E: 105+, GC: 105+, S: 16.0+"},{"name":"css-containment","title":"CSS Containment","url":"https://caniuse.com/#feat=css-containment","description":"The CSS `contain` property lets developers limit the scope of the browser's styles, layout and paint work for faster and more efficient rendering.","keywords":"","stats":"E: 79+, FF: 69+, GC: 52+, S: 15.4+"},{"name":"css-content-visibility","title":"CSS content-visibility","url":"https://caniuse.com/#feat=css-content-visibility","description":"Provides control over when elements are rendered, so rendering can be skipped for elements not yet in the user's viewport. ","keywords":"","stats":"E: 85+, GC: 85+"},{"name":"css-counters","title":"CSS Counters","url":"https://caniuse.com/#feat=css-counters","description":"Method of controlling number values in generated content, using the `counter-reset` and `counter-increment` properties.","keywords":"","stats":"IE: 8+, E: 12+, FF: 2+, GC: 4+, S: 3.1+"},{"name":"css-crisp-edges","title":"Crisp edges/pixelated images","url":"https://caniuse.com/#feat=css-crisp-edges","description":"Scales images with an algorithm that preserves edges and contrast, without smoothing colors or introducing blur. This is intended for images such as pixel art. Official values that accomplish this for the `image-rendering` property are `crisp-edges` and `pixelated`.","keywords":"image-rendering,crisp-edges","stats":"IE: 11!pa., FF: 93+, S: 10+"},{"name":"css-cross-fade","title":"CSS Cross-Fade Function","url":"https://caniuse.com/#feat=css-cross-fade","description":"Image function to create a \"crossfade\" between images. This allows one image to transition (fade) into another based on a percentage value.","keywords":"css,image,crossfade","stats":"E: 106-px-, GC: 110-px-, S: 10+"},{"name":"css-default-pseudo","title":":default CSS pseudo-class","url":"https://caniuse.com/#feat=css-default-pseudo","description":"The `:default` pseudo-class matches checkboxes and radio buttons which are checked by default, `<option>`s with the `selected` attribute, and the default submit button (if any) of a form.","keywords":":default,default","stats":"E: 79+, FF: 4+, GC: 51+, S: 10.1+"},{"name":"css-descendant-gtgt","title":"Explicit descendant combinator >>","url":"https://caniuse.com/#feat=css-descendant-gtgt","description":"An explicit, non-whitespace spelling of the descendant combinator. `A >> B` is equivalent to `A B`.","keywords":"","stats":"S: 11+"},{"name":"css-deviceadaptation","title":"CSS Device Adaptation","url":"https://caniuse.com/#feat=css-deviceadaptation","description":"Method of overriding the size of viewport in web page using the `@viewport` rule, replacing Apple's own popular `<meta>` viewport implementation. Includes the `extend-to-zoom` width value.","keywords":"viewport,extend-to-zoom","stats":"IE: 11!pa., E: 18!pa."},{"name":"css-dir-pseudo","title":":dir() CSS pseudo-class","url":"https://caniuse.com/#feat=css-dir-pseudo","description":"Matches elements based on their directionality. `:dir(ltr)` matches elements which are Left-to-Right. `:dir(rtl)` matches elements which are Right-to-Left.","keywords":":dir,dir,direction,ltr,rtl,left,right","stats":"FF: 49+"},{"name":"css-display-contents","title":"CSS display: contents","url":"https://caniuse.com/#feat=css-display-contents","description":"`display: contents` causes an element's children to appear as if they were direct children of the element's parent, ignoring the element itself. This can be useful when a wrapper element should be ignored when using CSS grid or similar layout techniques.","keywords":"","stats":"E: 106!pa., FF: 108!pa., GC: 110!pa., S: 16.2!pa."},{"name":"css-element-function","title":"CSS element() function","url":"https://caniuse.com/#feat=css-element-function","description":"This function renders a live image generated from an arbitrary HTML element","keywords":"element, function","stats":"FF: 108-px-"},{"name":"css-env-function","title":"CSS Environment Variables env()","url":"https://caniuse.com/#feat=css-env-function","description":"Usage of environment variables like `safe-area-inset-top`.","keywords":"css env(),css constant(),css variables,safe-area-inset-top,safe-area-inset-right,safe-area-inset-bottom,safe-area-inset-left","stats":"E: 79+, FF: 65+, GC: 69+, S: 11.1+"},{"name":"css-exclusions","title":"CSS Exclusions Level 1","url":"https://caniuse.com/#feat=css-exclusions","description":"Exclusions defines how inline content flows around elements. It extends the content wrapping ability of floats to any block-level element.","keywords":"floats,exclusions,wrap-flow,wrap-through","stats":"IE: 11-px-, E: 18-px-"},{"name":"css-featurequeries","title":"CSS Feature Queries","url":"https://caniuse.com/#feat=css-featurequeries","description":"CSS Feature Queries allow authors to condition rules based on whether particular property declarations are supported in CSS using the @supports at rule.","keywords":"supports,conditional","stats":"E: 12+, FF: 22+, GC: 28+, S: 9+"},{"name":"css-filter-function","title":"CSS filter() function","url":"https://caniuse.com/#feat=css-filter-function","description":"This function filters a CSS input image with a set of filter functions (like blur, grayscale or hue)","keywords":"filter, function","stats":"S: 9.1+"},{"name":"css-filters","title":"CSS Filter Effects","url":"https://caniuse.com/#feat=css-filters","description":"Method of applying filter effects using the `filter` property to elements, matching filters available in SVG. Filter functions include blur, brightness, contrast, drop-shadow, grayscale, hue-rotate, invert, opacity, sepia and saturate.","keywords":"filter:","stats":"E: 79+, FF: 35+, GC: 53+, S: 9.1+"},{"name":"css-first-letter","title":"::first-letter CSS pseudo-element selector","url":"https://caniuse.com/#feat=css-first-letter","description":"CSS pseudo-element that allows styling only the first \"letter\" of text within an element. Useful for implementing initial caps or drop caps styling.","keywords":"first,letter,pseudo,element,class,selector","stats":"IE: 9+, E: 12+, FF: 3.5+, GC: 9+, S: 5.1+"},{"name":"css-first-line","title":"CSS first-line pseudo-element","url":"https://caniuse.com/#feat=css-first-line","description":"Allows styling specifically for the first line of text using the `::first-line` pseudo-element. Note that only a limited set of properties can be applied.","keywords":"","stats":"IE: 9+, E: 12+, FF: 2+, GC: 4+, S: 3.1+"},{"name":"css-fixed","title":"CSS position:fixed","url":"https://caniuse.com/#feat=css-fixed","description":"Method of keeping an element in a fixed location regardless of scroll position","keywords":"","stats":"IE: 7+, E: 12+, FF: 2+, GC: 4+, S: 3.1+"},{"name":"css-focus-visible","title":":focus-visible CSS pseudo-class","url":"https://caniuse.com/#feat=css-focus-visible","description":"The `:focus-visible` pseudo-class applies while an element matches the `:focus` pseudo-class, and the UA determines via heuristics that the focus should be specially indicated on the element (typically via a Òfocus ringÓ).","keywords":"focus,ring,focusring,focus-ring,visible,focus-visible,pseudo","stats":"E: 86+, FF: 85+, GC: 86+, S: 15.4+"},{"name":"css-focus-within","title":":focus-within CSS pseudo-class","url":"https://caniuse.com/#feat=css-focus-within","description":"The `:focus-within` pseudo-class matches elements that either themselves match `:focus` or that have descendants which match `:focus`.","keywords":"focus,within,focus-within,pseudo","stats":"E: 79+, FF: 52+, GC: 60+, S: 10.1+"},{"name":"css-font-palette","title":"CSS font-palette","url":"https://caniuse.com/#feat=css-font-palette","description":"The font-palette CSS property allows selecting a palette from a color font. In combination with the `@font-palette-values` at-rule, custom palettes can be defined.","keywords":"font-palette,palette,color,colr,cpal,color-font,fontface,webfonts","stats":"E: 105+, GC: 101+, S: 15.4+"},{"name":"css-font-rendering-controls","title":"CSS font-display","url":"https://caniuse.com/#feat=css-font-rendering-controls","description":"`@font-face` descriptor `font-display` that allows control over how a downloadable font renders before it is fully loaded.","keywords":"swap,fallback,optional,block,font-display","stats":"E: 79+, FF: 58+, GC: 60+, S: 11.1+"},{"name":"css-font-stretch","title":"CSS font-stretch","url":"https://caniuse.com/#feat=css-font-stretch","description":"If a font has multiple types of variations based on the width of characters, the `font-stretch` property allows the appropriate one to be selected. The property in itself does not cause the browser to stretch to a font.","keywords":"font stretch","stats":"IE: 9+, E: 12+, FF: 9+, GC: 48+, S: 11+"},{"name":"css-gencontent","title":"CSS Generated content for pseudo-elements","url":"https://caniuse.com/#feat=css-gencontent","description":"Method of displaying text or images before or after the given element's contents using the ::before and ::after pseudo-elements. All browsers with support also support the `attr()` notation in the `content` property. ","keywords":"before,after","stats":"IE: 9+, E: 12+, FF: 2+, GC: 4+, S: 3.1+"},{"name":"css-gradients","title":"CSS Gradients","url":"https://caniuse.com/#feat=css-gradients","description":"Method of defining a linear or radial color gradient as a CSS image.","keywords":"linear,linear-gradient,gradiant","stats":"IE: 10+, E: 12+, FF: 36+, GC: 26+, S: 15.4+"},{"name":"css-grid","title":"CSS Grid Layout (level 1)","url":"https://caniuse.com/#feat=css-grid","description":"Method of using a grid concept to lay out content, providing a mechanism for authors to divide available space for layout into columns and rows using a set of predictable sizing behaviors. Includes support for all `grid-*` properties and the `fr` unit.","keywords":"grids,grid-row,grid-column,grid-template,display:grid,displaygrid,inline-grid,fr unit,fractional unit,cssgrid,justify-content:space-between,justify-content:space-around,align-content:space-between,align-content:space-around,space-between","stats":"IE: 11!pa., E: 16+, FF: 54+, GC: 58+, S: 10.1+"},{"name":"css-hanging-punctuation","title":"CSS hanging-punctuation","url":"https://caniuse.com/#feat=css-hanging-punctuation","description":"Allows some punctuation characters from start (or the end) of text elements to be placed \"outside\" of the box in order to preserve the reading flow.","keywords":"hanging punctuation,force-end,allow-end","stats":"S: 10+"},{"name":"css-has","title":":has() CSS relational pseudo-class","url":"https://caniuse.com/#feat=css-has","description":"Select elements containing specific content. For example, `a:has(img)` selects all `<a>` elements that contain an `<img>` child.","keywords":"children,parent,selector","stats":"E: 105+, GC: 105+, S: 15.4+"},{"name":"css-hyphens","title":"CSS Hyphenation","url":"https://caniuse.com/#feat=css-hyphens","description":"Method of controlling when words at the end of lines should be hyphenated using the \"hyphens\" property.","keywords":"hyphen,shy","stats":"IE: 11-px-, E: 105+, FF: 43+, GC: 88+, S: 16.2-px-"},{"name":"css-image-orientation","title":"CSS3 image-orientation","url":"https://caniuse.com/#feat=css-image-orientation","description":"CSS property used generally to fix the intended orientation of an image. This can be done using 90 degree increments or based on the image's EXIF data using the \"from-image\" value.","keywords":"image-orientation,from-image,flip","stats":"E: 89+, FF: 26+, GC: 89+, S: 13.1+"},{"name":"css-image-set","title":"CSS image-set","url":"https://caniuse.com/#feat=css-image-set","description":"Method of letting the browser pick the most appropriate CSS image from a given set.","keywords":"","stats":"E: 106!pa., FF: 88!pa., GC: 110!pa., S: 16.2!pa."},{"name":"css-in-out-of-range","title":":in-range and :out-of-range CSS pseudo-classes","url":"https://caniuse.com/#feat=css-in-out-of-range","description":"If a temporal or number `<input>` has `max` and/or `min` attributes, then `:in-range` matches when the value is within the specified range and `:out-of-range` matches when the value is outside the specified range. If there are no range constraints, then neither pseudo-class matches.","keywords":"in,out,of,range,:in-range,:out-of-range","stats":"E: 79+, FF: 50+, GC: 53+, S: 10.1+"},{"name":"css-indeterminate-pseudo","title":":indeterminate CSS pseudo-class","url":"https://caniuse.com/#feat=css-indeterminate-pseudo","description":"The `:indeterminate` pseudo-class matches indeterminate checkboxes, indeterminate `<progress>` bars, and radio buttons with no checked button in their radio button group.","keywords":":indeterminate,indeterminate","stats":"IE: 11!pa., E: 79+, FF: 51+, GC: 39+, S: 10.1+"},{"name":"css-initial-letter","title":"CSS Initial Letter","url":"https://caniuse.com/#feat=css-initial-letter","description":"Method of creating an enlarged cap, including a drop or raised cap, in a robust way.","keywords":"initial-letter,initial letter,letter,drop cap,dropcap","stats":"S: 16.2!pa."},{"name":"css-initial-value","title":"CSS initial value","url":"https://caniuse.com/#feat=css-initial-value","description":"A CSS value that will apply a property's initial value as defined in the CSS specification that defines the property","keywords":"CSS,initial,value","stats":"E: 12+, FF: 19+, GC: 4+, S: 3.2+"},{"name":"css-lch-lab","title":"LCH and Lab color values","url":"https://caniuse.com/#feat=css-lch-lab","description":"The `lch()` and `lab()` color functions are based on the CIE LAB color space, representing colors in a way that closely matches human perception and provides access to a wider spectrum of colors than offered by the usual RGB color space.","keywords":"lch,lab,lch(),lab(),cielab,L*a*b*","stats":"S: 15+"},{"name":"css-letter-spacing","title":"letter-spacing CSS property","url":"https://caniuse.com/#feat=css-letter-spacing","description":"Controls spacing between characters of text (i.e. \"tracking\" in typographical terms). Not to be confused with kerning.","keywords":"CSS,letter,spacing,tracking","stats":"IE: 9+, E: 12+, FF: 2+, GC: 30+, S: 6.1+"},{"name":"css-line-clamp","title":"CSS line-clamp","url":"https://caniuse.com/#feat=css-line-clamp","description":"CSS property that will contain text to a given amount of lines when used in combination with `display: -webkit-box`. It will end with ellipsis when `text-overflow: ellipsis` is included.","keywords":"","stats":"E: 106-px-, FF: 108-px-, GC: 110-px-, S: 16.2-px-"},{"name":"css-logical-props","title":"CSS Logical Properties","url":"https://caniuse.com/#feat=css-logical-props","description":"Logical properties and values provide control of layout through logical, rather than physical, direction and dimension mappings. These properties are `writing-mode` relative equivalents of their corresponding physical properties.","keywords":"block-size,border-block,border-block-color,border-block-end,border-block-end-color,border-block-end-style,border-block-end-width,border-block-start,border-block-start-color,border-block-start-style,border-block-start-width,border-block-style,border-block-width,border-end-end-radius,border-end-start-radius,border-inline,border-inline-color,border-inline-end,border-inline-end-color,border-inline-end-style,border-inline-end-width,border-inline-start,border-inline-start-color,border-inline-start-style,border-inline-start-width,border-inline-style,border-inline-width,border-start-end-radius,border-start-start-radius,inline-size,inset,inset-block,inset-block-end,inset-block-start,inset-inline,inset-inline-end,inset-inline-start,margin-block,margin-block-end,margin-block-start,margin-inline,margin-inline-end,margin-inline-start,max-block-size,max-inline-size,min-block-size,min-inline-size,padding-block,padding-block-end,padding-block-start,padding-inline,padding-inline-end,padding-inline-start,recto,verso","stats":"E: 89+, FF: 66+, GC: 89+, S: 15+"},{"name":"css-marker-pseudo","title":"CSS ::marker pseudo-element","url":"https://caniuse.com/#feat=css-marker-pseudo","description":"The `::marker` pseudo-element allows list item markers to be styled or have their content value customized.","keywords":"","stats":"E: 86+, FF: 68+, GC: 86+"},{"name":"css-masks","title":"CSS Masks","url":"https://caniuse.com/#feat=css-masks","description":"Method of displaying part of an element, using a selected image as a mask","keywords":"clip,clip-path,clip-rule,mask,mask-border,mask-clip,mask-image,mask-mode,mask-type,css masking","stats":"E: 106!pa., FF: 53+, GC: 110!pa., S: 15.4+"},{"name":"css-matches-pseudo","title":":is() CSS pseudo-class","url":"https://caniuse.com/#feat=css-matches-pseudo","description":"The `:is()` (formerly `:matches()`, formerly `:any()`) pseudo-class checks whether the element at its position in the outer selector matches any of the selectors in its selector list. It's useful syntactic sugar that allows you to avoid writing out all the combinations manually as separate selectors. The effect is similar to nesting in Sass and most other CSS preprocessors.","keywords":":is,is,:matches,matches,:any,any,:-moz-any,-moz-any,:-webkit-any,-webkit-any","stats":"E: 88+, FF: 78+, GC: 88+, S: 14+"},{"name":"css-math-functions","title":"CSS math functions min(), max() and clamp()","url":"https://caniuse.com/#feat=css-math-functions","description":"More advanced mathematical expressions in addition to `calc()`","keywords":"min,min(),max,max(),clamp,clamp()","stats":"E: 79+, FF: 75+, GC: 79+, S: 13.1+"},{"name":"css-media-interaction","title":"Media Queries: interaction media features","url":"https://caniuse.com/#feat=css-media-interaction","description":"Allows a media query to be set based on the presence and accuracy of the user's pointing device, and whether they have the ability to hover over elements on the page. This includes the `pointer`, `any-pointer`, `hover`, and `any-hover` media features.","keywords":"@media,interaction,hover,any-hover,css pointer,any-pointer,pointer:coarse,pointer:fine","stats":"E: 12+, FF: 64+, GC: 41+, S: 9+"},{"name":"css-media-range-syntax","title":"Media Queries: Range Syntax","url":"https://caniuse.com/#feat=css-media-range-syntax","description":"Syntax improvements to make media queries using features that have a \"range\" type (like width or height) less verbose. Can be used with ordinary mathematical comparison operators: `>`, `<`, `>=`, or `<=`.\r\n\r\nFor example: `@media (100px <= width <= 1900px)` is the equivalent of `@media (min-width: 100px) and (max-width: 1900px`)`","keywords":"@media,media queries,range,range syntax,range context","stats":"E: 104+, FF: 63+, GC: 104+"},{"name":"css-media-resolution","title":"Media Queries: resolution feature","url":"https://caniuse.com/#feat=css-media-resolution","description":"Allows a media query to be set based on the device pixels used per CSS unit. While the standard uses `min`/`max-resolution` for this, some browsers support the older non-standard `device-pixel-ratio` media query.","keywords":"@media,device-pixel-ratio,resolution,dppx,dpcm,dpi","stats":"IE: 11!pa., E: 79+, FF: 62+, GC: 68+, S: 16.0+"},{"name":"css-mediaqueries","title":"CSS3 Media Queries","url":"https://caniuse.com/#feat=css-mediaqueries","description":"Method of applying styles based on media information. Includes things like page and device dimensions","keywords":"@media","stats":"IE: 8w/pl, E: 12+, FF: 3.5+, GC: 26+, S: 6.1+"},{"name":"css-mixblendmode","title":"Blending of HTML/SVG elements","url":"https://caniuse.com/#feat=css-mixblendmode","description":"Allows blending between arbitrary SVG and HTML elements","keywords":"mix-blend-mode,css blend modes,css blending modes","stats":"E: 79+, FF: 32+, GC: 41+, S: 16.2!pa."},{"name":"css-motion-paths","title":"CSS Motion Path","url":"https://caniuse.com/#feat=css-motion-paths","description":"Allows elements to be animated along SVG paths or shapes via the `offset-path` property. Originally defined as the `motion-path` property.","keywords":"offset-position,offset-distance,offset-rotate","stats":"E: 79+, FF: 72+, GC: 46+, S: 16.0+"},{"name":"css-namespaces","title":"CSS namespaces","url":"https://caniuse.com/#feat=css-namespaces","description":"Using the `@namespace` at-rule, elements of other namespaces (e.g. SVG) can be targeted using the pipe (`|`) selector.","keywords":"","stats":"IE: 9+, E: 12+, FF: 2+, GC: 4+, S: 4+"},{"name":"css-nesting","title":"CSS Nesting","url":"https://caniuse.com/#feat=css-nesting","description":"CSS nesting provides the ability to nest one style rule inside another, with the selector of the child rule relative to the selector of the parent rule. Similar behavior previously required a CSS pre-processor.","keywords":"&,@nest,nested css","stats":""},{"name":"css-not-sel-list","title":"selector list argument of :not()","url":"https://caniuse.com/#feat=css-not-sel-list","description":"Selectors Level 3 only allowed `:not()` pseudo-class to accept a single simple selector, which the element must not match any of. Thus, `:not(a, .b, [c])` or `:not(a.b[c])` did not work. Selectors Level 4 allows `:not()` to accept a list of selectors. Thus, `:not(a):not(.b):not([c])` can instead be written as `:not(a, .b, [c])` and `:not(a.b[c])` works as intended.","keywords":"negation,not,pseudo,selector,selectors,list,multiple,argument,level,4","stats":"E: 88+, FF: 84+, GC: 88+, S: 9+"},{"name":"css-nth-child-of","title":"selector list argument of :nth-child and :nth-last-child CSS pseudo-classes","url":"https://caniuse.com/#feat=css-nth-child-of","description":"The newest versions of `:nth-child()` and `:nth-last-child()` accept an optional `of S` clause which filters the children to only those which match the selector list `S`. For example, `:nth-child(1 of .foo)` selects the first child among the children that have the `foo` class (ignoring any non-`foo` children which precede that child). Similar to `:nth-of-type`, but for arbitrary selectors instead of only type selectors.","keywords":"nth-child,nth-last-child,nth,child,an,b,of,s,sel,selector,list","stats":"S: 9+"},{"name":"css-opacity","title":"CSS3 Opacity","url":"https://caniuse.com/#feat=css-opacity","description":"Method of setting the transparency level of an element","keywords":"transparent,transparency,alpha","stats":"IE: 9+, E: 12+, FF: 2+, GC: 4+, S: 3.1+"},{"name":"css-optional-pseudo","title":":optional CSS pseudo-class","url":"https://caniuse.com/#feat=css-optional-pseudo","description":"The `:optional` pseudo-class matches form inputs (`<input>`, `<textarea>`, `<select>`) which are not `:required`.","keywords":":optional,optional,:required,required","stats":"IE: 10+, E: 12+, FF: 4+, GC: 15+, S: 5+"},{"name":"css-overflow","title":"CSS overflow property","url":"https://caniuse.com/#feat=css-overflow","description":"Originally a single property for controlling overflowing content in both horizontal & vertical directions, the `overflow` property is now a shorthand for `overflow-x` & `overflow-y`. The latest version of the specification also introduces the `clip` value that blocks programmatic scrolling.","keywords":"overflow:hidden,overflow:scroll,overflow:clip","stats":"IE: 11!pa., E: 90+, FF: 81+, GC: 90+, S: 16.0+"},{"name":"css-overflow-anchor","title":"CSS overflow-anchor (Scroll Anchoring)","url":"https://caniuse.com/#feat=css-overflow-anchor","description":"Changes in DOM elements above the visible region of a scrolling box can result in the page moving while the user is in the middle of consuming the content.\r\nBy default, the value of `overflow-anchor` is `auto`, it can mitigate this jarring user experience by keeping track of the position of an anchor node and adjusting the scroll offset accordingly","keywords":"overflow-anchor,scroll anchoring","stats":"E: 79+, FF: 66+, GC: 56+"},{"name":"css-overflow-overlay","title":"CSS overflow: overlay","url":"https://caniuse.com/#feat=css-overflow-overlay","description":"The `overlay` value of the `overflow` CSS property is a non-standard value to make scrollbars appear on top of content rather than take up space. This value is deprecated and related functionality being standardized as [the `scrollbar-gutter` property](mdn-css_properties_scrollbar-gutter).","keywords":"","stats":"E: 79+, GC: 15+, S: 4+"},{"name":"css-overscroll-behavior","title":"CSS overscroll-behavior","url":"https://caniuse.com/#feat=css-overscroll-behavior","description":"CSS property to control the behavior when the scroll position of a scroll container reaches the edge of the scrollport.","keywords":"scroll-boundary-behavior,overscroll-behavior-x,overscroll-behavior-y,-ms-scroll-chaining","stats":"IE: 11!pa., E: 79+, FF: 59+, GC: 65+, S: 16.0+"},{"name":"css-page-break","title":"CSS page-break properties","url":"https://caniuse.com/#feat=css-page-break","description":"Properties to control the way elements are broken across (printed) pages.","keywords":"page-break-before,page-break-after,page-break-inside,always,avoid","stats":"IE: 11!pa., E: 106!pa., FF: 108!pa., GC: 110!pa., S: 16.2!pa."},{"name":"css-paged-media","title":"CSS Paged Media (@page)","url":"https://caniuse.com/#feat=css-paged-media","description":"CSS at-rule (`@page`) to define page-specific rules when printing web pages, such as margin per page and page dimensions.","keywords":"","stats":"IE: 11!pa., E: 79+, FF: 108!pa., GC: 15+"},{"name":"css-paint-api","title":"CSS Paint API","url":"https://caniuse.com/#feat=css-paint-api","description":"Allows programmatic generation of images used by CSS","keywords":"houdini","stats":"E: 79+, GC: 65+"},{"name":"css-placeholder","title":"::placeholder CSS pseudo-element","url":"https://caniuse.com/#feat=css-placeholder","description":"The ::placeholder pseudo-element represents placeholder text in an input field: text that represents the input and provides a hint to the user on how to fill out the form. For example, a date-input field might have the placeholder text `YYYY-MM-DD` to clarify that numeric dates are to be entered in year-month-day order.","keywords":"::placeholder,placeholder","stats":"E: 79+, FF: 51+, GC: 57+, S: 10.1+"},{"name":"css-placeholder-shown","title":":placeholder-shown CSS pseudo-class","url":"https://caniuse.com/#feat=css-placeholder-shown","description":"Input elements can sometimes show placeholder text as a hint to the user on what to type in. See, for example, the placeholder attribute in HTML5. The :placeholder-shown pseudo-class matches an input element that is showing such placeholder text.","keywords":":placeholder-shown,placeholder-shown,placeholder","stats":"IE: 11!pa., E: 79+, FF: 51+, GC: 47+, S: 9+"},{"name":"css-read-only-write","title":"CSS :read-only and :read-write selectors","url":"https://caniuse.com/#feat=css-read-only-write","description":":read-only and :read-write pseudo-classes to match elements which are considered user-alterable","keywords":"css,selector,read-only,read-write","stats":"E: 13+, FF: 78+, GC: 36+, S: 9+"},{"name":"css-rebeccapurple","title":"Rebeccapurple color","url":"https://caniuse.com/#feat=css-rebeccapurple","description":"The new color added in CSS Color Module Level 4","keywords":"rebeccapurple,beccapurple","stats":"IE: 11!pa., E: 12+, FF: 33+, GC: 38+, S: 7+"},{"name":"css-reflections","title":"CSS Reflections","url":"https://caniuse.com/#feat=css-reflections","description":"Method of displaying a reflection of an element","keywords":"box-reflect","stats":"E: 106-px-, GC: 110-px-, S: 16.2-px-"},{"name":"css-regions","title":"CSS Regions","url":"https://caniuse.com/#feat=css-regions","description":"Method of flowing content into multiple elements, allowing magazine-like layouts. While once supported in WebKit-based browsers and Internet Explorer, implementing the feature is no longer being pursued by any browser.","keywords":"","stats":"IE: 11!pa., E: 18!pa., GC: 18!pa., S: 11-px-"},{"name":"css-repeating-gradients","title":"CSS Repeating Gradients","url":"https://caniuse.com/#feat=css-repeating-gradients","description":"Method of defining a repeating linear or radial color gradient as a CSS image.","keywords":"repeating-linear-gradient,repeating-radial-gradient","stats":"IE: 10+, E: 12+, FF: 16+, GC: 26+, S: 6.1+"},{"name":"css-resize","title":"CSS resize property","url":"https://caniuse.com/#feat=css-resize","description":"Method of allowing an element to be resized by the user, with options to limit to a given direction. ","keywords":"horizontal,vertical","stats":"E: 79+, FF: 5+, GC: 4+, S: 4+"},{"name":"css-revert-value","title":"CSS revert value","url":"https://caniuse.com/#feat=css-revert-value","description":"A CSS keyword value that resets a property's value to the default specified by the browser in its UA stylesheet, as if the webpage had not included any CSS. For example, `display:revert` on a `<div>` would result in `display:block`. This is in contrast to the `initial` value, which is simply defined on a per-property basis, and for `display` would be `inline`.","keywords":"CSS,reset,value","stats":"E: 84+, FF: 67+, GC: 84+, S: 9.1+"},{"name":"css-rrggbbaa","title":"#rrggbbaa hex color notation","url":"https://caniuse.com/#feat=css-rrggbbaa","description":"The CSS Color Module Level 4 defines new 4 & 8 character hex notation for color to include the opacity level.","keywords":"rgba, rrggbbaa, color","stats":"E: 79+, FF: 49+, GC: 62+, S: 10+"},{"name":"css-scroll-behavior","title":"CSS Scroll-behavior","url":"https://caniuse.com/#feat=css-scroll-behavior","description":"Method of specifying the scrolling behavior for a scrolling box, when scrolling happens due to navigation or CSSOM scrolling APIs.","keywords":"smooth,scroll,cssom,scroll-behavior,smoothscroll","stats":"FF: 36+, S: 15.4+"},{"name":"css-scroll-timeline","title":"CSS @scroll-timeline","url":"https://caniuse.com/#feat=css-scroll-timeline","description":"CSS property that allows animations to be driven by a container's scroll position","keywords":"@scroll-timeline,animation-timeline","stats":""},{"name":"css-scrollbar","title":"CSS scrollbar styling","url":"https://caniuse.com/#feat=css-scrollbar","description":"Methods of styling scrollbars' color and width.","keywords":"scrollbar-button,scrollbar-track,scrollbar-thumb,scrollbar-base-color,scrollbar-face-color,scrollbar-color,scrollbar-width","stats":"IE: 11!pa., E: 106!pa., FF: 108!pa., GC: 110!pa., S: 16.2!pa."},{"name":"css-sel2","title":"CSS 2.1 selectors","url":"https://caniuse.com/#feat=css-sel2","description":"Basic CSS selectors including: `*` (universal selector), `>` (child selector), `:first-child`, `:link`, `:visited`, `:active`, `:hover`, `:focus`, `:lang()`, `+` (adjacent sibling selector), `[attr]`, `[attr=\"val\"]`, `[attr~=\"val\"]`, `[attr|=\"bar\"]`, `.foo` (class selector), `#foo` (id selector)","keywords":"attribute selector","stats":"IE: 7+, E: 12+, FF: 2+, GC: 4+, S: 3.1+"},{"name":"css-sel3","title":"CSS3 selectors","url":"https://caniuse.com/#feat=css-sel3","description":"Advanced element selection using selectors including: `[foo^=\"bar\"]`, `[foo$=\"bar\"]`, `[foo*=\"bar\"]`, `:root`, `:nth-child()`, `:nth-last-child()`, `:nth-of-type()`, `:nth-last-of-type()`, `:last-child`, `:first-of-type`, `:last-of-type`, `:only-child`, `:only-of-type`, `:empty`, `:target`, `:enabled`, `:disabled`, `:checked`, `:not()`, `~` (general sibling)","keywords":"","stats":"IE: 9+, E: 12+, FF: 3.5+, GC: 4+, S: 3.2+"},{"name":"css-selection","title":"::selection CSS pseudo-element","url":"https://caniuse.com/#feat=css-selection","description":"The ::selection CSS pseudo-element applies rules to the portion of a document that has been highlighted (e.g., selected with the mouse or another pointing device) by the user.","keywords":"::selection,selection","stats":"IE: 9+, E: 12+, FF: 62+, GC: 4+, S: 3.1+"},{"name":"css-shapes","title":"CSS Shapes Level 1","url":"https://caniuse.com/#feat=css-shapes","description":"Allows geometric shapes to be set in CSS to define an area for text to flow around. Includes properties `shape-outside`, `shape-margin` and `shape-image-threshold`","keywords":"circle,ellipse,polygon,inset,shape-outside,shape-margin,shape-image-threshold","stats":"E: 79+, FF: 62+, GC: 37+, S: 10.1+"},{"name":"css-snappoints","title":"CSS Scroll Snap","url":"https://caniuse.com/#feat=css-snappoints","description":"CSS technique that allows customizable scrolling experiences like pagination of carousels by setting defined snap positions.","keywords":"scroll-margin,scroll-snap-points-x,scroll-snap-points-y,scroll-snap-type,scroll-snap-destination,scroll-snap-coordinate,scroll-snap-margin,scroll-snap-align,scroll-snap-stop","stats":"IE: 11!pa., E: 79+, FF: 68+, GC: 69+, S: 11+"},{"name":"css-sticky","title":"CSS position:sticky","url":"https://caniuse.com/#feat=css-sticky","description":"Keeps elements positioned as \"fixed\" or \"relative\" depending on how it appears in the viewport. As a result the element is \"stuck\" when necessary while scrolling.","keywords":"","stats":"E: 91+, FF: 59+, GC: 91+, S: 13+"},{"name":"css-subgrid","title":"CSS Subgrid","url":"https://caniuse.com/#feat=css-subgrid","description":"Feature of the CSS Grid Layout Module Level 2 that allows a grid-item with its own grid to align in one or both dimensions with its parent grid.","keywords":"grid-template-columns:subgrid,grid-template-rows:subgrid","stats":"FF: 71+, S: 16.0+"},{"name":"css-supports-api","title":"CSS.supports() API","url":"https://caniuse.com/#feat=css-supports-api","description":"The CSS.supports() static methods returns a Boolean value indicating if the browser supports a given CSS feature, or not.","keywords":"conditional","stats":"E: 79+, FF: 55+, GC: 61+, S: 9+"},{"name":"css-table","title":"CSS Table display","url":"https://caniuse.com/#feat=css-table","description":"Method of displaying elements as tables, rows, and cells. Includes support for all `display: table-*` properties as well as `display: inline-table`","keywords":"display:table,table-cell,table-row,table-layout","stats":"IE: 8+, E: 12+, FF: 3+, GC: 4+, S: 3.1+"},{"name":"css-text-align-last","title":"CSS3 text-align-last","url":"https://caniuse.com/#feat=css-text-align-last","description":"CSS property to describe how the last line of a block or a line right before a forced line break when `text-align` is `justify`.","keywords":"text align last","stats":"IE: 11!pa., E: 79+, FF: 49+, GC: 47+, S: 16.0+"},{"name":"css-text-indent","title":"CSS text-indent","url":"https://caniuse.com/#feat=css-text-indent","description":"The `text-indent` property applies indentation to lines of inline content in a block.","keywords":"each-line,hanging","stats":"IE: 11!pa., E: 106!pa., FF: 108!pa., GC: 110!pa., S: 16.0+"},{"name":"css-text-justify","title":"CSS text-justify","url":"https://caniuse.com/#feat=css-text-justify","description":"CSS property to define how text should be justified when `text-align: justify` is set.","keywords":"","stats":"IE: 11!pa., E: 18!pa."},{"name":"css-text-orientation","title":"CSS text-orientation","url":"https://caniuse.com/#feat=css-text-orientation","description":"The CSS `text-orientation` property specifies the orientation of text within a line. Current values only have an effect in vertical typographic modes (defined with the `writing-mode` property)","keywords":"","stats":"E: 79+, FF: 41+, GC: 48+, S: 14+"},{"name":"css-textshadow","title":"CSS3 Text-shadow","url":"https://caniuse.com/#feat=css-textshadow","description":"Method of applying one or more shadow or blur effects to text","keywords":"text shadow","stats":"E: 79+, FF: 3.5+, GC: 4+, S: 4+"},{"name":"css-touch-action","title":"CSS touch-action property","url":"https://caniuse.com/#feat=css-touch-action","description":"touch-action is a CSS property that controls filtering of gesture events, providing developers with a declarative mechanism to selectively disable touch scrolling (in one or both axes) or double-tap-zooming.","keywords":"touch action","stats":"IE: 11+, E: 12+, FF: 57+, GC: 36+"},{"name":"css-transitions","title":"CSS3 Transitions","url":"https://caniuse.com/#feat=css-transitions","description":"Simple method of animating certain properties of an element, with ability to define property, duration, delay and timing function. ","keywords":"css transition,transitionend,transition-property,transition-duration,transition-timing-function,transition-delay,steps,step-start,step-end,cubic-bezier","stats":"IE: 10+, E: 12+, FF: 16+, GC: 26+, S: 6.1+"},{"name":"css-unset-value","title":"CSS unset value","url":"https://caniuse.com/#feat=css-unset-value","description":"A CSS value that's the same as \"inherit\" if a property is inherited or \"initial\" if a property is not inherited.","keywords":"CSS,unset,value","stats":"E: 13+, FF: 27+, GC: 41+, S: 9.1+"},{"name":"css-variables","title":"CSS Variables (Custom Properties)","url":"https://caniuse.com/#feat=css-variables","description":"Permits the declaration and usage of cascading variables in stylesheets.","keywords":"css variables,cssvariables,vars,custom properties,var(),--var","stats":"E: 16+, FF: 31+, GC: 49+, S: 10+"},{"name":"css-when-else","title":"CSS @when / @else conditional rules","url":"https://caniuse.com/#feat=css-when-else","description":"Syntax allowing CSS conditions (like media and support queries) to be written more simply, as well as making it possibly to write mutually exclusive rules using `@else` statements.","keywords":"","stats":""},{"name":"css-widows-orphans","title":"CSS widows & orphans","url":"https://caniuse.com/#feat=css-widows-orphans","description":"CSS properties to control when lines break across pages or columns by defining the amount of lines that must be left before or after the break.","keywords":"","stats":"IE: 10+, E: 12+, GC: 25+, S: 7+"},{"name":"css-writing-mode","title":"CSS writing-mode property","url":"https://caniuse.com/#feat=css-writing-mode","description":"Property to define whether lines of text are laid out horizontally or vertically and the direction in which blocks progress.","keywords":"css,writing,direction,i18n,vertical,ltr,rtl","stats":"IE: 11!pa., E: 12+, FF: 41+, GC: 48+, S: 11+"},{"name":"css-zoom","title":"CSS zoom","url":"https://caniuse.com/#feat=css-zoom","description":"Non-standard method of scaling content.","keywords":"-ms-zoom,transform,-moz-transform,-ms-transform,-webkit-transform,-o-transform,scale,css-transforms","stats":"IE: 5.5+, E: 12+, GC: 4+, S: 4+"},{"name":"css3-attr","title":"CSS3 attr() function for all properties","url":"https://caniuse.com/#feat=css3-attr","description":"While `attr()` is supported for effectively all browsers for the `content` property, CSS Values and Units Level 5 adds the ability to use `attr()` on **any** CSS property, and to use it for non-string values (e.g. numbers, colors).","keywords":"attr,attribute,function","stats":""},{"name":"css3-boxsizing","title":"CSS3 Box-sizing","url":"https://caniuse.com/#feat=css3-boxsizing","description":"Method of specifying whether or not an element's borders and padding should be included in size units","keywords":"border-box,content-box","stats":"IE: 8+, E: 12+, FF: 29+, GC: 10+, S: 5.1+"},{"name":"css3-colors","title":"CSS3 Colors","url":"https://caniuse.com/#feat=css3-colors","description":"Method of describing colors using Hue, Saturation and Lightness (hsl()) rather than just RGB, as well as allowing alpha-transparency with rgba() and hsla().","keywords":"rgb,hsl,rgba,hsla","stats":"IE: 9+, E: 12+, FF: 3+, GC: 4+, S: 3.1+"},{"name":"css3-cursors","title":"CSS3 Cursors (original values)","url":"https://caniuse.com/#feat=css3-cursors","description":"CSS3 cursor values added in the 2004 spec, including none, context-menu, cell, vertical-text, alias, copy, no-drop, not-allowed, nesw-resize, nwse-resize, col-resize, row-resize and all-scroll. ","keywords":"cursors, pointers","stats":"IE: 9+, E: 14+, FF: 4+, GC: 5+, S: 5+"},{"name":"css3-cursors-grab","title":"CSS grab & grabbing cursors","url":"https://caniuse.com/#feat=css3-cursors-grab","description":"Support for the `grab` & `grabbing` values for the `cursor` property. Used to indicate that something can be grabbed (dragged to be moved).","keywords":"","stats":"E: 15+, FF: 27+, GC: 68+, S: 11+"},{"name":"css3-cursors-newer","title":"CSS3 Cursors: zoom-in & zoom-out","url":"https://caniuse.com/#feat=css3-cursors-newer","description":"Support for `zoom-in`, `zoom-out` values for the CSS3 `cursor` property.","keywords":"cursors, pointers","stats":"E: 12+, FF: 24+, GC: 37+, S: 9+"},{"name":"css3-tabsize","title":"CSS3 tab-size","url":"https://caniuse.com/#feat=css3-tabsize","description":"Method of customizing the width of the tab character. Only effective using 'white-space: pre', 'white-space: pre-wrap', and 'white-space: break-spaces'.","keywords":"tab-size,tab-width","stats":"E: 79+, FF: 91+, GC: 42+, S: 13.1+"},{"name":"currentcolor","title":"CSS currentColor value","url":"https://caniuse.com/#feat=currentcolor","description":"A CSS value that will apply the existing `color` value to other properties like `background-color`, etc. ","keywords":"","stats":"IE: 9+, E: 12+, FF: 2+, GC: 4+, S: 4+"},{"name":"custom-elements","title":"Custom Elements (deprecated V0 spec)","url":"https://caniuse.com/#feat=custom-elements","description":"Original V0 version of the custom elements specification. See [Custom Elements V1](#feat=custom-elementsv1) for support for the latest version. ","keywords":"document.registerElement","stats":"IE: 11w/pl, E: 79+, FF: 58w/pl, GC: 33+, S: 16.2w/pl"},{"name":"custom-elementsv1","title":"Custom Elements (V1)","url":"https://caniuse.com/#feat=custom-elementsv1","description":"One of the key features of the Web Components system, custom elements allow new HTML tags to be defined.","keywords":"webcomponents,customelements","stats":"IE: 11w/pl, E: 79+, FF: 63+, GC: 67+, S: 16.2!pa."},{"name":"customevent","title":"CustomEvent","url":"https://caniuse.com/#feat=customevent","description":"A DOM event interface that can carry custom application-defined data.","keywords":"custom events,custom,event","stats":"IE: 11!pa., E: 12+, FF: 11+, GC: 15+, S: 6.1+"},{"name":"datalist","title":"Datalist element","url":"https://caniuse.com/#feat=datalist","description":"Method of setting a list of options for a user to select in a text field, while leaving the ability to enter a custom value.","keywords":"list attribute,input","stats":"IE: 11!pa., E: 79+, FF: 108!pa., GC: 69+, S: 12.1+"},{"name":"dataset","title":"dataset & data-* attributes","url":"https://caniuse.com/#feat=dataset","description":"Method of applying and accessing custom data to elements.","keywords":"DOMStringMap","stats":"IE: 11+, E: 12+, FF: 6+, GC: 45+, S: 5!pa."},{"name":"datauri","title":"Data URIs","url":"https://caniuse.com/#feat=datauri","description":"Method of embedding images and other files in webpages as a string of text, generally using base64 encoding.","keywords":"data url,datauris,data uri,dataurl,dataurls,base64","stats":"IE: 11!pa., E: 79+, FF: 2+, GC: 4+, S: 3.1+"},{"name":"date-tolocaledatestring","title":"Date.prototype.toLocaleDateString","url":"https://caniuse.com/#feat=date-tolocaledatestring","description":"Date method to generate a language sensitive representation of a given date, formatted based on a specified locale and options.","keywords":"","stats":"IE: 11!pa., E: 18+, FF: 56+, GC: 70+, S: 12+"},{"name":"declarative-shadow-dom","title":"Declarative Shadow DOM","url":"https://caniuse.com/#feat=declarative-shadow-dom","description":"Proposal to allow rendering elements with shadow dom (aka web components) using server-side rendering.","keywords":"","stats":"E: 90+, GC: 90+"},{"name":"decorators","title":"Decorators","url":"https://caniuse.com/#feat=decorators","description":"ECMAScript Decorators are an in-progress proposal for extending JavaScript classes. Decorators use a special syntax, prefixed with an `@` symbol and placed immediately before the code being extended.","keywords":"es7 decorators,JavaScript Class and Property Decorators","stats":""},{"name":"details","title":"Details & Summary elements","url":"https://caniuse.com/#feat=details","description":"The <details> element generates a simple no-JavaScript widget to show/hide element contents, optionally by clicking on its child <summary> element.","keywords":"","stats":"IE: 8w/pl, E: 79+, FF: 49+, GC: 36+, S: 12+"},{"name":"deviceorientation","title":"DeviceOrientation & DeviceMotion events","url":"https://caniuse.com/#feat=deviceorientation","description":"API for detecting orientation and motion events from the device running the browser.","keywords":"ondeviceorientation,ondevicemotion","stats":"IE: 11!pa., E: 12+, FF: 108!pa., GC: 110!pa."},{"name":"devicepixelratio","title":"Window.devicePixelRatio","url":"https://caniuse.com/#feat=devicepixelratio","description":"Read-only property that returns the ratio of the (vertical) size of one physical pixel on the current display device to the size of one CSS pixel.","keywords":"device,pixel,ratio,size","stats":"IE: 11+, E: 12+, FF: 18+, GC: 4+, S: 3.1+"},{"name":"dialog","title":"Dialog element","url":"https://caniuse.com/#feat=dialog","description":"Method of easily creating custom dialog boxes to display to the user with modal or non-modal options. Also includes a `::backdrop` pseudo-element for behind the element.","keywords":"HTMLDialogElement,showModal,backdrop","stats":"E: 79+, FF: 98+, GC: 37+, S: 15.4+"},{"name":"dispatchevent","title":"EventTarget.dispatchEvent","url":"https://caniuse.com/#feat=dispatchevent","description":"Method to programmatically trigger a DOM event.","keywords":"dispatch,event,target,fire,trigger,dom","stats":"IE: 11+, E: 12+, FF: 2+, GC: 4+, S: 3.2+"},{"name":"dnssec","title":"DNSSEC and DANE","url":"https://caniuse.com/#feat=dnssec","description":"Method of validating a DNS response against a trusted root server. Mitigates various attacks that could reroute a user to a fake site while showing the real URL for the original site.","keywords":"DNS Security Extensions,Domain Name System Security Extensions,DNS based Authentication of Named Entities","stats":"IE: 11!pa., E: 106!pa., FF: 108!pa., GC: 110!pa., S: 16.2!pa."},{"name":"do-not-track","title":"Do Not Track API","url":"https://caniuse.com/#feat=do-not-track","description":"API to allow the browser's Do Not Track setting to be queried via `navigator.doNotTrack`. Due to lack of adoption the Do Not Track specification was deprecated in 2018.","keywords":"DNT","stats":"IE: 11!pa., E: 17+, FF: 32+, GC: 23+, S: 5.1+"},{"name":"document-currentscript","title":"document.currentScript","url":"https://caniuse.com/#feat=document-currentscript","description":"`document.currentScript` returns the `<script>` element whose script is currently being processed.","keywords":"","stats":"E: 12+, FF: 4+, GC: 29+, S: 8+"},{"name":"document-evaluate-xpath","title":"document.evaluate & XPath","url":"https://caniuse.com/#feat=document-evaluate-xpath","description":"Allow nodes in an XML/HTML document to be traversed using XPath expressions. ","keywords":"dom l3 xpath,dom level 3","stats":"E: 12+, FF: 3+, GC: 4+, S: 3.1+"},{"name":"document-execcommand","title":"Document.execCommand()","url":"https://caniuse.com/#feat=document-execcommand","description":"Allows running commands to manipulate the contents of an editable region in a document switched to designMode","keywords":"document,text,editor,commands,designMode","stats":"IE: 5.5+, E: 12+, FF: 9+, GC: 4+, S: 6+"},{"name":"document-policy","title":"Document Policy","url":"https://caniuse.com/#feat=document-policy","description":"A mechanism that allows developers to set certain rules and policies for a given site. The rules can change default browser behaviour, block certain features or set limits on resource usage. Document Policy is useful both for security and performance, and is similar to [Permissions Policy](/permissions-policy).","keywords":"feature,security,header,policy,attribute,policy attribute,attribute policy,feature-policy,feature policy,document-policy,force-load-at-top","stats":"E: 106!pa., GC: 110!pa."},{"name":"document-scrollingelement","title":"document.scrollingElement","url":"https://caniuse.com/#feat=document-scrollingelement","description":"`document.scrollingElement` refers to the element that scrolls the document.","keywords":"","stats":"E: 14+, FF: 48+, GC: 44+, S: 9+"},{"name":"documenthead","title":"document.head","url":"https://caniuse.com/#feat=documenthead","description":"Convenience property for accessing the `<head>` element","keywords":"document,head","stats":"IE: 9+, E: 12+, FF: 4+, GC: 4+, S: 5.1+"},{"name":"dom-manip-convenience","title":"DOM manipulation convenience methods","url":"https://caniuse.com/#feat=dom-manip-convenience","description":"jQuery-like methods on DOM nodes to insert nodes around or within a node, or to replace one node with another. These methods accept any number of DOM nodes or HTML strings as arguments. Includes: `ChildNode.before`, `ChildNode.after`, `ChildNode.replaceWith`, `ParentNode.prepend`, and `ParentNode.append`.","keywords":"dom,manipulation,convenience,convenient,before,after,replaceWith,prepend,append","stats":"E: 17+, FF: 49+, GC: 54+, S: 10+"},{"name":"dom-range","title":"Document Object Model Range","url":"https://caniuse.com/#feat=dom-range","description":"A contiguous range of content in a Document, DocumentFragment or Attr","keywords":"DOM,range,selection","stats":"IE: 9+, E: 12+, FF: 2+, GC: 4+, S: 3.1+"},{"name":"domcontentloaded","title":"DOMContentLoaded","url":"https://caniuse.com/#feat=domcontentloaded","description":"JavaScript event that fires when the DOM is loaded, but before all page assets are loaded (CSS, images, etc.).","keywords":"dom,domready,onload,contentloaded,document","stats":"IE: 9+, E: 12+, FF: 2+, GC: 4+, S: 3.1+"},{"name":"dommatrix","title":"DOMMatrix","url":"https://caniuse.com/#feat=dommatrix","description":"The `DOMMatrix` interface represents 4x4 matrices, suitable for 2D and 3D operations. Supersedes the `WebKitCSSMatrix` and `SVGMatrix` interfaces.","keywords":"matrix,WebKitCSSMatrix,MSCSSMatrix,CSSMatrix,DOMMatrix,DOMMatrixReadOnly","stats":"IE: 11!pa., E: 106!pa., FF: 108!pa., GC: 110!pa., S: 16.2!pa."},{"name":"download","title":"Download attribute","url":"https://caniuse.com/#feat=download","description":"When used on an anchor, this attribute signifies that the browser should download the resource the anchor points to rather than navigate to it.","keywords":"download,a.download,a[download],download attribute","stats":"E: 13+, FF: 20+, GC: 14+, S: 10.1+"},{"name":"dragndrop","title":"Drag and Drop","url":"https://caniuse.com/#feat=dragndrop","description":"Method of easily dragging and dropping elements on a page, requiring minimal JavaScript.","keywords":"draganddrop, draggable","stats":"IE: 11!pa., E: 18+, FF: 3.5+, GC: 4+, S: 3.1+"},{"name":"element-closest","title":"Element.closest()","url":"https://caniuse.com/#feat=element-closest","description":"DOM method that returns the current element if it matches the given selector, or else the closest ancestor element that matches the given selector, or else null.","keywords":"element,closest,dom","stats":"E: 15+, FF: 35+, GC: 41+, S: 9+"},{"name":"element-from-point","title":"document.elementFromPoint()","url":"https://caniuse.com/#feat=element-from-point","description":"Given coordinates for a point relative to the viewport, returns the element that a click event would be dispatched at if the user were to click the point (in other words, the element that hit-testing would find).","keywords":"document,elementFromPoint,element,from,point","stats":"IE: 6+, E: 12+, FF: 3+, GC: 15+, S: 5+"},{"name":"element-scroll-methods","title":"Scroll methods on elements (scroll, scrollTo, scrollBy)","url":"https://caniuse.com/#feat=element-scroll-methods","description":"Methods to change the scroll position of an element. Similar to setting `scrollTop` & `scrollLeft` properties, but also allows options to be passed to define the scroll behavior.","keywords":"element.prototype.scroll,element.prototype.scrollTo,element.prototype.scrollBy","stats":"E: 79+, FF: 36+, GC: 61+, S: 14+"},{"name":"eme","title":"Encrypted Media Extensions","url":"https://caniuse.com/#feat=eme","description":"The EncryptedMediaExtenstions API provides interfaces for controlling the playback of content which is subject to a DRM scheme.","keywords":"requestMediaKeySystemAccess,createMediaKeys","stats":"IE: 11!pa., E: 12+, FF: 38+, GC: 42+, S: 12+"},{"name":"eot","title":"EOT - Embedded OpenType fonts","url":"https://caniuse.com/#feat=eot","description":"Type of font that can be derived from a regular font, allowing small files and legal use of high-quality fonts. Usage is restricted by the file being tied to the website","keywords":"","stats":"IE: 6+"},{"name":"es5","title":"ECMAScript 5","url":"https://caniuse.com/#feat=es5","description":"Full support for the ECMAScript 5 specification. Features include `Function.prototype.bind`, Array methods like `indexOf`, `forEach`, `map` & `filter`, Object methods like `defineProperty`, `create` & `keys`, the `trim` method on Strings and many more.","keywords":"es5,javascript,js,javascriptes5,function.bind,array.foreach,array.indexof,array.map,object.keys,date.now,defineproperties,getprototypeof,keys,seal,freeze,preventextensions,issealed,isfrozen,isextensible,getownpropertydescriptorgetownpropertynames,toisostringc,isarray,lastindexof,every,some,reduce,reduceright,getter,setter","stats":"IE: 10+, E: 12+, FF: 21+, GC: 23+, S: 6+"},{"name":"es6","title":"ECMAScript 2015 (ES6)","url":"https://caniuse.com/#feat=es6","description":"Support for the ECMAScript 2015 specification. Features include Promises, Modules, Classes, Template Literals, Arrow Functions, Let and Const, Default Parameters, Generators, Destructuring Assignment, Rest & Spread, Map/Set & WeakMap/WeakSet and many more.","keywords":"javascript,block-scoped,string.prototype.includes,string.prototype.endswith,string.prototype.repeat,array.prototype.find,array.prototype.findindex,array.prototype.fill,object.assign","stats":"IE: 11!pa., E: 14!pa., FF: 53!pa., GC: 50!pa., S: 10+"},{"name":"es6-class","title":"ES6 classes","url":"https://caniuse.com/#feat=es6-class","description":"ES6 classes are syntactical sugar to provide a much simpler and clearer syntax to create objects and deal with inheritance.","keywords":"ES6,JavaScript,class","stats":"E: 13+, FF: 45+, GC: 49+, S: 9+"},{"name":"es6-generators","title":"ES6 Generators","url":"https://caniuse.com/#feat=es6-generators","description":"ES6 Generators are special functions that can be used to control the iteration behavior of a loop. Generators are defined using a `function*` declaration.","keywords":"yield,iterators","stats":"E: 13+, FF: 26+, GC: 39+, S: 10+"},{"name":"es6-module","title":"JavaScript modules via script tag","url":"https://caniuse.com/#feat=es6-module","description":"Loading JavaScript module scripts (aka ES6 modules) using `<script type=\"module\">` Includes support for the `nomodule` attribute.","keywords":"es6 module,esmodules,module,import,export,nomodule","stats":"E: 79+, FF: 60+, GC: 61+, S: 11+"},{"name":"es6-module-dynamic-import","title":"JavaScript modules: dynamic import()","url":"https://caniuse.com/#feat=es6-module-dynamic-import","description":"Loading JavaScript modules dynamically using the import() syntax","keywords":"es6,javascript,module,import,export","stats":"E: 79+, FF: 67+, GC: 63+, S: 11.1+"},{"name":"es6-number","title":"ES6 Number","url":"https://caniuse.com/#feat=es6-number","description":"Extensions to the `Number` built-in object in ES6, including constant properties `EPSILON`, `MIN_SAFE_INTEGER`, and `MAX_SAFE_INTEGER`, and methods ` isFinite`, `isInteger`, `isSafeInteger`, and `isNaN`.","keywords":"ES6,JavaScript,number,built-in,EPSILON,MIN_SAFE_INTEGER,MAX_SAFE_INTEGER,isFinite,isInteger,isSafeInteger,isNaN","stats":"E: 12+, FF: 32+, GC: 34+, S: 9+"},{"name":"es6-string-includes","title":"String.prototype.includes","url":"https://caniuse.com/#feat=es6-string-includes","description":"The includes() method determines whether one string may be found within another string, returning true or false as appropriate.","keywords":"ES6,JavaScript,String,includes","stats":"E: 12+, FF: 40+, GC: 41+, S: 9+"},{"name":"eventsource","title":"Server-sent events","url":"https://caniuse.com/#feat=eventsource","description":"Method of continuously sending data from a server to the browser, rather than repeatedly requesting it (EventSource interface, used to fall under HTML5)","keywords":"serversent,s-sent-events,server sent events,server side events","stats":"E: 79+, FF: 6+, GC: 6+, S: 5+"},{"name":"extended-system-fonts","title":"ui-serif, ui-sans-serif, ui-monospace and ui-rounded values for font-family","url":"https://caniuse.com/#feat=extended-system-fonts","description":"Allows more control when choosing system interface fonts","keywords":"font-family,ui-serif,ui-sans-serif,ui-monospace,ui-rounded","stats":"S: 13.1+"},{"name":"feature-policy","title":"Feature Policy","url":"https://caniuse.com/#feat=feature-policy","description":"This specification defines a mechanism that allows developers to selectively enable and disable use of various browser features and APIs. Feature Policy is deprecated and has been replaced with [Permissions Policy](/permissions-policy) and [Document Policy](/document-policy).","keywords":"feature,security,header,allow,attribute,allow attribute,attribute allow,feature-policy,document.featurePolicy,document.policy","stats":"E: 79+, FF: 108!pa., GC: 74+, S: 16.2!pa."},{"name":"fetch","title":"Fetch","url":"https://caniuse.com/#feat=fetch","description":"A modern replacement for XMLHttpRequest.","keywords":"fetch,service,workers,xhr,xmlhttprequest","stats":"E: 14+, FF: 40+, GC: 42+, S: 10.1+"},{"name":"fieldset-disabled","title":"disabled attribute of the fieldset element","url":"https://caniuse.com/#feat=fieldset-disabled","description":"Allows disabling all of the form control descendants of a fieldset via a `disabled` attribute on the fieldset element itself.","keywords":"HTMLFieldSetElement,fieldset,disabled","stats":"IE: 11!pa., E: 12+, FF: 4+, GC: 20+, S: 6+"},{"name":"fileapi","title":"File API","url":"https://caniuse.com/#feat=fileapi","description":"Method of manipulating file objects in web applications client-side, as well as programmatically selecting them and accessing their data.","keywords":"FileReader","stats":"IE: 11!pa., E: 79+, FF: 28+, GC: 38+, S: 10+"},{"name":"filereader","title":"FileReader API","url":"https://caniuse.com/#feat=filereader","description":"Method of reading the contents of a File or Blob object into memory","keywords":"","stats":"IE: 11!pa., E: 12+, FF: 3.6+, GC: 6+, S: 6+"},{"name":"filereadersync","title":"FileReaderSync","url":"https://caniuse.com/#feat=filereadersync","description":"Allows files to be read synchronously in Web Workers","keywords":"","stats":"IE: 10+, E: 12+, FF: 8+, GC: 15+, S: 6+"},{"name":"filesystem","title":"Filesystem & FileWriter API","url":"https://caniuse.com/#feat=filesystem","description":"Method of reading and writing files to a sandboxed file system.","keywords":"filewriter,requestFileSystem","stats":"E: 106-px-, GC: 110-px-"},{"name":"flac","title":"FLAC audio format","url":"https://caniuse.com/#feat=flac","description":"Popular lossless audio compression format","keywords":"flac,lossless,audio","stats":"E: 16+, FF: 51+, GC: 56+, S: 13+"},{"name":"flexbox","title":"CSS Flexible Box Layout Module","url":"https://caniuse.com/#feat=flexbox","description":"Method of positioning elements in horizontal or vertical stacks. Support includes all properties prefixed with `flex`, as well as `display: flex`, `display: inline-flex`, `align-content`, `align-items`, `align-self`, `justify-content` and `order`.","keywords":"flex-box,displayflex,flex-direction,flex-wrap,flex-flow,flex-grow,flex-shrink,flex-basis,display:flex,justify-content:space-between,justify-content:space-around,align-content:space-between,align-content:space-around,space-between","stats":"IE: 11!pa., E: 12+, FF: 28+, GC: 29+, S: 9+"},{"name":"flexbox-gap","title":"gap property for Flexbox","url":"https://caniuse.com/#feat=flexbox-gap","description":"`gap` for flexbox containers to create gaps/gutters between flex items","keywords":"flexbox,gaps,gutters,row-gap,column-gap,flexgap","stats":"E: 84+, FF: 63+, GC: 84+, S: 14.1+"},{"name":"flow-root","title":"display: flow-root","url":"https://caniuse.com/#feat=flow-root","description":"The element generates a block container box, and lays out its contents using flow layout. It always establishes a new block formatting context for its contents. It provides a better solution to the most use cases of the \"clearfix\" hack.","keywords":"display,flow-root","stats":"E: 79+, FF: 53+, GC: 58+, S: 13+"},{"name":"focusin-focusout-events","title":"focusin & focusout events","url":"https://caniuse.com/#feat=focusin-focusout-events","description":"The `focusin` and `focusout` events fire just before the element gains or loses focus, and they bubble. By contrast, the `focus` and `blur` events fire after the focus has shifted, and don't bubble.","keywords":"focusin,focusout,focus,event","stats":"IE: 6+, E: 12+, FF: 52+, GC: 15+, S: 5.1+"},{"name":"font-family-system-ui","title":"system-ui value for font-family","url":"https://caniuse.com/#feat=font-family-system-ui","description":"Value for `font-family` that represents the default user interface font.","keywords":"","stats":"E: 79+, FF: 92+, GC: 56+, S: 11+"},{"name":"font-feature","title":"CSS font-feature-settings","url":"https://caniuse.com/#feat=font-feature","description":"Method of applying advanced typographic and language-specific font features to supported OpenType fonts.","keywords":"font-feature,font-feature-settings,kern,kerning,font-variant-alternates,ligatures,font-variant-ligatures","stats":"IE: 10+, E: 12+, FF: 34+, GC: 48+, S: 9.1+"},{"name":"font-kerning","title":"CSS3 font-kerning","url":"https://caniuse.com/#feat=font-kerning","description":"Controls the usage of the kerning information (spacing between letters) stored in the font. Note that this only affects OpenType fonts with kerning information, it has no effect on other fonts.","keywords":"","stats":"E: 79+, FF: 34+, GC: 33+, S: 9.1+"},{"name":"font-loading","title":"CSS Font Loading","url":"https://caniuse.com/#feat=font-loading","description":"This CSS module defines a scripting interface to font faces in CSS, allowing font faces to be easily created and loaded from script. It also provides methods to track the loading status of an individual font, or of all the fonts on an entire page.","keywords":"fontface,fontfaceset,fontfacesource,document.fonts","stats":"E: 79+, FF: 41+, GC: 35+, S: 10+"},{"name":"font-size-adjust","title":"CSS font-size-adjust","url":"https://caniuse.com/#feat=font-size-adjust","description":"Method of adjusting the font size in a matter that relates to the height of lowercase vs. uppercase letters. This makes it easier to set the size of fallback fonts.","keywords":"","stats":"FF: 3+"},{"name":"font-smooth","title":"CSS font-smooth","url":"https://caniuse.com/#feat=font-smooth","description":"Controls the application of anti-aliasing when fonts are rendered.","keywords":"font smooth,font smoothing,-webkit-font-smoothing,-moz-osx-font-smoothing","stats":"E: 106!pa., FF: 108!pa., GC: 110!pa., S: 16.2!pa."},{"name":"font-unicode-range","title":"Font unicode-range subsetting","url":"https://caniuse.com/#feat=font-unicode-range","description":"This @font-face descriptor defines the set of Unicode codepoints that may be supported by the font face for which it is declared. The descriptor value is a comma-delimited list of Unicode range (<urange>) values. The union of these ranges defines the set of codepoints that serves as a hint for user agents when deciding whether or not to download a font resource for a given text run.","keywords":"font face,unicode,unicode-range","stats":"IE: 11!pa., E: 17+, FF: 44+, GC: 36+, S: 10+"},{"name":"font-variant-alternates","title":"CSS font-variant-alternates","url":"https://caniuse.com/#feat=font-variant-alternates","description":"Controls the usage of alternate glyphs associated to alternative names defined in @font-feature-values for certain types of OpenType fonts.","keywords":"font-feature,font-feature-settings,font-variant","stats":"FF: 34+, S: 9.1+"},{"name":"font-variant-numeric","title":"CSS font-variant-numeric","url":"https://caniuse.com/#feat=font-variant-numeric","description":"CSS property that provides different ways of displaying numbers, fractions, and ordinal markers.","keywords":"normal,ordinal,slashed-zero,lining-nums,oldstyle-nums,proportional-nums,tabular-nums,diagonal-fractions,stacked-fractions,oldstyle-nums,stacked-fractions","stats":"E: 79+, FF: 34+, GC: 52+, S: 9.1+"},{"name":"fontface","title":"@font-face Web fonts","url":"https://caniuse.com/#feat=fontface","description":"Method of displaying fonts downloaded from websites","keywords":"font face","stats":"IE: 9+, E: 12+, FF: 3.5+, GC: 4+, S: 3.2+"},{"name":"form-attribute","title":"Form attribute","url":"https://caniuse.com/#feat=form-attribute","description":"Attribute for associating input and submit buttons with a form.","keywords":"form,attribute","stats":"E: 16+, FF: 4+, GC: 10+, S: 5.1+"},{"name":"form-submit-attributes","title":"Attributes for form submission","url":"https://caniuse.com/#feat=form-submit-attributes","description":"Attributes for form submission that may be specified on submit buttons. The attributes are: `formaction`, `formenctype`, `formmethod`, `formnovalidate`, and `formtarget`","keywords":"","stats":"IE: 10+, E: 12+, FF: 4+, GC: 15+, S: 5.1+"},{"name":"form-validation","title":"Form validation","url":"https://caniuse.com/#feat=form-validation","description":"Method of setting required fields and field types without requiring JavaScript. This includes preventing forms from being submitted when appropriate, the `checkValidity()` method as well as support for the `:invalid`, `:valid`, and `:required` CSS pseudo-classes.","keywords":"","stats":"IE: 10+, E: 12+, FF: 4+, GC: 10+, S: 10.1+"},{"name":"fullscreen","title":"Full Screen API","url":"https://caniuse.com/#feat=fullscreen","description":"API for allowing content (like a video or canvas element) to take up the entire screen.","keywords":"full-screen,requestFullScreen,exitFullScreen","stats":"IE: 11!pa., E: 79+, FF: 64+, GC: 71+, S: 16.2!pa."},{"name":"gamepad","title":"Gamepad API","url":"https://caniuse.com/#feat=gamepad","description":"API to support input from USB gamepad controllers through JavaScript.","keywords":"","stats":"E: 12+, FF: 29+, GC: 25+, S: 10.1+"},{"name":"geolocation","title":"Geolocation","url":"https://caniuse.com/#feat=geolocation","description":"Method of informing a website of the user's geographical location","keywords":"","stats":"IE: 9+, E: 12+, FF: 3.5+, GC: 5+, S: 5+"},{"name":"getboundingclientrect","title":"Element.getBoundingClientRect()","url":"https://caniuse.com/#feat=getboundingclientrect","description":"Method to get the size and position of an element's bounding box, relative to the viewport.","keywords":"getBoundingClientRect,bounding,client,rect,DOMRect,box,cssom","stats":"IE: 8!pa., E: 79+, FF: 12+, GC: 4+, S: 4+"},{"name":"getcomputedstyle","title":"getComputedStyle","url":"https://caniuse.com/#feat=getcomputedstyle","description":"API to get the current computed CSS styles applied to an element. This may be the current value applied by an animation or as set by a stylesheet.","keywords":"","stats":"IE: 9+, E: 12+, FF: 4+, GC: 11+, S: 5+"},{"name":"getelementsbyclassname","title":"getElementsByClassName","url":"https://caniuse.com/#feat=getelementsbyclassname","description":"Method of accessing DOM elements by class name","keywords":"byclassname","stats":"IE: 9+, E: 12+, FF: 3+, GC: 4+, S: 3.1+"},{"name":"getrandomvalues","title":"crypto.getRandomValues()","url":"https://caniuse.com/#feat=getrandomvalues","description":"Method of generating cryptographically random values.","keywords":"","stats":"IE: 11-px-, E: 12+, FF: 21+, GC: 11+, S: 6.1+"},{"name":"gyroscope","title":"Gyroscope","url":"https://caniuse.com/#feat=gyroscope","description":"Defines a concrete sensor interface to monitor the rate of rotation around the deviceÕs local three primary axes.","keywords":"","stats":"E: 79+, GC: 67+"},{"name":"hardwareconcurrency","title":"navigator.hardwareConcurrency","url":"https://caniuse.com/#feat=hardwareconcurrency","description":"Returns the number of logical cores of the user's CPU. The value may be reduced to prevent device fingerprinting or because it exceeds the allowed number of simultaneous web workers.","keywords":"navigator,cores,hardware,concurrency,hardwareConcurrency","stats":"E: 15+, FF: 48+, GC: 37+"},{"name":"hashchange","title":"Hashchange event","url":"https://caniuse.com/#feat=hashchange","description":"Event triggered in JavaScript when the URL's hash has changed (for example: page.html#foo to page.html#bar) ","keywords":"onhashchange,HashChangeEvent","stats":"IE: 8+, E: 12+, FF: 3.6+, GC: 5+, S: 5+"},{"name":"heif","title":"HEIF/ISO Base Media File Format","url":"https://caniuse.com/#feat=heif","description":"HEIF (High Efficiency Image File Format) is a standard developed by the Moving Picture Experts Group (MPEG) for storage and sharing of images and image sequences. Can use `.heif` or `.heic` file extensions.","keywords":"heic","stats":""},{"name":"hevc","title":"HEVC/H.265 video format","url":"https://caniuse.com/#feat=hevc","description":"The High Efficiency Video Coding (HEVC) compression standard is a video compression format intended to succeed H.264","keywords":"h265","stats":"IE: 11!pa., E: 106!pa., GC: 110!pa., S: 13+"},{"name":"hidden","title":"hidden attribute","url":"https://caniuse.com/#feat=hidden","description":"The `hidden` attribute may be applied to any element, and effectively hides elements similar to `display: none` in CSS.","keywords":"","stats":"IE: 11+, E: 12+, FF: 4+, GC: 6+, S: 5.1+"},{"name":"high-resolution-time","title":"High Resolution Time API","url":"https://caniuse.com/#feat=high-resolution-time","description":"Method to provide the current time in sub-millisecond resolution and such that it is not subject to system clock skew or adjustments. Called using `performance.now()`","keywords":"performance,now,testing","stats":"IE: 10+, E: 12+, FF: 15+, GC: 24+, S: 8+"},{"name":"history","title":"Session history management","url":"https://caniuse.com/#feat=history","description":"Method of manipulating the user's browser's session history in JavaScript using `history.pushState`, `history.replaceState` and the `popstate` event.","keywords":"onpushstate,onreplacestate","stats":"IE: 10+, E: 12+, FF: 4+, GC: 5+, S: 6+"},{"name":"html-media-capture","title":"HTML Media Capture","url":"https://caniuse.com/#feat=html-media-capture","description":"Facilitates user access to a device's media capture mechanism, such as a camera, or microphone, from within a file upload control.","keywords":"htmlmediacapture, html media capture, media capture, mediacapture","stats":""},{"name":"html5semantic","title":"HTML5 semantic elements","url":"https://caniuse.com/#feat=html5semantic","description":"HTML5 offers some new elements, primarily for semantic purposes. The elements include: `section`, `article`, `aside`, `header`, `footer`, `nav`, `figure`, `figcaption`, `time`, `mark` & `main`.","keywords":"section,article,aside,header,footer,nav,figure,figcaption,time,mark,main,<section>,<article>,<aside>,<header>,<footer>,<nav>,<figure>,<figcaption>,<time>,<mark>,<main>","stats":"IE: 11!pa., E: 12+, FF: 21+, GC: 26+, S: 6.1+"},{"name":"http-live-streaming","title":"HTTP Live Streaming (HLS)","url":"https://caniuse.com/#feat=http-live-streaming","description":"HTTP-based media streaming communications protocol","keywords":"apple http live streaming,m3u8","stats":"E: 12+, S: 6+"},{"name":"http2","title":"HTTP/2 protocol","url":"https://caniuse.com/#feat=http2","description":"Networking protocol for low-latency transport of content over the web. Originally started out from the SPDY protocol, now standardized as HTTP version 2.","keywords":"https/2","stats":"IE: 11!pa., E: 12+, FF: 36+, GC: 41+, S: 11+"},{"name":"http3","title":"HTTP/3 protocol","url":"https://caniuse.com/#feat=http3","description":"Third version of the HTTP networking protocol which uses QUIC as transport protocol. Previously known as HTTP-over-QUIC, now standardized as HTTP/3.","keywords":"https/3","stats":"E: 87+, FF: 88+, GC: 87+"},{"name":"iframe-sandbox","title":"sandbox attribute for iframes","url":"https://caniuse.com/#feat=iframe-sandbox","description":"Method of running external site pages with reduced privileges (e.g. no JavaScript) in iframes.","keywords":"","stats":"IE: 10+, E: 12+, FF: 28+, GC: 4+, S: 5+"},{"name":"iframe-seamless","title":"seamless attribute for iframes","url":"https://caniuse.com/#feat=iframe-seamless","description":"The seamless attribute makes an iframe's contents actually part of a page, and adopts the styles from its hosting page. The attribute has been removed from both [the WHATWG](https://github.com/whatwg/html/issues/331) and [the W3C](https://github.com/w3c/html/pull/325) HTML5 specifications.","keywords":"","stats":""},{"name":"iframe-srcdoc","title":"srcdoc attribute for iframes","url":"https://caniuse.com/#feat=iframe-srcdoc","description":"Override the content specified in the `src` attribute (if present) with HTML content within the attribute.","keywords":"","stats":"IE: 11w/pl, E: 79+, FF: 25+, GC: 20+, S: 6+"},{"name":"imagecapture","title":"ImageCapture API","url":"https://caniuse.com/#feat=imagecapture","description":"The Image Capture API provides access to the Video Camera for taking photos while configuring picture-specific settings such as e.g. zoom or auto focus metering area.","keywords":"camera,device,photos,media stream,mediastream,Image Capture API","stats":"E: 79+, GC: 59+"},{"name":"ime","title":"Input Method Editor API","url":"https://caniuse.com/#feat=ime","description":"Provides scripted access to the Input Method Editor (IME). An IME is often used to input characters from East Asian languages by typing roman characters and selecting from the resulting suggestions.","keywords":"ime,cjk,input,internationalization,inputMethodContext,candidatewindow,composition","stats":"IE: 11-px-, E: 18-px-"},{"name":"img-naturalwidth-naturalheight","title":"naturalWidth & naturalHeight image properties","url":"https://caniuse.com/#feat=img-naturalwidth-naturalheight","description":"Properties defining the intrinsic width and height of the image, rather than the displayed width & height.","keywords":"","stats":"IE: 9+, E: 12+, FF: 2+, GC: 4+, S: 3.1+"},{"name":"import-maps","title":"Import maps","url":"https://caniuse.com/#feat=import-maps","description":"Import maps allows control over what URLs get fetched by JavaScript `import` statements and `import()` expressions.","keywords":"importmap","stats":"E: 89+, FF: 108+, GC: 89+"},{"name":"imports","title":"HTML Imports","url":"https://caniuse.com/#feat=imports","description":"Deprecated method of including and reusing HTML documents in other HTML documents. Superseded by ES modules.","keywords":"webcomponents","stats":"IE: 11w/pl, E: 79+, FF: 108w/pl, GC: 36+, S: 16.2w/pl"},{"name":"indeterminate-checkbox","title":"indeterminate checkbox","url":"https://caniuse.com/#feat=indeterminate-checkbox","description":"Indeterminate checkboxes are displayed in a state which is distinct both from being checked or being unchecked. They are commonly used in hierarchical checkboxes to indicate that only some of the checkbox's descendants are checked.","keywords":"","stats":"IE: 6+, E: 12+, FF: 3.6+, GC: 28+, S: 6+"},{"name":"indexeddb","title":"IndexedDB","url":"https://caniuse.com/#feat=indexeddb","description":"Method of storing data client-side, allows indexed database queries.","keywords":"indexdb","stats":"IE: 11!pa., E: 79+, FF: 16+, GC: 24+, S: 10+"},{"name":"indexeddb2","title":"IndexedDB 2.0","url":"https://caniuse.com/#feat=indexeddb2","description":"Improvements to Indexed DB, including getAll(), renaming stores and indexes, and binary keys.","keywords":"indexdb,indexeddb,idb","stats":"E: 79+, FF: 51+, GC: 58+, S: 10.1+"},{"name":"inline-block","title":"CSS inline-block","url":"https://caniuse.com/#feat=inline-block","description":"Method of displaying an element as a block while flowing it with text. ","keywords":"inlineblock,display:inline-block","stats":"IE: 8+, E: 12+, FF: 3+, GC: 4+, S: 3.1+"},{"name":"innertext","title":"HTMLElement.innerText","url":"https://caniuse.com/#feat=innertext","description":"A property representing the text within a DOM element and its descendants. As a getter, it approximates the text the user would get if they highlighted the contents of the element with the cursor and then copied to the clipboard.","keywords":"inner,text,content","stats":"IE: 6+, E: 12+, FF: 45+, GC: 4+, S: 3.2+"},{"name":"input-autocomplete-onoff","title":"autocomplete attribute: on & off values","url":"https://caniuse.com/#feat=input-autocomplete-onoff","description":"The `autocomplete` attribute for `input` elements indicates to the browser whether a value should or should not be autofilled when appropriate.","keywords":"","stats":"IE: 5.5+, E: 106!pa., FF: 2+, GC: 17+, S: 5.1+"},{"name":"input-color","title":"Color input type","url":"https://caniuse.com/#feat=input-color","description":"Form field allowing the user to select a color.","keywords":"colour,input type=\"color\"","stats":"E: 14+, FF: 29+, GC: 20+, S: 12.1+"},{"name":"input-datetime","title":"Date and time input types","url":"https://caniuse.com/#feat=input-datetime","description":"Form field widgets to easily allow users to enter a date, time or both, generally by using a calendar/time input widget. Refers to supporting the following input types: `date`, `time`, `datetime-local`, `month` & `week`.","keywords":"datepicker,timepicker,inputdate,input type=\"date\",input type=\"time\",input date,datetime-local","stats":"E: 13+, FF: 108!pa., GC: 25+, S: 16.2!pa."},{"name":"input-email-tel-url","title":"Email, telephone & URL input types","url":"https://caniuse.com/#feat=input-email-tel-url","description":"Text input fields intended for email addresses, telephone numbers or URLs. Particularly useful in combination with [form validation](https://caniuse.com/#feat=form-validation)","keywords":"input[type=email],input[type=tel],input[type=url],input type=\"email\",input type=\"tel\",input type=\"url\"","stats":"IE: 10+, E: 12+, FF: 4+, GC: 5+, S: 5+"},{"name":"input-event","title":"input event","url":"https://caniuse.com/#feat=input-event","description":"The `input` event is fired when the user changes the value of an `<input>` element, `<select>` element, or `<textarea>` element. By contrast, the \"change\" event usually only fires after the form control has lost focus.","keywords":"oninput","stats":"IE: 9!pa., E: 79+, FF: 49+, GC: 66+, S: 13.1+"},{"name":"input-file-accept","title":"accept attribute for file input","url":"https://caniuse.com/#feat=input-file-accept","description":"Allows a filter to be defined for what type of files a user may pick with from an `<input type=\"file\">` dialog","keywords":"","stats":"IE: 10+, E: 79+, FF: 37+, GC: 26+, S: 11.1+"},{"name":"input-file-directory","title":"Directory selection from file input","url":"https://caniuse.com/#feat=input-file-directory","description":"The `webkitdirectory` attribute on the `<input type=\"file\">` element allows entire directory with file contents (and any subdirectories) to be selected.","keywords":"mozdirectory,webkitRelativePath","stats":"E: 14+, FF: 50+, GC: 30+, S: 11.1+"},{"name":"input-file-multiple","title":"Multiple file selection","url":"https://caniuse.com/#feat=input-file-multiple","description":"Allows users to select multiple files in the file picker.","keywords":"","stats":"IE: 10+, E: 12+, FF: 3.6+, GC: 5+, S: 4+"},{"name":"input-inputmode","title":"inputmode attribute","url":"https://caniuse.com/#feat=input-inputmode","description":"The `inputmode` attribute specifies what kind of input mechanism would be most helpful for users entering content into the form control.","keywords":"","stats":"E: 79+, FF: 95+, GC: 66+"},{"name":"input-minlength","title":"Minimum length attribute for input fields","url":"https://caniuse.com/#feat=input-minlength","description":"Declares a lower bound on the number of characters a user can input.","keywords":"","stats":"E: 17+, FF: 51+, GC: 40+, S: 10.1+"},{"name":"input-number","title":"Number input type","url":"https://caniuse.com/#feat=input-number","description":"Form field type for numbers.","keywords":"spinner,input type=\"number\"","stats":"E: 79+, GC: 6+, S: 5+"},{"name":"input-pattern","title":"Pattern attribute for input fields","url":"https://caniuse.com/#feat=input-pattern","description":"Allows validation of an input field based on a given regular expression pattern.","keywords":"","stats":"IE: 10+, E: 12+, FF: 4+, GC: 10+, S: 10.1+"},{"name":"input-placeholder","title":"input placeholder attribute","url":"https://caniuse.com/#feat=input-placeholder","description":"Method of setting placeholder text for text-like input fields, to suggest the expected inserted information.","keywords":"","stats":"IE: 10+, E: 12+, FF: 4+, GC: 4+, S: 5+"},{"name":"input-range","title":"Range input type","url":"https://caniuse.com/#feat=input-range","description":"Form field type that allows the user to select a value using a slider widget.","keywords":"input type=\"range\"","stats":"IE: 10+, E: 12+, FF: 23+, GC: 4+, S: 3.1+"},{"name":"input-search","title":"Search input type","url":"https://caniuse.com/#feat=input-search","description":"Search field form input type. Intended to look like the underlying platform's native search field widget (if there is one). Other than its appearance, it's the same as an `<input type=\"text\">`.","keywords":"input,type,search","stats":"E: 79+, GC: 26+, S: 5.1+"},{"name":"input-selection","title":"Selection controls for input & textarea","url":"https://caniuse.com/#feat=input-selection","description":"Controls for setting and getting text selection via `setSelectionRange()` and the `selectionStart` & `selectionEnd` properties.","keywords":"","stats":"IE: 9+, E: 12+, FF: 2+, GC: 4+, S: 4+"},{"name":"insert-adjacent","title":"Element.insertAdjacentElement() & Element.insertAdjacentText()","url":"https://caniuse.com/#feat=insert-adjacent","description":"Methods for inserting an element or text before or after a given element, or appending or prepending an element or text to a given element's list of children.","keywords":"insertAdjacentElement,insertAdjacentText,insert,adjacent,element,text","stats":"IE: 6+, E: 12+, FF: 48+, GC: 4+, S: 3.1+"},{"name":"insertadjacenthtml","title":"Element.insertAdjacentHTML()","url":"https://caniuse.com/#feat=insertadjacenthtml","description":"Inserts a string of HTML into a specified position in the DOM relative to the given element.","keywords":"element,insert,adjacent,HTML","stats":"IE: 10+, E: 12+, FF: 8+, GC: 4+, S: 4+"},{"name":"internationalization","title":"Internationalization API","url":"https://caniuse.com/#feat=internationalization","description":"Locale-sensitive collation (string comparison), number formatting, and date and time formatting.","keywords":"Intl,Collator,NumberFormat,DateTimeFormat","stats":"IE: 11+, E: 12+, FF: 29+, GC: 24+, S: 10+"},{"name":"intersectionobserver","title":"IntersectionObserver","url":"https://caniuse.com/#feat=intersectionobserver","description":"API that can be used to understand the visibility and position of DOM elements relative to a containing element or to the top-level viewport. The position is delivered asynchronously and is useful for understanding the visibility of elements and implementing pre-loading and deferred loading of DOM content.","keywords":"","stats":"E: 16+, FF: 55+, GC: 58+, S: 12.1+"},{"name":"intersectionobserver-v2","title":"IntersectionObserver V2","url":"https://caniuse.com/#feat=intersectionobserver-v2","description":"Iteration on the original API that also reports if the element is covered by another element or has filters applied to it. Useful for blocking clickjacking attempts or tracking ad exposure.","keywords":".isVisible,isVisible","stats":"E: 79+, GC: 74+"},{"name":"intl-pluralrules","title":"Intl.PluralRules API","url":"https://caniuse.com/#feat=intl-pluralrules","description":"API for plural sensitive formatting and plural language rules.","keywords":"Intl,PluralRules","stats":"E: 79+, FF: 58+, GC: 63+, S: 13+"},{"name":"intrinsic-width","title":"Intrinsic & Extrinsic Sizing","url":"https://caniuse.com/#feat=intrinsic-width","description":"Allows for the heights and widths to be specified in intrinsic values using the `max-content`, `min-content`, `fit-content` and `stretch` (formerly `fill`) properties.","keywords":"fill,fill-available,max-content,min-content,fit-content,contain-floats,intrinsic,extrinsic,sizing","stats":"FF: 108!pa., GC: 45-px-, S: 16.0+"},{"name":"jpeg2000","title":"JPEG 2000 image format","url":"https://caniuse.com/#feat=jpeg2000","description":"JPEG 2000 was built to supersede the original JPEG format by having better compression and more features. [WebP](/webp), [AVIF](/avif) and [JPEG XL](/jpegxl) are all designed to supersede JPEG 2000.","keywords":"jp2,jpeg2000,jpeg 2000,jpg2000","stats":"S: 6+"},{"name":"jpegxl","title":"JPEG XL image format","url":"https://caniuse.com/#feat=jpegxl","description":"A modern image format optimized for web environments. JPEG XL generally has better compression than [WebP](/webp), JPEG, PNG and GIF and is designed to supersede them. JPEG XL competes with [AVIF](/avif) which has similar compression quality but fewer features overall.","keywords":".jxl,jpeg-xl,jpg","stats":""},{"name":"jpegxr","title":"JPEG XR image format","url":"https://caniuse.com/#feat=jpegxr","description":"JPEG XR was built to supersede the original JPEG format by having better compression and more features. [WebP](/webp), [AVIF](/avif) and [JPEG XL](/jpegxl) are all designed to supersede JPEG XR.","keywords":"jpeg-xr","stats":"IE: 9+, E: 12+"},{"name":"js-regexp-lookbehind","title":"Lookbehind in JS regular expressions","url":"https://caniuse.com/#feat=js-regexp-lookbehind","description":"The positive lookbehind (`(?<= )`) and negative lookbehind (`(?<! )`) zero-width assertions in JavaScript regular expressions can be used to ensure a pattern is preceded by another pattern.","keywords":"","stats":"E: 79+, FF: 78+, GC: 62+"},{"name":"json","title":"JSON parsing","url":"https://caniuse.com/#feat=json","description":"Method of converting JavaScript objects to JSON strings and JSON back to objects using JSON.stringify() and JSON.parse()","keywords":"","stats":"IE: 9+, E: 12+, FF: 3.5+, GC: 4+, S: 4+"},{"name":"justify-content-space-evenly","title":"CSS justify-content: space-evenly","url":"https://caniuse.com/#feat=justify-content-space-evenly","description":"The \"space-evenly\" value for the `justify-content` property distributes the space between items evenly. It is similar to space-around but provides equal instead of half-sized space on the edges. Can be used in both CSS flexbox & grid.","keywords":"","stats":"E: 79+, FF: 52+, GC: 60+, S: 11+"},{"name":"kerning-pairs-ligatures","title":"High-quality kerning pairs & ligatures","url":"https://caniuse.com/#feat=kerning-pairs-ligatures","description":"When used in HTML, the unofficial `text-rendering: optimizeLegibility` CSS property enables high-quality kerning and ligatures in certain browsers. Newer browsers have this behavior enabled by default.","keywords":"optimizeLegibility,optimizeSpeed,geometricPrecision","stats":"E: 18+, FF: 3+, GC: 4+, S: 5+"},{"name":"keyboardevent-charcode","title":"KeyboardEvent.charCode","url":"https://caniuse.com/#feat=keyboardevent-charcode","description":"A legacy `KeyboardEvent` property that gives the Unicode codepoint number of a character key pressed during a `keypress` event.","keywords":"keyboard,event,key,char,character,code,charCode","stats":"IE: 9+, E: 12+, FF: 3+, GC: 4+, S: 4+"},{"name":"keyboardevent-code","title":"KeyboardEvent.code","url":"https://caniuse.com/#feat=keyboardevent-code","description":"A `KeyboardEvent` property representing the physical key that was pressed, ignoring the keyboard layout and ignoring whether any modifier keys were active.","keywords":"keyboard,event,code","stats":"E: 79+, FF: 38+, GC: 48+, S: 10.1+"},{"name":"keyboardevent-getmodifierstate","title":"KeyboardEvent.getModifierState()","url":"https://caniuse.com/#feat=keyboardevent-getmodifierstate","description":"`KeyboardEvent` method that returns the state (whether the key is pressed/locked or not) of the given modifier key.","keywords":"keyboard,event,get,modifier,state","stats":"IE: 9+, E: 12+, FF: 15+, GC: 30+, S: 10.1+"},{"name":"keyboardevent-key","title":"KeyboardEvent.key","url":"https://caniuse.com/#feat=keyboardevent-key","description":"A `KeyboardEvent` property whose value is a string identifying the key that was pressed. Covers character keys, non-character keys (e.g. arrow keys), and dead keys.","keywords":"keyboard,event,key","stats":"IE: 11!pa., E: 79+, FF: 29+, GC: 51+, S: 10.1+"},{"name":"keyboardevent-location","title":"KeyboardEvent.location","url":"https://caniuse.com/#feat=keyboardevent-location","description":"A `KeyboardEvent` property that indicates the location of the key on the input device. Useful when there are more than one physical key for the same logical key (e.g. left or right \"Control\" key; main or numpad \"1\" key).","keywords":"keyboard,event,key,location,keyLocation,numpad","stats":"IE: 9+, E: 12+, FF: 15+, GC: 30+, S: 6.1+"},{"name":"keyboardevent-which","title":"KeyboardEvent.which","url":"https://caniuse.com/#feat=keyboardevent-which","description":"A legacy `KeyboardEvent` property that is equivalent to either `KeyboardEvent.keyCode` or `KeyboardEvent.charCode` depending on whether the key is alphanumeric.","keywords":"keyboard,event,which","stats":"IE: 9+, E: 12+, FF: 2+, GC: 4+, S: 5.1+"},{"name":"lazyload","title":"Resource Hints: Lazyload","url":"https://caniuse.com/#feat=lazyload","description":"Gives a hint to the browser to lower the loading priority of a resource. Please note that this is a legacy attribute, see the [`loading`](/loading-lazy-attr) attribute for the new standardized API.","keywords":"","stats":"IE: 11+, E: 12+"},{"name":"let","title":"let","url":"https://caniuse.com/#feat=let","description":"Declares a variable with block level scope","keywords":"ES6,variable,block,scope","stats":"IE: 11!pa., E: 12+, FF: 44+, GC: 49+, S: 11+"},{"name":"link-icon-png","title":"PNG favicons","url":"https://caniuse.com/#feat=link-icon-png","description":"Icon used by browsers to identify a webpage or site. While all browsers support the `.ico` format, the PNG format can be preferable.","keywords":"","stats":"IE: 11+, E: 12+, FF: 2+, GC: 4+, S: 3.1+"},{"name":"link-icon-svg","title":"SVG favicons","url":"https://caniuse.com/#feat=link-icon-svg","description":"Icon used by browsers to identify a webpage or site. While all browsers support the `.ico` format, the SVG format can be preferable to more easily support higher resolutions or larger icons.","keywords":"","stats":"FF: 40!pa."},{"name":"link-rel-dns-prefetch","title":"Resource Hints: dns-prefetch","url":"https://caniuse.com/#feat=link-rel-dns-prefetch","description":"Gives a hint to the browser to perform a DNS lookup in the background to improve performance. This is indicated using `<link rel=\"dns-prefetch\" href=\"https://example.com/\">`","keywords":"","stats":"IE: 10+, E: 12+, FF: 108!pa., GC: 4+, S: 5+"},{"name":"link-rel-modulepreload","title":"Resource Hints: modulepreload","url":"https://caniuse.com/#feat=link-rel-modulepreload","description":"Using `<link rel=\"modulepreload\">`, browsers can be informed to prefetch module scripts without having to execute them, allowing fine-grained control over when and how module resources are loaded.","keywords":"","stats":"E: 79+, GC: 66+"},{"name":"link-rel-preconnect","title":"Resource Hints: preconnect","url":"https://caniuse.com/#feat=link-rel-preconnect","description":"Gives a hint to the browser to begin the connection handshake (DNS, TCP, TLS) in the background to improve performance. This is indicated using `<link rel=\"preconnect\" href=\"https://example-domain.com/\">`","keywords":"preconnect, resource hints","stats":"E: 79+, FF: 40+, GC: 46+, S: 11.1+"},{"name":"link-rel-prefetch","title":"Resource Hints: prefetch","url":"https://caniuse.com/#feat=link-rel-prefetch","description":"Informs the browsers that a given resource should be prefetched so it can be loaded more quickly. This is indicated using `<link rel=\"prefetch\" href=\"(url)\">`","keywords":"","stats":"IE: 11+, E: 12+, FF: 2+, GC: 8+"},{"name":"link-rel-preload","title":"Resource Hints: preload","url":"https://caniuse.com/#feat=link-rel-preload","description":"Using `<link rel=\"preload\">`, browsers can be informed to prefetch resources without having to execute them, allowing fine-grained control over when and how resources are loaded.","keywords":"","stats":"E: 79+, FF: 85+, GC: 50+, S: 11.1+"},{"name":"link-rel-prerender","title":"Resource Hints: prerender","url":"https://caniuse.com/#feat=link-rel-prerender","description":"Gives a hint to the browser to render the specified page in the background, speeding up page load if the user navigates to it. This is indicated using `<link rel=\"prerender\" href=\"(url)\">`","keywords":"","stats":"IE: 11+, E: 79+, GC: 13+"},{"name":"loading-lazy-attr","title":"Lazy loading via attribute for images & iframes","url":"https://caniuse.com/#feat=loading-lazy-attr","description":"The `loading` attribute on images & iframes gives authors control over when the browser should start loading the resource. ","keywords":"lazy-loading,lazyloading,loading=\"lazy\",loading=\"eager\",loading=\"auto\",loading,attribute,lazily,lazy image loading,lazy img loading,iframe loading,native lazyload","stats":"E: 79+, FF: 108!pa., GC: 77+, S: 16.2!pa."},{"name":"localecompare","title":"localeCompare()","url":"https://caniuse.com/#feat=localecompare","description":"The `localeCompare()` method returns a number indicating whether a reference string comes before or after or is the same as the given string in sort order.","keywords":"","stats":"IE: 11+, E: 12+, FF: 29+, GC: 24+, S: 10+"},{"name":"magnetometer","title":"Magnetometer","url":"https://caniuse.com/#feat=magnetometer","description":"Defines a concrete sensor interface to measure magnetic field in the X, Y and Z axis.","keywords":"","stats":"E: 79+, GC: 67+"},{"name":"matchesselector","title":"matches() DOM method","url":"https://caniuse.com/#feat=matchesselector","description":"Method of testing whether or not a DOM element matches a given selector. Formerly known (and largely supported with prefix) as matchesSelector.","keywords":" matchesSelector","stats":"IE: 11!pa., E: 15+, FF: 34+, GC: 34+, S: 7.1+"},{"name":"matchmedia","title":"matchMedia","url":"https://caniuse.com/#feat=matchmedia","description":"API for finding out whether or not a media query applies to the document.","keywords":"mediaquerylist","stats":"IE: 10+, E: 12+, FF: 6+, GC: 9+, S: 5.1+"},{"name":"mathml","title":"MathML","url":"https://caniuse.com/#feat=mathml","description":"Special tags that allow mathematical formulas and notations to be written on web pages.","keywords":"","stats":"IE: 8w/pl, E: 106w/pl, FF: 4+, GC: 24+, S: 10+"},{"name":"maxlength","title":"maxlength attribute for input and textarea elements","url":"https://caniuse.com/#feat=maxlength","description":"Declares an upper bound on the number of characters the user can input. Normally the UI ignores attempts by the user to type in additional characters beyond this limit.","keywords":"maximum,length,input,textarea,too,long,validity,state","stats":"IE: 10+, E: 79+, FF: 51+, GC: 4+, S: 5.1+"},{"name":"media-fragments","title":"Media Fragments","url":"https://caniuse.com/#feat=media-fragments","description":"Allows only part of a resource to be shown, based on the fragment identifier in the URL. Currently support is primarily limited to video track ranges.","keywords":"","stats":"E: 106!pa., FF: 108!pa., GC: 110!pa., S: 16.2!pa."},{"name":"mediacapture-fromelement","title":"Media Capture from DOM Elements API","url":"https://caniuse.com/#feat=mediacapture-fromelement","description":"API to capture Real-Time video and audio from a DOM element, such as a `<video>`, `<audio>`, or `<canvas>` element via the `captureStream` method, in the form of a `MediaStream`","keywords":"canvas,mediastream,capturestream,canvas.capturestream","stats":"E: 79+, FF: 108!pa., GC: 62+, S: 16.2!pa."},{"name":"mediarecorder","title":"MediaRecorder API","url":"https://caniuse.com/#feat=mediarecorder","description":"The MediaRecorder API (MediaStream Recording) aims to provide a really simple mechanism by which developers can record media streams from the user's input devices and instantly use them in web apps, rather than having to perform manual encoding operations on raw PCM data, etc.","keywords":"","stats":"E: 79+, FF: 29+, GC: 49+, S: 14.1+"},{"name":"mediasource","title":"Media Source Extensions","url":"https://caniuse.com/#feat=mediasource","description":"API allowing media data to be accessed from HTML `video` and `audio` elements.","keywords":"sourcebuffer,endofstream,mse","stats":"IE: 11!pa., E: 12+, FF: 42+, GC: 31+, S: 8+"},{"name":"menu","title":"Context menu item (menuitem element)","url":"https://caniuse.com/#feat=menu","description":"Method of defining a context menu item, now deprecated and [removed from the HTML specification](https://github.com/whatwg/html/issues/2730). ","keywords":"contextmenu,<menuitem>,command","stats":"FF: 84!pa."},{"name":"meta-theme-color","title":"theme-color Meta Tag","url":"https://caniuse.com/#feat=meta-theme-color","description":"Meta tag to define a suggested color that browsers should use to customize the display of the page or of the surrounding user interface. The meta tag overrides any theme-color set in the web app manifest.","keywords":"","stats":"GC: 110!pa., S: 15+"},{"name":"meter","title":"meter element","url":"https://caniuse.com/#feat=meter","description":"Method of indicating the current level of a gauge.","keywords":"<meter>","stats":"E: 13+, FF: 16+, GC: 8+, S: 6+"},{"name":"midi","title":"Web MIDI API","url":"https://caniuse.com/#feat=midi","description":"The Web MIDI API specification defines a means for web developers to enumerate, manipulate and access MIDI devices","keywords":"webmidi","stats":"E: 79+, GC: 43+"},{"name":"minmaxwh","title":"CSS min/max-width/height","url":"https://caniuse.com/#feat=minmaxwh","description":"Method of setting a minimum or maximum width or height to an element. ","keywords":"min-width,min-height,max-width,max-height","stats":"IE: 9+, E: 12+, FF: 2+, GC: 4+, S: 3.1+"},{"name":"mp3","title":"MP3 audio format","url":"https://caniuse.com/#feat=mp3","description":"Popular lossy audio compression format","keywords":"mpeg","stats":"IE: 9+, E: 12+, FF: 22+, GC: 4+, S: 4+"},{"name":"mpeg-dash","title":"Dynamic Adaptive Streaming over HTTP (MPEG-DASH)","url":"https://caniuse.com/#feat=mpeg-dash","description":"HTTP-based media streaming communications protocol, an alternative to HTTP Live Streaming (HLS).","keywords":"","stats":"E: 12+"},{"name":"mpeg4","title":"MPEG-4/H.264 video format","url":"https://caniuse.com/#feat=mpeg4","description":"Commonly used video compression format.","keywords":"avc,mp4,mpv,mov,aac,h264","stats":"IE: 9+, E: 12+, FF: 35+, GC: 4+, S: 3.2+"},{"name":"multibackgrounds","title":"CSS3 Multiple backgrounds","url":"https://caniuse.com/#feat=multibackgrounds","description":"Method of using multiple images as a background","keywords":"","stats":"IE: 9+, E: 12+, FF: 3.6+, GC: 4+, S: 3.1+"},{"name":"multicolumn","title":"CSS3 Multiple column layout","url":"https://caniuse.com/#feat=multicolumn","description":"Method of flowing information in multiple columns","keywords":"column-count,column-width,column-gap,column-rule,column-rule-type,column-span,column-fill,break-before,break-after,break-inside","stats":"IE: 10+, E: 12+, FF: 108!pa., GC: 110!pa., S: 10+"},{"name":"mutation-events","title":"Mutation events","url":"https://caniuse.com/#feat=mutation-events","description":"Deprecated mechanism for listening to changes made to the DOM, replaced by Mutation Observers.","keywords":"DOMAttrModified,DOMCharacterDataModified,DOMNodeInserted,DOMNodeInsertedIntoDocument,DOMNodeRemoved,DOMNodeRemovedFromDocument,DOMSubtreeModified","stats":"IE: 11!pa., E: 106!pa., FF: 108!pa., GC: 110!pa., S: 16.2!pa."},{"name":"mutationobserver","title":"Mutation Observer","url":"https://caniuse.com/#feat=mutationobserver","description":"Method for observing and reacting to changes to the DOM. Replaces MutationEvents, which is deprecated.","keywords":"MutationObserver","stats":"IE: 11+, E: 12+, FF: 14+, GC: 27+, S: 6.1+"},{"name":"namevalue-storage","title":"Web Storage - name/value pairs","url":"https://caniuse.com/#feat=namevalue-storage","description":"Method of storing data locally like cookies, but for larger amounts of data (sessionStorage and localStorage, used to fall under HTML5).","keywords":"webstorage,local storage","stats":"IE: 8+, E: 12+, FF: 3.5+, GC: 4+, S: 4+"},{"name":"native-filesystem-api","title":"File System Access API","url":"https://caniuse.com/#feat=native-filesystem-api","description":"API for manipulating files in the device's local file system (not in a sandbox).","keywords":"File System,File System API,chooseFileSystemEntries,getFile","stats":"E: 106!pa., GC: 110!pa., S: 16.2!pa."},{"name":"nav-timing","title":"Navigation Timing API","url":"https://caniuse.com/#feat=nav-timing","description":"API for accessing timing information related to navigation and elements.","keywords":"performance,performance.timing,performancenavigation","stats":"IE: 9+, E: 12+, FF: 7+, GC: 13+, S: 8+"},{"name":"netinfo","title":"Network Information API","url":"https://caniuse.com/#feat=netinfo","description":"The Network Information API enables web applications to access information about the network connection in use by the device. Accessed via `navigator.connection`","keywords":"performance,network,network information,netinfo","stats":"E: 106!pa., GC: 110!pa."},{"name":"notifications","title":"Web Notifications","url":"https://caniuse.com/#feat=notifications","description":"Method of alerting the user outside of a web page by displaying notifications (that do not require interaction by the user).","keywords":"","stats":"E: 14+, FF: 22+, GC: 22+, S: 6+"},{"name":"object-entries","title":"Object.entries","url":"https://caniuse.com/#feat=object-entries","description":"The `Object.entries()` method creates a multi-dimensional array of key value pairs from the given object.","keywords":"ecmascript 2017,javascript","stats":"E: 14+, FF: 47+, GC: 54+, S: 10.1+"},{"name":"object-fit","title":"CSS3 object-fit/object-position","url":"https://caniuse.com/#feat=object-fit","description":"Method of specifying how an object (image or video) should fit inside its box. object-fit options include \"contain\" (fit according to aspect ratio), \"fill\" (stretches object to fill) and \"cover\" (overflows box but maintains ratio), where object-position allows the object to be repositioned like background-image does.","keywords":"objectfit,objectposition","stats":"E: 79+, FF: 36+, GC: 32+, S: 10+"},{"name":"object-observe","title":"Object.observe data binding","url":"https://caniuse.com/#feat=object-observe","description":"Method for data binding, a now-withdrawn ECMAScript 7 proposal","keywords":"","stats":"GC: 36+"},{"name":"object-values","title":"Object.values method","url":"https://caniuse.com/#feat=object-values","description":"The `Object.values()` method returns an array of a given object's own enumerable property values.","keywords":"object,values","stats":"IE: 11w/pl, E: 14+, FF: 47+, GC: 54+, S: 10.1+"},{"name":"objectrtc","title":"Object RTC (ORTC) API for WebRTC","url":"https://caniuse.com/#feat=objectrtc","description":"Enables mobile endpoints to talk to servers and web browsers with Real-Time Communications (RTC) capabilities via native and simple JavaScript APIs","keywords":"RTC,WebRTC,ORTC,ObjectRTC,RTCIceTransport,RTCIceGatherer,RTCRtpSender,RTCRtpReceiver,Real Time,video,webcam","stats":"E: 13+"},{"name":"offline-apps","title":"Offline web applications","url":"https://caniuse.com/#feat=offline-apps","description":"Now deprecated method of defining web page files to be cached using a cache manifest file, allowing them to work offline on subsequent visits to the page. ","keywords":"appcache,applicationcache,app cache,application cache,online","stats":"IE: 10+, E: 12+, FF: 3.5+, GC: 4+, S: 4+"},{"name":"offscreencanvas","title":"OffscreenCanvas","url":"https://caniuse.com/#feat=offscreencanvas","description":"OffscreenCanvas allows canvas drawing to occur with no connection to the DOM and can be used inside workers.","keywords":"","stats":"E: 79+, FF: 105+, GC: 69+"},{"name":"ogg-vorbis","title":"Ogg Vorbis audio format","url":"https://caniuse.com/#feat=ogg-vorbis","description":"Vorbis is a free and open source audio format, most commonly used with the Ogg container.","keywords":".ogg,.oga,application/ogg,audio/ogg","stats":"E: 17+, FF: 3.5+, GC: 4+, S: 16.2!pa."},{"name":"ogv","title":"Ogg/Theora video format","url":"https://caniuse.com/#feat=ogv","description":"Free lossy video compression format.","keywords":"xiph","stats":"IE: 11w/pl, E: 17+, FF: 3.5+, GC: 4+"},{"name":"ol-reversed","title":"Reversed attribute of ordered lists","url":"https://caniuse.com/#feat=ol-reversed","description":"This attribute makes an ordered list number its items in descending order (large to small), instead of ascending order (small to large; the default). The order that the list items are displayed in is not affected.","keywords":"reversed,list,ol,attribute","stats":"E: 79+, FF: 18+, GC: 20+, S: 6.1+"},{"name":"once-event-listener","title":"\"once\" event listener option","url":"https://caniuse.com/#feat=once-event-listener","description":"Causes an event listener to be automatically removed after it gets invoked, so that it only gets invoked once. Similar to jQuery's `$.one()` feature.","keywords":"event,listener,options,once","stats":"E: 16+, FF: 50+, GC: 55+, S: 10+"},{"name":"online-status","title":"Online/offline status","url":"https://caniuse.com/#feat=online-status","description":"Events to indicate when the user's connected (`online` and `offline` events) and the `navigator.onLine` property to see current status.","keywords":"","stats":"IE: 9+, E: 12+, FF: 3.5+, GC: 14+, S: 5+"},{"name":"opus","title":"Opus audio format","url":"https://caniuse.com/#feat=opus","description":"Royalty-free open audio codec by IETF, which incorporated SILK from Skype and CELT from Xiph.org, to serve higher sound quality and lower latency at the same bitrate.","keywords":"","stats":"E: 14+, FF: 15+, GC: 33+, S: 16.2!pa."},{"name":"orientation-sensor","title":"Orientation Sensor","url":"https://caniuse.com/#feat=orientation-sensor","description":"Defines a base orientation sensor interface and concrete sensor subclasses to monitor the deviceÕs physical orientation in relation to a stationary three dimensional Cartesian coordinate system.","keywords":"","stats":"E: 79+, GC: 67+"},{"name":"outline","title":"CSS outline properties","url":"https://caniuse.com/#feat=outline","description":"The CSS outline properties draw a border around an element that does not affect layout, making it ideal for highlighting. This covers the `outline` shorthand, as well as `outline-width`, `outline-style`, `outline-color` and `outline-offset`. ","keywords":"-moz-outline,outline-width,outline-style,outline-color,outline-radius","stats":"IE: 11!pa., E: 15+, FF: 2+, GC: 4+, S: 3.1+"},{"name":"pad-start-end","title":"String.prototype.padStart(), String.prototype.padEnd()","url":"https://caniuse.com/#feat=pad-start-end","description":"The `padStart()` and `padEnd()` methods pad the current string with a given string (eventually repeated) so that the resulting string reaches a given length. The pad is applied from the start (left) of the current string for `padStart()`, and applied from the end (right) of the current string for `padEnd()`.","keywords":"pad,pad start,pad end","stats":"E: 15+, FF: 48+, GC: 57+, S: 10+"},{"name":"page-transition-events","title":"PageTransitionEvent","url":"https://caniuse.com/#feat=page-transition-events","description":"Fired at the Window when the page's entry in the session history stops being the current entry. Includes the `pageshow` and `pagehide` events.","keywords":"history,page,transition,hide,show,bfcache,event,persisted,cache,back,forward","stats":"IE: 11+, E: 12+, FF: 2+, GC: 4+, S: 5+"},{"name":"pagevisibility","title":"Page Visibility","url":"https://caniuse.com/#feat=pagevisibility","description":"JavaScript API for determining whether a document is visible on the display","keywords":"visibilitystate,visibilitychange,onvisibilitychange","stats":"IE: 10+, E: 12+, FF: 18+, GC: 33+, S: 6.1+"},{"name":"passive-event-listener","title":"Passive event listeners","url":"https://caniuse.com/#feat=passive-event-listener","description":"Event listeners created with the `passive: true` option cannot cancel (`preventDefault()`) the events they receive. Primarily intended to be used with touch events and `wheel` events. Since they cannot prevent scrolls, passive event listeners allow the browser to perform optimizations that result in smoother scrolling.","keywords":"passive,event,listener,options","stats":"E: 16+, FF: 49+, GC: 51+, S: 10+"},{"name":"path2d","title":"Path2D","url":"https://caniuse.com/#feat=path2d","description":"Allows path objects to be declared on 2D canvas surfaces","keywords":"addpath","stats":"E: 79+, FF: 48+, GC: 68+, S: 9.1+"},{"name":"payment-request","title":"Payment Request API","url":"https://caniuse.com/#feat=payment-request","description":"Payment Request is a new API for the open web that makes checkout flows easier, faster and consistent on shopping sites.","keywords":"PaymentRequest,Web Payments","stats":"E: 79+, FF: 108!pa., GC: 78+, S: 12.1+"},{"name":"pdf-viewer","title":"Built-in PDF viewer","url":"https://caniuse.com/#feat=pdf-viewer","description":"Support for an PDF viewer that is part of the browser, rather than requiring a PDF file to be opened in an external application.","keywords":"pdf reader","stats":"IE: 11!pa., E: 15+, FF: 19+, GC: 15+, S: 4+"},{"name":"permissions-api","title":"Permissions API","url":"https://caniuse.com/#feat=permissions-api","description":"High-level JavaScript API for checking and requesting permissions","keywords":"web-permissions,navigator.permissions","stats":"E: 79+, FF: 46+, GC: 43+, S: 16.0+"},{"name":"permissions-policy","title":"Permissions Policy","url":"https://caniuse.com/#feat=permissions-policy","description":"A security mechanism that allows developers to explicitly enable or disable various powerful browser features for a given site. Similar to [Document Policy](/document-policy).","keywords":"feature,security,header,allow,attribute,allow attribute,attribute allow,feature policy,feature-policy,document.featurePolicy,document.policy,permissions-policy,document.permissionsPolicy","stats":"E: 106!pa., GC: 110!pa."},{"name":"picture","title":"Picture element","url":"https://caniuse.com/#feat=picture","description":"A responsive images method to control which image resource a user agent presents to a user, based on resolution, media query and/or support for a particular image format","keywords":"<picture>","stats":"E: 13+, FF: 38+, GC: 38+, S: 9.1+"},{"name":"picture-in-picture","title":"Picture-in-Picture","url":"https://caniuse.com/#feat=picture-in-picture","description":"Allows websites to create a floating video window that is always on top of other windows so that users may continue consuming media while they interact with other sites or applications on their device.","keywords":"Picture-in-Picture,PictureInPicture,pip,pop-out,autoPictureInPicture,disablePictureInPicture,auto,disable,picture in picture,pseudo","stats":"E: 79+, FF: 108!pa., GC: 70+, S: 13.1+"},{"name":"ping","title":"Ping attribute","url":"https://caniuse.com/#feat=ping","description":"When used on an anchor, this attribute signifies that the browser should send a ping request the resource the attribute points to.","keywords":"ping,a.ping,a[ping],ping attribute","stats":"E: 17+, GC: 15+, S: 6+"},{"name":"png-alpha","title":"PNG alpha transparency","url":"https://caniuse.com/#feat=png-alpha","description":"Semi-transparent areas in PNG files","keywords":"","stats":"IE: 7+, E: 12+, FF: 2+, GC: 4+, S: 3.1+"},{"name":"pointer","title":"Pointer events","url":"https://caniuse.com/#feat=pointer","description":"This specification integrates various inputs from mice, touchscreens, and pens, making separate implementations no longer necessary and authoring for cross-device pointers easier. Not to be mistaken with the unrelated \"pointer-events\" CSS property.","keywords":"pointerdown,pointermove,pointerup,pointercancel,pointerover,pointerout,pointerenter,pointerleave","stats":"IE: 11+, E: 12+, FF: 59+, GC: 55+, S: 13+"},{"name":"pointer-events","title":"CSS pointer-events (for HTML)","url":"https://caniuse.com/#feat=pointer-events","description":"This CSS property, when set to \"none\" allows elements to not receive hover/click events, instead the event will occur on anything behind it. ","keywords":"pointerevents,pointer-events:none","stats":"IE: 11+, E: 12+, FF: 3.6+, GC: 4+, S: 4+"},{"name":"pointerlock","title":"Pointer Lock API","url":"https://caniuse.com/#feat=pointerlock","description":"API that provides access to raw mouse movement data. This is done by ignoring boundaries resulting from screen edges where the cursor can't go beyond, providing proper control for first person or real time strategy games. ","keywords":"mouselock,pointer lock,mouse lock,requestPointerLock,pointerLockElement,exitPointerLock,movementX,movementY","stats":"E: 13+, FF: 41+, GC: 37+, S: 10.1+"},{"name":"portals","title":"Portals","url":"https://caniuse.com/#feat=portals","description":"Portals enable seamless navigation between sites or pages. A new page can be loaded as an inset using the `<portal>` element (similar to an iframe) which can then seamlessly transition to the new navigated state when \"activated\".","keywords":"portal api,portals api,portal element,htmlportalelement,portal.activate,onportalactivate","stats":""},{"name":"prefers-color-scheme","title":"prefers-color-scheme media query","url":"https://caniuse.com/#feat=prefers-color-scheme","description":"Media query to detect if the user has set their system to use a light or dark color theme.","keywords":"prefers-dark-interface","stats":"E: 79+, FF: 67+, GC: 76+, S: 12.1+"},{"name":"prefers-reduced-motion","title":"prefers-reduced-motion media query","url":"https://caniuse.com/#feat=prefers-reduced-motion","description":"CSS media query based on a user preference for preferring reduced motion (animation, etc).","keywords":"no-preference","stats":"E: 79+, FF: 63+, GC: 74+, S: 10.1+"},{"name":"progress","title":"progress element","url":"https://caniuse.com/#feat=progress","description":"Method of indicating a progress state.","keywords":"#progressmeter,<progress>","stats":"IE: 10+, E: 12+, FF: 6+, GC: 8+, S: 6+"},{"name":"promise-finally","title":"Promise.prototype.finally","url":"https://caniuse.com/#feat=promise-finally","description":"When the promise is settled, whether fulfilled or rejected, the specified callback function is executed.","keywords":"promise.finally","stats":"E: 18+, FF: 58+, GC: 63+, S: 11.1+"},{"name":"promises","title":"Promises","url":"https://caniuse.com/#feat=promises","description":"A promise represents the eventual result of an asynchronous operation.","keywords":"promise,futures","stats":"IE: 11w/pl, E: 12+, FF: 29+, GC: 33+, S: 7.1+"},{"name":"proximity","title":"Proximity API","url":"https://caniuse.com/#feat=proximity","description":"Defines events that provide information about the distance between a device and an object, as measured by a proximity sensor.","keywords":"","stats":"FF: 15+"},{"name":"proxy","title":"Proxy object","url":"https://caniuse.com/#feat=proxy","description":"The Proxy object allows custom behavior to be defined for fundamental operations. Useful for logging, profiling, object visualization, etc.","keywords":"proxies,es6,es2015,traps,meta,virtual,logging,host","stats":"E: 12+, FF: 18+, GC: 49+, S: 10+"},{"name":"publickeypinning","title":"HTTP Public Key Pinning","url":"https://caniuse.com/#feat=publickeypinning","description":"Declare that a website's HTTPS certificate should only be treated as valid if the public key is contained in a list specified over HTTP to prevent MITM attacks that use valid CA-issued certificates.","keywords":"pkp,hpkp,security,header","stats":"FF: 35+, GC: 38+"},{"name":"push-api","title":"Push API","url":"https://caniuse.com/#feat=push-api","description":"API to allow messages to be pushed from a server to a browser, even when the site isn't focused or even open in the browser.","keywords":"web push,push notifications","stats":"E: 17+, GC: 49!pa., S: 16.2!pa."},{"name":"queryselector","title":"querySelector/querySelectorAll","url":"https://caniuse.com/#feat=queryselector","description":"Method of accessing DOM elements using CSS selectors","keywords":"query,selectors,selectors api,document.queryselector","stats":"IE: 9+, E: 12+, FF: 3.5+, GC: 4+, S: 3.1+"},{"name":"readonly-attr","title":"readonly attribute of input and textarea elements","url":"https://caniuse.com/#feat=readonly-attr","description":"Makes the form control non-editable. Unlike the `disabled` attribute, `readonly` form controls are still included in form submissions and the user can still select (but not edit) their value text.","keywords":"readonly,read,attribute,edit,editable","stats":"IE: 6+, E: 12+, FF: 4+, GC: 26+, S: 5.1+"},{"name":"referrer-policy","title":"Referrer Policy","url":"https://caniuse.com/#feat=referrer-policy","description":"A policy that controls how much information is shared through the HTTP referrer header. Helps to protect user privacy.","keywords":"meta,referrer,referer","stats":"IE: 11!pa., E: 79+, FF: 36+, GC: 61+, S: 11.1+"},{"name":"registerprotocolhandler","title":"Custom protocol handling","url":"https://caniuse.com/#feat=registerprotocolhandler","description":"Method of allowing a webpage to handle a given protocol using `navigator.registerProtocolHandler`. This allows certain URLs to be opened by a given web application, for example `mailto:` addresses can be opened by a webmail client.","keywords":"","stats":"FF: 3+"},{"name":"rel-noopener","title":"rel=noopener","url":"https://caniuse.com/#feat=rel-noopener","description":"Ensure new browsing contexts are opened without a useful `window.opener`","keywords":"rel,relation,link,security","stats":"E: 79+, FF: 52+, GC: 49+, S: 10.1+"},{"name":"rel-noreferrer","title":"Link type \"noreferrer\"","url":"https://caniuse.com/#feat=rel-noreferrer","description":"Links with `rel=\"noreferrer\"` set do not send the request's \"referrer\" header. This prevents the destination site from seeing what URL the user came from.","keywords":"","stats":"IE: 11!pa., E: 13+, FF: 33+, GC: 16+, S: 5+"},{"name":"rellist","title":"relList (DOMTokenList)","url":"https://caniuse.com/#feat=rellist","description":"Method of easily manipulating rel attribute values on elements, using the DOMTokenList object (similar to classList).","keywords":"","stats":"E: 18+, FF: 30+, GC: 65+, S: 9+"},{"name":"rem","title":"rem (root em) units","url":"https://caniuse.com/#feat=rem","description":"Type of unit similar to `em`, but relative only to the root element, not any parent element. Thus compounding does not occur as it does with `em` units.","keywords":"rems","stats":"IE: 11+, E: 12+, FF: 3.6+, GC: 4+, S: 5+"},{"name":"requestanimationframe","title":"requestAnimationFrame","url":"https://caniuse.com/#feat=requestanimationframe","description":"API allowing a more efficient way of running script-based animation, compared to traditional methods using timeouts. Also covers support for `cancelAnimationFrame`","keywords":"","stats":"IE: 10+, E: 12+, FF: 23+, GC: 24+, S: 6.1+"},{"name":"requestidlecallback","title":"requestIdleCallback","url":"https://caniuse.com/#feat=requestidlecallback","description":"API allowing the execution of JavaScript to be queued to run in idle browser time, either at the end of a frame or when the user is inactive. Also covers support for `cancelIdleCallback`. The API has similarities with `requestAnimationFrame`.","keywords":"requestIdleCallback,request,idle","stats":"E: 79+, FF: 55+, GC: 47+"},{"name":"resizeobserver","title":"Resize Observer","url":"https://caniuse.com/#feat=resizeobserver","description":"Method for observing and reacting to changes to sizes of DOM elements.","keywords":"ResizeObserver,onresize,resize events","stats":"E: 79+, FF: 69+, GC: 64+, S: 13.1+"},{"name":"resource-timing","title":"Resource Timing","url":"https://caniuse.com/#feat=resource-timing","description":"Method to help web developers to collect complete timing information related to resources on a document.","keywords":"performance,testing,resource","stats":"IE: 10+, E: 12+, FF: 35+, GC: 25+, S: 11.1+"},{"name":"rest-parameters","title":"Rest parameters","url":"https://caniuse.com/#feat=rest-parameters","description":"Allows representation of an indefinite number of arguments as an array.","keywords":"ES6,JavaScript","stats":"E: 12+, FF: 15+, GC: 47+, S: 10+"},{"name":"rtcpeerconnection","title":"WebRTC Peer-to-peer connections","url":"https://caniuse.com/#feat=rtcpeerconnection","description":"Method of allowing two users to communicate directly, browser to browser using the RTCPeerConnection API.","keywords":"webrtc,foo","stats":"E: 79+, FF: 44+, GC: 56+, S: 11+"},{"name":"ruby","title":"Ruby annotation","url":"https://caniuse.com/#feat=ruby","description":"Method of adding pronunciation or other annotations using ruby elements (primarily used in East Asian typography).","keywords":"ruby-base,ruby-text,ruby-position,ruby-merge,ruby-align","stats":"IE: 11!pa., E: 106!pa., FF: 38+, GC: 110!pa., S: 16.2!pa."},{"name":"run-in","title":"display: run-in","url":"https://caniuse.com/#feat=run-in","description":"If the run-in box contains a block box, same as block. If a block box follows the run-in box, the run-in box becomes the first inline box of the block box. If an inline box follows, the run-in box becomes a block box.","keywords":"display,run-in","stats":"IE: 8+, GC: 4+, S: 5+"},{"name":"same-site-cookie-attribute","title":"'SameSite' cookie attribute","url":"https://caniuse.com/#feat=same-site-cookie-attribute","description":"Same-site cookies (\"First-Party-Only\" or \"First-Party\") allow servers to mitigate the risk of CSRF and information leakage attacks by asserting that a particular cookie should only be sent with requests initiated from the same registrable domain.","keywords":"security,cookies,cookie,csrf","stats":"IE: 11!pa., E: 18+, FF: 60+, GC: 51+, S: 15+"},{"name":"screen-orientation","title":"Screen Orientation","url":"https://caniuse.com/#feat=screen-orientation","description":"Provides the ability to read the screen orientation state, to be informed when this state changes, and to be able to lock the screen orientation to a specific state.","keywords":"lockorientation,unlockorientation","stats":"IE: 11!pa., E: 79+, FF: 44+, GC: 38+"},{"name":"script-async","title":"async attribute for external scripts","url":"https://caniuse.com/#feat=script-async","description":"The boolean async attribute on script elements allows the external JavaScript file to run when it's available, without delaying page load first.","keywords":"","stats":"IE: 10+, E: 12+, FF: 3.6+, GC: 8+, S: 5.1+"},{"name":"script-defer","title":"defer attribute for external scripts","url":"https://caniuse.com/#feat=script-defer","description":"The boolean defer attribute on script elements allows the external JavaScript file to run when the DOM is loaded, without delaying page load first.","keywords":"","stats":"IE: 10+, E: 12+, FF: 31+, GC: 8+, S: 5+"},{"name":"scrollintoview","title":"scrollIntoView","url":"https://caniuse.com/#feat=scrollintoview","description":"The `Element.scrollIntoView()` method scrolls the current element into the visible area of the browser window. Parameters can be provided to set the position inside the visible area as well as whether scrolling should be instant or smooth.","keywords":"","stats":"IE: 11!pa., E: 79+, FF: 36+, GC: 61+, S: 16.0+"},{"name":"scrollintoviewifneeded","title":"Element.scrollIntoViewIfNeeded()","url":"https://caniuse.com/#feat=scrollintoviewifneeded","description":"If the element is fully within the visible area of the viewport, it does nothing. Otherwise, the element is scrolled into view. A proprietary variant of the standard `Element.scrollIntoView()` method.","keywords":"scrollIntoViewIfNeeded,scroll","stats":"E: 79+, GC: 15+, S: 5.1+"},{"name":"sdch","title":"SDCH Accept-Encoding/Content-Encoding","url":"https://caniuse.com/#feat=sdch","description":"Shared Dictionary Compression over HTTP","keywords":"http,compression,accept,content,encoding,sdch","stats":"GC: 4+"},{"name":"selection-api","title":"Selection API","url":"https://caniuse.com/#feat=selection-api","description":"API for accessing selected content of a document, including the `window.getSelection()` method, as well as the `selectstart` & `selectionchange` events on `document`.","keywords":"","stats":"IE: 9+, E: 12+, FF: 52+, GC: 15+, S: 5.1+"},{"name":"server-timing","title":"Server Timing","url":"https://caniuse.com/#feat=server-timing","description":"Mechanism for web developers to annotate network requests with server timing information.","keywords":"performance,performance.timing,resource,performancenavigation,PerformanceServerTiming","stats":"E: 79+, FF: 61+, GC: 65+, S: 16.2!pa."},{"name":"serviceworkers","title":"Service Workers","url":"https://caniuse.com/#feat=serviceworkers","description":"Method that enables applications to take advantage of persistent background processing, including hooks to enable bootstrapping of web applications while offline.","keywords":"","stats":"E: 17+, FF: 44+, GC: 45+, S: 11.1+"},{"name":"setimmediate","title":"Efficient Script Yielding: setImmediate()","url":"https://caniuse.com/#feat=setimmediate","description":"Yields control flow without the minimum delays enforced by setTimeout","keywords":"setImmediate,clearImmediate,setTimeout,performance","stats":"IE: 10+, E: 12+"},{"name":"shadowdom","title":"Shadow DOM (deprecated V0 spec)","url":"https://caniuse.com/#feat=shadowdom","description":"Original V0 version of the Shadow DOM specification. See [Shadow DOM V1](#feat=shadowdomv1) for support for the latest version. ","keywords":"","stats":"E: 79+, GC: 35+"},{"name":"shadowdomv1","title":"Shadow DOM (V1)","url":"https://caniuse.com/#feat=shadowdomv1","description":"Method of establishing and maintaining functional boundaries between DOM trees and how these trees interact with each other within a document, thus enabling better functional encapsulation within the DOM & CSS.","keywords":"webcomponents,shadow dom,attachShadow","stats":"E: 79+, FF: 63+, GC: 53+, S: 10+"},{"name":"sharedarraybuffer","title":"Shared Array Buffer","url":"https://caniuse.com/#feat=sharedarraybuffer","description":"Type of ArrayBuffer that can be shared across Workers.","keywords":"","stats":"E: 79+, GC: 68+"},{"name":"sharedworkers","title":"Shared Web Workers","url":"https://caniuse.com/#feat=sharedworkers","description":"Method of allowing multiple scripts to communicate with a single web worker.","keywords":"shared worker","stats":"E: 79+, FF: 29+, GC: 4+, S: 5+"},{"name":"sni","title":"Server Name Indication","url":"https://caniuse.com/#feat=sni","description":"An extension to the TLS computer networking protocol by which a client indicates which hostname it is attempting to connect to at the start of the handshaking process.","keywords":"sni","stats":"IE: 9+, E: 12+, FF: 2+, GC: 6+, S: 3.1+"},{"name":"spdy","title":"SPDY protocol","url":"https://caniuse.com/#feat=spdy","description":"Networking protocol for low-latency transport of content over the web. Superseded by HTTP version 2.","keywords":"","stats":"IE: 11+, FF: 13+, GC: 4+, S: 8+"},{"name":"speech-recognition","title":"Speech Recognition API","url":"https://caniuse.com/#feat=speech-recognition","description":"Method to provide speech input in a web browser.","keywords":"#web-speech,speechrecognition,ASR","stats":"GC: 110!pa., S: 16.2!pa."},{"name":"speech-synthesis","title":"Speech Synthesis API","url":"https://caniuse.com/#feat=speech-synthesis","description":"A web API for controlling a text-to-speech output.","keywords":"speech,synthesis,speechSynthesis,TTS,SpeechSynthesisUtterance,","stats":"E: 14+, FF: 49+, GC: 33+, S: 7+"},{"name":"spellcheck-attribute","title":"Spellcheck attribute","url":"https://caniuse.com/#feat=spellcheck-attribute","description":"Attribute for `input`/`textarea` fields to enable/disable the browser's spellchecker.","keywords":"spelling","stats":"IE: 10+, E: 12+, FF: 2+, GC: 9+, S: 5.1+"},{"name":"sql-storage","title":"Web SQL Database","url":"https://caniuse.com/#feat=sql-storage","description":"Method of storing data client-side, allows SQLite database queries for access and manipulation.","keywords":"db-storage,websql","stats":"E: 79+, GC: 4+, S: 3.1+"},{"name":"srcset","title":"Srcset and sizes attributes","url":"https://caniuse.com/#feat=srcset","description":"The `srcset` and `sizes` attributes on `img` (or `source`) elements allow authors to define various image resources and \"hints\" that assist a user agent to determine the most appropriate image source to display (e.g. high-resolution displays, small monitors, etc).","keywords":"srcset attribute","stats":"E: 16+, FF: 38+, GC: 38+, S: 9+"},{"name":"stream","title":"getUserMedia/Stream API","url":"https://caniuse.com/#feat=stream","description":"Method of accessing external device data (such as a webcam video stream). Formerly this was envisioned as the <device> element.","keywords":"camera,device,getUserMedia,media stream,mediastream,Media Capture API","stats":"E: 12+, FF: 42+, GC: 53+, S: 11+"},{"name":"streams","title":"Streams","url":"https://caniuse.com/#feat=streams","description":"Method of creating, composing, and consuming streams of data, that map efficiently to low-level I/O primitives, and allow easy composition with built-in backpressure and queuing.","keywords":"streams,writablestream,readablestream","stats":"E: 89+, FF: 102+, GC: 89+, S: 16.2!pa."},{"name":"stricttransportsecurity","title":"Strict Transport Security","url":"https://caniuse.com/#feat=stricttransportsecurity","description":"Declare that a website is only accessible over a secure connection (HTTPS).","keywords":"sts,hsts,security,header","stats":"E: 12+, FF: 4+, GC: 4+, S: 7+"},{"name":"style-scoped","title":"Scoped CSS","url":"https://caniuse.com/#feat=style-scoped","description":"Allows CSS rules to be scoped to part of the document, based on the position of the style element. The attribute has been [removed from the current specification](https://github.com/whatwg/html/issues/552).","keywords":"scope,stylescoped","stats":"FF: 21+"},{"name":"subresource-integrity","title":"Subresource Integrity","url":"https://caniuse.com/#feat=subresource-integrity","description":"Subresource Integrity enables browsers to verify that file is delivered without unexpected manipulation.","keywords":"SRI, security, hash","stats":"E: 17+, FF: 43+, GC: 45+, S: 11+"},{"name":"svg","title":"SVG (basic support)","url":"https://caniuse.com/#feat=svg","description":"Method of displaying basic Vector Graphics features using the embed or object elements. Refers to the SVG 1.1 spec.","keywords":".svg,rect,circle,ellipse,line,polyline,polygon,defs,symbol,use,tspan,tref,textpath,stroke-dasharray,stroke-dashoffset,stroke-opacity","stats":"IE: 11!pa., E: 79+, FF: 3+, GC: 4+, S: 3.2+"},{"name":"svg-css","title":"SVG in CSS backgrounds","url":"https://caniuse.com/#feat=svg-css","description":"Method of using SVG images as CSS backgrounds","keywords":"svg-in-css,svgincss,css-svg","stats":"IE: 9+, E: 16+, FF: 24+, GC: 5+, S: 5+"},{"name":"svg-filters","title":"SVG filters","url":"https://caniuse.com/#feat=svg-filters","description":"Method of using Photoshop-like effects on SVG objects including blurring and color manipulation.","keywords":"","stats":"IE: 10+, E: 12+, FF: 3+, GC: 8+, S: 6+"},{"name":"svg-fonts","title":"SVG fonts","url":"https://caniuse.com/#feat=svg-fonts","description":"Method of using fonts defined as SVG shapes. Removed from [SVG 2.0](https://www.w3.org/TR/SVG2/changes.html#fonts) and considered as a deprecated feature with support being removed from browsers.","keywords":"","stats":"IE: 8w/pl, GC: 4+, S: 3.2+"},{"name":"svg-fragment","title":"SVG fragment identifiers","url":"https://caniuse.com/#feat=svg-fragment","description":"Method of displaying only a part of an SVG image by defining a view ID or view box dimensions as the file's fragment identifier.","keywords":"fragments,sprite,svg,use","stats":"IE: 11!pa., E: 12+, FF: 15+, GC: 50+, S: 11.1+"},{"name":"svg-html","title":"SVG effects for HTML","url":"https://caniuse.com/#feat=svg-html","description":"Method of using SVG transforms, filters, etc on HTML elements using either CSS or the foreignObject element","keywords":"","stats":"IE: 11!pa., E: 106!pa., FF: 3.5+, GC: 110!pa., S: 16.2!pa."},{"name":"svg-html5","title":"Inline SVG in HTML5","url":"https://caniuse.com/#feat=svg-html5","description":"Method of using SVG tags directly in HTML documents. Requires HTML5 parser.","keywords":"","stats":"IE: 8w/pl, E: 17+, FF: 4+, GC: 7+, S: 9+"},{"name":"svg-img","title":"SVG in HTML img element","url":"https://caniuse.com/#feat=svg-img","description":"Method of displaying SVG images in HTML using <img>.","keywords":"svg-as-img,svg-in-img","stats":"IE: 9+, E: 12+, FF: 4+, GC: 28+, S: 9+"},{"name":"svg-smil","title":"SVG SMIL animation","url":"https://caniuse.com/#feat=svg-smil","description":"Method of using animation elements to animate SVG images","keywords":"svg animation","stats":"IE: 11w/pl, E: 79+, FF: 4+, GC: 5+, S: 6+"},{"name":"sxg","title":"Signed HTTP Exchanges (SXG)","url":"https://caniuse.com/#feat=sxg","description":"Part of the Web Packaging spec, Signed HTTP Exchanges allow a different origin server to provide a resource, and this will be treated as if it came from the original server. This can be use with AMP CDNs, for example, to allow the original URL to be displayed in the URL bar.","keywords":"SXG, WebPackage, AMP","stats":"E: 79+, GC: 73+"},{"name":"tabindex-attr","title":"tabindex global attribute","url":"https://caniuse.com/#feat=tabindex-attr","description":"Specifies the focusability of the element and in what order (if any) it should become focused (relative to other elements) when \"tabbing\" through the document.","keywords":"tabindex,tab,tabIndex","stats":"IE: 7+, E: 12+, GC: 15+"},{"name":"template","title":"HTML templates","url":"https://caniuse.com/#feat=template","description":"Method of declaring a portion of reusable markup that is parsed but not rendered until cloned.","keywords":"webcomponents, template, <template>","stats":"E: 15+, FF: 22+, GC: 35+, S: 9+"},{"name":"template-literals","title":"ES6 Template Literals (Template Strings)","url":"https://caniuse.com/#feat=template-literals","description":"Template literals are string literals allowing embedded expressions using backtick characters (`). You can use multi-line strings and string interpolation features with them. Formerly known as template strings.","keywords":"``,templateliterals,multiline","stats":"E: 13+, FF: 34+, GC: 41+, S: 9.1+"},{"name":"temporal","title":"Temporal","url":"https://caniuse.com/#feat=temporal","description":"A modern API for working with date and time, meant to supersede the original `Date` API.","keywords":"temporal,date,time","stats":""},{"name":"text-decoration","title":"text-decoration styling","url":"https://caniuse.com/#feat=text-decoration","description":"Method of defining the type, style and color of lines in the text-decoration property. These can be defined as shorthand (e.g. `text-decoration: line-through dashed blue`) or as single properties (e.g. `text-decoration-color: blue`)","keywords":"text-decoration-line,text-decoration-style,text-decoration-color,text-decoration-skip","stats":"E: 106!pa., FF: 108!pa., GC: 110!pa., S: 16.2!pa."},{"name":"text-emphasis","title":"text-emphasis styling","url":"https://caniuse.com/#feat=text-emphasis","description":"Method of using small symbols next to each glyph to emphasize a run of text, commonly used in East Asian languages. The `text-emphasis` shorthand, and its `text-emphasis-style` and `text-emphasis-color` longhands, can be used to apply marks to the text. The `text-emphasis-position` property, which inherits separately, allows setting the emphasis marks' position with respect to the text.","keywords":"text-emphasis,text-emphasis-position,text-emphasis-style,text-emphasis-color","stats":"E: 99+, FF: 46+, GC: 99+, S: 7.1+"},{"name":"text-overflow","title":"CSS3 Text-overflow","url":"https://caniuse.com/#feat=text-overflow","description":"Append ellipsis when text overflows its containing element","keywords":"textoverflow,ellipsis","stats":"IE: 6+, E: 12+, FF: 7+, GC: 4+, S: 3.1+"},{"name":"text-size-adjust","title":"CSS text-size-adjust","url":"https://caniuse.com/#feat=text-size-adjust","description":"On mobile devices, the text-size-adjust CSS property allows Web authors to control if and how the text-inflating algorithm is applied to the textual content of the element it is applied to.","keywords":"","stats":"E: 79+, GC: 54+"},{"name":"text-stroke","title":"CSS text-stroke and text-fill","url":"https://caniuse.com/#feat=text-stroke","description":"Method of declaring the outline (stroke) width and color for text.","keywords":"textstroke,stroke-color,stroke-width,text-fill-color,text-outline","stats":"E: 106-px-, FF: 108-px-, GC: 110-px-, S: 16.2-px-"},{"name":"textcontent","title":"Node.textContent","url":"https://caniuse.com/#feat=textcontent","description":"DOM Node property representing the text content of a node and its descendants","keywords":"","stats":"IE: 9+, E: 12+, FF: 2+, GC: 4+, S: 3.2+"},{"name":"textencoder","title":"TextEncoder & TextDecoder","url":"https://caniuse.com/#feat=textencoder","description":"`TextEncoder` encodes a JavaScript string into bytes using the UTF-8 encoding and returns the resulting `Uint8Array` of those bytes. `TextDecoder` does the reverse.","keywords":"encoding,text,encoder,decoding,decoder,utf,8","stats":"E: 79+, FF: 20+, GC: 38+, S: 10.1+"},{"name":"tls1-1","title":"TLS 1.1","url":"https://caniuse.com/#feat=tls1-1","description":"Version 1.1 of the Transport Layer Security (TLS) protocol.","keywords":"","stats":"IE: 11+, E: 12+, FF: 24+, GC: 22+, S: 7+"},{"name":"tls1-2","title":"TLS 1.2","url":"https://caniuse.com/#feat=tls1-2","description":"Version 1.2 of the Transport Layer Security (TLS) protocol. Allows for data/message confidentiality, and message authentication codes for message integrity and as a by-product message authentication.","keywords":"","stats":"IE: 11+, E: 12+, FF: 27+, GC: 29+, S: 7+"},{"name":"tls1-3","title":"TLS 1.3","url":"https://caniuse.com/#feat=tls1-3","description":"Version 1.3 (the latest one) of the Transport Layer Security (TLS) protocol. Removes weaker elliptic curves and hash functions.","keywords":"","stats":"E: 79+, FF: 63+, GC: 70+, S: 14+"},{"name":"touch","title":"Touch events","url":"https://caniuse.com/#feat=touch","description":"Method of registering when, where and how the interface is touched, for devices with a touch screen. These DOM events are similar to mousedown, mousemove, etc.","keywords":"touchstart,touchend,touchmove,touchenter,touchleave,touchcancel","stats":"IE: 11w/pl, E: 79+, FF: 18+, GC: 22+"},{"name":"transforms2d","title":"CSS3 2D Transforms","url":"https://caniuse.com/#feat=transforms2d","description":"Method of transforming an element including rotating, scaling, etc. Includes support for `transform` as well as `transform-origin` properties.","keywords":"transformation,translate,translatex,translatey,translatez,transform3d,rotation,rotate,scale,skew,css-transforms,transform-origin,transform:rotate,transform:scale,transform:skew","stats":"IE: 9-px-, E: 17+, FF: 16+, GC: 36+, S: 9+"},{"name":"transforms3d","title":"CSS3 3D Transforms","url":"https://caniuse.com/#feat=transforms3d","description":"Method of transforming an element in the third dimension using the `transform` property. Includes support for the `perspective` property to set the perspective in z-space and the `backface-visibility` property to toggle display of the reverse side of a 3D-transformed element.","keywords":"css 3d,3dtransforms,backface visibility,perspective,transform-origin,transform-style,rotatex,rotatey,rotatez,translate3d,translatez,scalez,rotate3d","stats":"IE: 11!pa., E: 12+, FF: 16+, GC: 36+, S: 15.4+"},{"name":"trusted-types","title":"Trusted Types for DOM manipulation","url":"https://caniuse.com/#feat=trusted-types","description":"An API that forces developers to be very explicit about their use of powerful DOM-injection APIs. Can greatly improve security against XSS attacks.","keywords":"trustedTypes,trustedHTML,trusted-types,require-trusted-types-for","stats":"E: 83+, GC: 83+"},{"name":"ttf","title":"TTF/OTF - TrueType and OpenType font support","url":"https://caniuse.com/#feat=ttf","description":"Support for the TrueType (.ttf) and OpenType (.otf) outline font formats in @font-face. ","keywords":"","stats":"IE: 11!pa., E: 12+, FF: 3.5+, GC: 4+, S: 3.1+"},{"name":"typedarrays","title":"Typed Arrays","url":"https://caniuse.com/#feat=typedarrays","description":"JavaScript typed arrays provide a mechanism for accessing raw binary data much more efficiently. Includes: `Int8Array`, `Uint8Array`, `Uint8ClampedArray`, `Int16Array`, `Uint16Array`, `Int32Array`, `Uint32Array`, `Float32Array` & `Float64Array`\r\n","keywords":"ES6,JavaScript,dataview,arraybuffer","stats":"IE: 11+, E: 12+, FF: 4+, GC: 7+, S: 6+"},{"name":"u2f","title":"FIDO U2F API","url":"https://caniuse.com/#feat=u2f","description":"JavaScript API to interact with Universal Second Factor (U2F) devices. This allows users to log into sites more securely using two-factor authentication with a USB dongle.","keywords":"fido,u2f","stats":"FF: 67+, S: 13+"},{"name":"unhandledrejection","title":"unhandledrejection/rejectionhandled events","url":"https://caniuse.com/#feat=unhandledrejection","description":"The `unhandledrejection` event is fired when a Promise is rejected but there is no rejection handler to deal with the rejection. The `rejectionhandled` event is fired when a Promise is rejected, and after the rejection is handled by the promise's rejection handling code.","keywords":"onunhandledrejection,onrejectionhandled,promiserejectionevent","stats":"E: 79+, FF: 69+, GC: 49+, S: 11+"},{"name":"upgradeinsecurerequests","title":"Upgrade Insecure Requests","url":"https://caniuse.com/#feat=upgradeinsecurerequests","description":"Declare that browsers should transparently upgrade HTTP resources on a website to HTTPS.","keywords":"security,header,uir,upgrade-insecure-requests","stats":"E: 17+, FF: 42+, GC: 43+, S: 10.1+"},{"name":"url","title":"URL API","url":"https://caniuse.com/#feat=url","description":"API to retrieve the various parts that make up a given URL from a given URL string.","keywords":"url constructor","stats":"E: 12+, FF: 26+, GC: 32+, S: 7.1+"},{"name":"url-scroll-to-text-fragment","title":"URL Scroll-To-Text Fragment","url":"https://caniuse.com/#feat=url-scroll-to-text-fragment","description":"URL fragment that defines a piece of text to be scrolled into view and highlighted.","keywords":"#:~:text=,Scroll To Text,textTarget,search","stats":"E: 83+, GC: 81+, S: 16.1+"},{"name":"urlsearchparams","title":"URLSearchParams","url":"https://caniuse.com/#feat=urlsearchparams","description":"The URLSearchParams interface defines utility methods to work with the query string of a URL.","keywords":"url,search,params","stats":"E: 17+, FF: 44+, GC: 49+, S: 10.1+"},{"name":"use-strict","title":"ECMAScript 5 Strict Mode","url":"https://caniuse.com/#feat=use-strict","description":"Method of placing code in a \"strict\" operating context.","keywords":"","stats":"IE: 10+, E: 12+, FF: 4+, GC: 13+, S: 6+"},{"name":"user-select-none","title":"CSS user-select: none","url":"https://caniuse.com/#feat=user-select-none","description":"Method of preventing text/element selection using CSS. ","keywords":"","stats":"IE: 11-px-, E: 79+, FF: 69+, GC: 54+, S: 16.2-px-"},{"name":"user-timing","title":"User Timing API","url":"https://caniuse.com/#feat=user-timing","description":"Method to help web developers measure the performance of their applications by giving them access to high precision timestamps.","keywords":"performance,testing,mark,measure","stats":"IE: 10+, E: 12+, FF: 38+, GC: 25+, S: 11+"},{"name":"variable-fonts","title":"Variable fonts","url":"https://caniuse.com/#feat=variable-fonts","description":"OpenType font settings that allows a single font file to behave like multiple fonts: it can contain all the allowed variations in width, weight, slant, optical size, or any other exposed axes of variation as defined by the font designer. Variations can be applied via the `font-variation-settings` property.","keywords":"variable fonts, variation fonts, font variations","stats":"E: 17+, GC: 67+, S: 15+"},{"name":"vector-effect","title":"SVG vector-effect: non-scaling-stroke","url":"https://caniuse.com/#feat=vector-effect","description":"The `non-scaling-stroke` value for the `vector-effect` SVG attribute/CSS property makes strokes appear as the same width regardless of any transformations applied.","keywords":"","stats":"E: 79+, FF: 15+, GC: 15+, S: 5.1+"},{"name":"vibration","title":"Vibration API","url":"https://caniuse.com/#feat=vibration","description":"Method to access the vibration mechanism of the hosting device.","keywords":"vibration,mobile,device","stats":"E: 79+, FF: 16+, GC: 30+"},{"name":"video","title":"Video element","url":"https://caniuse.com/#feat=video","description":"Method of playing videos on webpages (without requiring a plug-in). Includes support for the following media properties: `currentSrc`, `currentTime`, `paused`, `playbackRate`, `buffered`, `duration`, `played`, `seekable`, `ended`, `autoplay`, `loop`, `controls`, `volume` & `muted`","keywords":"<video>,videoHeight,videoWidth,HTMLVideoElement.videoHeight,HTMLVideoElement.videoWidth","stats":"IE: 9+, E: 12+, FF: 20+, GC: 4+, S: 4+"},{"name":"videotracks","title":"Video Tracks","url":"https://caniuse.com/#feat=videotracks","description":"Method of specifying and selecting between multiple video tracks. Useful for providing sign language tracks, burnt-in captions or subtitles, alternative camera angles, etc.","keywords":"VideoTrack,VideoTrackList,media,multiple,selection","stats":"E: 12+, S: 6.1+"},{"name":"viewport-unit-variants","title":"Large, Small, and Dynamic viewport units","url":"https://caniuse.com/#feat=viewport-unit-variants","description":"Viewport units similar to `vw` and `vh` that are based on shown or hidden browser UI states to address shortcomings of the original units. Currently defined as the `lvh`, `lvw`, `svh`, `svw`, `dvh`, `dvw` units.","keywords":"","stats":"FF: 101+, GC: 108+, S: 15.4+"},{"name":"viewport-units","title":"Viewport units: vw, vh, vmin, vmax","url":"https://caniuse.com/#feat=viewport-units","description":"Length units representing a percentage of the current viewport dimensions: width (vw), height (vh), the smaller of the two (vmin), or the larger of the two (vmax).","keywords":"vm,viewport-percentage,100vh,100vw","stats":"IE: 11!pa., E: 16+, FF: 19+, GC: 26+, S: 6.1+"},{"name":"wai-aria","title":"WAI-ARIA Accessibility features","url":"https://caniuse.com/#feat=wai-aria","description":"Method of providing ways for people with disabilities to use dynamic web content and web applications.","keywords":"wai,aria,wai-aria,web accessibility initiative,accessible rich internet applications,html,a11y,accessible,aria-hidden,aria-labelledby,aria-haspopup,aria-expanded,aria-controls,roles","stats":"IE: 11!pa., E: 106!pa., FF: 108!pa., GC: 110!pa., S: 16.2!pa."},{"name":"wake-lock","title":"Screen Wake Lock API","url":"https://caniuse.com/#feat=wake-lock","description":"API to prevent devices from dimming, locking or turning off the screen when the application needs to keep running.","keywords":"navigator.wakelock.request,wakelocksentinel,screen-wake-lock","stats":"E: 90+, GC: 85+"},{"name":"wasm","title":"WebAssembly","url":"https://caniuse.com/#feat=wasm","description":"WebAssembly or \"wasm\" is a new portable, size- and load-time-efficient format suitable for compilation to the web.","keywords":"web assembly","stats":"E: 16+, FF: 53+, GC: 57+, S: 11+"},{"name":"wav","title":"Wav audio format","url":"https://caniuse.com/#feat=wav","description":"Waveform Audio File Format, aka WAV or WAVE, a typically uncompressed audio format. ","keywords":"","stats":"E: 12+, FF: 3.5+, GC: 8+, S: 4+"},{"name":"wbr-element","title":"wbr (word break opportunity) element","url":"https://caniuse.com/#feat=wbr-element","description":"Represents an extra place where a line of text may optionally be broken.","keywords":"wbr,element,word,break,opportunity","stats":"IE: 5.5+, E: 12+, FF: 2+, GC: 4+, S: 3.2+"},{"name":"web-animation","title":"Web Animations API","url":"https://caniuse.com/#feat=web-animation","description":"Lets you create animations that are run in the browser, as well as inspect and manipulate animations created through declarative means like CSS.","keywords":"animate,element.animate,play,pause,reverse,finish,currentTime,startTime,playbackRate,playState,WAAPI","stats":"E: 84+, FF: 81+, GC: 84+, S: 15+"},{"name":"web-app-manifest","title":"Add to home screen (A2HS)","url":"https://caniuse.com/#feat=web-app-manifest","description":"The ability for a user to \"install\" a website and use it as if it was a natively installed app. To enable this behaviour, a website must serve a valid Web App Manifest and load it's assets through a [Service Worker](https://caniuse.com/#feat=serviceworkers).","keywords":"manifest,pwa,progressive web app,web app,wam,web app manifest,install,installable","stats":"E: 79+, GC: 39+"},{"name":"web-bluetooth","title":"Web Bluetooth","url":"https://caniuse.com/#feat=web-bluetooth","description":"Allows web sites to communicate over GATT with nearby user-selected Bluetooth devices in a secure and privacy-preserving way.","keywords":"bluetooth,ble,iot,physicalweb,webbluetooth","stats":""},{"name":"web-serial","title":"Web Serial API","url":"https://caniuse.com/#feat=web-serial","description":"Allows communication with devices via a serial interface.","keywords":"navigator.serial","stats":"E: 89+, GC: 89+"},{"name":"web-share","title":"Web Share API","url":"https://caniuse.com/#feat=web-share","description":"A way to allow websites to invoke the native sharing capabilities of the host platform","keywords":"web share,share,share api,intents api,navigator.share,navigator.canShare","stats":"E: 95+, GC: 110!pa., S: 14+"},{"name":"webauthn","title":"Web Authentication API","url":"https://caniuse.com/#feat=webauthn","description":"The Web Authentication API is an extension of the Credential Management API that enables strong authentication with public key cryptography, enabling password-less authentication and / or secure second-factor authentication without SMS texts.","keywords":"fido,webauthn,webauthm","stats":"E: 18+, FF: 108!pa., GC: 67+, S: 13+"},{"name":"webcodecs","title":"WebCodecs API","url":"https://caniuse.com/#feat=webcodecs","description":"API to provide more control over the encoding and decoding of audio, video, and images.","keywords":"VideoDecoder,AudioDecoder,VideoEncoder,AudioEncoder,EncodedAudioChunk,EncodedVideoChunk,AudioData,VideoFrame,VideoColorSpace,ImageDecoder,ImageTrackList,ImageTrack","stats":"E: 94+, GC: 94+"},{"name":"webgl","title":"WebGL - 3D Canvas graphics","url":"https://caniuse.com/#feat=webgl","description":"Method of generating dynamic 3D graphics using JavaScript, accelerated through hardware","keywords":"web gl","stats":"IE: 10w/pl, E: 79+, FF: 24+, GC: 33+, S: 8+"},{"name":"webgl2","title":"WebGL 2.0","url":"https://caniuse.com/#feat=webgl2","description":"Next version of WebGL. Based on OpenGL ES 3.0.","keywords":"web gl","stats":"E: 79+, FF: 51+, GC: 56+, S: 15+"},{"name":"webgpu","title":"WebGPU","url":"https://caniuse.com/#feat=webgpu","description":"An API for complex rendering and compute, using hardware acceleration. Use cases include demanding 3D games and acceleration of scientific calculations. Meant to supersede WebGL.","keywords":"","stats":""},{"name":"webhid","title":"WebHID API","url":"https://caniuse.com/#feat=webhid","description":"Enables raw access to HID (Human Interface Device) commands for all connected HIDs. Previously, an HID could only be accessed if the browser had implemented a custom API for the specific device.","keywords":"hid,navigator.hid","stats":"E: 89+, GC: 89+"},{"name":"webkit-user-drag","title":"CSS -webkit-user-drag property","url":"https://caniuse.com/#feat=webkit-user-drag","description":"The non-standard `-webkit-user-drag` CSS property can be used to either make an element draggable or explicitly non-draggable (like links and images). See the standardized [draggable attribute/property](/mdn-api_htmlelement_draggable) for the recommended alternative method of accomplishing the same functionality.","keywords":"-webkit-user-drag:none,-webkit-user-drag:element,-webkit-user-drag:auto","stats":"E: 106!pa., GC: 110!pa., S: 3.1+"},{"name":"webm","title":"WebM video format","url":"https://caniuse.com/#feat=webm","description":"Multimedia format designed to provide a royalty-free, high-quality open video compression format for use with HTML5 video. WebM supports the video codec VP8 and VP9.","keywords":"matroska","stats":"IE: 11w/pl, E: 79+, FF: 28+, GC: 25+, S: 16.0+"},{"name":"webnfc","title":"Web NFC","url":"https://caniuse.com/#feat=webnfc","description":"This API allows a website to communicate with NFC tags through a device's NFC reader.","keywords":"NDEF,NDEFReader,NDEFWriter","stats":""},{"name":"webp","title":"WebP image format","url":"https://caniuse.com/#feat=webp","description":"Image format (based on the VP8 video format) that supports lossy and lossless compression, as well as animation and alpha transparency. WebP generally has better compression than JPEG, PNG and GIF and is designed to supersede them. [AVIF](/avif) and [JPEG XL](/jpegxl) are designed to supersede WebP.","keywords":"vp8,vp8l,libwebp,.webp","stats":"E: 18+, FF: 65+, GC: 32+, S: 16.0+"},{"name":"websockets","title":"Web Sockets","url":"https://caniuse.com/#feat=websockets","description":"Bidirectional communication technology for web apps","keywords":"","stats":"IE: 10+, E: 12+, FF: 11+, GC: 16+, S: 7+"},{"name":"webtransport","title":"WebTransport","url":"https://caniuse.com/#feat=webtransport","description":"Protocol framework to send and receive data from servers using [HTTP3](/http3). Similar to [WebSockets](/websockets) but with support for multiple streams, unidirectional streams, out-of-order delivery, and reliable as well as unreliable transport.","keywords":"","stats":"E: 98+, GC: 97+"},{"name":"webusb","title":"WebUSB","url":"https://caniuse.com/#feat=webusb","description":"Allows communication with devices via USB (Universal Serial Bus).","keywords":"","stats":"E: 79+, GC: 61+"},{"name":"webvr","title":"WebVR API","url":"https://caniuse.com/#feat=webvr","description":"API for accessing virtual reality (VR) devices, including sensors and head-mounted displays. Replaced by the [WebXR Device API](/webxr).","keywords":"getvrdevices,getvrdisplays,getdisplays,navigator.vr","stats":""},{"name":"webvtt","title":"WebVTT - Web Video Text Tracks","url":"https://caniuse.com/#feat=webvtt","description":"Format for marking up text captions for multimedia resources.","keywords":"captions,track,vtt,subtitles","stats":"IE: 10+, E: 12+, GC: 18+, S: 6+"},{"name":"webworkers","title":"Web Workers","url":"https://caniuse.com/#feat=webworkers","description":"Method of running scripts in the background, isolated from the web page","keywords":"","stats":"IE: 10+, E: 12+, FF: 3.5+, GC: 4+, S: 4+"},{"name":"webxr","title":"WebXR Device API","url":"https://caniuse.com/#feat=webxr","description":"API for accessing virtual reality (VR) and augmented reality (AR) devices, including sensors and head-mounted displays.","keywords":"navigator.xr","stats":"E: 106!pa., GC: 110!pa."},{"name":"will-change","title":"CSS will-change property","url":"https://caniuse.com/#feat=will-change","description":"Method of optimizing animations by informing the browser which elements will change and what properties will change.","keywords":"scroll-position","stats":"E: 79+, FF: 36+, GC: 36+, S: 9.1+"},{"name":"woff","title":"WOFF - Web Open Font Format","url":"https://caniuse.com/#feat=woff","description":"Compressed TrueType/OpenType font that contains information about the font's source.","keywords":".woff","stats":"IE: 9+, E: 12+, FF: 3.6+, GC: 5+, S: 5.1+"},{"name":"woff2","title":"WOFF 2.0 - Web Open Font Format","url":"https://caniuse.com/#feat=woff2","description":"TrueType/OpenType font that provides better compression than WOFF 1.0.","keywords":".woff2,fontface,webfonts","stats":"E: 14+, FF: 39+, GC: 36+, S: 12+"},{"name":"word-break","title":"CSS3 word-break","url":"https://caniuse.com/#feat=word-break","description":"Property to prevent or allow words to be broken over multiple lines between letters.","keywords":"break-all,keep-all","stats":"IE: 5.5+, E: 12+, FF: 15+, GC: 44+, S: 9+"},{"name":"wordwrap","title":"CSS3 Overflow-wrap","url":"https://caniuse.com/#feat=wordwrap","description":"Allows lines to be broken within words if an otherwise unbreakable string is too long to fit. Currently mostly supported using the `word-wrap` property.","keywords":"wordwrap,word-wrap,break-word","stats":"IE: 11!pa., E: 18+, FF: 49+, GC: 23+, S: 6.1+"},{"name":"x-doc-messaging","title":"Cross-document messaging","url":"https://caniuse.com/#feat=x-doc-messaging","description":"Method of sending information from a page on one domain to a page on a different one (using postMessage)","keywords":"","stats":"IE: 11!pa., E: 12+, FF: 3+, GC: 4+, S: 4+"},{"name":"x-frame-options","title":"X-Frame-Options HTTP header","url":"https://caniuse.com/#feat=x-frame-options","description":"An HTTP header which indicates whether the browser should allow the webpage to be displayed in a frame within another webpage. Used as a defense against clickjacking attacks.","keywords":"x-frame-options,frame,options,header,clickjacking","stats":"IE: 8+, E: 12+, FF: 18+, GC: 110!pa., S: 16.2!pa."},{"name":"xhr2","title":"XMLHttpRequest advanced features","url":"https://caniuse.com/#feat=xhr2","description":"Adds more functionality to XHR (aka AJAX) requests like file uploads, transfer progress information and the ability to send form data. Previously known as [XMLHttpRequest Level 2](https://www.w3.org/TR/2012/WD-XMLHttpRequest-20120117/), these features now appear simply in the XMLHttpRequest spec.","keywords":"formdata,xhr level 2","stats":"IE: 11!pa., E: 12+, FF: 12+, GC: 31+, S: 7.1+"},{"name":"xhtml","title":"XHTML served as application/xhtml+xml","url":"https://caniuse.com/#feat=xhtml","description":"A strict form of HTML, and allows embedding of other XML languages","keywords":"xhtml+xml","stats":"IE: 9+, E: 12+, FF: 2+, GC: 4+, S: 3.1+"},{"name":"xhtmlsmil","title":"XHTML+SMIL animation","url":"https://caniuse.com/#feat=xhtmlsmil","description":"Method of using SMIL animation in web pages","keywords":"","stats":"IE: 8!pa., E: 106w/pl, FF: 108w/pl, GC: 110w/pl, S: 16.2w/pl"},{"name":"xml-serializer","title":"DOM Parsing and Serialization","url":"https://caniuse.com/#feat=xml-serializer","description":"Various DOM parsing and serializing functions, specifically `DOMParser`, `XMLSerializer`, `innerHTML`, `outerHTML` and `insertAdjacentHTML`.","keywords":"parseFromString","stats":"IE: 10+, E: 12+, FF: 12+, GC: 31+, S: 7.1+"}]