2027 Web Platform Feature Ranking

David Marland

Ranked proposals (top = most important)

  1. CSS interpolate-⁠size property and calc-⁠size() function

    Allows animating to height: auto, and using intrinsic sizes in calculations.

  2. JavaScript Temporal

    A modern and extensive date/time API to replace Date.

  3. CSS container scroll-state queries

    The @container scroll-⁠state(...) at-rule applies styles based on the sticky positioning, snapped, and scrollable state of the container.

  4. CSS anchored container queries

    @container anchored(fallback: …) applies styles based on which position fallback an anchor-positioned element is using.

  5. Customizable/stylable <select>

    Customize the button, selected option, picker, and options with CSS.

  6. HTML focusgroup attribute

    Combines descendant elements into a single tab stop, with arrow-key navigation between them.

  7. Allow CSS transitioning/animating display and content-⁠visibility

    Useful for delaying display: none until an exit animation completes.

  8. CSS gap decorations

    column-⁠rule and row-⁠rule display decorative lines between columns and rows of a flex, grid, or multi-column layout.

  9. Interest invokers

    The interestfor attribute triggers actions on a target element when the user shows interest, such as via hover, focus, or long-press.

  10. CSS corner-⁠shape property

    Alternative shapes for border-⁠radius, such as squircles and bevels.

  11. HTML headingoffset and headingreset attributes

    Offsets the heading level of descendant <h1>–<h6> elements. Includes the CSS :heading() pseudo-class.

  12. CSS reading-⁠flow and reading-⁠order properties

    Sets the order in which flex or grid elements are rendered to speech or reached via focus navigation.

  13. CSS var() in size container queries

    Such as @container (width >= var(-⁠-⁠min-⁠width)).

  14. Responsive iframes

    The frame-⁠sizing CSS property sizes an <iframe> to its content, avoiding scrolling within the iframe.

  15. CSS margin-⁠trim

    Removes the margins of child elements when they meet the edges of the container.