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 74 interop 2026 in our CSS Reference.

::backdrop

AvailabilityWidely Available
Support
95%

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.

Interop 2026 focus area

::highlight

AvailabilityNewly Available
Support
92%

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

Interop 2026 focus area

::view-transition-group

AvailabilityNewly Available
Support
91%

Targets the transition 'group' container for a specific named view transition. This is the container that holds both the 'old' and 'new' snapshots of an element, allowing you to animate the entire group as it moves or scales.

Interop 2026 focus area

::view-transition-image-pair

AvailabilityNewly Available
Support
91%

Targets the 'pair' of images (the old snapshot and the new snapshot) within a view transition group. This is where the cross-fade between the two states actually happens.

Interop 2026 focus area

::view-transition-new

AvailabilityNewly Available
Support
91%

Targets the 'new' state's snapshot in a view transition. This is the image of how the element looks AFTER the change, allowing you to specifically animate how it fades in.

Interop 2026 focus area

::view-transition-old

AvailabilityNewly Available
Support
91%

Targets the 'old' state's snapshot in a view transition. This is the image of how the element looked BEFORE the change, allowing you to animate how it fades out or is removed.

Interop 2026 focus area

:active-view-transition

AvailabilityNewly Available
Support
84%

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.

Interop 2026 focus area

:active-view-transition-type

AvailabilityNewly Available
Support
83%

Allows you to target elements during a specific type of view transition. By naming your transitions (e.g., 'slide-in' or 'payout'), you can apply different styles for each scenario.

Interop 2026 focus area

:buffering

AvailabilityLimited
Support
13%

Targets media elements (like <video> or <audio>) while they are actively loading data and currently 'buffering'.

Interop 2026 focus area

:loop

AvailabilityLimited
Support
0%

A selector that matches a media element (like <video> or <audio>) when it is currently set to play back in a loop.

Interop 2026 focus area

:muted

AvailabilityLimited
Support
13%

Targets media elements (like <video> or <audio>) when they are currently muted.

Interop 2026 focus area

:open

AvailabilityNewly Available
Support
71%

Targets elements that are currently in an 'open' state, such as a <details> element that is expanded or a <dialog> that is visible.

Interop 2026 focus area

:paused

AvailabilityLimited
Support
13%

A selector that matches a media element (like <video> or <audio>) when it is currently paused.

Interop 2026 focus area

:playing

AvailabilityLimited
Support
13%

A selector that matches a media element (like <video> or <audio>) when it is currently playing.

Interop 2026 focus area

:seeking

AvailabilityLimited
Support
13%

A selector that matches a media element (like <video> or <audio>) while the user is actively 'seeking' or scrubbing through the timeline.

Interop 2026 focus area

:stalled

AvailabilityLimited
Support
13%

A selector that matches a media element (like <video> or <audio>) when it tries to fetch data but can't because of a slow network or connection issues.

Interop 2026 focus area

:volume-locked

AvailabilityLimited
Support
13%

An experimental pseudo-class that targets audio or video elements that are currently 'locked' from being muted or having their volume changed (often seen in certain accessibility contexts).

Interop 2026 focus area

@container style()

AvailabilityNewly Available
Support
88%

Lets you apply styles based on the value of a container's custom property, like @container style(--theme: dark), instead of only its size.

Interop 2026 focus area

@position-try

AvailabilityLimited
Support77%

An at-rule that allows you to define custom named sets of positioning properties. These can then be used as fallbacks in the 'position-try-fallbacks' property.

Interop 2026 focus area

@view-transition

AvailabilityLimited
Support
82%

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.

Interop 2026 focus area

<anchor-size>

AvailabilityLimited
Support77%

A function that retrieves the width or height of the anchor element. It's incredibly useful for making a popup or menu match the exact dimensions of the button that triggered it.

Interop 2026 focus area

<anchor>

AvailabilityLimited
Support77%

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.

Interop 2026 focus area

<basic-shape>

AvailabilityWidely Available
Support
96%

A CSS type that represents a geometric shape. These are used in properties like 'clip-path' and 'shape-outside' to create non-rectangular layouts, such as circles, polygons, or rounded boxes.

Interop 2026 focus area

anchor-name

AvailabilityLimited
Support77%

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.

Interop 2026 focus area

anchor-scope

AvailabilityLimited
Support76%

Limits where an anchor name can be 'seen.' This prevents anchor names from leaking into other parts of the page, allowing you to reuse the same anchor names in different components safely.

Interop 2026 focus area

animation-range

AvailabilityLimited
Support
78%

