1. calc() as CSS unit value

    Method of allowing calculated values for length units, i.e. `width: calc(100% - 3em)`

  2. Canvas (basic support)

    Method of generating fast, dynamic graphics using JavaScript.

  3. classList (DOMTokenList)

    Method of easily manipulating classes on elements, using the `DOMTokenList` object.

  4. CSS color() function

    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.

  5. :dir() CSS pseudo-class

    Matches elements based on their directionality. `:dir(ltr)` matches elements which are Left-to-Right. `:dir(rtl)` matches elements which are Right-to-Left.

  6. CSS Environment Variables env()

    Usage of environment variables like `safe-area-inset-top`.

  7. CSS filter() function

    This function filters a CSS input image with a set of filter functions (like blur, grayscale or hue)

  8. :has() CSS relational pseudo-class

    Select elements containing specific content. For example, `a:has(img)` selects all `<a>` elements that contain an `<img>` child.

  9. CSS if() function

    The `if()` CSS function allows different values to be set for a property depending on the result of a conditional test. The test can be based on a style query, a media query, or a feature query.

  10. :is() CSS pseudo-class

    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.

  11. CSS math functions min(), max() and clamp()

    More advanced mathematical expressions in addition to `calc()`

  12. CSS.supports() API

    The CSS.supports() static method returns a Boolean value indicating if the browser supports a given CSS feature, or not.

  13. CSS3 attr() function for all properties

    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).

  14. ECMAScript 2015 (ES6)

    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.

  15. localeCompare()

    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.

  16. matches() DOM method

    Method of testing whether or not a DOM element matches a given selector. Formerly known (and largely supported with prefix) as matchesSelector.

  17. String.prototype.padStart(), String.prototype.padEnd()

    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()`.

  18. Element.scrollIntoViewIfNeeded()

    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.