CSS Interop 2026
Interop 2026 is an agreement between major browser engines to fix inconsistencies across the web. This year focuses on making advanced features like anchor positioning and scroll-driven animations more reliable. Browse all 27 interop 2026 in our CSS Reference.
::backdrop
Styles the area behind a full-screen element or dialog. It allows you to dim the background or add effects like blur when a modal is active.
::highlight
Targets custom text highlights created via the CSS Highlight API. It allows you to style specific ranges of text programmatically (ideal for search-and-highlight features).
:active-view-transition
Matches elements that are currently participating in a view transition. This allows you to apply specific styles or animations exclusively while the transition is in progress.
:loop
A selector that matches a media element (like <video> or <audio>) when it is currently set to play back in a loop.
:muted
Targets media elements (like <video> or <audio>) when they are currently muted.
:open
A pseudo-class that matches elements when they are in an 'open' state, such as a <dialog> or <details> element. It's designed to provide a unified way to style openable components.
:paused
A selector that matches a media element (like <video> or <audio>) when it is currently paused.
:playing
A selector that matches a media element (like <video> or <audio>) when it is currently playing.
@view-transition
Controls the browser's native view transition feature. It can be used to enable or disable transitions for specific elements or across the entire document during state changes.
<anchor>
Allows an element (like a tooltip or menu) to be docked to another element on the page, ensuring it stays positioned relative to that target even if the page scrolls or layout changes.
anchor-name
Defines a unique name for an element so it can be used as an anchor for other positioned elements. This creates the relationship needed for anchor positioning to work.
animation-timeline
The 'brain' of modern scroll-driven animations. It links an animation to a timeline other than time—usually the scroll position of the page or the visibility of an element in the viewport.
attr()
Retrieves the value of an attribute from an element to use directly in CSS. The classic use is with the content property in pseudo-elements; using attr() with typed values on other properties is a newer experimental extension.
contrast-color()
A function that automatically selects a text color with the best contrast against a given background color. It's a game-changer for dynamic themes, ensuring text remains readable regardless of the background.
position-anchor
Specifies which defined anchor element a positioned element should track. It connects the positioned element to its anchor by name.
scroll-snap-type
Enables scroll snapping on a container, forcing the scroll position to 'snap' to certain elements. It converts a smooth scroll into a stepped, slider-like experience.
scroll-timeline
Links an animation's progress directly to the scroll position of a scroll container. This replaces time-based durations with scroll-based progress.
scroll-timeline-axis
Defines the axis of a scroll container that will drive the progress of a scroll timeline — either block (vertical) or inline (horizontal).
scroll-timeline-name
Assigns a custom name to a scroll timeline, allowing it to be referenced by the animation-timeline property on other elements.
shape()
A function used in 'clip-path' and other properties to define custom 2D shapes using commands like 'move', 'line', and 'curve'. It's basically like writing SVG paths directly in CSS.
style()
A part of container queries that lets you style elements based on the computed value of a CSS property (usually a custom property) on their parent container, rather than just size.
view-timeline
A shorthand for defining a scroll timeline that is tied to when an element enters and leaves the visible part of the screen (the viewport). It's the core of modern 'reveal on scroll' animations.
view-timeline-axis
Specifies the axis (vertical or horizontal) that a 'view-timeline' should follow. For most standard web pages, this is 'block' (vertical scrolling).
view-timeline-inset
Allows you to offset the 'start' and 'end' points of a view-timeline. This is useful if you want an animation to start before an element is fully on screen (e.g., when it's 20% visible) or continue after it has partially left.
view-timeline-name
Defines a name for a view-timeline, which tracks an element's visibility within its scroll container. You can then use this name in your 'animation-timeline' property to trigger animations based on the element's position as you scroll.
view-transition-name
The core property for enabling view transitions on specific elements. By giving an element a 'view-transition-name', the browser will automatically track its position and size across page changes and animate the difference.
zoom
A non-standard (but now widely supported) property that scales the entire element. While 'transform: scale()' is usually better for modern layouts, 'zoom' is still used for simple scaling without affecting the surrounding layout flow as much.