Skip to content

Commit

Permalink
CSS Animations: WPTs for responsive animations
Browse files Browse the repository at this point in the history
column-rule-color animations respond to changes in currentColor
and inherited column-rule-color that occur while the animation
is in progress.

column-width animations repond to changes in font-size
and inherited column-width that occur while the animation
is in progress.

Note this test fails in
Edge 18
Firefox 67 (partially)
Safari 12.1

Bug: 812908
Change-Id: Ic28819a7f4aa3c8c30b11d58ea2600563a182c07
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1689612
Reviewed-by: Robert Flack <[email protected]>
Commit-Queue: Eric Willigers <[email protected]>
Cr-Commit-Position: refs/heads/master@{#675042}
  • Loading branch information
ericwilligers authored and chromium-wpt-export-bot committed Jul 5, 2019
1 parent 1ae7eb5 commit 3c5c837
Show file tree
Hide file tree
Showing 2 changed files with 137 additions and 0 deletions.
61 changes: 61 additions & 0 deletions css/css-animations/responsive/column-rule-color-001.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Animations: column-rule-color animations respond to style changes</title>
<link rel="help" href="https://drafts.csswg.org/css-multicol-1/#crc">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
.paused {
animation-duration: 4s;
animation-timing-function: linear;
animation-delay: -2s;
animation-play-state: paused;
}
#container {
color: rgb(80, 0, 0);
}
#first {
animation-name: first-anim;
color: rgb(60, 0, 0);
}
#second {
animation-name: second-anim;
}
@keyframes first-anim {
from { column-rule-color: currentColor; }
to { column-rule-color: rgb(0, 60, 0); }
}
@keyframes second-anim {
from { column-rule-color: inherit; }
to { column-rule-color: rgb(0, 0, 80); }
}
</style>
</head>
<body>
<div id="container">
<div id="first" class="paused"></div>
<div id="second" class="paused"></div>
</div>
<script>
'use strict';
var container = document.getElementById('container');

test(() => {
const first = document.getElementById('first');
assert_equals(getComputedStyle(first).columnRuleColor, 'rgb(30, 30, 0)');
first.style.color = 'rgb(0, 0, 60)';
assert_equals(getComputedStyle(first).columnRuleColor, 'rgb(0, 30, 30)');
}, 'column-rule-color responds to currentColor changes');

test(() => {
const container = document.getElementById('container');
const second = document.getElementById('second');
assert_equals(getComputedStyle(second).columnRuleColor, 'rgb(40, 0, 40)');
container.style.columnRuleColor = 'rgb(0, 80, 0)';
assert_equals(getComputedStyle(second).columnRuleColor, 'rgb(0, 40, 40)');
}, 'column-rule-color responds to inherited changes');
</script>
</body>
</html>
76 changes: 76 additions & 0 deletions css/css-animations/responsive/column-width-001.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Animations: column-width animations respond to style changes</title>
<link rel="help" href="https://drafts.csswg.org/css-multicol-1/#cw">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
.paused {
animation-duration: 4s;
animation-timing-function: linear;
animation-delay: -2s;
animation-play-state: paused;
}
#container {
column-width: 40px;
font-size: 10px;
}
#first {
animation-name: first-anim;
}
#second {
animation-name: second-anim;
}
#third {
animation-name: third-anim;
}
@keyframes first-anim {
from { column-width: 3em; }
to { column-width: 5em; }
}
@keyframes second-anim {
from { column-width: 40px; }
to { column-width: calc(40px - 2em); }
}
@keyframes third-anim {
from { column-width: 20px; }
to { column-width: inherit; }
}
</style>
</head>
<body>
<div id="container">
<div id="first" class="paused"></div>
<div id="second" class="paused"></div>
<div id="third" class="paused"></div>
</div>
<script>
'use strict';
var container = document.getElementById('container');

test(() => {
const first = document.getElementById('first');
assert_equals(getComputedStyle(first).columnWidth, '40px');
first.style.fontSize = '20px';
assert_equals(getComputedStyle(first).columnWidth, '80px');
}, 'column-width responds to font-size changes');

test(() => {
const second = document.getElementById('second');
assert_equals(getComputedStyle(second).columnWidth, '30px');
second.style.fontSize = '90px';
assert_equals(getComputedStyle(second).columnWidth, '0px');
}, 'column-width clamps to 0px');

test(() => {
const container = document.getElementById('container');
const third = document.getElementById('third');
assert_equals(getComputedStyle(third).columnWidth, '30px');
container.style.columnWidth = 'auto';
assert_equals(getComputedStyle(third).columnWidth, 'auto');
}, 'column-width responds to inherited changes');
</script>
</body>
</html>

0 comments on commit 3c5c837

Please sign in to comment.