-
Notifications
You must be signed in to change notification settings - Fork 1
Baseline
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.
-
Page setupcss caniuse -
ruby-aligncss -
ruby-positioncss -
scrollbar-guttercss -
scrollbar-widthcss -
::target-textcss -
Garbage collectionwebassembly -
Tail call optimizationwebassembly
-
requestVideoFrameCallback()api -
Scroll to text fragmenthtml,api caniuse -
text-wrap-modecss -
text-wrap: stablecss -
Color management for WebGLapi -
Color management for WebGL2api
-
backdrop-filtercss caniuse -
willReadFrequentlyapi -
content-visibilitycss,api caniuse -
cookieEnabledapi -
Mutually exclusive <details> elementshtml,api -
getHTMLapi -
HTTP/3caniuse -
Relative colorscss caniuse -
Typed function referenceswebassembly
-
transition-behaviorcss
-
Alt text for generated contentcss -
font-size-adjustsvg,css caniuse -
Unsanitized HTML parsing methodsapi -
Registered custom propertiescss,api -
Resizable buffersjavascript
-
Async clipboardapi caniuse -
Gradient interpolationcss -
Set methodsjavascript
-
light-dark()css -
round(), mod(), and rem()css -
:state()css,api -
text-wrap: balancecss -
zoomcss caniuse
-
align-content in block layoutscss -
Intl.Segmenterjavascript -
transform-boxcss -
Vertical form controlscss
-
AbortSignal.any()api -
Array groupingjavascript -
checkVisibility()api -
Promise.withResolvers()javascript -
text-wrapcss -
text-wrap: nowrapcss -
Transferable ArrayBufferjavascript -
Extended constant expressionswebassembly -
white-space-collapsecss
-
Declarative shadow DOMhtml,api caniuse
-
Array.fromAsync()javascript -
AVIFcaniuse
-
Canvas reset()api -
cap unitcss -
counter-setcss -
:dir()css caniuse -
pow(), sqrt(), hypot(), log(), and exp()css -
:has()css caniuse -
linear() easingcss -
Lazy-loading images and iframeshtml,api caniuse -
Maskscss caniuse -
Nestingcss,api caniuse -
Preloading responsive imageshtml,api -
preservesPitchapi -
scripting media querycss -
Storage accesshttp,html,api -
URL.canParse()api
-
Clip path boxescss -
lh unitcss -
rlh unitcss -
User activationapi -
:user-valid and :user-invalidcss
-
ARIA attribute reflectionapi -
<search>html -
String isWellFormed() and toWellFormed()javascript -
Web authentication easy public key accessapi
-
Clearing site datahttp -
contain-intrinsic-sizecss -
@counter-stylecss,api caniuse -
Device orientation eventsapi caniuse -
Hyphenate charactercss -
Hyphenationcss caniuse -
image-set()css caniuse -
<link rel="modulepreload">html caniuse -
Overflow media queriescss -
Storage managerapi -
Subgridcss caniuse -
Update frequency media querycss
-
dirnamehtml,api
-
animation-compositioncss -
Array by copyjavascript -
Two-value display propertycss
-
calc() keywordscss -
JavaScript modules in workersjavascript,api -
window.print()api
-
color()css caniuse -
color-mix()css -
Compression streamsapi -
Lab and LCHcss caniuse -
:nth-child() of <selector>css caniuse -
Oklab and Oklchcss -
WebRTC SCTP informationapi
-
Canvas createConicGradient()api -
Canvas roundRect()api
-
Constructed stylesheetsapi -
Fetch metadata request headershttp -
font-synthesis-small-capscss -
font-synthesis-stylecss -
font-synthesis-weightcss -
font-variant-alternatescss,api caniuse -
Form-associated custom elementsapi -
Import mapshtml caniuse -
Media query range syntaxcss caniuse -
messageerrorapi -
Notifications from service workers and installed appscaniuse -
Offscreen canvasapi caniuse -
Origin private file systemapi -
outlinecss -
pdfViewerEnabledapi -
Push messagesapi caniuse -
requestAnimationFrame() in workersapi -
Resource sizeapi -
Screen orientationapi caniuse -
Server timinghttp,api caniuse -
Imperative slot assignmentapi -
translate attributehtml,api -
sin(), cos(), tan(), asin(), acos(), atan(), and atan2()css -
Fixed-width SIMDwebassembly caniuse
-
:autofillcss -
color-gamut media querycss -
Container queriescss,api caniuse
-
MathMLmathml,css,api caniuse
-
Small, large, and dynamic viewport unitscss caniuse -
OES_draw_buffers_indexed WebGL extensionapi
-
font-palettecss,api caniuse
-
Grid animationcss -
ic unitcss
-
Inline-size containmentcss -
Forced colorscss -
:modalcss -
Motion pathcss caniuse -
overflowcss caniuse -
overscroll-behaviorcss caniuse -
Permissionsapi caniuse -
resolution media querycss caniuse -
text-align-lastcss caniuse
-
Array findLast() and findLastIndex()javascript -
Individual transform propertiescss
-
Style containmentcss
-
dynamic-range media querycss -
prefers-contrast media querycss -
Exception handlingwebassembly
-
HWBcss
-
appearancecss -
Array at()javascript -
::backdropcss -
background-attachmentcss caniuse -
BroadcastChannelapi caniuse -
Cascade layerscss,api caniuse -
containcss caniuse -
Layout containmentcss -
Paint containmentcss -
Size containmentcss -
<dialog>html,api caniuse -
:focus-visiblecss caniuse -
hardwareConcurrencyapi caniuse -
scroll-behaviorcss caniuse -
String at()javascript -
structuredClone()api -
text-combine-uprightcss -
text-emphasiscss caniuse -
3D transformscss caniuse -
Locksapi
-
color-schemehtml,css
-
font-synthesiscss
-
Contenteditablehtml,api caniuse -
SharedArrayBuffer and Atomicsjavascript caniuse -
Threads and atomicswebassembly caniuse
-
Enterkeyhinthtml,api -
fit-contentcss -
Reference typeswebassembly caniuse
-
image-renderingcss caniuse -
Navigation timingapi -
Bulk memory operationswebassembly caniuse -
Non-trapping float-to-int conversionwebassembly caniuse
-
aspect-ratiohtml,css -
BigInt64Arrayjavascript -
Error causejavascript -
EXT_color_buffer_float WebGL extensionapi -
System fontcss caniuse -
IndexedDBapi caniuse -
Logical propertiescss caniuse -
Referrer policyhttp,html,api caniuse -
Top-level awaitjavascript -
Web authenticationhttp,html,api caniuse -
WEBGL_color_buffer_float WebGL extensionapi -
WebGL2api caniuse
-
tab-sizecss caniuse -
Visual viewport APIapi
-
AudioWorkletapi -
::file-selector-buttoncss -
Flexbox gapcss caniuse -
Date and time <input> typeshtml,api caniuse -
Intl.DisplayNamesjavascript -
Intl.ListFormatjavascript -
OES_fbo_render_mipmap WebGL extensionapi -
OfflineAudioContextapi -
Quotescss -
BigInt to i64 conversionwebassembly caniuse -
Sign extension operatorswebassembly caniuse -
Weak referencesjavascript -
Web Audioapi caniuse
-
clip-pathsvg,css,api -
:is()css caniuse -
<link rel="preload">html caniuse -
:not()css caniuse -
:where()css
-
Conic gradientscss caniuse -
Text underline positioncss
-
Multi-valuewebassembly caniuse
-
BigIntjavascript caniuse -
EXT_color_buffer_half_float WebGL extensionapi -
Intl.Localejavascript -
Intl.RelativeTimeFormatjavascript -
Logical assignmentsjavascript -
Nullish coalescingjavascript -
Promise.any()javascript -
Scroll methods on elementsapi caniuse -
scrollIntoView()api caniuse -
steps() easingcss -
text-orientationcss caniuse -
WEBGL_debug_shaders WebGL extensionapi -
WebPcaniuse
-
String replaceAll()javascript
-
column-spancss -
line-breakcss -
min(), max(), and clamp()css -
Numeric separatorsjavascript -
Pointer Eventsapi caniuse -
Promise.allSettled()javascript -
:read-only and :read-writecss caniuse -
Resize observerapi caniuse -
revertcss caniuse -
Shadow partshtml,css,api
-
image-orientationcss caniuse
-
font-optical-sizingcss -
Hashbang commentsjavascript -
Q unitcss -
Web animationsapi caniuse
-
display: tablecss caniuse -
dominant-baselinecss -
Opacity (SVG)svg,css -
Import and export of mutable globalswebassembly caniuse
-
EXT_sRGB WebGL extensionapi
-
allcss caniuse -
Array flat() and flatMap()javascript caniuse -
Async generatorsjavascript -
Async iterators and the for await..of loopjavascript -
Autonomous custom elementscss,api -
background-blend-modecss caniuse -
<bdi>html -
captureStream() for <canvas>api -
caret-colorcss caniuse -
Case-insensitive attribute selectorcss caniuse -
COLRv0css caniuse -
Credential managementapi -
CSS.escape()api -
CSS.supports()api caniuse -
:defaultcss caniuse -
Destructuringjavascript -
<details>html,api caniuse -
display: flow-rootcss caniuse -
DOM Geometryapi -
document.elementFromPoint() and document.elementsFromPoint()api caniuse -
<embed>html,api -
File APIapi caniuse -
:focus-withincss caniuse -
font-displaycss caniuse -
font-kerningcss -
Font loadingapi caniuse -
font-variant-capscss -
font-variant-east-asiancss -
font-variant-ligaturescss -
font-variant-numericcss caniuse -
globalThisjavascript -
Hostcss -
HSLcss caniuse -
srcdochtml,api caniuse -
:indeterminatecss caniuse -
Input eventsapi caniuse -
isolationcss -
Layout direction overridecss -
<link rel="preconnect">html -
Link selectorscss caniuse -
mask-typecss -
min-content and max-contentcss -
mix-blend-modecss caniuse -
Mixed content handlinghttp -
object-fitcss caniuse -
object-positioncss -
Optional catch bindingjavascript -
::placeholdercss caniuse -
:placeholder-showncss caniuse -
prefers-color-scheme media queryhttp,css -
prefers-reduced-motion media queryhttp,css caniuse -
RGBcss -
Safe area inset environment variablescss -
:scope (pseudo-class)css -
Scroll snapcss caniuse -
Server-sent eventsapi caniuse -
Shadow DOMapi caniuse -
shape-outsidecss -
shapescss caniuse -
<slot>html,css,api -
SMIL SVG animationssvg,api caniuse -
Spread syntaxjavascript -
Stable array sortjavascript -
String matchAll()javascript -
String trimStart() and trimEnd()javascript -
SVGsvg,css,api caniuse -
Template literalsjavascript -
Text encoding and decodingapi caniuse -
WEBGL_compressed_texture_astc WebGL extensionapi -
WebRTCapi caniuse -
WebRTC statisticsapi -
WebVTT cue settingscss,api -
will-changecss caniuse
-
<link rel="dns-prefetch">html caniuse -
Sourcemap headerhttp
-
downloadsvg,html,api caniuse -
Intl.PluralRulesjavascript -
Print eventsapi caniuse -
Sticky positioningcss caniuse -
touch-actioncss caniuse
-
overflow-wrapcss caniuse -
Promise finally()javascript caniuse -
resolution media query (compatibility prefixes)css -
tabindexhtml,api caniuse
-
<output>html,api
-
Array iteratorsjavascript -
JavaScript modulessvg,javascript,html caniuse
-
Beaconsapi -
EXT_blend_minmax WebGL extensionapi -
OES_vertex_array_object WebGL extensionapi -
Service workershttp,api caniuse -
Upgrade insecure requestshttp -
WEBGL_lose_context WebGL extensionapi
-
Spellcheckhtml,api
-
<data>html,api -
Gridcss caniuse -
<time>html,api -
Viewport unitscss caniuse -
WebAssemblywebassembly caniuse
-
Brotli compressionhttp caniuse -
font-stretchsvg,css caniuse -
Intljavascript caniuse -
Media captureapi caniuse -
Resource timing (initial support)api caniuse
-
Async functionsjavascript caniuse -
Composition eventsapi -
Custom propertiescss caniuse -
font-feature-settingscss caniuse -
Outlinescss -
String padStart() and padEnd()javascript caniuse -
Text stroke and fill (compatibility prefixes)css caniuse -
WEBGL_debug_renderer_info WebGL extensionapi
-
Clipboard eventsapi -
column-fillcss -
Exponentiation operatorjavascript -
Fetchapi caniuse -
Gamepadhtml,api caniuse -
<input type="range">html caniuse -
Multi-column layoutcss -
Selectionapi caniuse -
srcset and sizeshtml,api caniuse -
writing-modesvg,css caniuse
-
Border imagescss caniuse
-
Array copyWithin()javascript -
Array fill()javascript -
Array find() and findIndex()javascript caniuse -
Array.from()javascript -
Array includes()javascript -
Array.of()javascript -
background-repeatcss caniuse -
filtercss caniuse -
@font-facecss,api caniuse -
Generatorsjavascript caniuse -
Let and constjavascript caniuse -
Proxy and Reflectjavascript caniuse -
String normalize()javascript -
@supports (compatibility prefix)css -
Typed array iteration methodsjavascript -
Typed array iteratorsjavascript
-
Content Security Policy (CSP)http,html,api caniuse -
OES_texture_half_float WebGL extensionapi
-
ANGLE_instanced_arrays WebGL extensionapi -
EXT_texture_filter_anisotropic WebGL extensionapi
-
Animationscss,api caniuse -
Channel messagingapi caniuse -
CSS object modelapi -
Flexboxcss caniuse -
HTTP/2caniuse -
Performancehttp,api caniuse -
String codePointAt() and fromCodePoint()javascript -
String includes()javascript caniuse -
String raw()javascript -
String repeat()javascript -
String startsWith() and endsWith()javascript -
@supportscss,api caniuse -
Symboljavascript -
2D transformscss caniuse -
Transitionscss,api caniuse -
Unicode point escapesjavascript -
WeakSetjavascript -
word-breakcss caniuse
-
<a>html,api -
<abbr>html -
Absolute positioningcss -
Accesskeyhtml,api -
<address>html -
Alertsapi -
Array (initial support)javascript -
Array.isArray()javascript -
Array iteration methodsjavascript -
Array splice()javascript -
<article>html -
<aside>html -
attr() (content only)css -
<audio>html,api caniuse -
Autofocussvg,html,api caniuse -
<b>html -
backgroundcss -
background-clipcss -
background-colorcss -
background-imagecss -
background-origincss -
background-positioncss caniuse -
background-sizecss -
<base>html,api -
Base64 encoding and decodingapi caniuse -
<bdo>html -
::before and ::aftercss caniuse -
Beforeunloadapi -
<blockquote>html -
<body>html,api -
border-radiuscss caniuse -
Borderscss -
box-shadowcss caniuse -
box-sizingcss caniuse -
<br>html,api -
<button>html,api -
calc()css caniuse -
<canvas>html,api -
2D canvasapi -
ch unitcss -
Change eventapi -
@charsetcss -
<cite>html -
<code>html -
Colorcss -
Consoleapi -
Contentcss -
Cookieshttp,api -
CORShttp -
Counterscss caniuse -
cubic-bezier() easingcss -
currentColorcss caniuse -
Data URLshttp -
Datasetapi caniuse -
Datejavascript -
<del>html,api -
Description listhtml,api -
<dfn>html -
Displaycss -
display: list-itemcss -
<div>html,api -
DOMapi -
Drag and Dropapi caniuse -
<em>html -
em unitcss -
:emptycss -
Eventsapi -
ex unitcss -
<fieldset> and <legend>html,api -
<figure> and <figcaption>html -
::first-lettercss caniuse -
::first-linecss caniuse -
Fixed positioningcss -
float and clearcss -
Focus eventsapi -
font-familysvg,css -
Font shorthandcss -
font-sizesvg,css -
font-stylesvg,css -
font-variantsvg,css -
font-weightsvg,css -
<form>html,api -
Form validity pseudo-classescss caniuse -
Functionsjavascript -
Geolocationhttp,html,api caniuse -
getComputedStyle()api caniuse -
Gradientscss -
hashchangeapi caniuse -
<head>html,api -
<header> and <footer>html -
<h1> through <h6>html,api -
<hgroup>html -
Historyapi caniuse -
<hr>html,api -
HTTP Strict Transport Securityhttp -
<html>html,api -
HTTP authenticationhttp -
HTTP/1.1http -
<i>html -
<iframe>html,api -
Sandboxed iframeshtml,api caniuse -
Image mapshtml,api -
<img>html,api -
@importcss,api -
inheritcss -
<input>html,api -
<input type="button">html -
<input type="checkbox">html,api -
Email, telephone, and URL <input> typeshtml 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 selectorscss -
<input type="submit">html -
<ins>html -
Iterators and the for...of loopjavascript -
JavaScript (initial core language support)javascript -
JSONjavascript -
<kbd>html -
Keyboard eventsapi -
<label>html,api -
:lang()css -
Langhtml,api -
Languageapi -
letter-spacingsvg,css caniuse -
line-heightcss -
<link>html,api -
<ol>, <ul>, and <li>html,api -
List stylecss -
localStorage and sessionStorageapi caniuse -
Locationapi -
<main>html -
Map (initial support)javascript -
margincss -
<mark>html -
matchMediaapi caniuse -
Media queriescss caniuse -
<menu>html,api -
<meta>html,api -
Min and max width and heightcss caniuse -
Mouse eventsapi -
MutationObserverapi -
Named colorscss -
@namespacecss,api caniuse -
<nav>html -
Navigatorapi -
:nth-child()css -
:nth-of-type() pseudo-classescss -
Math and numbersjavascript -
<object>html,api -
Objectjavascript -
OES_element_index_uint WebGL extensionapi -
OES_standard_derivatives WebGL extensionapi -
OES_texture_float WebGL extensionapi -
OES_texture_float_linear WebGL extensionapi -
Online statusapi caniuse -
opacitysvg,css -
<p>html,api -
paddingcss -
Page transition eventsapi caniuse -
Page visibilityapi caniuse -
Physical propertiescss -
pointer-eventscss caniuse -
Positioncss -
postMessageapi caniuse -
<pre>html,api -
<progress>html,api caniuse -
Promise (initial support)javascript caniuse -
<q>html,api -
Regular expressionsjavascript -
Relative positioningcss -
remcss caniuse -
requestAnimationFrame()api caniuse -
:rootcss -
<ruby>html caniuse -
<s>html -
<samp>html -
Screenapi -
<script> and <noscript>html,api -
<input type="search">html caniuse -
<section>html -
<select>html,api -
Selectors (core)css -
Set (initial support)javascript -
setIntervalapi -
setTimeoutapi -
<small>html -
<source>html -
<span>html,api -
Static positioningcss -
String (initial support)javascript -
<strong>html -
<style>html,api -
style (attribute)html -
<sub> and <sup>html -
SVG filterssvg,css,api caniuse -
System colorscss -
Tableshtml,css,api -
:targetcss -
text-aligncss -
text-decorationcss caniuse -
text-indentcss caniuse -
Text overflowsvg,css caniuse -
text-shadowcss caniuse -
Text trackshtml,api -
text-transformcss -
<textarea>html,api -
<title>html,api -
Titlehtml,api -
Typed arrays (initial support)javascript caniuse -
<u>html -
URLapi caniuse -
User action pseudo-classescss -
User agent sniffingapi -
<var>html -
vertical-aligncss -
<video>html,api caniuse -
visibilitycss -
<wbr>html caniuse -
WeakMapjavascript -
Web Cryptographyapi caniuse -
WebGLapi caniuse -
WEBGL_depth_texture WebGL extensionapi -
WebSocketshttp,api caniuse -
WebVTTapi caniuse -
white-spacesvg,css -
Width and heightcss -
Windowapi -
word-spacingsvg,css -
XMLHttpRequestapi -
XMLSerializerapi -
XPathapi caniuse -
XSLTapi -
z-indexcss
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}`))
})