diff --git a/css-transforms-2/Overview.bs b/css-transforms-2/Overview.bs
index 640c089f0fe..23505d211aa 100644
--- a/css-transforms-2/Overview.bs
+++ b/css-transforms-2/Overview.bs
@@ -34,6 +34,12 @@ spec:css-transforms-1;
text:
- We should probably expand 2d functions to their 3d
- equivalents before matching?
-
- This needs to be more specific, e.g. when combining
-
@@ -325,7 +331,7 @@ This example shows show elements in a 3D rendering context can intersect. The co
The ''perspective'' property can be used to ensure that 3D transformed elements in the resulting 3D rendering context appear to live in a common three-dimensional space with depth, by suppling a common perspective matrix to descendant transformed members of its 3D rendering context, which is taken into account in the accumulated 3D matrix computation.
-By default, elements with value for ''perspective'' other than ''perspective/none'' are flattening, and thus establish a 3D rendering context. However, setting ''transform-style'' to ''preserve-3d'' allows the perspective element to extend its containing 3D rendering context (provided no other grouping property values are in effect).
+By default, elements with value for ''perspective'' other than ''perspective/none'' are [=flattening element|flattening=], and thus establish a 3D rendering context. However, setting ''transform-style'' to ''preserve-3d'' allows the perspective element to extend its containing 3D rendering context (provided no other grouping property values are in effect).
@@ -356,7 +362,7 @@ By default, elements with value for ''perspective'' other than ''perspective/non
</div>
-This example shows how nested 3D transforms are rendered. The blue div is transformed as in the previous example, with its rendering influenced by the perspective on its parent element. The lime element also has a 3D transform, which is a rotation about the X axis (anchored at the top, by virtue of the transform-origin). However, the lime element is being rendered into the plane of its parent because it is not a member of the same 3D rendering context; the parent is "flattening". Thus the lime element only appears shorter; it does not "pop out" of the blue element.
+This example shows how nested 3D transforms are rendered. The blue div is transformed as in the previous example, with its rendering influenced by the perspective on its parent element. The lime element also has a 3D transform, which is a rotation about the X axis (anchored at the top, by virtue of the transform-origin). However, the lime element is being rendered into the plane of its parent because it is not a member of the same 3D rendering context; the parent is [=flattening element|flattening=]. Thus the lime element only appears shorter; it does not "pop out" of the blue element.
@@ -365,7 +371,7 @@ This example shows how nested 3D transforms are rendered. The blue div is transf
### Transformed element hierarchies ### {#transformed-element-hierarchies}
-By default, transformed elements are flattening, and thus establish a 3D rendering context. However, since it is useful to construct hierarchies of transformed objects that share a common 3-dimensional space, this flattening behavior may be overridden by specifying a value of ''preserve-3d'' for the ''transform-style'' property, provided no other grouping property values are in effect. This allows descendants of the transformed element to share the same 3D rendering context. Non-3D-transformed descendants of such elements are rendered into the plane of the element in step C above, but 3D-transformed elements in the same 3D rendering context will "pop out" into their own planes.
+By default, transformed elements are [=flattening element|flattening=], and thus establish a 3D rendering context. However, since it is useful to construct hierarchies of transformed objects that share a common 3-dimensional space, this flattening behavior may be overridden by specifying a value of ''preserve-3d'' for the ''transform-style'' property, provided no other grouping property values are in effect. This allows descendants of the transformed element to share the same 3D rendering context. Non-3D-transformed descendants of such elements are rendered into the plane of the element in step C above, but 3D-transformed elements in the same 3D rendering context will "pop out" into their own planes.
@@ -419,7 +425,7 @@ Note: as described here, the accumulated 3D transformation matrix takes i
Using three-dimensional transforms, it's possible to transform an element such that its reverse side is visible. 3D-transformed elements show the same content on both sides, so the reverse side looks like a mirror-image of the front side (as if the element were projected onto a sheet of glass). Normally, elements whose reverse side is towards the viewer remain visible. However, the 'backface-visibility' property allows the author to make an element invisible when its reverse side is towards the viewer. This behavior is "live"; if an element with ''backface-visibility: hidden'' were animating, such that its front and reverse sides were alternately visible, then it would only be visible when the front side were towards the viewer.
-Visibility of the reverse side of an element is considered using the accumulated 3D transformation matrix, and is thus relative to the enclosing flattening element.
+Visibility of the reverse side of an element is considered using the accumulated 3D transformation matrix, and is thus relative to the enclosing [=flattening element=].
Note: This property is useful when you place two elements back-to-back, as you would to create a playing card. Without this property, the front and back elements could switch places at times during an animation to flip the card. Another example is creating a box out of 6 elements, but where you want to see only the inside faces of the box.
@@ -1106,6 +1112,74 @@ The transform functions <
+ div.animate(
+ { transform: ['scale(1)', 'scale(2)'] },
+ {
+ duration: 1000,
+ easing: 'ease',
+ }
+ );
+
+
+ to produce the expected behavior when extended as follows:
+
+
+ div.animate(
+ { transform: ['scale(1)', 'scale(2)'] },
+ {
+ duration: 1000,
+ easing: 'ease',
+ iterations: 5,
+ iterationComposite: 'accumulate',
+ }
+ );
+
+ Transform list
-
-A property whose animation type is transform list has the following
-behavior:
-
-* interpolation:
- as defined in Interpolation
- of Transforms [[CSS3-TRANSFORMS]].
-
-* addition: performed by
- concatenating transform lists as
- ‘Va Vb’.
-
-* accumulation:
-
- 1. Beginning at the end of each list, Va
- and Vb,
- find the largest contiguous portion of each list where the
- corresponding list elements from each list have the same
- transform type.
- Call the matching portions from Va and
- Vb, Vmatching-a
- and
- Vmatching-b respectively and likewise
- Vremainder-a and
- Vremainder-b for the non-matching
- parts.
- translate(20px) and translate(30px
- 10px) we have to expand the first function to
- translate(20px 0px) first.
- Probably need to define unit conversion too.
- Keyframe effects