Browser Support

The tested core baseline, progressive enhancements, and fallback expectations for CSS Tags.

Enhance interactions without hiding the baseline

Native disclosure works throughout the supported baseline; newer animation APIs can decorate the same interaction.

Deployment details

The content remains reachable if an optional transition or positioning feature is unavailable.

More examples

Each example introduces a different part of the shipped API.

Scope enhancements with feature queries

Use the fallback first, then opt into a platform feature only where it is implemented.

Fallback firstReadable content and ordinary navigationEnhanced when supported

CSS Tags separates its complete theme baseline from optional platform enhancements. This makes support predictable: a browser either meets the core contract, or an application must provide a compiled/static theme fallback.

Core baseline

BrowserMinimum versionCore capability that sets the floor
Chrome / Edge119CSS relative color syntax
Firefox128CSS relative color syntax
Safari16.5Native CSS nesting

The shipped theme derives semantic colors with relative oklch(from …) syntax, and reusable component/layout rules use native nesting. These are core inputs, not decorative enhancements, so older engines are not claimed as fully supported.

If an application must support an older engine, compile or replace the generative theme with static semantic token values and flatten nested rules as part of that application’s build. Do not assume an invalid derived custom property automatically falls back to an earlier var() branch.

Progressive enhancements

The following features are intentionally newer than the core baseline:

FeatureBaseline behavior without it
Popover APIKeep critical actions available in ordinary document flow or load a focused polyfill.
Anchor PositioningTooltips and overlays retain ordinary absolute/fixed positioning contracts.
Customizable selectThe native <select> remains usable and themed by standard control styles.
View TransitionsThe same link or button updates content without animation.
Typed attr() valuesComponent custom properties and declared defaults remain the reliable fallback API.
Experimental custom functions/mixinsShipped baseline components use ordinary CSS; experimental recipes are opt-in.

Each component page should identify its behavior-bearing native element and the exact enhancement boundary.

Compatibility test matrix

Before a release, verify the complete entry point in the latest stable version of each baseline engine and in the current stable versions. Exercise:

  • light, dark, and forced-colors modes;
  • reduced motion;
  • keyboard-only operation;
  • right-to-left direction;
  • 200% text and long untranslated content;
  • narrow containers rather than viewport width alone;
  • no-JavaScript behavior where a native fallback is documented.

Support-table changes belong on this page first. Other guides should link here rather than maintaining their own version matrix.