Browser Feature Watch
This page serves as an one-stop shop for me to keep track of feature compatability in browsers, ordered by level of support and updated daily.
Chrome | Edge | Firefox | Opera | Safari | Android Browser | Chrome (Android) | Firefox (Android) | Safari (iOS) | Samsung Internet | |
---|---|---|---|---|---|---|---|---|---|---|
Container Queries | 106 | 106 | 110 | 94 | 16 | 113 | 113 | 113 | 16 | 20 |
Cascade Layers | 99 | 99 | 97 | 86 | 15.4 | 113 | 113 | 113 | 15.4 | 18 |
hwb() | 101 | 101 | 96 | 87 | 15 | 101 | 101 | 96 | 15 | 19.0 |
Viewport Unit Variants | 108 | 108 | 101 | 94 | 15.4 | 113 | 113 | 113 | 15.4 | 21 |
:focus-visible | 86 | 86 | 4 | 72 | 15.4 | 113 | 113 | 113 | 15.4 | 14 |
Font Palette | 101 | 105 | 107 | 87 | 15.4 | 113 | 113 | 113 | 15.4 | 19 |
Comparison Functions | 79 | 79 | 75 | 66 | 13.1 | 113 | 113 | 113 | 13.4 | 12 |
:is() | 88 | 88 | 78 | 75 | 14 | 113 | 113 | 113 | 14 | 15 |
Logical Properties | 89 | 89 | 66 | 76 | 15 | 113 | 113 | 113 | 15 | 15 |
Inert | 102 | 102 | 112 | 88 | 15.5 | 102 | 102 | 112 | 15.5 | 19.0 |
CSS Variables | 49 | 16 | 31 | 36 | 10 | 113 | 113 | 113 | 10 | 5 |
color() | 111 | 111 | 113 | 98 | 15 | 113 | 113 | 113 | 15 | No |
oklch() | 111 | 111 | 113 | 97 | 15.4 | 111 | 111 | 113 | 15.4 | No |
oklab() | 111 | 111 | 113 | 97 | 15.4 | 111 | 111 | 113 | 15.4 | No |
lab()/lch() | 111 | 111 | 113 | 98 | 15 | 113 | 113 | 113 | 15 | No |
color-mix() | 111 | 111 | 113 | 97 | 16.2 | 111 | 111 | 113 | 16.2 | No |
Trigonometry Functions | 111 | 111 | 108 | 97 | 15.4 | 111 | 111 | 108 | 15.4 | No |
Intrinsic & Extrinsic Sizing | 22 | 79 | 115 | 15 | 16 | 4.4 | 113 | 113 | 16 | 4 |
:has() | 105 | 105 | No | 91 | 15.4 | 113 | 113 | No | 15.4 | 20 |
Colrv1 Font Formats | 98 | 98 | 107 | 86 | No | 113 | 113 | 113 | No | 18 |
@property | 85 | 85 | No | 71 | 16.4 | 85 | 85 | No | 16.4 | 14.0 |
Nesting | 112 | 112 | No | 98 | 16.5 | 113 | 113 | No | 16.5 | No |
::target-text | 89 | 89 | No | 75 | No | 89 | 89 | No | No | 15.0 |
Web Share API | 116 | 95 | No | No | 12.1 | No | 113 | 113 | 12.2 | 8.2 |
Subgrid | No | No | 71 | No | 16 | No | No | 113 | 16 | No |
Exponential Functions | No | No | 112 | No | 15.4 | No | No | 112 | 15.4 | No |
Numeric Constants | No | No | 108 | No | 15.4 | No | No | 108 | 15.4 | No |
Stepped Value Functions | No | No | P | No | 15.4 | No | No | No | 15.4 | No |
Sign-Related Functions | No | No | No | No | 15.4 | No | No | No | 15.4 | No |
Relative Colors | No | No | No | No | 16.4 | No | No | No | 16.4 | No |
margin-trim | No | No | No | No | 16.4 | No | No | No | 16.4 | No |
Scroll Timeline | No | No | No | No | No | No | No | No | No | No |
color-contrast() | No | No | No | No | 15 | No | No | No | 15 | No |
@when/@else | No | No | No | No | No | No | No | No | No | No |
attr() | No | No | No | No | No | No | No | No | No | No |
Container Queries CSS ✅ Permalink ¶
Like media queries, but even better. Basically, allows us to write context-aware CSS by querying an element’s parent.
Desktop support:
- Chrome: 106
- Edge: 106
- Firefox: 110
- Opera: 94
- Safari: 16
Mobile support:
- Android Browser: 113
- Chrome (Android): 113
- Firefox (Android): 113
- Safari (iOS): 16
- Samsung Internet: 20
Browser support data for css-container-queries
comes from caniuse.com and is up-to-date as of .
Cascade Layers CSS ✅ Permalink ¶
Gives us tighter control on the reigns of the cascade. This adds a layer of complexity to specificity in our CSS but allows us to designate different parts of our CSS to different layers, much like the concept of stacking with z-index
. This complexity actually makes the practise of overriding selector specificity, using !important
(proactively!), and a number of other silly tricks we've added to our toolkit over the years.
Desktop support:
- Chrome: 99
- Edge: 99
- Firefox: 97
- Opera: 86
- Safari: 15.4
Mobile support:
- Android Browser: 113
- Chrome (Android): 113
- Firefox (Android): 113
- Safari (iOS): 15.4
- Samsung Internet: 18
Browser support data for css-cascade-layers
comes from caniuse.com and is up-to-date as of .
hwb() CSS ✅ Permalink ¶
Define colors using hue, whiteness, and blackness.
Desktop support:
- Chrome: 101
- Edge: 101
- Firefox: 96
- Opera: 87
- Safari: 15
Mobile support:
- Android Browser: 101
- Chrome (Android): 101
- Firefox (Android): 96
- Safari (iOS): 15
- Samsung Internet: 19.0
Browser support data for hwb
comes from MDN’s browser-compat-data
and is up-to-date as of version 5.2.60.
Viewport Unit Variants CSS ✅ Permalink ¶
Small, large, and dynamic viewport units allow us clearer and more concise definitions for layout.
Desktop support:
- Chrome: 108
- Edge: 108
- Firefox: 101
- Opera: 94
- Safari: 15.4
Mobile support:
- Android Browser: 113
- Chrome (Android): 113
- Firefox (Android): 113
- Safari (iOS): 15.4
- Samsung Internet: 21
Browser support data for viewport-unit-variants
comes from caniuse.com and is up-to-date as of .
:focus-visible CSS ✅ Permalink ¶
More discrete condition for focus styles.
Desktop support:
- Chrome: 86
- Edge: 86
- Firefox: 4
- Opera: 72
- Safari: 15.4
Mobile support:
- Android Browser: 113
- Chrome (Android): 113
- Firefox (Android): 113
- Safari (iOS): 15.4
- Samsung Internet: 14
Browser support data for css-focus-visible
comes from caniuse.com and is up-to-date as of .
Font Palette CSS ✅ Permalink ¶
Define a palette from a color font.
Desktop support:
- Chrome: 101
- Edge: 105
- Firefox: 107
- Opera: 87
- Safari: 15.4
Mobile support:
- Android Browser: 113
- Chrome (Android): 113
- Firefox (Android): 113
- Safari (iOS): 15.4
- Samsung Internet: 19
Browser support data for css-font-palette
comes from caniuse.com and is up-to-date as of .
Comparison Functions CSS ✅ Permalink ¶
Brings min()
, max()
, and clamp()
to CSS.
Desktop support:
- Chrome: 79
- Edge: 79
- Firefox: 75
- Opera: 66
- Safari: 13.1
Mobile support:
- Android Browser: 113
- Chrome (Android): 113
- Firefox (Android): 113
- Safari (iOS): 13.4
- Samsung Internet: 12
Browser support data for css-math-functions
comes from caniuse.com and is up-to-date as of .
:is() CSS ✅ Permalink ¶
Takes a list of selectors as its argument and targets any matching selector in the list. I find it useful for grouping headings, types of elements, and even interaction-based pseudo-classes for anchors, buttons, and the like.
Desktop support:
- Chrome: 88
- Edge: 88
- Firefox: 78
- Opera: 75
- Safari: 14
Mobile support:
- Android Browser: 113
- Chrome (Android): 113
- Firefox (Android): 113
- Safari (iOS): 14
- Samsung Internet: 15
Browser support data for css-matches-pseudo
comes from caniuse.com and is up-to-date as of .
Logical Properties CSS ✅ Permalink ¶
Properties used to define size-based values, what we’re used as being width
, height
, margin-left
, and so on, but in such a way that works hand-in-hand with writing-mode
without the need to redefine the “top” or “bottom” of an element to do so.
Desktop support:
- Chrome: 89
- Edge: 89
- Firefox: 66
- Opera: 76
- Safari: 15
Mobile support:
- Android Browser: 113
- Chrome (Android): 113
- Firefox (Android): 113
- Safari (iOS): 15
- Samsung Internet: 15
Browser support data for css-logical-props
comes from caniuse.com and is up-to-date as of .
Inert HTML Permalink ¶
A single HTML attribute that allows you designate parts of your document as inactive, disallowing any interaction (mouse/keyboard/otherwise) within those elements.
Desktop support:
- Chrome: 102
- Edge: 102
- Firefox: 112
- Opera: 88
- Safari: 15.5
Mobile support:
- Android Browser: 102
- Chrome (Android): 102
- Firefox (Android): 112
- Safari (iOS): 15.5
- Samsung Internet: 19.0
Browser support data for mdn-html_global_attributes_inert
comes from MDN’s browser-compat-data
and is up-to-date as of version 5.2.60.
CSS Variables CSS ✅ Permalink ¶
Allows a declaring of native, cascading variables in CSS.
Desktop support:
- Chrome: 49
- Edge: 16
- Firefox: 31
- Opera: 36
- Safari: 10
Mobile support:
- Android Browser: 113
- Chrome (Android): 113
- Firefox (Android): 113
- Safari (iOS): 10
- Samsung Internet: 5
Browser support data for css-variables
comes from caniuse.com and is up-to-date as of .
color() CSS ✅ Permalink ¶
Specify a color in a different color space.
Desktop support:
- Chrome: 111
- Edge: 111
- Firefox: 113
- Opera: 98
- Safari: 15
Mobile support:
- Android Browser: 113
- Chrome (Android): 113
- Firefox (Android): 113
- Safari (iOS): 15
- Samsung Internet: No
Browser support data for css-color-function
comes from caniuse.com and is up-to-date as of .
oklch() CSS ✅ Permalink ¶
The oklch()
functional notation expresses a given color in the OKLCH color space.
Desktop support:
- Chrome: 111
- Edge: 111
- Firefox: 113
- Opera: 97
- Safari: 15.4
Mobile support:
- Android Browser: 111
- Chrome (Android): 111
- Firefox (Android): 113
- Safari (iOS): 15.4
- Samsung Internet: No
Browser support data for mdn-css_types_color_oklch
comes from MDN’s browser-compat-data
and is up-to-date as of version 5.2.60.
oklab() CSS ✅ Permalink ¶
The oklab()
functional notation expresses a given color in the OKLCH color space.
Desktop support:
- Chrome: 111
- Edge: 111
- Firefox: 113
- Opera: 97
- Safari: 15.4
Mobile support:
- Android Browser: 111
- Chrome (Android): 111
- Firefox (Android): 113
- Safari (iOS): 15.4
- Samsung Internet: No
Browser support data for mdn-css_types_color_oklab
comes from MDN’s browser-compat-data
and is up-to-date as of version 5.2.60.
lab()/lch() CSS ✅ Permalink ¶
Alternate, more-understandable color functions. lab()
defines colors using lightness and a and b values which define the hue. lch()
defines colors using lightness, chroma, and hue.
Desktop support:
- Chrome: 111
- Edge: 111
- Firefox: 113
- Opera: 98
- Safari: 15
Mobile support:
- Android Browser: 113
- Chrome (Android): 113
- Firefox (Android): 113
- Safari (iOS): 15
- Samsung Internet: No
Browser support data for css-lch-lab
comes from caniuse.com and is up-to-date as of .
color-mix() CSS ✅ Permalink ¶
Mixes two colors together.
Desktop support:
- Chrome: 111
- Edge: 111
- Firefox: 113
- Opera: 97
- Safari: 16.2
Mobile support:
- Android Browser: 111
- Chrome (Android): 111
- Firefox (Android): 113
- Safari (iOS): 16.2
- Samsung Internet: No
Browser support data for css-color-mix
comes from MDN’s browser-compat-data
and is up-to-date as of version 5.2.60.
Trigonometry Functions CSS ✅ Permalink ¶
Brings sin()
, cos()
, tan()
, asin()
, acos()
, atan()
, and atan2()
to CSS.
Desktop support:
- Chrome: 111
- Edge: 111
- Firefox: 108
- Opera: 97
- Safari: 15.4
Mobile support:
- Android Browser: 111
- Chrome (Android): 111
- Firefox (Android): 108
- Safari (iOS): 15.4
- Samsung Internet: No
Browser support data for trig-funcs
comes from MDN’s browser-compat-data
and is up-to-date as of version 5.2.60.
Intrinsic & Extrinsic Sizing CSS ✅ Permalink ¶
Allows defining size using intrinsic values: max-content
, min-content
, fit-content
, and stretch
.
Desktop support:
- Chrome: 22
- Edge: 79
- Firefox: 115
- Opera: 15
- Safari: 16
Mobile support:
- Android Browser: 4.4
- Chrome (Android): 113
- Firefox (Android): 113
- Safari (iOS): 16
- Samsung Internet: 4
Browser support data for intrinsic-width
comes from caniuse.com and is up-to-date as of .
:has() CSS ✅ Permalink ¶
The fabled “parent selector”! This allows us to finally style an element based on its children.
Desktop support:
- Chrome: 105
- Edge: 105
- Firefox: No
- Opera: 91
- Safari: 15.4
Mobile support:
- Android Browser: 113
- Chrome (Android): 113
- Firefox (Android): No
- Safari (iOS): 15.4
- Samsung Internet: 20
Browser support data for css-has
comes from caniuse.com and is up-to-date as of .
Colrv1 Font Formats CSS ✅ Permalink ¶
A font format with additional graphic capabilities: different colours, gradients, and blend modes to name a few.
Desktop support:
- Chrome: 98
- Edge: 98
- Firefox: 107
- Opera: 86
- Safari: No
Mobile support:
- Android Browser: 113
- Chrome (Android): 113
- Firefox (Android): 113
- Safari (iOS): No
- Samsung Internet: 18
Browser support data for colr-v1
comes from caniuse.com and is up-to-date as of .
@property CSS ✅ Permalink ¶
Gives us the ability to explicitly define our CSS custom properties, including type-checking, default values, and ability to cascade the value.
Desktop support:
- Chrome: 85
- Edge: 85
- Firefox: No
- Opera: 71
- Safari: 16.4
Mobile support:
- Android Browser: 85
- Chrome (Android): 85
- Firefox (Android): No
- Safari (iOS): 16.4
- Samsung Internet: 14.0
Browser support data for mdn-css_at-rules_property
comes from MDN’s browser-compat-data
and is up-to-date as of version 5.2.60.
Nesting CSS ✅ Permalink ¶
This one is a huge part of what makes Sass/SCSS so appealing to developers. There will always be a value in pre-rendering some parts of our CSS, but I’m excited to see more features like this that will make life easier for developers all the way through from “beginner” to “expert”.
Desktop support:
- Chrome: 112
- Edge: 112
- Firefox: No
- Opera: 98
- Safari: 16.5
Mobile support:
- Android Browser: 113
- Chrome (Android): 113
- Firefox (Android): No
- Safari (iOS): 16.5
- Samsung Internet: No
Browser support data for css-nesting
comes from caniuse.com and is up-to-date as of .
::target-text CSS ✅ Permalink ¶
Represents the text that has been scrolled to if the browser supports scroll-to-text fragments, and allows styling similarly to ::selection
.
Desktop support:
- Chrome: 89
- Edge: 89
- Firefox: No
- Opera: 75
- Safari: No
Mobile support:
- Android Browser: 89
- Chrome (Android): 89
- Firefox (Android): No
- Safari (iOS): No
- Samsung Internet: 15.0
Browser support data for mdn-css_selectors_target-text
comes from MDN’s browser-compat-data
and is up-to-date as of version 5.2.60.
Web Share API HTML Permalink ¶
“A way to allow websites to invoke the native sharing capabilities of the host platform”
Desktop support:
- Chrome: 116
- Edge: 95
- Firefox: No
- Opera: No
- Safari: 12.1
Mobile support:
- Android Browser: No
- Chrome (Android): 113
- Firefox (Android): 113
- Safari (iOS): 12.2
- Samsung Internet: 8.2
Browser support data for web-share
comes from caniuse.com and is up-to-date as of .
Subgrid CSS ✅ Permalink ¶
Allows grid to cascade into children of a grid container, rather than the need for a flat layout.
Desktop support:
- Chrome: No
- Edge: No
- Firefox: 71
- Opera: No
- Safari: 16
Mobile support:
- Android Browser: No
- Chrome (Android): No
- Firefox (Android): 113
- Safari (iOS): 16
- Samsung Internet: No
Browser support data for css-subgrid
comes from caniuse.com and is up-to-date as of .
Exponential Functions CSS ✅ Permalink ¶
Brings pow()
, sqrt()
, hypot()
, log()
, and exp()
to CSS.
Desktop support:
- Chrome: No
- Edge: No
- Firefox: 112
- Opera: No
- Safari: 15.4
Mobile support:
- Android Browser: No
- Chrome (Android): No
- Firefox (Android): 112
- Safari (iOS): 15.4
- Samsung Internet: No
Browser support data for exponent-funcs
comes from MDN’s browser-compat-data
and is up-to-date as of version 5.2.60.
Numeric Constants CSS ✅ Permalink ¶
Brings the numeric constants e
and pi
to CSS.
Desktop support:
- Chrome: No
- Edge: No
- Firefox: 108
- Opera: No
- Safari: 15.4
Mobile support:
- Android Browser: No
- Chrome (Android): No
- Firefox (Android): 108
- Safari (iOS): 15.4
- Samsung Internet: No
Browser support data for calc-constants
comes from MDN’s browser-compat-data
and is up-to-date as of version 5.2.60.
Stepped Value Functions CSS ✅ Permalink ¶
Brings round()
, mod()
, and rem()
to CSS.
Desktop support:
- Chrome: No
- Edge: No
- Firefox: Preview
- Opera: No
- Safari: 15.4
Mobile support:
- Android Browser: No
- Chrome (Android): No
- Firefox (Android): No
- Safari (iOS): 15.4
- Samsung Internet: No
Browser support data for stepped-value-funcs
comes from MDN’s browser-compat-data
and is up-to-date as of version 5.2.60.
Sign-Related Functions CSS ✅ Permalink ¶
Brings abs()
and sign()
to CSS.
Desktop support:
- Chrome: No
- Edge: No
- Firefox: No
- Opera: No
- Safari: 15.4
Mobile support:
- Android Browser: No
- Chrome (Android): No
- Firefox (Android): No
- Safari (iOS): 15.4
- Samsung Internet: No
Browser support data for sign-funcs
comes from MDN’s browser-compat-data
and is up-to-date as of version 5.2.60.
Relative Colors CSS ✅ Permalink ¶
Gives us the ability to generate colours from other colours, with the ability to destructure the colour channels and manipulate them on the way.
Desktop support:
- Chrome: No
- Edge: No
- Firefox: No
- Opera: No
- Safari: 16.4
Mobile support:
- Android Browser: No
- Chrome (Android): No
- Firefox (Android): No
- Safari (iOS): 16.4
- Samsung Internet: No
Browser support data for relative-colors
comes from caniuse.com and is up-to-date as of .
margin-trim CSS ✅ Permalink ¶
Allows a container to trim the margins of its children’s adjoining edges.
Desktop support:
- Chrome: No
- Edge: No
- Firefox: No
- Opera: No
- Safari: 16.4
Mobile support:
- Android Browser: No
- Chrome (Android): No
- Firefox (Android): No
- Safari (iOS): 16.4
- Samsung Internet: No
Browser support data for mdn-css_properties_margin-trim
comes from MDN’s browser-compat-data
and is up-to-date as of version 5.2.60.
Scroll Timeline CSS ✅ Permalink ¶
Native-CSS animations based on scroll position—no more need for JS!
Desktop support:
- Chrome: No
- Edge: No
- Firefox: No
- Opera: No
- Safari: No
Mobile support:
- Android Browser: No
- Chrome (Android): No
- Firefox (Android): No
- Safari (iOS): No
- Samsung Internet: No
Browser support data for css-scroll-timeline
comes from caniuse.com and is up-to-date as of .
color-contrast() CSS ✅ Permalink ¶
Given one color, chooses from a list of other colors to output the one with the highest contrast.
Desktop support:
- Chrome: No
- Edge: No
- Firefox: No
- Opera: No
- Safari: 15
Mobile support:
- Android Browser: No
- Chrome (Android): No
- Firefox (Android): No
- Safari (iOS): 15
- Samsung Internet: No
Browser support data for css-color-contrast
comes from MDN’s browser-compat-data
and is up-to-date as of version 5.2.60.
@when/@else CSS Permalink ¶
Similar to conditionals in other programming languages. Could be useful for making complex media queries more logical.
Desktop support:
- Chrome: No
- Edge: No
- Firefox: No
- Opera: No
- Safari: No
Mobile support:
- Android Browser: No
- Chrome (Android): No
- Firefox (Android): No
- Safari (iOS): No
- Samsung Internet: No
Browser support data for css-when-else
comes from caniuse.com and is up-to-date as of .
attr() CSS ✅ Permalink ¶
Expands the use of the attr()
function by making it available to more properties and by allowing a type or unit
to be passed alongside the targetted attribute. This could be used for things like passing a url
-type attribute to background-image
.
Desktop support:
- Chrome: No
- Edge: No
- Firefox: No
- Opera: No
- Safari: No
Mobile support:
- Android Browser: No
- Chrome (Android): No
- Firefox (Android): No
- Safari (iOS): No
- Samsung Internet: No
Browser support data for css3-attr
comes from caniuse.com and is up-to-date as of .
Balanced Text CSS ✅ Permalink ¶
Evenly distributes words across multiple lines to prevent widows.
Because this is still an experimental feature, data is currently unavailable.
Linear Easing Function CSS ✅ Permalink ¶
Allows defining more complex mathematical functions to describe the rate of change for numerical value changes.
Because this is still an experimental feature, data is currently unavailable.
Array.prototype.at() JavaScript Permalink ¶
Like indexOf()
but allows us to pass a negative integer, rather than hinging upon the array’s length.
Because this is still an experimental feature, data is currently unavailable.
A lot of inspiration for this living collection comes from Michelle Barker, who wrote about upcoming browser features on Smashing Magazine and on CSS { In Real Life }.
Please feel free to suggest new features or even other browsers.
6 Responses
- 2 Likes
- 1 Link
- 1 Repost
-
-
@jensgro I'm glad you find it useful!
"Steal" away, that's the beauty of the web (and open licenses)!
I'd be remiss if I didn't also point out Ire Aderinokun's CanIUse Embed generator
https://bitsofco.de/caniuse-embed/
which is a bit more "portable" imo, as you don't need to integrate the CanIUse API and MDN Browser Compatability Data into your site's build, which also limits the freshness of the data to the most recent website build.
Creating an Embed for CanIUse | bitsofcode