csswg/css3-transforms ChangeLog,1.3,1.4 Overview.html,1.13,1.14 Transforms.src.html,1.16,1.17

Update of /sources/public/csswg/css3-transforms
In directory hutz:/tmp/cvs-serv9341

Modified Files:
	ChangeLog Overview.html Transforms.src.html 
Log Message:
2012-01-29 simon.fraser@apple.com
    Use classnames from default.css rather than home-grown styles.
    Use dfn.
    More work on the 3D rendering context section.


Index: ChangeLog
===================================================================
RCS file: /sources/public/csswg/css3-transforms/ChangeLog,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- ChangeLog	29 Jan 2012 11:16:21 -0000	1.3
+++ ChangeLog	29 Jan 2012 16:52:54 -0000	1.4
@@ -1,4 +1,9 @@
 2012-01-29 simon.fraser@apple.com
+    Use classnames from default.css rather than home-grown styles.
+    Use dfn.
+    More work on the 3D rendering context section.
+
+2012-01-29 simon.fraser@apple.com
     Add more examples, with source files, to the 3D Rendering Context section.
     
 2012-01-29 simon.fraser@apple.com

Index: Overview.html
===================================================================
RCS file: /sources/public/csswg/css3-transforms/Overview.html,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- Overview.html	29 Jan 2012 11:16:21 -0000	1.13
+++ Overview.html	29 Jan 2012 16:52:54 -0000	1.14
@@ -11,14 +11,6 @@
   type="text/css">
 
   <style type="text/css">
-    .prop-name {
-      font-weight: bold;
-    }
-    
-    .prop-value {
-      font-family: monospace;
-    }
-    
     .term {
       font-style: italic;
     }
@@ -200,8 +192,7 @@
    <li><a href="#module-interactions"><span class=secno>2. </span>Module
     Interactions</a>
 
-   <li><a href="#module-interactions"><span class=secno>3. </span>CSS
-    Values</a>
+   <li><a href="#css-values"><span class=secno>3. </span>CSS Values</a>
 
    <li><a href="#definitions"><span class=secno>4. </span>Definitions</a>
 
@@ -212,9 +203,8 @@
       Transform Rendering</a>
     </ul>
 
-   <li><a href="#transform-property"><span class=secno>6. </span> The <span
-    class=prop-name>&lsquo;<code
-    class=property>transform</code>&rsquo;</span> Property </a>
+   <li><a href="#transform-property"><span class=secno>6. </span> The <code
+    class=property>'transform'</code> Property </a>
     <ul class=toc>
      <li><a href="#svg-transform"><span class=secno>6.1. </span>The SVG
       transform attribute</a>
@@ -228,8 +218,7 @@
     </ul>
 
    <li><a href="#transform-origin-property"><span class=secno>7. </span> The
-    <span class=prop-name>&lsquo;<code
-    class=property>transform-origin</code>&rsquo;</span> Property </a>
+    <code class=property>'transform-origin'</code> Property </a>
     <ul class=toc>
      <li><a href="#svg-transform-origin"><span class=secno>7.1. </span>The
       &lsquo;<code class=property>transform-origin</code>&rsquo; property for
@@ -237,20 +226,16 @@
     </ul>
 
    <li><a href="#transform-style-property"><span class=secno>8. </span> The
-    <span class=prop-name>&lsquo;<code
-    class=property>transform-style</code>&rsquo;</span> Property </a>
+    <code class=property>'transform-style'</code> Property </a>
 
-   <li><a href="#perspective-property"><span class=secno>9. </span> The <span
-    class=prop-name>&lsquo;<code
-    class=property>perspective</code>&rsquo;</span> Property </a>
+   <li><a href="#perspective-property"><span class=secno>9. </span> The <code
+    class=property>'perspective'</code> Property </a>
 
    <li><a href="#perspective-origin-property"><span class=secno>10. </span>
-    The <span class=prop-name>&lsquo;<code
-    class=property>perspective-origin</code>&rsquo;</span> Property </a>
+    The <code class=property>'perspective-origin'</code> Property </a>
 
    <li><a href="#backface-visibility-property"><span class=secno>11. </span>
-    The <span class=prop-name>&lsquo;<code
-    class=property>backface-visibility</code>&rsquo;</span> Property </a>
+    The <code class=property>'backface-visibility'</code> Property </a>
 
    <li><a href="#transform-functions"><span class=secno>12. </span> The
     Transformation Functions </a>
@@ -311,51 +296,47 @@
    thought of as being expressed in pixels, starting in the upper left corner
    of the parent with positive values proceeding to the right and down.
 
-  <p> This coordinate space can be modified with the <span
-   class=prop-name>&lsquo;<a href="#effects"><code
-   class=property>transform</code></a>&rsquo;</span> property. Using
-   transform, elements can be translated, rotated and scaled in two or three
-   dimensional space.
+  <p> This coordinate space can be modified with the <a href="#effects"><code
+   class=property>'transform'</code></a> property. Using transform, elements
+   can be translated, rotated and scaled in two or three dimensional space.
 
   <p> Additional properties make working with transforms easier, and allow
    the author to control how nested three-dimensional transforms interact.
 
   <ul>
-   <li> The <span class=prop-name>&lsquo;<a href="#transform-origin"><code
-    class=property>transform-origin</code></a>&rsquo;</span> property
-    provides a convenient way to control the origin about which transforms on
-    an element are applied.
+   <li> The <a href="#transform-origin"><code class=property>
+    'transform-origin'</code></a> property provides a convenient way to
+    control the origin about which transforms on an element are applied.
 
-   <li> The <span class=prop-name>&lsquo;<a href="#perspective"><code
-    class=property>perspective</code></a>&rsquo;</span> property allows the
-    author to make child elements with three-dimensional transforms appear as
-    if they live in a common three-dimensional space. The <span
-    class=prop-name>&lsquo;<a href="#perspective-origin"><code
-    class=property>perspective-origin</code></a>&rsquo;</span> property
-    provides control over the origin at which perspective is applied,
-    effectively changing the location of the "vanishing point".
+   <li> The <a href="#perspective"><code
+    class=property>'perspective'</code></a> property allows the author to
+    make child elements with three-dimensional transforms appear as if they
+    live in a common three-dimensional space. The <a
+    href="#perspective-origin"><code
+    class=property>'perspective-origin'</code></a> property provides control
+    over the origin at which perspective is applied, effectively changing the
+    location of the "vanishing point".
 
-   <li> The <span class=prop-name>&lsquo;<a href="#transform-style"><code
-    class=property>transform-style</code></a>&rsquo;</span> property allows
+   <li> The <a href="#transform-style"><code
+    class=property>'transform-style'</code></a> property allows
     3D-transformed elements and their 3D-transformed descendants to share a
     common three-dimensional space, allowing the construction of hierarchies
     of three-dimensional objects.
 
-   <li> The <span class=prop-name>&lsquo;<a href="#backface-visibility"><code
-    class=property>backface-visibility</code></a>&rsquo;</span> property
-    comes into play when an element is flipped around via three-dimensional
-    transforms such that its reverse side is visible to the viewer. In some
-    situations it is desirable to hide the element in this situation, which
-    is possible using the value of &lsquo;<code
-    class=property>hidden</code>&rsquo; for this property.
+   <li> The <a href="#backface-visibility"><code
+    class=property>'backface-visibility'</code></a> property comes into play
+    when an element is flipped around via three-dimensional transforms such
+    that its reverse side is visible to the viewer. In some situations it is
+    desirable to hide the element in this situation, which is possible using
+    the value of &lsquo;<code class=property>hidden</code>&rsquo; for this
+    property.
   </ul>
 
-  <p> Note that while some values of the <span class=prop-name>&lsquo;<a
-   href="#effects"><code class=property>transform</code></a>&rsquo;</span>
-   property allow an element to be transformed in a three-dimensional
-   coordinate system, the elements themselves are not three-dimensional
-   objects. Instead, they exist on a two-dimensional plane (a flat surface)
-   and have no depth.
+  <p> Note that while some values of the <a href="#effects"><code
+   class=property>'transform'</code></a> property allow an element to be
+   transformed in a three-dimensional coordinate system, the elements
+   themselves are not three-dimensional objects. Instead, they exist on a
+   two-dimensional plane (a flat surface) and have no depth.
 
   <div class=issue> There are two roles for transformations in layout: (1)
    transformations that adjust the position of the affected content without
@@ -382,7 +363,7 @@
 
   <p>Write me
 
-  <h2 id=module-interactions><span class=secno>3. </span>CSS Values</h2>
+  <h2 id=css-values><span class=secno>3. </span>CSS Values</h2>
 
   <p>Write me
 
@@ -392,8 +373,8 @@
    this section.
 
   <dl>
