Skip to content
jogemu edited this page Jan 12, 2025 · 2 revisions

A comprehensive list of baseline features ordered by the month it was added to baseline. Extracted from the web-features repository maintained by the W3C WebDX Community Group. It can be difficult to always stay up to date. With this list catching up on older baseline features should be easier. Last updated on 2025-01-12, using the code at the bottom of the page.

2024-12

  • Page setup css caniuse
  • ruby-align css
  • ruby-position css
  • scrollbar-gutter css
  • scrollbar-width css
  • ::target-text css
  • Garbage collection webassembly
  • Tail call optimization webassembly

2024-10

  • requestVideoFrameCallback() api
  • Scroll to text fragment html,api caniuse
  • text-wrap-mode css
  • text-wrap: stable css
  • Color management for WebGL api
  • Color management for WebGL2 api

2024-09

  • backdrop-filter css caniuse
  • willReadFrequently api
  • content-visibility css,api caniuse
  • cookieEnabled api
  • Mutually exclusive <details> elements html,api
  • getHTML api
  • HTTP/3 caniuse
  • Relative colors css caniuse
  • Typed function references webassembly

2024-08

  • transition-behavior css

2024-07

  • Alt text for generated content css
  • font-size-adjust svg,css caniuse
  • Unsanitized HTML parsing methods api
  • Registered custom properties css,api
  • Resizable buffers javascript

2024-06

  • Async clipboard api caniuse
  • Gradient interpolation css
  • Set methods javascript

2024-05

  • light-dark() css
  • round(), mod(), and rem() css
  • :state() css,api
  • text-wrap: balance css
  • zoom css caniuse

2024-04

  • align-content in block layouts css
  • Intl.Segmenter javascript
  • transform-box css
  • Vertical form controls css

2024-03

  • AbortSignal.any() api
  • Array grouping javascript
  • checkVisibility() api
  • Promise.withResolvers() javascript
  • text-wrap css
  • text-wrap: nowrap css
  • Transferable ArrayBuffer javascript
  • Extended constant expressions webassembly
  • white-space-collapse css

2024-02

  • Declarative shadow DOM html,api caniuse

2024-01

  • Array.fromAsync() javascript
  • AVIF caniuse

2023-12

  • Canvas reset() api
  • cap unit css
  • counter-set css
  • :dir() css caniuse
  • pow(), sqrt(), hypot(), log(), and exp() css
  • :has() css caniuse
  • linear() easing css
  • Lazy-loading images and iframes html,api caniuse
  • Masks css caniuse
  • Nesting css,api caniuse
  • Preloading responsive images html,api
  • preservesPitch api
  • scripting media query css
  • Storage access http,html,api
  • URL.canParse() api

2023-11

  • Clip path boxes css
  • lh unit css
  • rlh unit css
  • User activation api
  • :user-valid and :user-invalid css

2023-10

  • ARIA attribute reflection api
  • <search> html
  • String isWellFormed() and toWellFormed() javascript
  • Web authentication easy public key access api

2023-09

  • Clearing site data http
  • contain-intrinsic-size css
  • @counter-style css,api caniuse
  • Device orientation events api caniuse
  • Hyphenate character css
  • Hyphenation css caniuse
  • image-set() css caniuse
  • <link rel="modulepreload"> html caniuse
  • Overflow media queries css
  • Storage manager api
  • Subgrid css caniuse
  • Update frequency media query css

2023-08

  • dirname html,api

2023-07

  • animation-composition css
  • Array by copy javascript
  • Two-value display property css

2023-06

  • calc() keywords css
  • JavaScript modules in workers javascript,api
  • window.print() api

2023-05

  • color() css caniuse
  • color-mix() css
  • Compression streams api
  • Lab and LCH css caniuse
  • :nth-child() of <selector> css caniuse
  • Oklab and Oklch css
  • WebRTC SCTP information api

2023-04

  • Canvas createConicGradient() api
  • Canvas roundRect() api

2023-03

  • Constructed stylesheets api
  • Fetch metadata request headers http
  • font-synthesis-small-caps css
  • font-synthesis-style css
  • font-synthesis-weight css
  • font-variant-alternates css,api caniuse
  • Form-associated custom elements api
  • Import maps html caniuse
  • Media query range syntax css caniuse
  • messageerror api
  • Notifications from service workers and installed apps caniuse
  • Offscreen canvas api caniuse
  • Origin private file system api
  • outline css
  • pdfViewerEnabled api
  • Push messages api caniuse
  • requestAnimationFrame() in workers api
  • Resource size api
  • Screen orientation api caniuse
  • Server timing http,api caniuse
  • Imperative slot assignment api
  • translate attribute html,api
  • sin(), cos(), tan(), asin(), acos(), atan(), and atan2() css
  • Fixed-width SIMD webassembly caniuse

