<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>16374</bug_id>
          
          <creation_ts>2012-03-14 17:30:39 +0000</creation_ts>
          <short_desc>Allow transform function list with out explicit separation</short_desc>
          <delta_ts>2012-03-17 01:17:29 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>CSS</product>
          <component>Transforms</component>
          <version>unspecified</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">dschulze</reporter>
          <assigned_to name="Dirk Schulze">dschulze</assigned_to>
          <cc>ayg</cc>
    
    <cc>cmarrin</cc>
    
    <cc>dino</cc>
    
    <cc>dschulze</cc>
    
    <cc>eoconnor</cc>
    
    <cc>smfr</cc>
          
          <qa_contact>public-css-bugzilla</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>65526</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">dschulze</who>
    <bug_when>2012-03-14 17:30:39 +0000</bug_when>
    <thetext>The CSS3 Transform specification might allow transform lists, where the single transform functions are not separated at all:

transform: translate(100px,100px)rotate(45deg);

The same for the presentation attribute:

transform=&quot;translate(100,100)rotate(45)&quot;

Neither CSS3 Transforms nor SVG Transform allow it at the moment. Nevertheless, it works on the browsers: Safari, Chrome, Firefox and Opera. Currently untested is IE, I&apos;ll test it on IE today and give feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65527</commentid>
    <comment_count>1</comment_count>
      <attachid>1097</attachid>
    <who name="Dirk Schulze">dschulze</who>
    <bug_when>2012-03-14 17:32:44 +0000</bug_when>
    <thetext>Created attachment 1097
CSS Transform test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65528</commentid>
    <comment_count>2</comment_count>
      <attachid>1098</attachid>
    <who name="Dirk Schulze">dschulze</who>
    <bug_when>2012-03-14 17:34:43 +0000</bug_when>
    <thetext>Created attachment 1098