-   <dt id=TermTransformableElement> <span class=termDefine>transformable
-    element</span>
+   <dt id=TermTransformableElement><dfn
+    id=transformable-element>transformable element</dfn>
 
    <dd>
     <p> A transformable element in the HTML namespace which is either be a
@@ -405,14 +386,33 @@
      class=property>patternTransform</code>&rsquo; or &lsquo;<code
      class=property>gradientTransform</code>&rsquo;.</p>
 
-   <dt id=Term3DRenderingContext> <span class=termDefine>3D rendering
-    context</span>
+   <dt id=TermPerspectiveMatrix><dfn id=perpsective-matrix>perpsective
+    matrix</dfn>
 
    <dd>
-    <p> All elements in the same <span class=term>3D rendering context</span>
-     share a common three-dimensional coordinate system. Elements in the same
-     3D rendering context which intersect may be rendered as intersecting by
-     the user agent.</p>
+    <p> A matrix computed from the values of the <a href="#perspective"><code
+     class=property>perspective</code></a> and <a
+     href="#perspective-origin"><code
+     class=property>perspective-origin</code></a> properties.</p>
+
+   <dt id=TermPerspectiveMatrix><dfn id=transformation-matrix>transformation
+    matrix</dfn>
+
+   <dd>
+    <p> A matrix computed from the values of the <a href="#effects"><code
+     class=property>transform</code></a> and <a
+     href="#transform-origin"><code
+     class=property>transform-origin</code></a> properties.</p>
+
+   <dt id=Term3DRenderingContext><dfn id=d-rendering-context>3D rendering
+    context</dfn>
+
+   <dd>
+    <p> A containing block hierarchy of one or more levels, instantiated by
+     elements with a computed value for the <a href="#transform-style"><code
+     class=property>transform-style</code></a> property of <code
+     class=css>preserve-3d</code>, whose elements share a common
+     three-dimensional coordinate system.</p>
    </dd>
    <!-- Define "three-dimensional transform" ? -->
   </dl>
@@ -423,17 +423,16 @@
   <!-- This section is normative -->
 
   <p> Specifying a value other than &lsquo;<code
-   class=property>none</code>&rsquo; for the <span class=prop-name>&lsquo;<a
-   href="#effects"><code class=property>transform</code></a>&rsquo;</span>
-   property establishes a new <em>local coordinate system</em> at the element
-   that it is applied to. Transformations are cumulative. That is, elements
-   establish their local coordinate system within the coordinate system of
-   their parent. From the perspective of the user, an element effectively
-   accumulates all the <span class=prop-name>&lsquo;<a href="#effects"><code
-   class=property>transform</code></a>&rsquo;</span> properties of its
-   ancestors as well as any local transform applied to it. The accumulation
-   of these transforms defines a <em>current transformation matrix (CTM)</em>
-   for the element.
+   class=property>none</code>&rsquo; for the <a href="#effects"><code
+   class=property>'transform'</code></a> property establishes a new <em>local
+   coordinate system</em> at the element that it is applied to.
+   Transformations are cumulative. That is, elements establish their local
+   coordinate system within the coordinate system of their parent. From the
+   perspective of the user, an element effectively accumulates all the <a
+   href="#effects"><code class=property>'transform'</code></a> properties of
+   its ancestors as well as any local transform applied to it. The
+   accumulation of these transforms defines a <em>current transformation
+   matrix (CTM)</em> for the element.
 
   <p> The coordinate space behaves as described in the <a
    href="http://www.w3.org/TR/SVG/coords.html#EstablishingANewUserSpace">coordinate
@@ -495,13 +494,11 @@
    of the content surrounding the transformed element. However, the extent of
    the overflow area takes into account transformed elements. This behavior
    is similar to what happens when elements are offset via relative
-   positioning. Therefore, if the value of the <span
-   class=prop-name>&lsquo;<code class=property>overflow</code>&rsquo;</span>
-   property is <span class=prop-value>&lsquo;<code
-   class=property>scroll</code>&rsquo;</span> or <span
-   class=prop-value>&lsquo;<code class=property>auto</code>&rsquo;</span>,
-   scrollbars will appear as needed to see content that is transformed
-   outside the visible area.
+   positioning. Therefore, if the value of the <code
+   class=property>'overflow'</code> property is <code
+   class=css>'scroll'</code> or <code class=css>'auto'</code>, scrollbars
+   will appear as needed to see content that is transformed outside the
+   visible area.
 
   <p> In the HTML namespace, any value other than &lsquo;<code
    class=property>none</code>&rsquo; for the transform results in the
@@ -529,8 +526,8 @@
    three-dimensional transformations could potentially render in an
    front-to-back order that different from the normal CSS rendering order,
    and intersect with each other. Whether they do so depends on whether the
-   element is a member of a <span class=term>3D rendering context</span>, as
-   described below.
+   element is a member of a <a class=term href="#d-rendering-context">3D
+   rendering context</a>, as described below.
 
   <div class="issue issue-marker">
    <p class=desc>This description does not exactly match what WebKit
@@ -539,13 +536,14 @@
   </div>
 
   <p> An element with a three-dimensional transform that is not contained in
-   a <span class=term>3D rendering context</span> renders with the
-   appropriate transform applied, but does not intersect with any other
-   elements. The three-dimensional transform in this case can be considered
-   just as a painting effect, like two-dimensional transforms. Similarly, the
-   transform does not affect painting order. For example, a transform with a
-   positive Z translation may make an element look larger, but does not cause
-   that element to render in front of elements with no translation in Z.
+   a <a class=term href="#d-rendering-context">3D rendering context</a>
+   renders with the appropriate transform applied, but does not intersect
+   with any other elements. The three-dimensional transform in this case can
+   be considered just as a painting effect, like two-dimensional transforms.
+   Similarly, the transform does not affect painting order. For example, a
+   transform with a positive Z translation may make an element look larger,
+   but does not cause that element to render in front of elements with no
+   translation in Z.
 
   <div class=example>
    <p>This example shows the effect of three-dimensional transform applied to
@@ -602,51 +600,64 @@
     depth.</p>
   </div>
 
-  <p> An element with a three-dimensional transform that is contained in a
-   <span class=term>3D rendering context</span> can visibly interact with
-   other elements in that same 3D rendering context; the set of elements
-   participating in the same <span class=term>3D rendering context</span> may
-   obscure each other or intersect, based on their computed transforms. They
-   are rendered as if they are all siblings, positioned in a common 3D
-   coordinate space. The position of each element in that three-dimensional
-   space is determined by accumulating the transformation matrices up from
-   the element that establishes the <span class=term>3D rendering
-   context</span> through each element that is a containing block for the
-   given element, as described below.
+  <p> An element with a three-dimensional transform that is contained in a <a
+   class=term href="#d-rendering-context">3D rendering context</a> can
+   visibly interact with other elements in that same 3D rendering context;
+   the set of elements participating in the same <a class=term
+   href="#d-rendering-context">3D rendering context</a> may obscure each
+   other or intersect, based on their computed transforms. They are rendered
+   as if they are all siblings, positioned in a common 3D coordinate space.
+   The position of each element in that three-dimensional space is determined
+   by accumulating the transformation matrices up from the element that
+   establishes the <a class=term href="#d-rendering-context">3D rendering
+   context</a> through each element that is a containing block for the given
+   element, as described below.
    <!-- More detail required, probably with matrices -->
 
-  <p> A <span class=term>3D rendering context</span> is <em>established</em>
-   by a a transformable element which has a computed value of <a
-   href="#transform-style" type=prop-name>transform-style</a> is <span
-   class=prop-value>&lsquo;<code class=css>preserve-3d</code>&rsquo;</span>,
-   and which itself is not part of a 3D rendering context. Note that such an
-   element is always a containing block.
+  <p>Elements establish and participate in 3D rendering contexts as follows:
 
-  <p> An element whose computed value for <a href="#transform-style"
-   type=prop-name>transform-style</a> is <span style=prop-value>&lsquo;<code
-   class=css>preserve-3d</code>&rsquo;</span>, and which is itself a member
-   of a <span class=term>3D rendering context</span>, extends the 3D
-   rendering context of which it is a member.
+  <ul>
+   <li> A <a class=term href="#d-rendering-context">3D rendering context</a>
+    is established by a a transformable element whose computed value for <a
+    href="#transform-style"><code class=property>transform-style</code></a>
+    is <code class=css>'preserve-3d'</code>, and which itself is not part of
+    a 3D rendering context. Note that such an element is always a containing
+    block. An element that establishes a 3D rendering context also
+    participates in that context.
 
