Skip to content

Commit 3689792

Browse files
committed
2009-10-30 dino@apple.com
- noted that CSSValue is deprecated, so CSSTransformList will need updating - added a multiplyLeft function to CSSMatrix - noted that when animations produce singular matrices they are not rendered - noted that the convert* methods really should be in CSSOM View - removed mention that transforms act like position: relative - added the text from CSS 2.1 background-position into transform-origin, in relation to the number of attributes and default values - removed "none" from the list of accepted transform functions - fixed error where translateZ was present and skew was missing in the animations section - s/functions/methods in DOM section - added DOMException to exceptions, and fixed s/ERROR/ERR/ typo - removed mention of Z component from scale definition - added missing skew() method to CSSMatrix
1 parent a4f00ee commit 3689792

File tree

3 files changed

+261
-149
lines changed

3 files changed

+261
-149
lines changed

css3-2d-transforms/ChangeLog

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
2009-10-30 dino@apple.com
2+
3+
- noted that CSSValue is deprecated, so CSSTransformList will need updating
4+
- added a multiplyLeft function to CSSMatrix
5+
- noted that when animations produce singular matrices they are not rendered
6+
- noted that the convert* methods really should be in CSSOM View
7+
- removed mention that transforms act like position: relative
8+
- added the text from CSS 2.1 background-position into transform-origin, in relation to the number of attributes and default values
9+
- removed "none" from the list of accepted transform functions
10+
- fixed error where translateZ was present and skew was missing in the animations section
11+
- s/functions/methods in DOM section
12+
- added DOMException to exceptions, and fixed s/ERROR/ERR/ typo
13+
- removed mention of Z component from scale definition
14+
- added missing skew() method to CSSMatrix

css3-2d-transforms/Overview.html

Lines changed: 119 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,15 @@
2121

2222
<h1>CSS 2D Transforms Module Level 3</h1>
2323

24-
<h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 14 April 2009</h2>
24+
<h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 31 October
25+
2009</h2>
2526

2627
<dl>
2728
<dt>This version:
2829

2930
<dd> <a
30-
href="http://www.w3.org/TR/2009/ED-css3-2d-transforms-20090414">http://dev.w3.org/csswg/css3-2d-transforms/</a>
31-
<!--http://www.w3.org/TR/2009/WD-css3-2d-transforms-20090414-->
31+
href="http://www.w3.org/TR/2009/ED-css3-2d-transforms-20091031">http://dev.w3.org/csswg/css3-2d-transforms/</a>
32+
<!--http://www.w3.org/TR/2009/WD-css3-2d-transforms-20091031-->
3233

3334
<dt>Latest version:
3435

@@ -111,6 +112,9 @@ <h2 class="no-num no-toc" id=status>Status of this document</h2>
111112
W3C Patent Policy</a>.</p>
112113
<!--end-status-->
113114

115+
<p> The <a href=ChangeLog>list of changes made to this specification</a>
116+
are available.
117+
114118
<h2 class="no-num no-toc" id=contents>Table of contents</h2>
115119
<!--begin-toc-->
116120

@@ -210,9 +214,8 @@ <h2 id=introduction><span class=secno>1 </span>Introduction</h2>
210214

211215
<p> Any value other than &lsquo;<code class=property>none</code>&rsquo; for
212216
the transform results in the creation of both a stacking context and a
213-
containing block. The object acts as though position: relative has been
214-
specified, but also acts as a containing block for fixed positioned
215-
descendants.
217+
containing block. The object acts as a containing block for fixed
218+
positioned descendants.
216219

217220
<div class=todo> Need to go into more detail here about why fixed
218221
positioned objects should do this, i.e., that it's much harder to
@@ -321,6 +324,12 @@ <h2 id=transform-origin-property><span class=secno>3 </span> The <span
321324
applies the element's transform, then moves the element back to its
322325
original position.
323326

327+
<p> If only one value is specified, the second value is assumed to be
328+
&lsquo;<code class=property>center</code>&rsquo;. If at least one value is
329+
not a keyword, then the first value represents the horizontal position and
330+
the second represents the vertical position. Negative &lt;percentage&gt;
331+
and &lt;length&gt; values are allowed.
332+
324333
<table class=propdef>
325334
<tbody>
326335
<tr>
@@ -379,10 +388,6 @@ <h2 id=transform-functions><span class=secno>4 </span> The Transformation
379388
href="http://www.w3.org/TR/css3-values/">CSS Values and Units.</a>
380389

381390
<dl>
382-
<dt> <span class=prop-value>none</span>
383-
384-
<dd> specifies an identity transform.
385-
386391
<dt> <span class=prop-value>matrix(&lt;number&gt;, &lt;number&gt;,
387392
&lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;)</span>
388393

