<!DOCTYPE html><title>scroll-timeline and container queries</title><linkrel="help"src="https://drafts.csswg.org/scroll-animations-1/#scroll-timeline-shorthand"><linkrel="help"src="https://drafts.csswg.org/css-conditional-5/#container-queries"><scriptsrc="/resources/testharness.js"></script><scriptsrc="/resources/testharnessreport.js"></script><scriptsrc="/web-animations/testcommon.js"></script><scriptsrc="support/testcommon.js"></script><style>#outer{height:100px;width:150px;}#container{container-type:size;}#scroller{overflow:auto;width:auto;height:100px;}#scroller>div{height:200px;}/* This does not apply initially. */@container(width>200px){#scroller{scroll-timeline:--timeline;}}@keyframesrecolor{from{background-color:rgb(100,100,100);}to{background-color:rgb(200,200,200);}}#element{height:10px;width:10px;animation:recolor10slinear;animation-timeline:--timeline;background-color:rgb(0,0,0);}</style><divid=outer><divid=container><divid=scroller><div></div><divid=element></div></div></div></div><script>setup(assert_implements_animation_timeline);promise_test(async(t)=>{element.offsetTop;scroller.scrollTop=(scroller.scrollHeight-scroller.clientHeight)/2;awaitwaitForNextFrame();// Unknown timeline, time held at zero.assert_equals(getComputedStyle(element).backgroundColor,'rgb(100, 100, 100)');// This causes the timeline to be created.outer.style.width='250px';// Check value with getComputedStyle immediately, which is the same// value since the scroll timeline is inactive before the next frame.assert_equals(getComputedStyle(element).backgroundColor,'rgb(100, 100, 100)');// Also check value after one frame.awaitwaitForNextFrame();assert_equals(getComputedStyle(element).backgroundColor,'rgb(150, 150, 150)');},'Timeline appearing via container queries');</script>