-  <p> An element <em>participates</em> in a <span class=term>3D rendering
-   context</span> if its containing block establishes or extends a <span
-   class=term>3D rendering context</span>.</p>
-  <!-- Need more exposition here on establishes vs. participates -->
+   <li> An element whose computed value for <a href="#transform-style"><code
+    class=property>transform-style</code></a> is <class
+    style=css>&lsquo;<code class=css>preserve-3d</code>&rsquo;, and which
+    itself participates in a <a class=term href="#d-rendering-context">3D
+    rendering context</a>, extends that 3D rendering context rather than
+    establishing a new one. </class>
 
-  <p> The final value of the transform used to render an element in a <span
-   class=term>3D rendering context</span> is computed as follows:
+   <li> An element participates in a <a class=term
+    href="#d-rendering-context">3D rendering context</a> if its containing
+    block establishes or extends a <a class=term
+    href="#d-rendering-context">3D rendering context</a>.
+  </ul>
 
-  <ol><!-- Clarify pre- vs post-multiply? -->
+  <p> The final value of the transform used to render an element in a <a
+   class=term href="#d-rendering-context">3D rendering context</a> is
+   computed as follows:
 
-   <li>Start with the identity matrix
+  <ol><!-- Clarify pre- vs post-multiply? -->
+   <!-- This needs to be more mathy -->
 
-   <li>If the root of the <span class=term>3D rendering context</span> has
-    perspective, multiply that into the matrix, taking perspective-origin
-    into account.
+   <li>If the root of the <a class=term href="#d-rendering-context">3D
+    rendering context</a> has a computed value of <a
+    href="#perspective"><code class=property>perspective</code></a> which is
+    not &lsquo;<code class=property>none</code>&rsquo; and greater than zero,
+    compute a perspective matrix as follows:
+    <ol>
+     <li>
+    </ol>
+    otherwise start with the identity matrix.
 
-   <li>For each containing block between the root of the <span class=term>3D
-    rendering context</span> and the element in question, compute a
-    transformation matrix by:
+   <li>For each containing block between the root of the <a class=term
+    href="#d-rendering-context">3D rendering context</a> and the element in
+    question, compute a transformation matrix by:
     <ol>
      <li>applying perpsective and perspective-origin, if any
 
@@ -767,32 +778,32 @@
   </div>
   <!--
                 <p>
-  	              The <span class="prop-name">'transform-style'</span> property defines
+  	              The <code class="property">'transform-style'</code> property defines
                   how nested elements are rendered in three-dimensional space. If the <span
-                  class="prop-name">'transform-style'</span> is <span
+                  class="prop-name">'transform-style'</code> is <span
                   class="prop-value">'flat'</span>, all children of this element are
                   rendered flattened into the 2D plane of the element. Therefore, rotating
                   the element about the X or Y axes will cause children positioned at
                   positive or negative Z positions to appear on the element's plane, rather
                   than in front of or behind it. If the <span
-                  class="prop-name">'transform-style'</span> is <span
+                  class="prop-name">'transform-style'</code> is <span
                   class="prop-value">'preserve-3d'</span>, this flattening is not performed,
                   so children maintain their position in three-dimensional space.
                 </p>
                 <p>
                   This flattening takes place at each element, so preserving a hierarchy
                   of elements in three-dimensional space requires that each element in the hierarchy
-                  have the value <span class="prop-value">'preserve-3d'</span> for <span
-                  class="prop-name">'transform-style'</span>. But since <span
-                  class="prop-name">'transform-style'</span> affects only an element's
+                  have the value <code class="css">'preserve-3d'</span> for <span
+                  class="prop-name">'transform-style'</code>. But since <span
+                  class="prop-name">'transform-style'</code> affects only an element's
                   children, the leaf nodes in a hierarchy do not require the 
-                  <span class="prop-name">'transform-style: preserve-3d'</span> to be specified.
+                  <code class="property">'transform-style: preserve-3d'</code> to be specified.
                 </p>
                 
                 <p>
                   For some effects, the author will have to ensure that an ancestor
-                  element to a subtree using <span class="prop-value">'preserve-3d'</span>
-                  has a <span class="prop-name">'transform-style'</span> of <span
+                  element to a subtree using <code class="css">'preserve-3d'</span>
+                  has a <code class="property">'transform-style'</code> of <span
                   class="prop-value">'flat'</span> (or the default). Otherwise, the
                   elements in the 3D tree may be located behind ancestor elements and,
                   thus, invisible (hidden behind an ancestor's background).
@@ -800,26 +811,25 @@
 
                 <p>
                   Note that while 'preserve-3d' can be specified on an element, the effect may not
-                  be possible. Elements that have <span class="prop-name">'overflow'</span> set to
-                  <span class="prop-value">'hidden'</span> are unable to keep their children in 3D.
+                  be possible. Elements that have <code class="property">'overflow'</code> set to
+                  <code class="css">'hidden'</code> are unable to keep their children in 3D.
                   In this case the element will behave as if the property was set to 
-                  <span class="prop-value">'flat'</span>.
+                  <code class="css">'flat'</span>.
                 </p>
                 -->
   <!-- ======================================================================================================= -->
 
-  <h2 id=transform-property><span class=secno>6. </span> The <span
-   class=prop-name>&lsquo;<a href="#effects"><code
-   class=property>transform</code></a>&rsquo;</span> Property</h2>
+  <h2 id=transform-property><span class=secno>6. </span> The <a
+   href="#effects"><code class=property>'transform'</code></a> Property</h2>
 
   <p> A transformation is applied to the coordinate system an element renders
-   in through the <span class=prop-name>&lsquo;<a href="#effects"><code
-   class=property>transform</code></a>&rsquo;</span> property. This property
-   contains a list of <a href="#transform-functions">transform functions</a>.
-   The final transformation value for a coordinate system is obtained by
-   converting each function in the list to its corresponding matrix (either
-   defined in this specification or by reference to the SVG specification),
-   then multiplying the matrices.
+   in through the <a href="#effects"><code
+   class=property>'transform'</code></a> property. This property contains a
+   list of <a href="#transform-functions">transform functions</a>. The final
+   transformation value for a coordinate system is obtained by converting
+   each function in the list to its corresponding matrix (either defined in
+   this specification or by reference to the SVG specification), then
+   multiplying the matrices.
 
   <table class=propdef>
    <tbody>
@@ -938,9 +948,9 @@
   </div>
   <!-- ======================================================================================================= -->
 
-  <h2 id=transform-origin-property><span class=secno>7. </span> The <span
-   class=prop-name>&lsquo;<a href="#transform-origin"><code
-   class=property>transform-origin</code></a>&rsquo;</span> Property</h2>
+  <h2 id=transform-origin-property><span class=secno>7. </span> The <a
+   href="#transform-origin"><code
+   class=property>'transform-origin'</code></a> Property</h2>
 
   <div class="issue issue-marker">
    <p class=desc>Need to add 3D transform-origin variant in a way that is not
@@ -949,15 +959,15 @@
     15432</a>).</p>
   </div>
 
-  <p> The <span class=prop-name>&lsquo;<a href="#transform-origin"><code
-   class=property>transform-origin</code></a>&rsquo;</span> property
-   establishes the origin of transformation for a coordinate system. This
-   property is applied by first translating the element's coordinate system
-   by the negated value of the property, then applying the local transform,
-   then translating by the property value. This effectively moves the desired
-   transformation origin of the element to (0,0) in the local coordinate
-   system, then applies the local transform, then moves the element back to
-   its original position.
+  <p> The <a href="#transform-origin"><code
+   class=property>'transform-origin'</code></a> property establishes the
+   origin of transformation for a coordinate system. This property is applied
+   by first translating the element's coordinate system by the negated value
+   of the property, then applying the local transform, then translating by
+   the property value. This effectively moves the desired transformation
+   origin of the element to (0,0) in the local coordinate system, then
+   applies the local transform, then moves the element back to its original
+   position.
 
   <p>If only one value is specified, the second value is assumed to be
    &lsquo;<code class=property>center</code>&rsquo;. If two values are given
@@ -1055,15 +1065,15 @@
 
   <div class=issue>
    <p class=desc>Need to determine how to extend transform-origin to allow it