SVG Transform test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65529</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Schulze">dschulze</who>
    <bug_when>2012-03-14 17:37:43 +0000</bug_when>
    <thetext>I tested IE 10 preview, and IE 10 supports it as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65530</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser">smfr</who>
    <bug_when>2012-03-14 17:40:17 +0000</bug_when>
    <thetext>Is there precendent in any other css property that takes a bare list of functions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65533</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Schulze">dschulze</who>
    <bug_when>2012-03-14 17:43:59 +0000</bug_when>
    <thetext>(In reply to comment #4)
&gt; Is there precendent in any other css property that takes a bare list of
&gt; functions?

I just know of CSS Filters that have a list of functions. I&apos;ll check what WebKit does there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65535</commentid>
    <comment_count>6</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-03-14 17:46:03 +0000</bug_when>
    <thetext>It&apos;s cool that everyone supports this, but I fear that adding so much
flexibility now removes any flexibility for us in the future. Imagine that we
need to add some characters after the parentheses for some reason (4d
transforms!!) or remove parentheses - we won&apos;t be able to do it if we explicitly allow this.

On the other hand, codifying existing behaviour is generally a good thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65537</commentid>
    <comment_count>7</comment_count>
    <who name="Dirk Schulze">dschulze</who>
    <bug_when>2012-03-14 17:52:43 +0000</bug_when>
    <thetext>(In reply to comment #4)
&gt; Is there precendent in any other css property that takes a bare list of
&gt; functions?
Just checked -webkit-filter: drop-shadow(10px 10px 10px blue)sepia(); and it works as well.

(In reply to comment #6)
&gt; It&apos;s cool that everyone supports this, but I fear that adding so much
&gt; flexibility now removes any flexibility for us in the future. Imagine that we
&gt; need to add some characters after the parentheses for some reason (4d
&gt; transforms!!) or remove parentheses - we won&apos;t be able to do it if we
&gt; explicitly allow this.
&gt; 
&gt; On the other hand, codifying existing behaviour is generally a good thing.

Wow! 4D? Don&apos;t we support it already with transitions and animations? :D

But I understand the concerns. Nevertheless, we would have to deal with it if we need the flexibility as well. Even if unspecified, we could potentially break existing content if we need the separation later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65541</commentid>
    <comment_count>8</comment_count>
    <who name="Aryeh Gregor">ayg</who>
    <bug_when>2012-03-14 18:05:55 +0000</bug_when>
    <thetext>As I&apos;m reading CSS 3 Values and Units, optional whitespace is always allowed between tokens in values:

&quot;&quot;&quot;
Component values are specified in terms of tokens, as described in Chapter 4 of [CSS21]. As the grammar allows spaces between tokens in the components of the value production, spaces may appear between tokens in property values.
&quot;&quot;&quot;
http://dev.w3.org/csswg/css3-values/#component-whitespace

So I suggest we just remove the sentence &quot;The individual transform functions are separated by whitespace&quot;.  It&apos;s already covered by other specs.  I already have a test for this in 3d-transforms.html, which tests that 

  &quot;tranSlatex( 16px )rotatez(-90deg)  rotate(100grad)\ttranslate3d(-12pt, 0, 0.0em)&quot;

is parsed as:

  &quot;translateX(16px) rotateZ(-90deg) rotate(100grad) translate3d(-12pt, 0px, 0em)&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65546</commentid>
    <comment_count>9</comment_count>
      <attachid>1099</attachid>
    <who name="Dirk Schulze">dschulze</who>
    <bug_when>2012-03-14 18:32:19 +0000</bug_when>
    <thetext>Created attachment 1099
Suggestion

What about the attached diff?

Remove the sentence like Aryeh described and change SVG part like that:

If the transform list consists of more than one transform function, these functions may be separated by optional whitespace, an optional comma (‘&lt;code class=&quot;css&quot;&gt;,&lt;/code&gt;’) followed by optional whitespace. The transform list can have optional whitespace characters before and after the list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65549</commentid>
    <comment_count>10</comment_count>
    <who name="Aryeh Gregor">ayg</who>
    <bug_when>2012-03-14 18:34:44 +0000</bug_when>
    <thetext>The CSS part of that change looks good to me (I didn&apos;t review the SVG part).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65630</commentid>
    <comment_count>11</comment_count>
    <who name="Dirk Schulze">dschulze</who>
    <bug_when>2012-03-15 21:44:19 +0000</bug_when>
    <thetext>Dean, do you still have concerns that we need to discuss?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65689</commentid>
    <comment_count>12</comment_count>
    <who name="Dirk Schulze">dschulze</who>
    <bug_when>2012-03-17 01:17:29 +0000</bug_when>
    <thetext>Committed change today.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>1097</attachid>
            <date>2012-03-14 17:32:44 +0000</date>
            <delta_ts>2012-03-14 17:32:44 +0000</delta_ts>
            <desc>CSS Transform test</desc>
            <filename>trans.html</filename>
            <type>text/html</type>
            <size>458</size>
            <attacher name="Dirk Schulze">dschulze</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgogIDx0aXRsZT48L3RpdGxlPgogIDxzY3JpcHQ+CgogIDwvc2NyaXB0PgogIDxzdHls
ZT4KZGl2IHsKICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKICB3aWR0aDogMTAwcHg7CiAgaGVp
Z2h0OiAxMDBweDsKICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMHB4LDEwMHB4KXJv
dGF0ZSg0NWRlZyk7CiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMDBweCwxMDBweClyb3Rh
dGUoNDVkZWcpOwogIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMHB4LDEwMHB4KXJvdGF0ZSg0
NWRlZyk7CiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMHB4LDEwMHB4KXJvdGF0ZSg0NWRl
Zyk7Cn0KICA8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5Pgo8ZGl2PjwvZGl2Pgo8L2JvZHk+CjwvaHRt
bD4=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>1098</attachid>
            <date>2012-03-14 17:34:43 +0000</date>
            <delta_ts>2012-03-14 17:34:43 +0000</delta_ts>
            <desc>SVG Transform test</desc>
            <filename>trans.svg</filename>
            <type>image/svg+xml</type>
            <size>177</size>
            <attacher name="Dirk Schulze">dschulze</attacher>
            
              <data encoding="base64">PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KPHJlY3Qgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAi
IGZpbGw9ImdyZWVuIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMDAsMTAwKXJvdGF0ZSg0NSkiLz4K
PC9zdmc+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>1099</attachid>
            <date>2012-03-14 18:32:19 +0000</date>
            <delta_ts>2012-03-14 18:32:19 +0000</delta_ts>
            <desc>Suggestion</desc>
            <filename>whitespace.patch</filename>
            <type>text/plain</type>
            <size>2962</size>
            <attacher name="Dirk Schulze">dschulze</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL2NzczMtdHJhbnNmb3Jtcy9UcmFuc2Zvcm1zLnNyYy5odG1sIGIvY3NzMy10
cmFuc2Zvcm1zL1RyYW5zZm9ybXMuc3JjLmh0bWwKLS0tIGEvY3NzMy10cmFuc2Zvcm1zL1RyYW5z
Zm9ybXMuc3JjLmh0bWwKKysrIGIvY3NzMy10cmFuc2Zvcm1zL1RyYW5zZm9ybXMuc3JjLmh0bWwK
QEAgLTc3NywxOSArNzc3LDE4IEBAIGRpdiB7CiAgICAgICAgICAgICAgICAgdGhlIGF0dHJpYnV0
ZSBvbmx5LgogICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICA8aDQgaWQ9InN2Zy10cmFuc2Zvcm0tbGlzdCI+VHJhbnNmb3JtIExpc3Q8L2g0PgogICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGZv
ciB0aGUgJzxjb2RlIGNsYXNzPSJwcm9wZXJ0eSI+dHJhbnNmb3JtPC9jb2RlPicgYXR0cmlidXRl
IGNvbnNpc3RzIG9mIGEgdHJhbnNmb3JtIGxpc3Qgd2l0aCB6ZXJvIG9yIG1vcmUgdHJhbnNmb3Jt
IGZ1bmN0aW9ucwogICAgICAgICAgICAgICAgIHVzaW5nIDxhIGhyZWY9IiNzdmctZnVuY3Rpb25h
bC1ub3RhdGlvbiI+ZnVuY3Rpb25hbCBub3RhdGlvbjwvYT4uIElmIHRoZSB0cmFuc2Zvcm0gbGlz
dCBjb25zaXN0cyBvZiBtb3JlIHRoYW4gb25lIHRyYW5zZm9ybSBmdW5jdGlvbiwKLSAgICAgICAg
ICAgICAgICAgIHRoZXNlIGZ1bmN0aW9ucyBhcmUgc2VwYXJhdGVkIGJ5IGVpdGhlciBhIGNvbW1h
ICjigJg8Y29kZSBjbGFzcz0iY3NzIj4sPC9jb2RlPuKAmSkgd2l0aCBvcHRpb25hbCB3aGl0ZXNw
YWNlIGNoYXJhY3RlcnMKLSAgICAgICAgICAgICAgICBiZWZvcmUgYW5kIGFmdGVyIHRoZSBjb21t
YSwgb3IgYnkgb25lIG9yIG1vcmUgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzLiBUaGUgdHJhbnNmb3Jt
IGxpc3QgY2FuIGhhdmUKLSAgICAgICAgICAgICAgICBvcHRpb25hbCB3aGl0ZXNwYWNlIGNoYXJh
Y3RlcnMgYmVmb3JlIGFuZCBhZnRlciB0aGUgbGlzdC4KKyAgICAgICAgICAgICAgICB0aGVzZSBm
dW5jdGlvbnMgbWF5IGJlIHNlcGFyYXRlZCBieSBvcHRpb25hbCB3aGl0ZXNwYWNlLCBhbiBvcHRp
b25hbCBjb21tYSAo4oCYPGNvZGUgY2xhc3M9ImNzcyI+LDwvY29kZT7igJkpIGZvbGxvd2VkIGJ5
IG9wdGlvbmFsIHdoaXRlc3BhY2UuCisgICAgICAgICAgICAgICAgVGhlIHRyYW5zZm9ybSBsaXN0
IGNhbiBoYXZlIG9wdGlvbmFsIHdoaXRlc3BhY2UgY2hhcmFjdGVycyBiZWZvcmUgYW5kIGFmdGVy
IHRoZSBsaXN0LgogICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICA8aDQgaWQ9InN2Zy1mdW5jdGlvbmFsLW5vdGF0aW9uIj5GdW5jdGlvbmFsIE5vdGF0aW9u
PC9oND4KICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAg
IFRoZSBzeW50YXggc3RhcnRzIHdpdGggdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uIGZvbGxvd2Vk
IGJ5IG9wdGlvbmFsIHdoaXRlc3BhY2UgY2hhcmFjdGVycyBmb2xsb3dlZCBieSBhIGxlZnQKICAg
ICAgICAgICAgICAgICBwYXJlbnRoZXNpcyBmb2xsb3dlZCBieSBvcHRpb25hbCB3aGl0ZXNwYWNl
IGZvbGxvd2VkIGJ5IHRoZSBhcmd1bWVudChzKSB0byB0aGUgbm90YXRpb24gZm9sbG93ZWQgYnkK
ICAgICAgICAgICAgICAgICBvcHRpb25hbCB3aGl0ZXNwYWNlIGZvbGxvd2VkIGJ5IGEgcmlnaHQg
cGFyZW50aGVzaXMuIElmIGEgZnVuY3Rpb24gdGFrZXMgbW9yZSB0aGFuIG9uZSBhcmd1bWVudCwg
dGhlCkBAIC0xNTg0LDE3ICsxNTgzLDE2IEBAIGRpdiB7CiAgICAgICAgICAgICAgIDwhLS0gPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KIAogICAgICAg
ICAgICAgICA8aDIgaWQ9InRyYW5zZm9ybS1mdW5jdGlvbnMiPgogICAgICAgICAgICAgICAgIFRo
ZSBUcmFuc2Zvcm1hdGlvbiBGdW5jdGlvbnMKICAgICAgICAgICAgICAgPC9oMj4KICAgICAgICAg
ICAgICAgPHA+CiAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIG9mIHRoZSA8Y29kZSBjbGFzcz0i
cHJvcGVydHkiPnRyYW5zZm9ybTwvY29kZT4gcHJvcGVydHkgaXMgYQogICAgICAgICAgICAgICAg
IGxpc3Qgb2YgPHZhcj4mbHQ7dHJhbnNmb3JtLWZ1bmN0aW9ucyZndDs8L3Zhcj4gYXBwbGllZCBp
biB0aGUgb3JkZXIgcHJvdmlkZWQuIFRoZQotICAgICAgICAgICAgICAgIGluZGl2aWR1YWwgdHJh
bnNmb3JtIGZ1bmN0aW9ucyBhcmUgc2VwYXJhdGVkIGJ5IHdoaXRlc3BhY2UuIFRoZQogICAgICAg
ICAgICAgICAgIHNldCBvZiBhbGxvd2VkIHRyYW5zZm9ybSBmdW5jdGlvbnMgaXMgZ2l2ZW4gYmVs
b3cuIEluIHRoaXMgbGlzdCB0aGUKICAgICAgICAgICAgICAgICB0eXBlIDx2YXI+Jmx0O3RyYW5z
bGF0aW9uLXZhbHVlJmd0OzwvdmFyPiBpcyBkZWZpbmVkIGFzIGEgPHZhcj4mbHQ7bGVuZ3RoJmd0
OzwvdmFyPiBvcgogICAgICAgICAgICAgICAgIDx2YXI+Jmx0O3BlcmNlbnRhZ2UmZ3Q7PC92YXI+
IHZhbHVlLCBhbmQgdGhlIDx2YXI+Jmx0O2FuZ2xlJmd0OzwvdmFyPiB0eXBlIGlzIGRlZmluZWQg
YnkgPGEKICAgICAgICAgICAgICAgICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXZh
bHVlcy8iPkNTUyBWYWx1ZXMgYW5kIFVuaXRzIE1vZHVsZS48L2E+CiAgICAgICAgICAgICAgICAg
V2hlcmV2ZXIgPHZhcj4mbHQ7YW5nbGUmZ3Q7PC92YXI+IGlzIHVzZWQgaW4gdGhpcyBzcGVjaWZp
Y2F0aW9uLCBhIDx2YXI+Jmx0O251bWJlciZndDs8L3Zhcj4gdGhhdCBpcyBlcXVhbCB0bwogICAg
ICAgICAgICAgICAgIHplcm8gaXMgYWxzbyBhbGxvd2VkLCB3aGljaCBpcyB0cmVhdGVkIHRoZSBz
YW1lIGFzIGFuIGFuZ2xlIG9mIHplcm8gZGVncmVlcy4KICAgICAgICAgICAgICAgPC9wPgogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>