chromium/third_party/blink/web_tests/animations/custom-properties/time-type-interpolation.html

<!DOCTYPE html>
<meta charset="UTF-8">
<style>
.parent {
  --time: 30s;
}
.target {
  --time: 10s;
}
</style>
<body>
<script src="../interpolation/resources/interpolation-test.js"></script>
<script>
CSS.registerProperty({
  name: '--time',
  syntax: '<time>',
  initialValue: '40s',
  inherits: false,
});

assertInterpolation({
  property: '--time',
  from: neutralKeyframe,
  to: '20s',
}, [
  {at: -0.3, is: '7s'},
  {at: 0, is: '10s'},
  {at: 0.5, is: '15s'},
  {at: 1, is: '20s'},
  {at: 1.5, is: '25s'},
]);

assertInterpolation({
  property: '--time',
  from: 'initial',
  to: '20s',
}, [
  {at: -0.3, is: '46s'},
  {at: 0, is: '40s'},
  {at: 0.5, is: '30s'},
  {at: 1, is: '20s'},
  {at: 1.5, is: '10s'},
]);

assertInterpolation({
  property: '--time',
  from: 'inherit',
  to: '20s',
}, [
  {at: -0.3, is: '33s'},
  {at: 0, is: '30s'},
  {at: 0.5, is: '25s'},
  {at: 1, is: '20s'},
  {at: 1.5, is: '15s'},
]);

assertInterpolation({
  property: '--time',
  from: 'unset',
  to: '20s',
}, [
  {at: -0.3, is: '46s'},
  {at: 0, is: '40s'},
  {at: 0.5, is: '30s'},
  {at: 1, is: '20s'},
  {at: 1.5, is: '10s'},
]);

assertInterpolation({
  property: '--time',
  from: '-10s',
  to: '10s',
}, [
  {at: -0.3, is: '-16s'},
  {at: 0, is: '-10s'},
  {at: 0.5, is: '0s'},
  {at: 1, is: '10s'},
  {at: 1.5, is: '20s'},
]);

assertInterpolation({
  property: '--time',
  from: '100ms',
  to: '200ms',
}, [
  {at: -0.3, is: '0.07s'},
  {at: 0, is: '0.1s'},
  {at: 0.5, is: '0.15s'},
  {at: 1, is: '0.2s'},
  {at: 1.5, is: '0.25s'},
]);

assertInterpolation({
  property: '--time',
  from: '1000ms',
  to: '11s',
}, [
  {at: -0.3, is: '-2s'},
  {at: 0, is: '1s'},
  {at: 0.5, is: '6s'},
  {at: 1, is: '11s'},
  {at: 1.5, is: '16s'},
]);
</script>
</body>