-    ot affect the z-origin with three-dimensional transforms (<a
+    to affect the z-origin with three-dimensional transforms (<a
     href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=14647">Bug
     14647</a>).
   </div>
   <!-- ======================================================================================================= -->
 
-  <h2 id=transform-style-property><span class=secno>8. </span> The <span
-   class=prop-name>&lsquo;<a href="#transform-style"><code
-   class=property>transform-style</code></a>&rsquo;</span> Property</h2>
+  <h2 id=transform-style-property><span class=secno>8. </span> The <a
+   href="#transform-style"><code class=property>'transform-style'</code></a>
+   Property</h2>
 
   <p> Property summary here.
 
@@ -1110,9 +1120,9 @@
      <td> Same as specified value.
   </table>
 
-  <p> A value of <span class=prop-value>preserve-3d</span> for <a
-   class=prop-name href="#transform-style">transform-style</a> establishes a
-   stacking context.
+  <p> A value of <code class=css>preserve-3d</code> for <a
+   href="#transform-style"><code class=property>transform-style</code></a>
+   establishes a stacking context.
 
   <div class="issue issue-marker">
    <p class=desc>Should this affect the computed value of transform-style?</p>
@@ -1120,34 +1130,32 @@
 
   <p> The following CSS property values require the user agent to create a
    flattened representation of the descendant elements before they can be
-   applied, and therefore override the behavior of <a class=prop-name
-   href="#transform-style">transform-style</a>: <span
-   class=prop-value>preserve-3d</span>:
+   applied, and therefore override the behavior of <a
+   href="#transform-style"><code class=property>transform-style</code></a>:
+   <code class=css>preserve-3d</code>:
 
   <ul>
-   <li><span class=prop-name>overflow</span>: any value other than
+   <li><code class=property>overflow</code>: any value other than
     &lsquo;<code class=property>visible</code>&rsquo;.
 
-   <li><span class=prop-name>opacity</span>: any value other than 1.
+   <li><code class=property>opacity</code>: any value other than 1.
 
-   <li><span class=prop-name>filter</span>: any value other than &lsquo;<code
+   <li><code class=property>filter</code>: any value other than &lsquo;<code
     class=property>none</code>&rsquo;.</li>
    <!-- Others? -->
   </ul>
   <!-- ======================================================================================================= -->
 
-  <h2 id=perspective-property><span class=secno>9. </span> The <span
-   class=prop-name>&lsquo;<a href="#perspective"><code
-   class=property>perspective</code></a>&rsquo;</span> Property</h2>
-
-  <p>
+  <h2 id=perspective-property><span class=secno>9. </span> The <a
+   href="#perspective"><code class=property>'perspective'</code></a> Property
+   </h2>
 
-  <p> The <span class=prop-name>&lsquo;<a href="#perspective"><code
-   class=property>perspective</code></a>&rsquo;</span> property applies the
-   same transform as the <span
-   class=prop-value>perspective(&lt;length&gt;)</span> transform function,
-   except that it applies only to the positioned or transformed children of
-   the element, not to the transform on the element itself.
+  <p> The <a href="#perspective"><code
+   class=property>'perspective'</code></a> property applies the same
+   transform as the <code class=css>perspective(&lt;length&gt;)</code>
+   transform function, except that it applies only to elements whose
+   containing block is the element with perspective, not to the transform on
+   the element itself.
 
   <table class=propdef>
    <tbody>
@@ -1192,13 +1200,8 @@
      <td> Same as specified value.
   </table>
 
-  <div class=issue>
-   <p>Does perspective establish a containing block?
-  </div>
-
-  <p> If the value is <span class=prop-value>&lsquo;<code
-   class=property>none</code>&rsquo;</span>, less than or equal to 0 no
-   perspective transform is applied.
+  <p> If the value is <code class=css>'none'</code>, less than or equal to 0
+   no perspective transform is applied.
 
   <p> The use of this property with any value other than &lsquo;<code
    class=property>none</code>&rsquo; establishes a stacking context. It also
@@ -1207,16 +1210,15 @@
    class=property>transform</code></a>&rsquo; property does.</p>
   <!-- ======================================================================================================= -->
 
-  <h2 id=perspective-origin-property><span class=secno>10. </span> The <span
-   class=prop-name>&lsquo;<a href="#perspective-origin"><code
-   class=property>perspective-origin</code></a>&rsquo;</span> Property</h2>
+  <h2 id=perspective-origin-property><span class=secno>10. </span> The <a
+   href="#perspective-origin"><code
+   class=property>'perspective-origin'</code></a> Property</h2>
 
-  <p> The <span class=prop-name>&lsquo;<a href="#perspective-origin"><code
-   class=property>perspective-origin</code></a>&rsquo;</span> property
-   establishes the origin for the <a
-   href="#perspective"><em>perspective</em></a> property. It effectively sets
-   the X and Y position at which the viewer appears to be looking at the
-   children of the element.
+  <p> The <a href="#perspective-origin"><code
+   class=property>'perspective-origin'</code></a> property establishes the
+   origin for the <a href="#perspective"><em>perspective</em></a> property.
+   It effectively sets the X and Y position at which the viewer appears to be
+   looking at the children of the element.
 
   <table class=propdef>
    <tbody>
@@ -1262,19 +1264,21 @@
 
      <td> Same as specified value.
   </table>
+
+  <p> The <a href="#perspective-origin"><code
+   class=property>perspective-origin</code></a> property affects the</p>
   <!-- ======================================================================================================= -->
 
-  <h2 id=backface-visibility-property><span class=secno>11. </span> The <span
-   class=prop-name>&lsquo;<a href="#backface-visibility"><code
-   class=property>backface-visibility</code></a>&rsquo;</span> Property</h2>
+  <h2 id=backface-visibility-property><span class=secno>11. </span> The <a
+   href="#backface-visibility"><code
+   class=property>'backface-visibility'</code></a> Property</h2>
 
-  <p> The <span class=prop-name>&lsquo;<a href="#backface-visibility"><code
-   class=property>backface-visibility</code></a>&rsquo;</span> property
-   determines whether or not the "back" side of a transformed element is
-   visible when facing the viewer. With an identity transform, the front side
-   of an element faces the viewer. Applying a rotation about Y of 180 degrees
-   (for instance) would cause the back side of the element to face the
-   viewer.</p>
+  <p> The <a href="#backface-visibility"><code
+   class=property>'backface-visibility'</code></a> property determines
+   whether or not the "back" side of a transformed element is visible when
+   facing the viewer. With an identity transform, the front side of an
+   element faces the viewer. Applying a rotation about Y of 180 degrees (for
+   instance) would cause the back side of the element to face the viewer.</p>
   <!-- This should not be in a normative section. -->
 
   <p> This property is useful when you place two elements back-to-back, as
@@ -1331,11 +1335,12 @@
   <h2 id=transform-functions><span class=secno>12. </span> The Transformation
    Functions</h2>
 
-  <p> The value of the <a class=prop-name href="#effects">transform</a>
-   property is a list of &lt;transform-functions&gt; applied in the order
-   provided. The individual transform functions are separated by whitespace.
-   The set of allowed transform functions is given below. In this list the
-   type &lt;translation-value&gt; is defined as a &lt;length&gt; or
+  <p> The value of the <a href="#effects"><code
+   class=property>transform</code></a> property is a list of
+   &lt;transform-functions&gt; applied in the order provided. The individual
+   transform functions are separated by whitespace. The set of allowed
+   transform functions is given below. In this list the type
+   &lt;translation-value&gt; is defined as a &lt;length&gt; or
    &lt;percentage&gt; value, and the &lt;angle&gt; type is defined by <a
    href="http://www.w3.org/TR/css3-values/">CSS Values and Units.</a>
    Wherever &lt;angle&gt; is used in this specification, a &lt;number&gt;
@@ -1346,17 +1351,17 @@
    Transformation Functions</h3>
 
   <dl>
-   <dt> <span class=prop-value>matrix(&lt;number&gt;, &lt;number&gt;,
-    &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;)</span>
+   <dt> <code class=css>matrix(&lt;number&gt;, &lt;number&gt;,
+    &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;)</code>
 
    <dd> specifies a 2D transformation in the form of a <a
     href="http://www.w3.org/TR/SVG/coords.html#TransformMatrixDefined">transformation
-    matrix</a> of six values. <span
-    class=prop-value>matrix(a,b,c,d,e,f)</span> is equivalent to applying the
-    transformation matrix <strong>[a b c d e f]</strong>.
+    matrix</a> of six values. <code class=css>matrix(a,b,c,d,e,f)</code> is
+    equivalent to applying the transformation matrix <strong>[a b c d e
+    f]</strong>.
 
-   <dt> <span class=prop-value>translate(&lt;translation-value&gt;[,
-    &lt;translation-value&gt;])</span>
+   <dt> <code class=css>translate(&lt;translation-value&gt;[,
+    &lt;translation-value&gt;])</code>
 
    <dd> specifies a <a
     href="http://www.w3.org/TR/SVG/coords.html#TranslationDefined">2D
@@ -1365,20 +1370,19 @@
     translation-value parameter. If <em>&lt;ty&gt;</em> is not provided, ty
     has zero as a value.
 
-   <dt> <span class=prop-value>translateX(&lt;translation-value&gt;)</span>
+   <dt> <code class=css>translateX(&lt;translation-value&gt;)</code>
 
    <dd> specifies a <a
     href="http://www.w3.org/TR/SVG/coords.html#TranslationDefined">translation</a>
     by the given amount in the X direction.
 
-   <dt> <span class=prop-value>translateY(&lt;translation-value&gt;)</span>
+   <dt> <code class=css>translateY(&lt;translation-value&gt;)</code>
 
    <dd> specifies a <a
     href="http://www.w3.org/TR/SVG/coords.html#TranslationDefined">translation</a>
     by the given amount in the Y direction.
 
-   <dt> <span class=prop-value>scale(&lt;number&gt;[, &lt;number&gt;])</span>
-    
+   <dt> <code class=css>scale(&lt;number&gt;[, &lt;number&gt;])</code>
 
    <dd> specifies a <a
     href="http://www.w3.org/TR/SVG/coords.html#ScalingDefined">2D scale</a>
@@ -1388,17 +1392,17 @@
     scale(2, 2) would cause it to appear twice as long in both the X and Y
     axes, or four times its typical geometric size.
 
-   <dt> <span class=prop-value>scaleX(&lt;number&gt;)</span>
+   <dt> <code class=css>scaleX(&lt;number&gt;)</code>
 
    <dd> specifies a scale operation using the [sx,1] scaling vector, where sx
     is given as the parameter.
 
-   <dt> <span class=prop-value>scaleY(&lt;number&gt;)</span>
+   <dt> <code class=css>scaleY(&lt;number&gt;)</code>
 
    <dd> specifies a scale operation using the [1,sy] scaling vector, where sy
     is given as the parameter.
 
-   <dt> <span class=prop-value>rotate(&lt;angle&gt;)</span>
+   <dt> <code class=css>rotate(&lt;angle&gt;)</code>
 
    <dd> specifies a <a
     href="http://www.w3.org/TR/SVG/coords.html#RotationDefined">2D
@@ -1408,13 +1412,13 @@
     example, rotate(90deg) would cause elements to appear rotated one-quarter
     of a turn in the clockwise direction.
 
-   <dt> <span class=prop-value>skewX(&lt;angle&gt;)</span>
+   <dt> <code class=css>skewX(&lt;angle&gt;)</code>
 
    <dd> specifies a <a
     href="http://www.w3.org/TR/SVG/coords.html#SkewXDefined">skew
     transformation along the X axis</a> by the given angle.
 
-   <dt> <span class=prop-value>skewY(&lt;angle&gt;)</span>
+   <dt> <code class=css>skewY(&lt;angle&gt;)</code>
 
    <dd> specifies a <a
     href="http://www.w3.org/TR/SVG/coords.html#SkewYDefined">skew
@@ -1425,17 +1429,17 @@
    Transformation Functions</h3>
 
   <dl>
-   <dt> <span class=prop-value>matrix3d(&lt;number&gt;, &lt;number&gt;,
+   <dt> <code class=css>matrix3d(&lt;number&gt;, &lt;number&gt;,
     &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;,
     &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;,
     &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;,
-    &lt;number&gt;, &lt;number&gt;)</span>
+    &lt;number&gt;, &lt;number&gt;)</code>
 
    <dd> specifies a 3D transformation as a 4x4 homogeneous matrix of 16
     values in column-major order.
 
-   <dt> <span class=prop-value>translate3d(&lt;translation-value&gt;,
-    &lt;translation-value&gt;, &lt;translation-value&gt;)</span>
+   <dt> <code class=css>translate3d(&lt;translation-value&gt;,
+    &lt;translation-value&gt;, &lt;translation-value&gt;)</code>
 
    <dd> specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and
     tz being the first, second and third translation-value parameters
@@ -1443,7 +1447,7 @@
     translation-value, and if present will cause the propery value to be
     invalid.
 
-   <dt> <span class=prop-value>translateZ(&lt;translation-value&gt;)</span>
+   <dt> <code class=css>translateZ(&lt;translation-value&gt;)</code>
 
    <dd> specifies a <a
     href="http://www.w3.org/TR/SVG/coords.html#TranslationDefined">translation</a>
@@ -1451,19 +1455,19 @@
     allowed in the translateZ translation-value, and if present will cause
     the propery value to be invalid.
 
-   <dt> <span class=prop-value>scale3d(&lt;number&gt;, &lt;number&gt;,
-    &lt;number&gt;)</span>
+   <dt> <code class=css>scale3d(&lt;number&gt;, &lt;number&gt;,
+    &lt;number&gt;)</code>
 
    <dd> specifies a 3D scale operation by the [sx,sy,sz] scaling vector
     described by the 3 parameters.
 
-   <dt> <span class=prop-value>scaleZ(&lt;number&gt;)</span>
+   <dt> <code class=css>scaleZ(&lt;number&gt;)</code>
 
    <dd> specifies a scale operation using the [1,1,sz] scaling vector, where
     sz is given as the parameter.
 
-   <dt> <span class=prop-value>rotate3d(&lt;number&gt;, &lt;number&gt;,
-    &lt;number&gt;, &lt;angle&gt;)</span>
+   <dt> <code class=css>rotate3d(&lt;number&gt;, &lt;number&gt;,
+    &lt;number&gt;, &lt;angle&gt;)</code>
   </dl>
 
   <div class=todo>Clarify "clockwise". Describe in terms of right-hand rule?</div>
@@ -1481,21 +1485,20 @@
     x*sin(angle)+(1-cos(angle))*y*z, 1 + (1-cos(angle))*(z*z-1), 0, 0, 0, 0,
     1)</code>.
 
