CSS

css/limited-needs-supports

CSS that is not Baseline yet (anchor positioning) or only just became Baseline (scroll-driven animations) sits in @supports with a fallback.

moderatestaticfe-css-modern

Why

A browser drops declarations it does not understand. A menu placed only with position-anchor and anchor() ends up at the corner of the page in a browser without anchor positioning, and an animation bound only to a scroll timeline runs once on load where scroll timelines are missing. On 2026-11-11 anchor positioning was not Baseline and scroll-driven animations had been Baseline for two weeks, so many visitors still lack them.

Fix

Write a working fallback first (a plain position: absolute placement, no animation), then the new feature inside @supports (anchor-name: --a) or @supports (animation-timeline: scroll()). Put motion inside prefers-reduced-motion: no-preference as well. Recheck the Baseline status before you remove the fallback.

Examples

/* bad */
.menu { position: absolute; position-anchor: --menu; top: anchor(bottom); }
/* good */
.menu { position: absolute; top: 100%; }
@supports (anchor-name: --a) { .menu { position-anchor: --menu; top: anchor(bottom); } }

Sources

Facts

Id
css/limited-needs-supports
Severity
moderate
Check
static checked in the source by audit
Applies to
css scss less html vue svelte astro
Taught by the skill
fe-css-modern Modern CSS features
Since version
0.1.0

Rule file on GitHub

Read it in the terminal

npx github:dawidolko/frontend-skills explain css/limited-needs-supports