An element that starts hidden and animates in had needed a class added on the next frame, because there is no style to transition from.
@starting-style {
.popover.is-open {
opacity: 0;
transform: translateY(-4px);
}
}
.popover.is-open {
opacity: 1;
transform: none;
transition: opacity 200ms, transform 200ms;
}
The requestAnimationFrame dance this replaces is one of those patterns everybody has written and nobody enjoys, and it is fragile in exactly the case that matters — an element inserted and shown in the same frame. Support was not universal when this shipped, and the fallback is that the element appears without animating, which is an acceptable degradation and needs no feature query.