-   <dt> <span class=prop-value>rotateX(&lt;angle&gt;)</span>
+   <dt> <code class=css>rotateX(&lt;angle&gt;)</code>
 
    <dd> specifies a clockwise rotation by the given angle about the X axis.
 
-   <dt> <span class=prop-value>rotateY(&lt;angle&gt;)</span>
+   <dt> <code class=css>rotateY(&lt;angle&gt;)</code>
 
    <dd> specifies a clockwise rotation by the given angle about the Y axis.
 
-   <dt> <span class=prop-value>rotateZ(&lt;angle&gt;)</span>
+   <dt> <code class=css>rotateZ(&lt;angle&gt;)</code>
 
    <dd> specifies a clockwise rotation by the given angle about the Z axis.
-    This is a synonym for <span
-    class=prop-value>rotate(&lt;angle&gt;)</span>.
+    This is a synonym for <code class=css>rotate(&lt;angle&gt;)</code>.
 
-   <dt> <span class=prop-value>perspective(&lt;length&gt;)</span>
+   <dt> <code class=css>perspective(&lt;length&gt;)</code>
 
    <dd> specifies a perspective projection matrix. This matrix maps a
     <em>viewing cube</em> onto a pyramid whose base is infinitely far away
@@ -2262,9 +2265,15 @@
   <!--begin-index-->
 
   <ul class=indexlist>
+   <li>3D rendering context, <a href="#d-rendering-context"
+    title="3D rendering context"><strong>4.</strong></a>
+
    <li>backface-visibility, <a href="#backface-visibility"
     title=backface-visibility><strong>11.</strong></a>
 
+   <li>perpsective matrix, <a href="#perpsective-matrix"
+    title="perpsective matrix"><strong>4.</strong></a>
+
    <li>perspective, <a href="#perspective"
     title=perspective><strong>9.</strong></a>
 
@@ -2273,6 +2282,12 @@
 
    <li>transform, <a href="#effects" title=transform><strong>6.</strong></a>
 
+   <li>transformable element, <a href="#transformable-element"
+    title="transformable element"><strong>4.</strong></a>
+
+   <li>transformation matrix, <a href="#transformation-matrix"
+    title="transformation matrix"><strong>4.</strong></a>
+
    <li>transform-origin, <a href="#transform-origin"
     title=transform-origin><strong>7.</strong></a>
 

Index: Transforms.src.html
===================================================================
RCS file: /sources/public/csswg/css3-transforms/Transforms.src.html,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- Transforms.src.html	29 Jan 2012 11:16:21 -0000	1.16
+++ Transforms.src.html	29 Jan 2012 16:52:54 -0000	1.17
@@ -7,14 +7,6 @@
   <link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-ED.css" />
 
   <style type="text/css">
-    .prop-name {
-      font-weight: bold;
-    }
-    
-    .prop-value {
-      font-family: monospace;
-    }
-    
     .term {
       font-style: italic;
     }
@@ -136,8 +128,8 @@
             down.
           </p>
           <p>
-            This coordinate space can be modified with the <span
-            class="prop-name">'transform'</span> property. Using transform, elements
+            This coordinate space can be modified with the <code
+            class="property">'transform'</code> property. Using transform, elements
             can be translated, rotated and scaled in two or three dimensional space.
           </p>
           <p>
@@ -146,25 +138,25 @@
           </p>
           <ul>
             <li>