2023-02

  • :autofill css
  • color-gamut media query css
  • Container queries css,api caniuse

2023-01

2022-12

  • Small, large, and dynamic viewport units css caniuse
  • OES_draw_buffers_indexed WebGL extension api

2022-11

2022-10

  • Grid animation css
  • ic unit css

2022-09

  • Inline-size containment css
  • Forced colors css
  • :modal css
  • Motion path css caniuse
  • overflow css caniuse
  • overscroll-behavior css caniuse
  • Permissions api caniuse
  • resolution media query css caniuse
  • text-align-last css caniuse

2022-08

  • Array findLast() and findLastIndex() javascript
  • Individual transform properties css

2022-07

  • Style containment css

2022-05

  • dynamic-range media query css
  • prefers-contrast media query css
  • Exception handling webassembly

2022-04

  • HWB css

2022-03

  • appearance css
  • Array at() javascript
  • ::backdrop css
  • background-attachment css caniuse
  • BroadcastChannel api caniuse
  • Cascade layers css,api caniuse
  • contain css caniuse
  • Layout containment css
  • Paint containment css
  • Size containment css
  • <dialog> html,api caniuse
  • :focus-visible css caniuse
  • hardwareConcurrency api caniuse
  • scroll-behavior css caniuse
  • String at() javascript
  • structuredClone() api
  • text-combine-upright css
  • text-emphasis css caniuse
  • 3D transforms css caniuse
  • Locks api

2022-02

  • color-scheme html,css

2022-01

  • font-synthesis css

2021-12

  • Contenteditable html,api caniuse
  • SharedArrayBuffer and Atomics javascript caniuse
  • Threads and atomics webassembly caniuse

2021-11

  • Enterkeyhint html,api
  • fit-content css
  • Reference types webassembly caniuse

2021-10

  • image-rendering css caniuse
  • Navigation timing api
  • Bulk memory operations webassembly caniuse
  • Non-trapping float-to-int conversion webassembly caniuse

2021-09

  • aspect-ratio html,css
  • BigInt64Array javascript
  • Error cause javascript
  • EXT_color_buffer_float WebGL extension api
  • System font css caniuse
  • IndexedDB api caniuse
  • Logical properties css caniuse
  • Referrer policy http,html,api caniuse
  • Top-level await javascript
  • Web authentication http,html,api caniuse
  • WEBGL_color_buffer_float WebGL extension api
  • WebGL2 api caniuse

2021-08

  • tab-size css caniuse
  • Visual viewport API api

2021-04

  • AudioWorklet api
  • ::file-selector-button css
  • Flexbox gap css caniuse
  • Date and time <input> types html,api caniuse
  • Intl.DisplayNames javascript
  • Intl.ListFormat javascript
  • OES_fbo_render_mipmap WebGL extension api
  • OfflineAudioContext api
  • Quotes css
  • BigInt to i64 conversion webassembly caniuse
  • Sign extension operators webassembly caniuse
  • Weak references javascript
  • Web Audio api caniuse

2021-01

  • clip-path svg,css,api
  • :is() css caniuse
  • <link rel="preload"> html caniuse
  • :not() css caniuse
  • :where() css

2020-11

  • Conic gradients css caniuse
  • Text underline position css

2020-10

2020-09

  • BigInt javascript caniuse
  • EXT_color_buffer_half_float WebGL extension api
  • Intl.Locale javascript
  • Intl.RelativeTimeFormat javascript
  • Logical assignments javascript
  • Nullish coalescing javascript
  • Promise.any() javascript
  • Scroll methods on elements api caniuse
  • scrollIntoView() api caniuse
  • steps() easing css
  • text-orientation css caniuse
  • WEBGL_debug_shaders WebGL extension api
  • WebP caniuse

2020-08

  • String replaceAll() javascript

2020-07

  • column-span css
  • line-break css
  • min(), max(), and clamp() css
  • Numeric separators javascript
  • Pointer Events api caniuse
  • Promise.allSettled() javascript
  • :read-only and :read-write css caniuse
  • Resize observer api caniuse
  • revert css caniuse
  • Shadow parts html,css,api

2020-04

2020-03

  • font-optical-sizing css
  • Hashbang comments javascript
  • Q unit css
  • Web animations api caniuse