@@ -532,8 +537,8 @@ <h2 id=animation><span class=secno>6 </span> Transitions and animations
532537
&lsquo;<code class=property>to</code>&rsquo; transforms are both single
533538
functions of the same type:
534539
<ul>
535-
<li> For translate, translateX, translateY, translateZ, scale, scaleX,
536-
scaleY, rotate, skewX and skewY functions:
540+
<li> For translate, translateX, translateY, scale, scaleX, scaleY,
541+
rotate, skew, skewX and skewY functions:
537542
<ul>
538543
<li> the individual components of the function are interpolated
539544
numerically.
@@ -575,7 +580,8 @@ <h2 id=animation><span class=secno>6 </span> Transitions and animations
575580

576581
<p> The identity functions are translate(0), translateX(0),
577582
translateY(0), scale(1), scaleX(1), scaleY(1), rotate(0), rotateX(0),
578-
rotateY(0), skewX(0), skewY(0), and matrix(1, 0, 0, 1, 0, 0).</p>
583+
rotateY(0), skewX(0), skewY(0), skew(0, 0) and matrix(1, 0, 0, 1, 0,
584+
0).</p>
579585
</ul>
580586

581587
<li> If both the &lsquo;<code class=property>from</code>&rsquo; and
@@ -597,6 +603,11 @@ <h2 id=animation><span class=secno>6 </span> Transitions and animations
597603
</ul>
598604
</ul>
599605

606+
<p> In some cases, an animation might cause a transformation matrix to be
607+
singular or non-invertible. For example, an animation in which scale moves
608+
from 1 to -1. At the time when the matrix is in such a state, the
609+
transformed element is not rendered.
610+
600611
<h2 id=dom-interfaces><span class=secno>7 </span> DOM Interfaces</h2>
601612

602613
<p> This section describes the interfaces and functionality added to the
@@ -653,7 +664,7 @@ <h3 id=window-interface><span class=secno>7.2 </span> Window</h3>
653664
<dt> <b>Interface <i><a id=DOM-Window name=DOM-Window>Window</a></i></b>
654665

655666
<dd>
656-
<p> The following 2 functions are added to the <code>Window</code>
667+
<p> The following 2 methods are added to the <code>Window</code>
657668
interface. They provide conversions between the page and node coordinate
658669
spaces.</p>
659670

@@ -688,6 +699,9 @@ <h3 id=window-interface><span class=secno>7.2 </span> Window</h3>
688699
returns a point in the coordinate space of the passed Node that is
689700
at the same location in the page as the passed point, which is in
690701
the coordinate space of the page.
702+
<div class=issue> This interface should be moved into CSSOM View,
703+
but that is not yet transform-aware.</div>
704+
691705
<div class=parameters> <b>Parameters</b>
692706
<div class=paramtable>
693707
<dl>
@@ -734,6 +748,9 @@ <h3 id=window-interface><span class=secno>7.2 </span> Window</h3>
734748
returns a point in the coordinate space of the page that is at the
735749
same location in the page as the passed point, which is in the
736750
coordinate space of the passed Node.
751+
<div class=issue> This interface should be moved into CSSOM View,
752+
but that is not yet transform-aware.</div>
753+
737754
<div class=parameters> <b>Parameters</b>
738755
<div class=paramtable>
739756
<dl>
@@ -802,9 +819,11 @@ <h3 id=cssmatrix-interface><span class=secno>7.3 </span> CSSMatrix</h3>
802819

803820
void setMatrixValue(in DOMString string) raises(DOMException);
804821
CSSMatrix multiply(in CSSMatrix secondMatrix);
822+
CSSMatrix multiplyLeft(in CSSMatrix secondMatrix);
805823
CSSMatrix inverse() raises(DOMException);
806824
CSSMatrix translate(in float x, in float y);
807825
CSSMatrix scale(in float scaleX, in float scaleY);
826+
CSSMatrix skew(in float angleX, in float angleY);
808827
CSSMatrix rotate(in float angle);
809828
};</pre>
810829
</div>
@@ -854,7 +873,7 @@ <h3 id=cssmatrix-interface><span class=secno>7.3 </span> CSSMatrix</h3>
854873
<div> <b>Exceptions</b>
855874
<div class=returnvalue>
856875
<dl>
857-
<dt> <code>SYNTAX_ERR</code>
876+
<dt> <code>DOMException SYNTAX_ERR</code>
858877

859878
<dd> Thrown when the provided string can not be parsed into a
860879
CSSMatrix.
@@ -880,7 +899,7 @@ <h3 id=cssmatrix-interface><span class=secno>7.3 </span> CSSMatrix</h3>
880899
<dt> <code class=parameter-name>secondMatrix</code> of type
881900
<code>CSSMatrix</code>
882901