-              The <span class="prop-name">'transform-origin'</span> property
+              The <code class="property"> 'transform-origin'</code> property
               provides a convenient way to control the origin about which transforms on
               an element are applied.
             </li>
             <li>
-              The <span class="prop-name">'perspective'</span> property allows the author
+              The <code class="property">'perspective'</code> property allows the author
               to make child elements with three-dimensional transforms appear as if they live in a common
               three-dimensional space.
-              The <span class="prop-name">'perspective-origin'</span> property provides control
+              The <code class="property">'perspective-origin'</code> property provides control
               over the origin at which perspective is applied, effectively changing the location of
               the "vanishing point".
             </li>
             <li>
-              The <span class="prop-name">'transform-style'</span> property allows 3D-transformed
+              The <code class="property">'transform-style'</code> property allows 3D-transformed
               elements and their 3D-transformed descendants to share a common three-dimensional
               space, allowing the construction of hierarchies of three-dimensional objects.
             </li>
             <li>
-               The <span class="prop-name">'backface-visibility'</span> property comes into play
+               The <code class="property">'backface-visibility'</code> property comes into play
                when an element is flipped around via three-dimensional transforms such that its
                reverse side is visible to the viewer. In some situations it is desirable to
                hide the element in this situation, which is possible using the value of 'hidden'
@@ -172,7 +164,7 @@
             </li>
           </ul>
           <p>
-            Note that while some values of the <span class="prop-name">'transform'</span> property
+            Note that while some values of the <code class="property">'transform'</code> property
             allow an element to be transformed in a three-dimensional coordinate system, the elements
             themselves are not three-dimensional objects. Instead, they exist on a two-dimensional
             plane (a flat surface) and have no depth.
@@ -206,7 +198,7 @@
         <h2 id="module-interactions">Module Interactions</h2>
           <p>Write me</p>
 
-        <h2 id="module-interactions">CSS Values</h2>
+        <h2 id="css-values">CSS Values</h2>
           <p>Write me</p>
 
 
@@ -215,9 +207,7 @@
             this section.
           </p>
           <dl>
-            <dt id="TermTransformableElement">
-              <span class="termDefine">transformable element</span>
-            </dt>
+            <dt id="TermTransformableElement"><dfn>transformable element</dfn></dt>
             <dd>
               <p>
                 A transformable element in the HTML namespace which is either be a block-level or atomic inline-level
@@ -226,14 +216,26 @@
               </p>
             </dd>
 
-            <dt id="Term3DRenderingContext">
-              <span class="termDefine">3D rendering context</span>
-            </dt>
+            <dt id="TermPerspectiveMatrix"><dfn>perpsective matrix</dfn></dt>
             <dd>
               <p>
-                All elements in the same <span class="term">3D rendering context</span> share a common three-dimensional
-                coordinate system. Elements in the same 3D rendering context which intersect
-                may be rendered as intersecting by the user agent.
+                A matrix computed from the values of the <code class="property">perspective</code> and <code class="property">perspective-origin</code> properties.
+              </p>
+            </dd>
+
+            <dt id="TermPerspectiveMatrix"><dfn>transformation matrix</dfn></dt>
+            <dd>
+              <p>
+                A matrix computed from the values of the <code class="property">transform</code> and <code class="property">transform-origin</code> properties.
+              </p>
+            </dd>
+
+            <dt id="Term3DRenderingContext"><dfn>3D rendering context</dfn></dt>
+            <dd>
+              <p>
+                A containing block hierarchy of one or more levels, instantiated by elements with a computed value for
+                the <code class="property">transform-style</code> property of <code class="css">preserve-3d</code>,
+                whose elements share a common three-dimensional coordinate system.
               </p>
             </dd>
             <!-- Define "three-dimensional transform" ? -->
@@ -244,11 +246,11 @@
           <h2 id="transform-rendering">The Transform Rendering Model</h2>
             <!-- This section is normative -->
               <p>
-                Specifying a value other than 'none' for the <span class="prop-name">'transform'</span>
+                Specifying a value other than 'none' for the <code class="property">'transform'</code>
                 property establishes a new <em>local coordinate system</em> at the element that it is
                 applied to. Transformations are cumulative. That is, elements establish their local
                 coordinate system within the coordinate system of their parent. From the perspective of the
-                user, an element effectively accumulates all the <span class="prop-name">'transform'</span>
+                user, an element effectively accumulates all the <code class="property">'transform'</code>
                 properties of its ancestors as well as any local transform applied to it. The accumulation
                 of these transforms defines a <em>current transformation matrix (CTM)</em> for the element.
               </p>
@@ -265,7 +267,6 @@
                 Transforms apply to <a href="#TermTransformableElement">transformable elements</a>.
               </p>
 