≤2020-03

  • display: table css caniuse
  • dominant-baseline css
  • Opacity (SVG) svg,css
  • Import and export of mutable globals webassembly caniuse

2020-02

  • EXT_sRGB WebGL extension api

2020-01

  • all css caniuse
  • Array flat() and flatMap() javascript caniuse
  • Async generators javascript
  • Async iterators and the for await..of loop javascript
  • Autonomous custom elements css,api
  • background-blend-mode css caniuse
  • <bdi> html
  • captureStream() for <canvas> api
  • caret-color css caniuse
  • Case-insensitive attribute selector css caniuse
  • COLRv0 css caniuse
  • Credential management api
  • CSS.escape() api
  • CSS.supports() api caniuse
  • :default css caniuse
  • Destructuring javascript
  • <details> html,api caniuse
  • display: flow-root css caniuse
  • DOM Geometry api
  • document.elementFromPoint() and document.elementsFromPoint() api caniuse
  • <embed> html,api
  • File API api caniuse
  • :focus-within css caniuse
  • font-display css caniuse
  • font-kerning css
  • Font loading api caniuse
  • font-variant-caps css
  • font-variant-east-asian css
  • font-variant-ligatures css
  • font-variant-numeric css caniuse
  • globalThis javascript
  • Host css
  • HSL css caniuse
  • srcdoc html,api caniuse
  • :indeterminate css caniuse
  • Input events api caniuse
  • isolation css
  • Layout direction override css
  • <link rel="preconnect"> html
  • Link selectors css caniuse
  • mask-type css
  • min-content and max-content css
  • mix-blend-mode css caniuse
  • Mixed content handling http
  • object-fit css caniuse
  • object-position css
  • Optional catch binding javascript
  • ::placeholder css caniuse
  • :placeholder-shown css caniuse
  • prefers-color-scheme media query http,css
  • prefers-reduced-motion media query http,css caniuse
  • RGB css
  • Safe area inset environment variables css
  • :scope (pseudo-class) css
  • Scroll snap css caniuse
  • Server-sent events api caniuse
  • Shadow DOM api caniuse
  • shape-outside css
  • shapes css caniuse
  • <slot> html,css,api
  • SMIL SVG animations svg,api caniuse
  • Spread syntax javascript
  • Stable array sort javascript
  • String matchAll() javascript
  • String trimStart() and trimEnd() javascript
  • SVG svg,css,api caniuse
  • Template literals javascript
  • Text encoding and decoding api caniuse
  • WEBGL_compressed_texture_astc WebGL extension api
  • WebRTC api caniuse
  • WebRTC statistics api
  • WebVTT cue settings css,api
  • will-change css caniuse

≤2020-01

  • <link rel="dns-prefetch"> html caniuse
  • Sourcemap header http

2019-09

  • download svg,html,api caniuse
  • Intl.PluralRules javascript
  • Print events api caniuse
  • Sticky positioning css caniuse
  • touch-action css caniuse

2019-03

  • Abortable fetch api
  • AbortController and AbortSignal api caniuse
  • Intersection observer api caniuse

2018-12

  • Constraint validation API api caniuse
  • Interaction media queries css caniuse

2018-10

  • overflow-wrap css caniuse
  • Promise finally() javascript caniuse
  • resolution media query (compatibility prefixes) css
  • tabindex html,api caniuse

≤2018-10

  • <output> html,api

2018-09

2018-05

  • Array iterators javascript
  • JavaScript modules svg,javascript,html caniuse

2018-04

  • Beacons api
  • EXT_blend_minmax WebGL extension api
  • OES_vertex_array_object WebGL extension api
  • Service workers http,api caniuse
  • Upgrade insecure requests http
  • WEBGL_lose_context WebGL extension api

2017-11

  • Spellcheck html,api

2017-10

  • <data> html,api
  • Grid css caniuse
  • <time> html,api
  • Viewport units css caniuse
  • WebAssembly webassembly caniuse

2017-09

2017-04

  • Async functions javascript caniuse
  • Composition events api
  • Custom properties css caniuse
  • font-feature-settings css caniuse
  • Outlines css
  • String padStart() and padEnd() javascript caniuse
  • Text stroke and fill (compatibility prefixes) css caniuse
  • WEBGL_debug_renderer_info WebGL extension api

2017-03

  • Clipboard events api
  • column-fill css
  • Exponentiation operator javascript
  • Fetch api caniuse
  • Gamepad html,api caniuse
  • <input type="range"> html caniuse
  • Multi-column layout css
  • Selection api caniuse
  • srcset and sizes html,api caniuse
  • writing-mode svg,css caniuse