883-
<dd> The matrix to multipy.<br>
902+
<dd> The matrix to multiply.<br>
884903
</dl>
885904
</div>
886905
</div>
@@ -901,6 +920,41 @@ <h3 id=cssmatrix-interface><span class=secno>7.3 </span> CSSMatrix</h3>
901920
<!-- multiply() -->
902921
<!-- ===================================================== -->
903922

923+
<dt> <code class=method-name><a id=DOM-CSSMatrix-multiplyLeft
924+
name=DOM-CSSMatrix-multiplyLeft>multiplyLeft</a></code>
925+
926+
<dd>
927+
<div class=method> The <code>multiplyLeft</code> method returns a new
928+
CSSMatrix which is the result of this matrix multiplied by the
929+
passed matrix, with the passed matrix to the left. This matrix is
930+
not modified.
931+
<div class=parameters> <b>Parameters</b>
932+
<div class=paramtable>
933+
<dl>
934+
<dt> <code class=parameter-name>secondMatrix</code> of type
935+
<code>CSSMatrix</code>
936+
937+
<dd> The matrix to multiply.<br>
938+
</dl>
939+
</div>
940+
</div>
941+
<!-- parameters -->
942+
<div class=return-value> <b>Return Value</b>
943+
<div class=returnvalue>
944+
<dl>
945+
<dt> <code>CSSMatrix</code>
946+
947+
<dd> The result matrix.<br>
948+
</dl>
949+
</div>
950+
</div>
951+
952+
<div> <b>No Exceptions</b></div>
953+
</div>
954+
</dd>
955+
<!-- multiplyLeft() -->
956+
<!-- ===================================================== -->
957+
904958
<dt> <code class=method-name><a id=DOM-CSSMatrix-inverse
905959
name=DOM-CSSMatrix-inverse>inverse</a></code>
906960

@@ -923,7 +977,7 @@ <h3 id=cssmatrix-interface><span class=secno>7.3 </span> CSSMatrix</h3>
923977
<div> <b>Exceptions</b>
924978
<div class=returnvalue>
925979
<dl>
926-
<dt> <code>NOT_SUPPORTED_ERROR</code>
980+
<dt> <code>DOMException NOT_SUPPORTED_ERR</code>
927981

928982
<dd> Thrown when the CSSMatrix can not be inverted.
929983
</dl>
@@ -981,8 +1035,7 @@ <h3 id=cssmatrix-interface><span class=secno>7.3 </span> CSSMatrix</h3>
9811035
<dd>
9821036
<div class=method> The <code>scale</code> method returns a new matrix
9831037
which is this matrix post multiplied by a scale matrix containing
984-
the passed values. If the z component is undefined, a 1 value is
985-
used in its place. If the y component is undefined, the x component
1038+
the passed values. If the y component is undefined, the x component
9861039
value is used in its place. This matrix is not modified.
9871040
<div class=parameters> <b>Parameters</b>
9881041
<div class=paramtable>
@@ -1050,6 +1103,46 @@ <h3 id=cssmatrix-interface><span class=secno>7.3 </span> CSSMatrix</h3>
10501103
<!-- ======================================================================================================= -->
10511104
</dd>
10521105
<!-- rotate() -->
1106+
<!-- ===================================================== -->
1107+
1108+
<dt> <code class=method-name><a id=DOM-CSSMatrix-skew
1109+
name=DOM-CSSMatrix-skew>skew</a></code>
1110+
1111+
<dd>
1112+
<div class=method> The <code>skew</code> method returns a new matrix
1113+
which is this matrix post multiplied by a skew matrix. The rotation
1114+
value is in degrees. This matrix is not modified.
1115+
<div class=parameters> <b>Parameters</b>
1116+
<div class=paramtable>
1117+
<dl>
1118+
<dt> <code class=parameter-name>angleX</code> of type
1119+
<code>float</code>
1120+
1121+
<dd> The angle of skew along the X axis.<br>
1122+
1123+
<dt> <code class=parameter-name>angleY</code> of type
1124+
<code>float</code>
1125+
1126+
<dd> The angle of skew along the Y axis.<br>
1127+
</dl>
1128+
</div>
1129+
</div>
1130+
<!-- parameters -->
1131+
<div class=return-value> <b>Return Value</b>
1132+
<div class=returnvalue>
1133+
<dl>
1134+
<dt> <code>CSSMatrix</code>
1135+
1136+
<dd> The result matrix.<br>
1137+
</dl>
1138+
</div>
1139+
</div>
1140+
1141+
<div> <b>No Exceptions</b></div>
1142+
</div>
1143+
<!-- ======================================================================================================= -->
1144+
</dd>
1145+
<!-- skew() -->
10531146
</dl>
10541147
<!-- methods -->
10551148
</dl>
@@ -1072,6 +1165,9 @@ <h3 id=csstransformvalue-interface><span class=secno>7.4 </span>
10721165
of values, which are the parameters of the function, in the same order
10731166
in which they appear in the transform functions.</p>
10741167