-
               <div class="example">
 <pre>
 div {
@@ -307,10 +308,9 @@
                 surrounding the transformed element. However, the extent of the overflow
                 area takes into account transformed elements. This behavior is similar
                 to what happens when elements are offset via relative positioning.
-                Therefore, if the value of the <span class="prop-name">'overflow'</span>
-                property is <span class="prop-value">'scroll'</span> or <span
-                class="prop-value">'auto'</span>, scrollbars will appear as needed to
-                see content that is transformed outside the visible area.
+                Therefore, if the value of the <code class="property">'overflow'</code>
+                property is <code class="css">'scroll'</code> or <code class="css">'auto'</code>,
+                scrollbars will appear as needed to see content that is transformed outside the visible area.
               </p>
               <p>
                 In the HTML namespace, any value other than 'none' for the transform results in the creation of
@@ -415,33 +415,39 @@
                 <!-- More detail required, probably with matrices -->
               </p>
 
-              <p>
-                A <span class="term">3D rendering context</span> is <em>established</em> by a
-                a transformable element which has a computed value of <span type="prop-name">transform-style</span> is
-                <span class="prop-value">'preserve-3d'</span>, and which itself is not part of a 3D rendering context.
-                Note that such an element is always a containing block.
-              </p>
-              <p>
-                An element whose computed value for <span type="prop-name">transform-style</span> is
-                <span style="prop-value">'preserve-3d'</span>, and which is itself a member of a
-                <span class="term">3D rendering context</span>, extends the 3D rendering context of which it is a member.
-              </p>
-              <p>
-                An element <em>participates</em> in a <span class="term">3D rendering context</span> if its containing block
-                establishes or extends a <span class="term">3D rendering context</span>.
-              </p>
-              
-              <!-- Need more exposition here on establishes vs. participates -->
-
+              <p>Elements establish and participate in 3D rendering contexts as follows:</p>
+              <ul>
+                <li>
+                  A <span class="term">3D rendering context</span> is established by a
+                  a transformable element whose computed value for <code class="property">transform-style</code> is
+                  <code class="css">'preserve-3d'</code>, and which itself is not part of a 3D rendering context.
+                  Note that such an element is always a containing block. An element that establishes a 3D rendering context
+                  also participates in that context.
+                </li>
+                <li>
+                  An element whose computed value for <code class="property">transform-style</code> is
+                  <class style="css">'preserve-3d'</code>, and which itself participates in a
+                  <span class="term">3D rendering context</span>, extends that 3D rendering context rather than establishing
+                  a new one.
+                </li>
+                <li>
+                  An element participates in a <span class="term">3D rendering context</span> if its containing block
+                  establishes or extends a <span class="term">3D rendering context</span>.
+                </li>
+              </ul>
               <p>
                 The final value of the transform used to render an element in a <span class="term">3D rendering context</span>
                 is computed as follows:
               </p>
               <ol>
                 <!-- Clarify pre- vs post-multiply? -->
-                <li>Start with the identity matrix</li>
-                <li>If the root of the <span class="term">3D rendering context</span> has perspective, multiply that into
-                  the matrix, taking perspective-origin into account.</li>
+                <!-- This needs to be more mathy -->
+                <li>If the root of the <span class="term">3D rendering context</span> has a computed value of <code class="property">perspective</code> which is not 'none' and greater than zero, compute a perspective matrix as follows:
+                  <ol>
+                    <li></li>
+                  </ol>
+                  otherwise start with the identity matrix.
+                  </li>
                 <li>For each containing block between the root of the <span class="term">3D rendering context</span> 
                   and the element in question, compute a transformation matrix by:
                   <ol>
@@ -553,32 +559,32 @@
 
 <!--
                 <p>
-  	              The <span class="prop-name">'transform-style'</span> property defines
+  	              The <code class="property">'transform-style'</code> property defines
                   how nested elements are rendered in three-dimensional space. If the <span
-                  class="prop-name">'transform-style'</span> is <span
+                  class="prop-name">'transform-style'</code> is <span
                   class="prop-value">'flat'</span>, all children of this element are
                   rendered flattened into the 2D plane of the element. Therefore, rotating
                   the element about the X or Y axes will cause children positioned at
                   positive or negative Z positions to appear on the element's plane, rather
                   than in front of or behind it. If the <span
-                  class="prop-name">'transform-style'</span> is <span
+                  class="prop-name">'transform-style'</code> is <span
                   class="prop-value">'preserve-3d'</span>, this flattening is not performed,
                   so children maintain their position in three-dimensional space.
                 </p>
                 <p>
                   This flattening takes place at each element, so preserving a hierarchy
                   of elements in three-dimensional space requires that each element in the hierarchy
-                  have the value <span class="prop-value">'preserve-3d'</span> for <span
-                  class="prop-name">'transform-style'</span>. But since <span
-                  class="prop-name">'transform-style'</span> affects only an element's
+                  have the value <code class="css">'preserve-3d'</span> for <span
+                  class="prop-name">'transform-style'</code>. But since <span
+                  class="prop-name">'transform-style'</code> affects only an element's
                   children, the leaf nodes in a hierarchy do not require the 
-                  <span class="prop-name">'transform-style: preserve-3d'</span> to be specified.
+                  <code class="property">'transform-style: preserve-3d'</code> to be specified.
                 </p>
                 
                 <p>
                   For some effects, the author will have to ensure that an ancestor
-                  element to a subtree using <span class="prop-value">'preserve-3d'</span>
-                  has a <span class="prop-name">'transform-style'</span> of <span
+                  element to a subtree using <code class="css">'preserve-3d'</span>
+                  has a <code class="property">'transform-style'</code> of <span
                   class="prop-value">'flat'</span> (or the default). Otherwise, the
                   elements in the 3D tree may be located behind ancestor elements and,
                   thus, invisible (hidden behind an ancestor's background).
@@ -586,21 +592,21 @@
 
                 <p>
                   Note that while 'preserve-3d' can be specified on an element, the effect may not
-                  be possible. Elements that have <span class="prop-name">'overflow'</span> set to
-                  <span class="prop-value">'hidden'</span> are unable to keep their children in 3D.
+                  be possible. Elements that have <code class="property">'overflow'</code> set to
+                  <code class="css">'hidden'</code> are unable to keep their children in 3D.
                   In this case the element will behave as if the property was set to 
-                  <span class="prop-value">'flat'</span>.
+                  <code class="css">'flat'</span>.
                 </p>
                 -->
               
               <!-- ======================================================================================================= -->
 
               <h2 id="transform-property">
-                The <span class="prop-name">'transform'</span> Property
+                The <code class="property">'transform'</code> Property
               </h2>
               <p>
                 A transformation is applied to the coordinate system an element
-                renders in through the <span class="prop-name">'transform'</span> property. This property contains a
+                renders in through the <code class="property">'transform'</code> property. This property contains a
                 list of <a href="#transform-functions">transform functions</a>. The
                 final transformation value for a coordinate system is obtained by converting
                 each function in the list to its corresponding matrix (either defined in
@@ -723,14 +729,14 @@
               <!-- ======================================================================================================= -->
 
               <h2 id="transform-origin-property">
-                The <span class="prop-name">'transform-origin'</span> Property
+                The <code class="property">'transform-origin'</code> Property
               </h2>
               <div class="issue issue-marker">
                 <p class="desc">Need to add 3D transform-origin variant in a way that is not ambiguous
                   with the background-origin syntax (<a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=15432">bug 15432</a>).</p>
               </div>
               <p>
-                The <span class="prop-name">'transform-origin'</span> property
+                The <code class="property">'transform-origin'</code> property
                 establishes the origin of transformation for a coordinate system. This property
                 is applied by first translating the element's coordinate system by the negated value of the
                 property, then applying the local transform, then translating by the
@@ -849,14 +855,14 @@
 }                  
               </pre>
               <div class="issue">
-                  <p class="desc">Need to determine how to extend transform-origin to allow it ot affect the z-origin
+                  <p class="desc">Need to determine how to extend transform-origin to allow it to affect the z-origin
                     with three-dimensional transforms (<a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=14647">Bug 14647</a>).
               </div
 
               <!-- ======================================================================================================= -->
 
               <h2 id="transform-style-property">
-                The <span class="prop-name">'transform-style'</span> Property
+                The <code class="property">'transform-style'</code> Property
               </h2>
               <p>
                 Property summary here.
@@ -931,7 +937,7 @@
               </table>
 
               <p>
-                A value of <span class="prop-value">preserve-3d</span> for <span class="prop-name">transform-style</span>
+                A value of <code class="css">preserve-3d</code> for <code class="property">transform-style</code>
                 establishes a stacking context.
               </p>
 
@@ -941,11 +947,11 @@
               <p>
                 The following CSS property values require the user agent to create a flattened representation of
                 the descendant elements before they can be applied, and therefore override the behavior of 
-                <span class="prop-name">transform-style</span>: <span class="prop-value">preserve-3d</span>:
+                <code class="property">transform-style</code>: <code class="css">preserve-3d</code>:
                 <ul>
-                  <li><span class="prop-name">overflow</span>: any value other than 'visible'.</li>
-                  <li><span class="prop-name">opacity</span>: any value other than 1.</li>
-                  <li><span class="prop-name">filter</span>: any value other than 'none'.</li>
+                  <li><code class="property">overflow</code>: any value other than 'visible'.</li>
+                  <li><code class="property">opacity</code>: any value other than 1.</li>
+                  <li><code class="property">filter</code>: any value other than 'none'.</li>
                   <!-- Others? -->
                 </ul>
               </p>
@@ -953,16 +959,13 @@
               <!-- ======================================================================================================= -->
 
               <h2 id="perspective-property">
-                The <span class="prop-name">'perspective'</span> Property
+                The <code class="property">'perspective'</code> Property
               </h2>
               <p>
-                
-              <p>
-                The <span class="prop-name">'perspective'</span> property applies the
-                same transform as the <span
-                class="prop-value">perspective(&lt;length&gt;)</span> transform
-                function, except that it applies only to the positioned or transformed
-                children of the element, not to the transform on the element itself.
+                The <code class="property">'perspective'</code> property applies the
+                same transform as the <code class="css">perspective(&lt;length&gt;)</code> transform
+                function, except that it applies only to elements whose containing block is the
+                element with perspective, not to the transform on the element itself.
               </p>
 
               <table class="propdef">
@@ -1034,10 +1037,9 @@
                 </tbody>
               </table>
 
-              <div class="issue"><p>Does perspective establish a containing block?</p></div>
               <p>
-                If the value is <span
-                class="prop-value">'none'</span>, less than or equal to 0 no perspective transform is applied.
+                If the value is <code class="css">'none'</code>, less than or equal to 0 no
+                perspective transform is applied.
               </p>
               <p>
                 The use of this property with any value other than 'none' establishes a
@@ -1048,10 +1050,10 @@
               <!-- ======================================================================================================= -->
               
               <h2 id="perspective-origin-property">
-                The <span class="prop-name">'perspective-origin'</span> Property
+                The <code class="property">'perspective-origin'</code> Property
               </h2>
               <p>
-                The <span class="prop-name">'perspective-origin'</span> property
+                The <code class="property">'perspective-origin'</code> property
                 establishes the origin for the <em>perspective</em> property. It
                 effectively sets the X and Y position at which the viewer appears to be
                 looking at the children of the element.
@@ -1126,14 +1128,17 @@
                   </tr>
                 </tbody>
               </table>
+              <p>
+                The <code class="property">perspective-origin</code> property affects the 
+              </p>
               
               <!-- ======================================================================================================= -->
 
               <h2 id="backface-visibility-property">
-                The <span class="prop-name">'backface-visibility'</span> Property
+                The <code class="property">'backface-visibility'</code> Property
               </h2>
               <p>
-                The <span class="prop-name">'backface-visibility'</span> property
+                The <code class="property">'backface-visibility'</code> property
                 determines whether or not the "back" side of a transformed element is
                 visible when facing the viewer. With an identity transform, the front
                 side of an element faces the viewer. Applying a rotation about Y of 180
@@ -1225,7 +1230,7 @@
                 The Transformation Functions
               </h2>
               <p>
-                The value of the <span class="prop-name">transform</span> property is a
+                The value of the <code class="property">transform</code> property is a
                 list of &lt;transform-functions&gt; applied in the order provided. The
                 individual transform functions are separated by whitespace. The
                 set of allowed transform functions is given below. In this list the
@@ -1239,63 +1244,63 @@
               <h3 id="two-d-transform-functions">2D Transformation Functions</h3>
               <dl>
                 <dt>
-                  <span class="prop-value">matrix(&lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;)</span>
+                  <code class="css">matrix(&lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;)</code>
                 </dt>
                 <dd>
-                  specifies a 2D transformation in the form of a <a href="http://www.w3.org/TR/SVG/coords.html#TransformMatrixDefined">transformation matrix</a> of six values. <span class="prop-value">matrix(a,b,c,d,e,f)</span> is equivalent to applying the transformation matrix <strong>[a b c d e f]</strong>.
+                  specifies a 2D transformation in the form of a <a href="http://www.w3.org/TR/SVG/coords.html#TransformMatrixDefined">transformation matrix</a> of six values. <code class="css">matrix(a,b,c,d,e,f)</code> is equivalent to applying the transformation matrix <strong>[a b c d e f]</strong>.
                 </dd>
                 <dt>
-                  <span class="prop-value">translate(&lt;translation-value&gt;[, &lt;translation-value&gt;])</span>
+                  <code class="css">translate(&lt;translation-value&gt;[, &lt;translation-value&gt;])</code>
                 </dt>
                 <dd>
                   specifies a <a href="http://www.w3.org/TR/SVG/coords.html#TranslationDefined">2D translation</a> by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter. If <em>&lt;ty&gt;</em> is not provided, ty has zero as a value.
                 </dd>
                 <dt>
-                  <span class="prop-value">translateX(&lt;translation-value&gt;)</span>
+                  <code class="css">translateX(&lt;translation-value&gt;)</code>
                 </dt>
                 <dd>
                   specifies a <a href="http://www.w3.org/TR/SVG/coords.html#TranslationDefined">translation</a> by the given amount in the X direction.
                 </dd>
                 <dt>
-                  <span class="prop-value">translateY(&lt;translation-value&gt;)</span>
+                  <code class="css">translateY(&lt;translation-value&gt;)</code>
                 </dt>
                 <dd>
                   specifies a <a href="http://www.w3.org/TR/SVG/coords.html#TranslationDefined">translation</a> by the given amount in the Y direction.
                 </dd>
                 <dt>
-                  <span class="prop-value">scale(&lt;number&gt;[, &lt;number&gt;])</span>
+                  <code class="css">scale(&lt;number&gt;[, &lt;number&gt;])</code>
                 </dt>
                 <dd>
                   specifies a <a href="http://www.w3.org/TR/SVG/coords.html#ScalingDefined">2D scale</a> operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first. For example, scale(1, 1) would leave an element unchanged, while scale(2, 2) would cause it to appear twice as long in both the X
                   and Y axes, or four times its typical geometric size.
                 </dd>
                 <dt>
-                  <span class="prop-value">scaleX(&lt;number&gt;)</span>
+                  <code class="css">scaleX(&lt;number&gt;)</code>
                 </dt>
                 <dd>
                   specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter.
                 </dd>
                 <dt>
-                  <span class="prop-value">scaleY(&lt;number&gt;)</span>
+                  <code class="css">scaleY(&lt;number&gt;)</code>
                 </dt>
                 <dd>
                   specifies a scale operation using the [1,sy] scaling vector, where sy is given as the parameter.
                 </dd>
                 <dt>
-                  <span class="prop-value">rotate(&lt;angle&gt;)</span>
+                  <code class="css">rotate(&lt;angle&gt;)</code>
                 </dt>
                 <dd>
                   specifies a <a href="http://www.w3.org/TR/SVG/coords.html#RotationDefined">2D rotation</a> by the angle specified in the parameter about the origin of the element, as defined by the <em>transform-origin</em> property. For example, rotate(90deg) would cause elements to appear
                   rotated one-quarter of a turn in the clockwise direction.
                 </dd>
                 <dt>
-                  <span class="prop-value">skewX(&lt;angle&gt;)</span>
+                  <code class="css">skewX(&lt;angle&gt;)</code>
                 </dt>
                 <dd>
                   specifies a <a href="http://www.w3.org/TR/SVG/coords.html#SkewXDefined">skew transformation along the X axis</a> by the given angle.
                 </dd>
                 <dt>
-                  <span class="prop-value">skewY(&lt;angle&gt;)</span>
+                  <code class="css">skewY(&lt;angle&gt;)</code>
                 </dt>
                 <dd>
                   specifies a <a href="http://www.w3.org/TR/SVG/coords.html#SkewYDefined">skew transformation along the Y axis</a> by the given angle.
@@ -1306,37 +1311,37 @@
               <h3 id="three-d-transform-functions">3D Transformation Functions</h3>
               <dl>
                 <dt>
-                  <span class="prop-value">matrix3d(&lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;)</span>
+                  <code class="css">matrix3d(&lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;number&gt;)</code>
                 </dt>
                 <dd>
                   specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order.
                 </dd>
                 <dt>
-                  <span class="prop-value">translate3d(&lt;translation-value&gt;, &lt;translation-value&gt;, &lt;translation-value&gt;)</span>
+                  <code class="css">translate3d(&lt;translation-value&gt;, &lt;translation-value&gt;, &lt;translation-value&gt;)</code>
                 </dt>
                 <dd>
                   specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively. &lt;Percentage&gt; values are not allowed in the tz translation-value, and if present will cause the propery value to be invalid.
                 </dd>
                 <dt>
-                  <span class="prop-value">translateZ(&lt;translation-value&gt;)</span>
+                  <code class="css">translateZ(&lt;translation-value&gt;)</code>
                 </dt>
                 <dd>
                   specifies a <a href="http://www.w3.org/TR/SVG/coords.html#TranslationDefined">translation</a> by the given amount in the Z direction. &lt;Percentage&gt; values are not allowed in the translateZ translation-value, and if present will cause the propery value to be invalid.
                 </dd>
                 <dt>
-                  <span class="prop-value">scale3d(&lt;number&gt;, &lt;number&gt;, &lt;number&gt;)</span>
+                  <code class="css">scale3d(&lt;number&gt;, &lt;number&gt;, &lt;number&gt;)</code>
                 </dt>
                 <dd>
                   specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters.
                 </dd>
                 <dt>
-                  <span class="prop-value">scaleZ(&lt;number&gt;)</span>
+                  <code class="css">scaleZ(&lt;number&gt;)</code>
                 </dt>
                 <dd>
                   specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter.
                 </dd>
                 <dt>
-                  <span class="prop-value">rotate3d(&lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;angle&gt;)</span>
+                  <code class="css">rotate3d(&lt;number&gt;, &lt;number&gt;, &lt;number&gt;, &lt;angle&gt;)</code>
                 </dt>
                 <div class="todo">Clarify "clockwise". Describe in terms of right-hand rule?</div>
                 <dd>
@@ -1347,25 +1352,25 @@
                   0, 0], will cause the rotation to not be applied. This function is
                   equivalent to <code>matrix3d(1 + (1-cos(angle))*(x*x-1), -z*sin(angle)+(1-cos(angle))*x*y, y*sin(angle)+(1-cos(angle))*x*z, 0, z*sin(angle)+(1-cos(angle))*x*y, 1 + (1-cos(angle))*(y*y-1), -x*sin(angle)+(1-cos(angle))*y*z, 0, -y*sin(angle)+(1-cos(angle))*x*z, x*sin(angle)+(1-cos(angle))*y*z, 1 + (1-cos(angle))*(z*z-1), 0, 0, 0, 0, 1)</code>.</dd>
                 <dt>
-                  <span class="prop-value">rotateX(&lt;angle&gt;)</span>
+                  <code class="css">rotateX(&lt;angle&gt;)</code>
                 </dt>
                 <dd>
                   specifies a clockwise rotation by the given angle about the X axis.
                 </dd>
                 <dt>
-                  <span class="prop-value">rotateY(&lt;angle&gt;)</span>
+                  <code class="css">rotateY(&lt;angle&gt;)</code>
                 </dt>
                 <dd>
                   specifies a clockwise rotation by the given angle about the Y axis.
                 </dd>
                 <dt>
-                  <span class="prop-value">rotateZ(&lt;angle&gt;)</span>
+                  <code class="css">rotateZ(&lt;angle&gt;)</code>
                 </dt>
                 <dd>
-                  specifies a clockwise rotation by the given angle about the Z axis. This is a synonym for <span class="prop-value">rotate(&lt;angle&gt;)</span>.
+                  specifies a clockwise rotation by the given angle about the Z axis. This is a synonym for <code class="css">rotate(&lt;angle&gt;)</code>.
                 </dd>
                 <dt>
-                  <span class="prop-value">perspective(&lt;length&gt;)</span>
+                  <code class="css">perspective(&lt;length&gt;)</code>
                 </dt>
                 <dd>
                   specifies a perspective projection matrix. This matrix maps a <em>viewing cube</em> onto a pyramid whose

Received on Sunday, 29 January 2012 16:53:08 UTC