2017-02

2016-09

  • Array copyWithin() javascript
  • Array fill() javascript
  • Array find() and findIndex() javascript caniuse
  • Array.from() javascript
  • Array includes() javascript
  • Array.of() javascript
  • background-repeat css caniuse
  • filter css caniuse
  • @font-face css,api caniuse
  • Generators javascript caniuse
  • Let and const javascript caniuse
  • Proxy and Reflect javascript caniuse
  • String normalize() javascript
  • @supports (compatibility prefix) css
  • Typed array iteration methods javascript
  • Typed array iterators javascript

2016-08

  • Content Security Policy (CSP) http,html,api caniuse
  • OES_texture_half_float WebGL extension api

2016-06

  • ANGLE_instanced_arrays WebGL extension api
  • EXT_texture_filter_anisotropic WebGL extension api

2016-03

2015-11

2015-09

  • Animations css,api caniuse
  • Channel messaging api caniuse
  • CSS object model api
  • Flexbox css caniuse
  • HTTP/2 caniuse
  • Performance http,api caniuse
  • String codePointAt() and fromCodePoint() javascript
  • String includes() javascript caniuse
  • String raw() javascript
  • String repeat() javascript
  • String startsWith() and endsWith() javascript
  • @supports css,api caniuse
  • Symbol javascript
  • 2D transforms css caniuse
  • Transitions css,api caniuse
  • Unicode point escapes javascript
  • WeakSet javascript
  • word-break css caniuse