A shorthand property for setting both the start and end points of a scroll-driven animation. It's the most concise way to define the 'active window' for a scroll effect.

Interop 2026 focus area

animation-range-end

AvailabilityLimited
Support
78%

Defines where a scroll-driven animation should reach 100% completion. For example, you can stop the animation exactly when an element exits the top of the viewport.

Interop 2026 focus area

animation-range-start

AvailabilityLimited
Support
78%

Defines the exact point in a scroll timeline where the animation should begin (0%). This allows you to delay the start of an animation until an element is partially visible.

Interop 2026 focus area

animation-timeline

AvailabilityLimited
Support
80%

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.

Interop 2026 focus area

attr()

AvailabilityLimited
Support99%

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.

Interop 2026 focus area

contrast-color()

AvailabilityNewly Available
Support
80%

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.

Interop 2026 focus area

position-anchor

AvailabilityLimited
Support77%

Specifies which defined anchor element a positioned element should track. It connects the positioned element to its anchor by name.

Interop 2026 focus area

position-area

AvailabilityLimited
Support76%

A newer, simplified way to position an element relative to its anchor. Instead of manually calculating top/left, you can use logical regions like 'top-right' or 'bottom-center'.

Interop 2026 focus area

position-try-fallbacks

AvailabilityLimited
Support76%

Part of the Anchor Positioning API, this property lets you define a list of 'backup' positions for an element. If the primary position would cause the element to overflow its container, the browser will try these fallbacks instead.

Interop 2026 focus area

position-try-order

AvailabilityLimited
Support76%

Determines the order in which the browser tries the fallback positions defined in 'position-try-fallbacks'. You can tell the browser to prioritize the position with the most available space.

Interop 2026 focus area

position-visibility

AvailabilityLimited
Support75%

Controls when an anchor-positioned element should be shown or hidden based on the visibility of its anchor. For example, you can hide a tooltip if its anchor is scrolled out of view.

Interop 2026 focus area

scroll-margin

AvailabilityWidely Available
Support
95%

Defines the margin (offset) of an element when it is scrolled into view via scroll-snapping or anchor links. This is extremely useful for preventing fixed headers from covering the top of a section.

Interop 2026 focus area

scroll-margin-block

AvailabilityWidely Available
Support
95%

A shorthand that sets both the start and end scroll margins at the same time. It creates a 'snap buffer' in the vertical direction (or whatever the 'block' axis is).

Interop 2026 focus area

scroll-margin-block-end

AvailabilityWidely Available
Support
95%

Sets the margin between the end of an element and the edge of its scroll container specifically for 'scroll snapping'. This ensures that when an element snaps into view, it doesn't bump directly against the edge.

Interop 2026 focus area

scroll-margin-block-start

AvailabilityWidely Available
Support
95%

Sets the 'snap margin' at the start of an element. This is perfect for ensuring that when you scroll to a section, your 'sticky' header doesn't cover up the section's' title.

Interop 2026 focus area

scroll-margin-bottom

AvailabilityWidely Available
Support
95%

Forces a specific amount of empty space at the bottom of an element when it's being snapped into place by the browser.

Interop 2026 focus area

scroll-margin-inline

AvailabilityWidely Available
Support
95%

A shorthand that sets both the start and end scroll margins in the horizontal (inline) direction at once.

Interop 2026 focus area

scroll-margin-inline-end

AvailabilityWidely Available
Support
95%

Sets the snap margin at the 'end' of an element in the text flow (usually the right side in English). It ensures a gap between the element and the edge of the scroll container when it snaps.

Interop 2026 focus area

scroll-margin-inline-start

AvailabilityWidely Available
Support
95%

Sets the snap margin at the 'start' of an element in the text flow (usually the left side in English). This is great for horizontal carousels to keep the current item from hugging the left edge.

Interop 2026 focus area

scroll-margin-left

AvailabilityWidely Available
Support
95%

Forces a specific amount of empty space on the left side of an element when it's snapped into place by the browser.

Interop 2026 focus area

scroll-margin-right

AvailabilityWidely Available
Support
95%

Forces a specific amount of empty space on the right side of an element when it's snapped into place by the browser.

Interop 2026 focus area

scroll-margin-top

AvailabilityWidely Available
Support
95%

Forces a specific amount of empty space at the top of an element when it's snapped into place. Extremely common for preventing sticky headers from overlapping your anchor targets.

Interop 2026 focus area

scroll-padding

AvailabilityWidely Available
Support
95%

Sets the padding (inner offset) of a scroll container. It ensures that when elements snap or are scrolled into view, they stay a certain distance away from the edges of the container.

Interop 2026 focus area

