Following up on #8282:
Currently to set a style that behaves differently based on whether the element is in the viewport, one has to use scroll-driven animations. For example, to set a view-transition-name when the element is in the viewport:
@keyframes set-name-when-in-view {
from { view-transition-name: actual-name }
to { view-transition-name: actual-name }
}
.thing {
animation-name: set-name-when-in-view;
animation-timeline-name: view();
}
The above works! However it requires going through an animation mental model for something that's not actually animated.
Perhaps view-timeline (or CSS animations in general?) can provide a convenient way to use animation primitives on something that's not animating? e.g.
.thing:in-view-range(view()) {
view-transition-name: actual-thing;
}