2015-07

  • <a> html,api
  • <abbr> html
  • Absolute positioning css
  • Accesskey html,api
  • <address> html
  • Alerts api
  • Array (initial support) javascript
  • Array.isArray() javascript
  • Array iteration methods javascript
  • Array splice() javascript
  • <article> html
  • <aside> html
  • attr() (content only) css
  • <audio> html,api caniuse
  • Autofocus svg,html,api caniuse
  • <b> html
  • background css
  • background-clip css
  • background-color css
  • background-image css
  • background-origin css
  • background-position css caniuse
  • background-size css
  • <base> html,api
  • Base64 encoding and decoding api caniuse
  • <bdo> html
  • ::before and ::after css caniuse
  • Beforeunload api
  • <blockquote> html
  • <body> html,api
  • border-radius css caniuse
  • Borders css
  • box-shadow css caniuse
  • box-sizing css caniuse
  • <br> html,api
  • <button> html,api
  • calc() css caniuse
  • <canvas> html,api
  • 2D canvas api
  • ch unit css
  • Change event api
  • @charset css
  • <cite> html
  • <code> html
  • Color css
  • Console api
  • Content css
  • Cookies http,api
  • CORS http
  • Counters css caniuse
  • cubic-bezier() easing css
  • currentColor css caniuse
  • Data URLs http
  • Dataset api caniuse
  • Date javascript
  • <del> html,api
  • Description list html,api
  • <dfn> html
  • Display css
  • display: list-item css
  • <div> html,api
  • DOM api
  • Drag and Drop api caniuse
  • <em> html
  • em unit css
  • :empty css
  • Events api
  • ex unit css
  • <fieldset> and <legend> html,api
  • <figure> and <figcaption> html
  • ::first-letter css caniuse
  • ::first-line css caniuse
  • Fixed positioning css
  • float and clear css
  • Focus events api
  • font-family svg,css
  • Font shorthand css
  • font-size svg,css
  • font-style svg,css
  • font-variant svg,css
  • font-weight svg,css
  • <form> html,api
  • Form validity pseudo-classes css caniuse
  • Functions javascript
  • Geolocation http,html,api caniuse
  • getComputedStyle() api caniuse
  • Gradients css
  • hashchange api caniuse
  • <head> html,api
  • <header> and <footer> html
  • <h1> through <h6> html,api
  • <hgroup> html
  • History api caniuse
  • <hr> html,api
  • HTTP Strict Transport Security http
  • <html> html,api
  • HTTP authentication http
  • HTTP/1.1 http
  • <i> html
  • <iframe> html,api
  • Sandboxed iframes html,api caniuse
  • Image maps html,api
  • <img> html,api
  • @import css,api
  • inherit css
  • <input> html,api
  • <input type="button"> html
  • <input type="checkbox"> html,api
  • Email, telephone, and URL <input> types html caniuse
  • <input type="file"> html,api
  • <input type="hidden"> html
  • <input type="image"> html,api
  • <input type="number"> html,api caniuse
  • <input type="password"> html
  • <input type="radio"> html
  • <input type="reset"> html
  • Input selectors css
  • <input type="submit"> html
  • <ins> html
  • Iterators and the for...of loop javascript
  • JavaScript (initial core language support) javascript
  • JSON javascript
  • <kbd> html
  • Keyboard events api
  • <label> html,api
  • :lang() css
  • Lang html,api
  • Language api
  • letter-spacing svg,css caniuse
  • line-height css
  • <link> html,api
  • <ol>, <ul>, and <li> html,api
  • List style css
  • localStorage and sessionStorage api caniuse
  • Location api
  • <main> html
  • Map (initial support) javascript
  • margin css
  • <mark> html
  • matchMedia api caniuse
  • Media queries css caniuse
  • <menu> html,api
  • <meta> html,api
  • Min and max width and height css caniuse
  • Mouse events api
  • MutationObserver api
  • Named colors css
  • @namespace css,api caniuse
  • <nav> html
  • Navigator api
  • :nth-child() css
  • :nth-of-type() pseudo-classes css
  • Math and numbers javascript
  • <object> html,api
  • Object javascript
  • OES_element_index_uint WebGL extension api
  • OES_standard_derivatives WebGL extension api
  • OES_texture_float WebGL extension api
  • OES_texture_float_linear WebGL extension api
  • Online status api caniuse
  • opacity svg,css
  • <p> html,api
  • padding css
  • Page transition events api caniuse
  • Page visibility api caniuse
  • Physical properties css
  • pointer-events css caniuse
  • Position css
  • postMessage api caniuse
  • <pre> html,api
  • <progress> html,api caniuse
  • Promise (initial support) javascript caniuse
  • <q> html,api
  • Regular expressions javascript
  • Relative positioning css
  • rem css caniuse
  • requestAnimationFrame() api caniuse
  • :root css
  • <ruby> html caniuse
  • <s> html
  • <samp> html
  • Screen api
  • <script> and <noscript> html,api
  • <input type="search"> html caniuse
  • <section> html
  • <select> html,api
  • Selectors (core) css
  • Set (initial support) javascript
  • setInterval api
  • setTimeout api
  • <small> html
  • <source> html
  • <span> html,api
  • Static positioning css
  • String (initial support) javascript
  • <strong> html
  • <style> html,api
  • style (attribute) html
  • <sub> and <sup> html
  • SVG filters svg,css,api caniuse
  • System colors css
  • Tables html,css,api
  • :target css
  • text-align css
  • text-decoration css caniuse
  • text-indent css caniuse
  • Text overflow svg,css caniuse
  • text-shadow css caniuse
  • Text tracks html,api
  • text-transform css
  • <textarea> html,api
  • <title> html,api
  • Title html,api
  • Typed arrays (initial support) javascript caniuse
  • <u> html
  • URL api caniuse
  • User action pseudo-classes css
  • User agent sniffing api
  • <var> html
  • vertical-align css
  • <video> html,api caniuse
  • visibility css
  • <wbr> html caniuse
  • WeakMap javascript
  • Web Cryptography api caniuse
  • WebGL api caniuse
  • WEBGL_depth_texture WebGL extension api
  • WebSockets http,api caniuse
  • WebVTT api caniuse
  • white-space svg,css
  • Width and height css
  • Window api
  • word-spacing svg,css
  • XMLHttpRequest api
  • XMLSerializer api
  • XPath api caniuse
  • XSLT api
  • z-index css

Extraction Method

import { features } from 'web-features'

const months = new Map()
const add = (key, value) => months.has(key) ? months.get(key).push(value) : months.set(key, [value])
Object.values(features)
  .filter(feature => feature.status?.baseline_low_date)
  .forEach(feature => add(feature.status.baseline_low_date.slice(0, -3), feature))

const ordinal = month => month.replace("-", "").padEnd(7, 1).replace("≤", "").padEnd(7, 0)
const unique = (array, fn) => new Set(array.map(fn)).values().toArray()
months.entries().toArray().sort((a, b) => ordinal(b[0]) - ordinal(a[0])).forEach(([month, features]) => {
  console.log()
  console.log(`## ${month}`)
  console.log()
  features.map(feature => [
      '`' + feature.name.replace(' (CSS)', '').replace(' (WebAssembly)', '') + '`',
      unique(feature.compat_features ?? [], c => c.split('.')[0]).reverse(),
      feature.caniuse ? `[caniuse](https://caniuse.com/${feature.caniuse})`: ''
  ].join(' ')).forEach(feature => console.log(`* ${feature}`))
})