1168+
<p class=issue> Since CSSValue is deprecated, this interface will need to
1169+
change.</p>
1170+
10751171
<dl>
10761172
<dt> <b>IDL Definition</b>
10771173

@@ -1142,10 +1238,10 @@ <h3 id=csstransformvalue-interface><span class=secno>7.4 </span>
11421238
<div> <b>Exceptions</b>
11431239
<div class=returnvalue>
11441240
<dl>
1145-
<dt> <code>NOT_SUPPORTED_ERROR</code>
1241+
<dt> <code>DOMException NOT_SUPPORTED_ERR</code>
11461242

1147-
<dd> Thrown when the CSSTranformValue can not be converted into a
1148-
CSSMatrix, such as when the CSSTransformValue contains
1243+
<dd> Thrown when the CSSTransformValue can not be converted into
1244+
a CSSMatrix, such as when the CSSTransformValue contains
11491245
percentage units and is being called on an object with unknown
11501246
dimensions.
11511247
</dl>
@@ -1169,59 +1265,7 @@ <h3 id=csstransformvalue-interface><span class=secno>7.4 </span>
11691265
single CSSTransformValue with a type of CSS_MATRIX. The 6 parameters
11701266
represent the 3x2 matrix that is the result of applying the individual
11711267
functions listed in the <code><a href="#effects">transform</a></code>
1172-
property.</p>
1173-
<!--
1174-
<p class=issue>Editor's Note: This list needs to be updated (or
1175-
dropped).
1176-
1177-
<p>This specification is the product of the W3C Working Group on
1178-
Cascading Style Sheets and Formatting Properties. In addition to the
1179-
editor of this specification, the members of the Working Group
1180-
are:
1181-
<ul>
1182-
<li>Marc Attinasi (Netscape/AOL)
1183-
<li>Bert Bos (W3C)
1184-
<li>Tantek &Ccedil;elik (Microsoft Corp.)
1185-
<li>Don Day (IBM)
1186-
<li>Martin D&uuml;rst (W3C)
1187-
<li>Angel Diaz (IBM)
1188-
<li>Daniel Glazman (Netscape/AOL from nov. 2000, and Electricit&eacute; de France
1189-
until feb. 2000)
1190-
<li>H&aring;kon W. Lie (Opera Software from April 1999, and W3C until April
1191-
1999)
1192-
<li>Chris Lilley (W3C)
1193-
<li>Dave Raggett (W3C/Openwave Systems Inc.)
1194-
<li>Pierre Saslawsky (Netscape/AOL)
1195-
<li>Michel Suignard (Microsoft Corp.)
1196-
<li>Ted Wugofski (Openwave Systems Inc.)
1197-
<li>Steve Zilles (Adobe)
1198-
</ul>
1199-
1200-
<p>A number of invited experts to the Working Group have significantly
1201-
contributed to CSS 3 : David. L Baron, Todd Fahrner, Daniel Glazman,
1202-
Ian Hickson, Eric Meyer (The OPAL Group), Jeff Veen.
1203-
1204-
<p>Former members of the Working Group:
1205-
<ul>
1206-
<li>Chris Brichford (Adobe)
1207-
<li>Troy Chevalier (Netscape/AOL)
1208-
<li>Dwayne Dicks (Softquad)
1209-
<li>Ian Jacobs (W3C)
1210-
<li>Lorin Jurow (Quark)
1211-
<li>Sho Kuwamoto (Macromedia)
1212-
<li>Peter Linss (Netscape/AOL)
1213-
<li>Steven Pemberton (W3C/CWI)
1214-
<li>Robert Pernett (Lotus)
1215-
<li>Douglas Rand (SGI)
1216-
<li>Nisheeth Ranjan (Netscape/AOL)
1217-
<li>Ed Tecot (Microsoft Corp.)
1218-
<li>Jared Sorensen (Novell)
1219-
<li>Robert Stevahn (Hewlett-Packard)
1220-
<li>Mike Wexler (Adobe)
1221-
<li>John Williams (Quark)
1222-
<li>Chris Wilson (Microsoft Corp.)
1223-
</ul>
1224-
-->
1268+
property.
12251269

12261270
<h2 id=references><span class=secno>8 </span>References</h2>
12271271

0 commit comments

Comments
 (0)