scroll-padding-block

AvailabilityWidely Available
Support
95%
Interop 2026 focus area

scroll-padding-block-end

AvailabilityWidely Available
Support
95%

Sets the padding at the end of the scroll container's 'snapping area'. While 'scroll-margin' is set on the items, 'scroll-padding' is set on the container itself.

Interop 2026 focus area

scroll-padding-block-start

AvailabilityWidely Available
Support
95%

Sets the padding at the start of the scroll container's 'snapping area'. It's applied to the SCROLL CONTAINER and affects how ALL items inside it are positioned when snapped.

Interop 2026 focus area

scroll-padding-bottom

AvailabilityWidely Available
Support
95%

Sets the snap padding at the bottom of the scroll container. It essentially creates a 'safe zone' at the bottom of the scroller so that snapped items don't hit the very edge.

Interop 2026 focus area

scroll-padding-inline

AvailabilityWidely Available
Support
95%

A shorthand that sets both the start and end scroll padding in the horizontal (inline) direction on a container.

Interop 2026 focus area

scroll-padding-inline-end

AvailabilityWidely Available
Support
95%

Sets the snap padding at the 'end' of the scroll container in the text flow (usually the right side). Applied to the container, it affects where all items inside will snap.

Interop 2026 focus area

scroll-padding-inline-start

AvailabilityWidely Available
Support
95%

Sets the snap padding at the 'start' of the scroll container in the text flow (usually the left side). Keeps snapped items from hugging the left edge.

Interop 2026 focus area

scroll-padding-left

AvailabilityWidely Available
Support
95%

Sets a fixed amount of padding on the left side of a scroll container that specifically interacts with scroll snapping.

Interop 2026 focus area

scroll-padding-right

AvailabilityWidely Available
Support
95%

Sets a fixed amount of padding on the right side of a scroll container that specifically interacts with scroll snapping.

Interop 2026 focus area

scroll-padding-top

AvailabilityWidely Available
Support
95%

Sets a fixed amount of padding on the top of a scroll container that specifically interacts with scroll snapping. Often applied to the root element to account for sticky headers.

Interop 2026 focus area

scroll-snap-align

AvailabilityWidely Available
Support
95%

Used on children within a scroll-snap container to define which part of the element should snap to the container. You can snap to the start, center, or end of the element.

Interop 2026 focus area

scroll-snap-stop

AvailabilityWidely Available
Support
95%

Determines whether a scroll container is allowed to 'skip' snap points when the user is scrolling quickly. Setting it to 'always' forces the scroll to stop at every single item.

Interop 2026 focus area

scroll-snap-type

AvailabilityWidely Available
Support
95%

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.

Interop 2026 focus area

scroll-timeline

AvailabilityLimited
Support
80%

Links an animation's progress directly to the scroll position of a scroll container. This replaces time-based durations with scroll-based progress.

Interop 2026 focus area

scroll-timeline-axis

AvailabilityLimited
Support
80%

Defines the axis of a scroll container that will drive the progress of a scroll timeline — either block (vertical) or inline (horizontal).

Interop 2026 focus area

scroll-timeline-name

AvailabilityLimited
Support
80%

Assigns a custom name to a scroll timeline, allowing it to be referenced by the animation-timeline property on other elements.

Interop 2026 focus area

shape()

AvailabilityNewly Available
Support
85%

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.

Interop 2026 focus area

style()

AvailabilityLimited
Support
0%

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.

Interop 2026 focus area

timeline-scope

AvailabilityLimited
Support
78%

A powerful property for scroll-driven animations. It allows you to 'broaden' the scope of a named scroll timeline so it can be accessed by elements outside of the immediate parent/child relationship.

Interop 2026 focus area

user-select

AvailabilityLimited
Support
95%

Controls whether the user can select text within an element. It is often used to prevent text selection on UI elements like buttons or icons.

Interop 2026 focus area

view-timeline

AvailabilityLimited
Support
80%

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.

Interop 2026 focus area

view-timeline-axis

AvailabilityLimited
Support
80%

Specifies the axis (vertical or horizontal) that a 'view-timeline' should follow. For most standard web pages, this is 'block' (vertical scrolling).

Interop 2026 focus area

view-timeline-inset

AvailabilityLimited
Support
78%

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.

Interop 2026 focus area

view-timeline-name

AvailabilityLimited
Support
80%

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.

Interop 2026 focus area

view-transition-name

AvailabilityNewly Available
Support
89%

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.

Interop 2026 focus area

zoom

AvailabilityNewly Available
Support
95%

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.

Interop 2026 focus area
ESC