<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: CSS3 Feedback: Animated Shapes</title>
	<atom:link href="http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/feed/" rel="self" type="application/rss+xml" />
	<link>http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/</link>
	<description>Things that Eric A. Meyer, CSS expert, writes about on his personal Web site; it&#039;s largely Web standards and Web technology, but also various bits of culture, politics, personal observations, and other miscellaneous stuff</description>
	<lastBuildDate>Mon, 15 Mar 2010 16:37:39 -0400</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Matt Wilcox</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/#comment-444933</link>
		<dc:creator>Matt Wilcox</dc:creator>
		<pubDate>Wed, 25 Feb 2009 00:51:31 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1055#comment-444933</guid>
		<description>There are definitely scaling issues when using an image-map as a mask. I&#039;m not convinced that many authors would use a 20x20 image and expect it to work at 500x500, but as you say - it needs to be thought about. &quot;How would I break it&quot; interrogation like that is to be expected, and sensible answers must be given in the spec.

What I like about the Mask option is the ability to use SVG for scalable shapes, and also bitmaps for cases where the scale of the masked area is more rigorously known (which for the use cases I have in mind would almost always be the case anyway). It&#039;s the best of both worlds - a vector/co-ordinate based mask capability alongside a less involved bitmap alternative.

As for page weight, that is and isn&#039;t a concern depending on all sorts of things. At the moment Webkit expects a transparent PNG, which is 32bit, and therefore bloats the file-size fast. I filed a bug-report some months ago arguing for a change to use the luminosity value of any image as the alpha value of the mask - this way instead of a 200kb 32bit PNG you could use a 60kb JPG. Or a GIF.

I&#039;m encouraged by the fact that Webkit already has an implementation of Masks working. I&#039;d like to see a few changes, as we have discussed, but I see the thought process going on over there that would mean Masks have a credible chance of offering a solution to non-regular shapes in CSS that are flexible and un-complicated for an author to implement. I appreciate that it may be a lot harder for browser engineers, but frankly that isn&#039;t my concern.

Also on my wish list (no matter how implausable) is that ability for CSS to interrogate connection speed and browser states. So I can set a default &quot;low quality&quot; version but serve a &quot;high quality&quot; version if the connetion speed is above a designated rate. Or detect cases where images are off but CSS is on.

@connection all and (min-speed: 512kbps) { body { background-image: url(high-quality.png); } }</description>
		<content:encoded><![CDATA[<p>There are definitely scaling issues when using an image-map as a mask. I&#8217;m not convinced that many authors would use a 20&#215;20 image and expect it to work at 500&#215;500, but as you say &#8211; it needs to be thought about. &#8220;How would I break it&#8221; interrogation like that is to be expected, and sensible answers must be given in the spec.</p>
<p>What I like about the Mask option is the ability to use SVG for scalable shapes, and also bitmaps for cases where the scale of the masked area is more rigorously known (which for the use cases I have in mind would almost always be the case anyway). It&#8217;s the best of both worlds &#8211; a vector/co-ordinate based mask capability alongside a less involved bitmap alternative.</p>
<p>As for page weight, that is and isn&#8217;t a concern depending on all sorts of things. At the moment Webkit expects a transparent PNG, which is 32bit, and therefore bloats the file-size fast. I filed a bug-report some months ago arguing for a change to use the luminosity value of any image as the alpha value of the mask &#8211; this way instead of a 200kb 32bit PNG you could use a 60kb JPG. Or a GIF.</p>
<p>I&#8217;m encouraged by the fact that Webkit already has an implementation of Masks working. I&#8217;d like to see a few changes, as we have discussed, but I see the thought process going on over there that would mean Masks have a credible chance of offering a solution to non-regular shapes in CSS that are flexible and un-complicated for an author to implement. I appreciate that it may be a lot harder for browser engineers, but frankly that isn&#8217;t my concern.</p>
<p>Also on my wish list (no matter how implausable) is that ability for CSS to interrogate connection speed and browser states. So I can set a default &#8220;low quality&#8221; version but serve a &#8220;high quality&#8221; version if the connetion speed is above a designated rate. Or detect cases where images are off but CSS is on.</p>
<p>@connection all and (min-speed: 512kbps) { body { background-image: url(high-quality.png); } }</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniele Grillenzoni</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/#comment-444884</link>
		<dc:creator>Daniele Grillenzoni</dc:creator>
		<pubDate>Tue, 24 Feb 2009 17:14:03 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1055#comment-444884</guid>
		<description>Sorry about that, but being italian I face a market where looks is king (&quot;king-er&quot; than content) from the customer perspective, and it&#039;s going to be tough to say &quot;here&#039;s an upgrade to your site, with calendar inputs!&quot; &quot;but we already had those and they looked better&quot;.

Explaining them that those are less mantainable is going to be a pain in the arse. Having pseudoclasses to style webforms inputs would be a very nice addition, say input[type=url]:icon{ url(/i/webicon.png) } for url items, and more complex ones for the calendar widget.

Altering colors, sizes, (single) borders/backgrounds would be enough for pretty much anyone.</description>
		<content:encoded><![CDATA[<p>Sorry about that, but being italian I face a market where looks is king (&#8220;king-er&#8221; than content) from the customer perspective, and it&#8217;s going to be tough to say &#8220;here&#8217;s an upgrade to your site, with calendar inputs!&#8221; &#8220;but we already had those and they looked better&#8221;.</p>
<p>Explaining them that those are less mantainable is going to be a pain in the arse. Having pseudoclasses to style webforms inputs would be a very nice addition, say input[type=url]:icon{ url(/i/webicon.png) } for url items, and more complex ones for the calendar widget.</p>
<p>Altering colors, sizes, (single) borders/backgrounds would be enough for pretty much anyone.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Meyer</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/#comment-444869</link>
		<dc:creator>Eric Meyer</dc:creator>
		<pubDate>Tue, 24 Feb 2009 13:57:35 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1055#comment-444869</guid>
		<description>&lt;a href=&quot;http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/?#comment-443975&quot; rel=&quot;nofollow&quot;&gt;Matt&lt;/a&gt;, the nine-slice approach is fine for what it does but not nearly enough to manage what a lot of people want.  For example, say I want to put three paragraphs of text in a diamond shape.  So I wrap them in a &lt;code&gt;div&lt;/code&gt; and apply a mask to that &lt;code&gt;div&lt;/code&gt;.  All I have is a 20x20 PNG mask image.  The nine-slice approach means I get cropped corners, but no diamond flow.  A scaling approach means... what?  Assume the rendered size of the &lt;code&gt;div&lt;/code&gt; is 500x500, if that helps.

Saying &quot;don&#039;t do that&quot; doesn&#039;t fly, of course: someone will and the browser has to know what to do.  So that has to be specced out.

I&#039;m not opposed to your suggestion, mind you.  I think masks are a nicely intuitive and powerful way of handling shapes, even if they do increase page weight in a way that a coordinate-based shape generally wouldn&#039;t (though in some cases, like very curvy shapes, that might not be true).  But we can&#039;t simply say &quot;masks are the way!&quot; and expect it to Just Work.  Someone has to work through all the ramifications and then---and this is always the tricky part---get the WG to consider it seriously and the implementors to get behind the idea of implementing it.  Or do it the other way around, by getting implementors behind the basic idea and then speccing it out in a universally acceptable manner so that the WG can just publish and approve the result.</description>
		<content:encoded><![CDATA[<p><a href="http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/?#comment-443975" rel="nofollow">Matt</a>, the nine-slice approach is fine for what it does but not nearly enough to manage what a lot of people want.  For example, say I want to put three paragraphs of text in a diamond shape.  So I wrap them in a <code>div</code> and apply a mask to that <code>div</code>.  All I have is a 20&#215;20 PNG mask image.  The nine-slice approach means I get cropped corners, but no diamond flow.  A scaling approach means&#8230; what?  Assume the rendered size of the <code>div</code> is 500&#215;500, if that helps.</p>
<p>Saying &#8220;don&#8217;t do that&#8221; doesn&#8217;t fly, of course: someone will and the browser has to know what to do.  So that has to be specced out.</p>
<p>I&#8217;m not opposed to your suggestion, mind you.  I think masks are a nicely intuitive and powerful way of handling shapes, even if they do increase page weight in a way that a coordinate-based shape generally wouldn&#8217;t (though in some cases, like very curvy shapes, that might not be true).  But we can&#8217;t simply say &#8220;masks are the way!&#8221; and expect it to Just Work.  Someone has to work through all the ramifications and then&#8212;and this is always the tricky part&#8212;get the WG to consider it seriously and the implementors to get behind the idea of implementing it.  Or do it the other way around, by getting implementors behind the basic idea and then speccing it out in a universally acceptable manner so that the WG can just publish and approve the result.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Meyer</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/#comment-444867</link>
		<dc:creator>Eric Meyer</dc:creator>
		<pubDate>Tue, 24 Feb 2009 13:50:31 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1055#comment-444867</guid>
		<description>I don&#039;t know that I agree with your assertion, &lt;a href=&quot;http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/#comment-444030&quot; rel=&quot;nofollow&quot;&gt;Daniele&lt;/a&gt;, that &quot;calendar inputs (date, month, datetime...) will NOT be used by the large mass of designers unless they are able to style them and get them to look fancy enough&quot;.  All the existing form inputs are used by, well, just about everybody, even though it&#039;s quite possible to construct JS-based equivalents that can be fully styled.  I think a good number of people will just drop in calendar inputs once they&#039;re widely supported, so that they can reduce page weight and stop having to worry about all the JS and stuff that goes into calendar inputs now.

Of course, a lot of people will stick with what they&#039;re already using.  In that sense, I suppose, calendar inputs will face the same problem JS alternatives to existing form elements do:  overcoming the inertia of what&#039;s already in place.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t know that I agree with your assertion, <a href="http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/#comment-444030" rel="nofollow">Daniele</a>, that &#8220;calendar inputs (date, month, datetime&#8230;) will NOT be used by the large mass of designers unless they are able to style them and get them to look fancy enough&#8221;.  All the existing form inputs are used by, well, just about everybody, even though it&#8217;s quite possible to construct JS-based equivalents that can be fully styled.  I think a good number of people will just drop in calendar inputs once they&#8217;re widely supported, so that they can reduce page weight and stop having to worry about all the JS and stuff that goes into calendar inputs now.</p>
<p>Of course, a lot of people will stick with what they&#8217;re already using.  In that sense, I suppose, calendar inputs will face the same problem JS alternatives to existing form elements do:  overcoming the inertia of what&#8217;s already in place.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bohdan Ganicky</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/#comment-444087</link>
		<dc:creator>Bohdan Ganicky</dc:creator>
		<pubDate>Fri, 20 Feb 2009 16:49:18 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1055#comment-444087</guid>
		<description>I&#039;m not completely against CSS animations but I&#039;m definitely afraid of it. I hope that &quot;turn off CSS animations&quot; browser option will come hand in hand with CSS animation implementations.</description>
		<content:encoded><![CDATA[<p>I&#8217;m not completely against CSS animations but I&#8217;m definitely afraid of it. I hope that &#8220;turn off CSS animations&#8221; browser option will come hand in hand with CSS animation implementations.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stelt</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/#comment-444059</link>
		<dc:creator>stelt</dc:creator>
		<pubDate>Fri, 20 Feb 2009 12:11:11 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1055#comment-444059</guid>
		<description>&gt; ... coolness of slowly rotating an entire page. Which I totally need to do the next time I give a presentation. 

Give a presentation on a boat in stormy weather and have what&#039;s on your screen stay leveled with the horizon :-)</description>
		<content:encoded><![CDATA[<p>&gt; &#8230; coolness of slowly rotating an entire page. Which I totally need to do the next time I give a presentation. </p>
<p>Give a presentation on a boat in stormy weather and have what&#8217;s on your screen stay leveled with the horizon :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniele Grillenzoni</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/#comment-444030</link>
		<dc:creator>Daniele Grillenzoni</dc:creator>
		<pubDate>Fri, 20 Feb 2009 08:37:52 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1055#comment-444030</guid>
		<description>Funny how the form inputs got almost no mention, specially considering how html5 will bring a LOT of different inputs into the game.

The calendar inputs (date, month, datetime...) will NOT be used by the large mass of designers unless they are able to style them and get them to look fancy enough.</description>
		<content:encoded><![CDATA[<p>Funny how the form inputs got almost no mention, specially considering how html5 will bring a LOT of different inputs into the game.</p>
<p>The calendar inputs (date, month, datetime&#8230;) will NOT be used by the large mass of designers unless they are able to style them and get them to look fancy enough.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Web roundup &#171; MySQLTalk.com</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/#comment-443982</link>
		<dc:creator>Web roundup &#171; MySQLTalk.com</dc:creator>
		<pubDate>Thu, 19 Feb 2009 23:04:31 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1055#comment-443982</guid>
		<description>[...] Meyer provides feedback on some long awaited CSS3 features. It will be very cool to use shapes in [...]</description>
		<content:encoded><![CDATA[<p>[...] Meyer provides feedback on some long awaited CSS3 features. It will be very cool to use shapes in [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt Wilcox</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/#comment-443975</link>
		<dc:creator>Matt Wilcox</dc:creator>
		<pubDate>Thu, 19 Feb 2009 22:27:56 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1055#comment-443975</guid>
		<description>As I understand it the mask can be made to grows/shrink to fit the content area using a nine-slice approach:

&quot;One key difference between mask-box-image and its border-image counterpart is that it doesn&quot;t attempt to fit itself to border widths. It will just render the corners unscaled and tile/stretch itself into the border box without regard for the border itself. This lets you easily use nine-piece-image effects as masks on elements without borders (often image or video elements).&quot;

I assume that the other methods do not scale, though it&#039;d be nice to have an option to control that. I also love the fact the CSS Mask takes SVG (which I presume &lt;em&gt;does&lt;/em&gt; scale, but I&#039;ve not tested.

Definitely there needs to be some clarification, for example I&#039;d like to see a property to switch between treating the clipped area&#039;s bounding-box as the float boundry, and the actual edge of the mask as the float boundry; so the author has the choice of allowing text to wrap to either the bounding box or the mask edges itself.

Either way I look at it, I find the concept of using an image to define a non-regular shape as easier to understand, easier to maintain, and more flexible than any kind of co-ordinate based system.</description>
		<content:encoded><![CDATA[<p>As I understand it the mask can be made to grows/shrink to fit the content area using a nine-slice approach:</p>
<p>&#8220;One key difference between mask-box-image and its border-image counterpart is that it doesn&#8221;t attempt to fit itself to border widths. It will just render the corners unscaled and tile/stretch itself into the border box without regard for the border itself. This lets you easily use nine-piece-image effects as masks on elements without borders (often image or video elements).&#8221;</p>
<p>I assume that the other methods do not scale, though it&#8217;d be nice to have an option to control that. I also love the fact the CSS Mask takes SVG (which I presume <em>does</em> scale, but I&#8217;ve not tested.</p>
<p>Definitely there needs to be some clarification, for example I&#8217;d like to see a property to switch between treating the clipped area&#8217;s bounding-box as the float boundry, and the actual edge of the mask as the float boundry; so the author has the choice of allowing text to wrap to either the bounding box or the mask edges itself.</p>
<p>Either way I look at it, I find the concept of using an image to define a non-regular shape as easier to understand, easier to maintain, and more flexible than any kind of co-ordinate based system.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Meyer</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/#comment-443971</link>
		<dc:creator>Eric Meyer</dc:creator>
		<pubDate>Thu, 19 Feb 2009 21:31:56 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1055#comment-443971</guid>
		<description>&lt;a href=&quot;http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/#comment-443964&quot; rel=&quot;nofollow&quot;&gt;Matt&lt;/a&gt;, CSS masks might be fine, assuming some clarification.  You&#039;ll need specify what happens if, for example, a 5x5 pixel mask image is applied to a &lt;code&gt;div&lt;/code&gt; containing several paragraphs of text in order to define the actual area of the &lt;code&gt;div&lt;/code&gt; where that paragraphed content is allowed to flow.  Similarly, we&#039;d need to know what happens when such a mask is applied to a floated 300x300 image with text flowing next to it.  Also what happens when a mask image is bigger (whether by a little or a lot) than the element to which it&#039;s applied, in both the replaced and non-replaced cases.</description>
		<content:encoded><![CDATA[<p><a href="http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/#comment-443964" rel="nofollow">Matt</a>, CSS masks might be fine, assuming some clarification.  You&#8217;ll need specify what happens if, for example, a 5&#215;5 pixel mask image is applied to a <code>div</code> containing several paragraphs of text in order to define the actual area of the <code>div</code> where that paragraphed content is allowed to flow.  Similarly, we&#8217;d need to know what happens when such a mask is applied to a floated 300&#215;300 image with text flowing next to it.  Also what happens when a mask image is bigger (whether by a little or a lot) than the element to which it&#8217;s applied, in both the replaced and non-replaced cases.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt Wilcox</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/#comment-443964</link>
		<dc:creator>Matt Wilcox</dc:creator>
		<pubDate>Thu, 19 Feb 2009 20:51:25 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1055#comment-443964</guid>
		<description>Fair point, I&#039;ll keep my reply brief so as to not get too far off topic (my apologies Eric). As I understand it, and I am by no means knowledgeable about the intricacies of browser functionality or mechanics, the JavaScript layer can inspect the properties of any element at any point in time. That&#039;s the behaviour of web sites today, the caveat being that all state changes (bar :hover and it&#039;s siblings) have been implemented in JavaScript. I would therefore expect that JavaScript would be able to see all the information about an object no matter what point in the animation it is in, even in a CSS powered animation. Whether that&#039;s the case right now isn&#039;t the point I was attempting to make, though it is certainly one that needs clarifying and I&#039;m glad you pointed it out as I was taking it for granted. From an ideological perspective, animation fits into CSS. Whether the practical implications of that fit or not is a different matter.

Getting back on topic, I do not understand the desire to define non-rectangular shapes programatically. As mentioned by Eric and yourself, it gets very complicated very quickly, and hard to manage for the author. Perhaps I am not understanding quite what the use case is for this sort of ability - but wouldn&#039;t CSS Masks achieve these sort of things far more easily? Apply an image mask to a content area and you have your irregular shape.

http://webkit.org/blog/181/css-masks/</description>
		<content:encoded><![CDATA[<p>Fair point, I&#8217;ll keep my reply brief so as to not get too far off topic (my apologies Eric). As I understand it, and I am by no means knowledgeable about the intricacies of browser functionality or mechanics, the JavaScript layer can inspect the properties of any element at any point in time. That&#8217;s the behaviour of web sites today, the caveat being that all state changes (bar :hover and it&#8217;s siblings) have been implemented in JavaScript. I would therefore expect that JavaScript would be able to see all the information about an object no matter what point in the animation it is in, even in a CSS powered animation. Whether that&#8217;s the case right now isn&#8217;t the point I was attempting to make, though it is certainly one that needs clarifying and I&#8217;m glad you pointed it out as I was taking it for granted. From an ideological perspective, animation fits into CSS. Whether the practical implications of that fit or not is a different matter.</p>
<p>Getting back on topic, I do not understand the desire to define non-rectangular shapes programatically. As mentioned by Eric and yourself, it gets very complicated very quickly, and hard to manage for the author. Perhaps I am not understanding quite what the use case is for this sort of ability &#8211; but wouldn&#8217;t CSS Masks achieve these sort of things far more easily? Apply an image mask to a content area and you have your irregular shape.</p>
<p><a href="http://webkit.org/blog/181/css-masks/" rel="nofollow">http://webkit.org/blog/181/css-masks/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adam Rice</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/#comment-443963</link>
		<dc:creator>Adam Rice</dc:creator>
		<pubDate>Thu, 19 Feb 2009 20:50:00 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1055#comment-443963</guid>
		<description>The &quot;contour&quot; idea is the way to go for both floats and box envelopes IMO. This is the kind of work computers are good at---let them do it. Let us just draw the polygon and get on with it.

The question of how to deal with faded gradients isn&#039;t hard to answer: masks. In fact, masks might be the right way to handle all contours: a simple B&amp;W shape defining the borders.</description>
		<content:encoded><![CDATA[<p>The &#8220;contour&#8221; idea is the way to go for both floats and box envelopes IMO. This is the kind of work computers are good at&#8212;let them do it. Let us just draw the polygon and get on with it.</p>
<p>The question of how to deal with faded gradients isn&#8217;t hard to answer: masks. In fact, masks might be the right way to handle all contours: a simple B&amp;W shape defining the borders.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Snook</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/#comment-443947</link>
		<dc:creator>Jonathan Snook</dc:creator>
		<pubDate>Thu, 19 Feb 2009 18:07:43 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1055#comment-443947</guid>
		<description>Matt, while not trying to derail Eric&#039;s point too much (since he wanted to avoid it to begin with), JavaScript is not just about user interaction or HTML manipulation. It&#039;s about &quot;change&quot;. My concern with CSS animation has been that a change is being performed and it&#039;s not entirely clear how that affects JavaScript&#039;s ability to detect and work with that change. What is the computed style of an element half way through an animation? Does JavaScript know when the animation has started or when it&#039;s stopped? Is it easy to bind and unbind animations? (And I haven&#039;t had time to properly research the matter).

In any case, I agree with Eric Meyer on this post and (as I tweeted), I&#039;m now thinking through the spec for element-shape (I&#039;m already finding it harder than I expected).</description>
		<content:encoded><![CDATA[<p>Matt, while not trying to derail Eric&#8217;s point too much (since he wanted to avoid it to begin with), JavaScript is not just about user interaction or HTML manipulation. It&#8217;s about &#8220;change&#8221;. My concern with CSS animation has been that a change is being performed and it&#8217;s not entirely clear how that affects JavaScript&#8217;s ability to detect and work with that change. What is the computed style of an element half way through an animation? Does JavaScript know when the animation has started or when it&#8217;s stopped? Is it easy to bind and unbind animations? (And I haven&#8217;t had time to properly research the matter).</p>
<p>In any case, I agree with Eric Meyer on this post and (as I tweeted), I&#8217;m now thinking through the spec for element-shape (I&#8217;m already finding it harder than I expected).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt Wilcox</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/#comment-443944</link>
		<dc:creator>Matt Wilcox</dc:creator>
		<pubDate>Thu, 19 Feb 2009 17:36:58 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1055#comment-443944</guid>
		<description>Thing is, CSS animation is not stepping on the toes of JavaScript. As far as the purist standpoint goes, CSS is entirely devoted to the presentation of elements. JavaScript is about &lt;em&gt;user interaction&lt;/em&gt; behaviour and HTML manipulation. Animating is (most often) merely &lt;em&gt;triggered&lt;/em&gt; by a behaviour, but animation itself is entirely within the remit of &quot;controlling presentation&quot; and therefore belongs in CSS.

Irregular objects would be nice, certainly, but I&#039;ve got bigger concerns with CSS. Sorting out layout is desperately needed, most of the other stuff that CSS3 has on the agenda is nice to have, but far less pressing. Rounded corners, drop shadows, animation - nice. But not critical.</description>
		<content:encoded><![CDATA[<p>Thing is, CSS animation is not stepping on the toes of JavaScript. As far as the purist standpoint goes, CSS is entirely devoted to the presentation of elements. JavaScript is about <em>user interaction</em> behaviour and HTML manipulation. Animating is (most often) merely <em>triggered</em> by a behaviour, but animation itself is entirely within the remit of &#8220;controlling presentation&#8221; and therefore belongs in CSS.</p>
<p>Irregular objects would be nice, certainly, but I&#8217;ve got bigger concerns with CSS. Sorting out layout is desperately needed, most of the other stuff that CSS3 has on the agenda is nice to have, but far less pressing. Rounded corners, drop shadows, animation &#8211; nice. But not critical.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head profile="http://gmpg.org/xfn/1">
<title>meyerweb.com</title>
<link rel="openid.server" href="http://www.myopenid.com/server">
<link rel="openid.delegate" href="http://emeyer.myopenid.com/">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link rel="shortcut icon" href="/favicon.ico"><link rel="home" href="http://meyerweb.com/" title="Home" ><link rel="stylesheet" href="http://meyerweb.com/ui/meyerweb.css" type="text/css" media="screen, projection"><link rel="stylesheet" href="http://meyerweb.com/ui/theme.css" type="text/css" media="screen, projection" id="themeLink"><link rel="stylesheet" href="http://meyerweb.com/ui/print.css" type="text/css" media="print"><script src="http://meyerweb.com/ui/addresses.js" type="text/javascript"></script><link rel="stylesheet" href="/ui/wordpress.css" type="text/css" media="screen">
<link rel="stylesheet" href="/ui/tfe.css" type="text/css" media="screen">
<link rel="stylesheet" href="/ui/home.css" type="text/css" media="screen">
<link rel="alternate" type="application/rss+xml" title="Thoughts From Eric" href="/eric/thoughts/rss2/full" />
<link rel="alternate" type="application/rss+xml" title="Thoughts From Eric (only technical posts)" href="/eric/thoughts/category/tech/rss2/full" />
<link rel="alternate" type="application/rss+xml" title="Thoughts From Eric (only personal posts)" href="/eric/thoughts/category/personal/rss2/full" />
<link rel="alternate" type="application/rss+xml" title="Distractions" href="/eric/thoughts/recent-links/rss2" />
<link rel="alternate" type="application/rss+xml" title="Excuse of the Day" href="/feeds/excuse/rss20.xml" />
</head>
<body id="www-meyerweb-com" class="hpg">

<div id="sitemast"><h1><a href="/"><span>meyerweb</span>.com</a></h1></div><div id="search"><h4>Exploration</h4><!-- SiteSearch Google --><form method="get" action="http://www.google.com/custom" target="_top"><div><input type="hidden" name="domains" value="meyerweb.com"></input><label for="sbb" style="display: none">Submit search form</label><input type="submit" name="sa" value="Google Search" id="sbb"></input><label for="sbi" style="display: none">Enter your search terms</label><input type="text" name="q" size="31" maxlength="255" value="" id="sbi"></input><p><input type="radio" name="sitesearch" value="meyerweb.com" checked id="ss1"></input><label for="ss1" title="Search meyerweb.com">meyerweb.com</label><input type="radio" name="sitesearch" value="" id="ss0"></input><label for="ss0" title="Search the Web">Web</label></p><input type="hidden" name="client" value="pub-3772084027748653"></input><input type="hidden" name="forid" value="1"></input><input type="hidden" name="ie" value="ISO-8859-1"></input><input type="hidden" name="oe" value="ISO-8859-1"></input><input type="hidden" name="safe" value="active"></input><input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFFFFF;LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1"></input><input type="hidden" name="hl" value="en"></input></div></form><!-- SiteSearch Google --><!-- <form method="get" action="http://www.google.com/custom"><div><input type="submit" name="sa" value="Search"><input type="text" name="q" size="20" maxlength="255" value=""><input type="hidden" name="sitesearch" value="meyerweb.com"></div></form><small><a href="http://www.google.com/search">Powered by Google</a></small> --></div><div id="main"><div class="skipper">Skip to: <a href="#extra">site navigation/presentation</a></div><div class="skipper">Skip to: <a href="#thoughts">Thoughts From Eric</a></div>
<div id="thoughts">


<div class="entry">
<h3><a href="http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/" rel="bookmark" title="Permanent Link: CSS3 Feedback: Animated Shapes">CSS3 Feedback: Animated Shapes</a></h3>
<ul class="meta">
<li class="date">Thu 19 Feb 2009</li>
<li class="time">1200</li>
<li class="cat"><a href="http://meyerweb.com/eric/thoughts/category/tech/css/" title="View all posts in CSS" rel="category tag">CSS</a><br> <a href="http://meyerweb.com/eric/thoughts/category/commentary/" title="View all posts in Commentary" rel="category tag">Commentary</a><br> <a href="http://meyerweb.com/eric/thoughts/category/tech/standards/" title="View all posts in Standards" rel="category tag">Standards</a><br> <a href="http://meyerweb.com/eric/thoughts/category/tech/w3c/" title="View all posts in W3C" rel="category tag">W3C</a><br> <a href="http://meyerweb.com/eric/thoughts/category/tech/web/" title="View all posts in Web" rel="category tag">Web</a></li>
<li class="cmt"><a href="http://meyerweb.com/eric/thoughts/2009/02/19/css3-feedback-animated-shapes/#comments">14 responses</a></li>
<li></li><li></li></ul>

<div class="text">
<p class="aside">(This is part of the <a href="http://meyerweb.com/eric/thoughts/2009/02/11/feedback-on-wasp-community-css3-feedback-2008/">Feedback on &#8216;WaSP Community CSS3 Feedback 2008&#8242;</a> series.)</p>

<p>
The portion of the feedback <a href="http://fantasai.inkedblade.net/style/discuss/wasp-feedback-2008#shapes">devoted to shapes</a> had two overarching themes, as I saw it.  That makes this entry a bit short, but when I tried to combine it with my feedback on &#8220;<a href="http://fantasai.inkedblade.net/style/discuss/wasp-feedback-2008#graphical">Graphical Effects</a>&#8220;, it quickly got too long.  So, a little <i>amuse cerveau</i>, as it were.
</p>

<p>
<strong>Animations, transformations, and so on</strong> &#8212; the WebKit team have of course been having a field day in this area, and what they&#8217;ve done will likely make is way to other browsers.  Or not.  I don&#8217;t know.  I&#8217;m not entirely thrilled about the effort that&#8217;s gone into those properties when there are so many other, more basic things that need love and care, but there&#8217;s no denying the essential coolness of slowly rotating an entire page.  Which I totally need to do the next time I give a presentation.
</p>
<p>
I&#8217;m not going to get into the &#8220;these things are behavior and therefore JavaScript!&#8221; argument.  CSS already does behavior (think <code>:hover</code>) and it&#8217;s going to do more over time.  I don&#8217;t see how that historical pressure can be resisted for much longer, short of outright refusing to take on any more behaviors and thus making itself a prime candidate for replacement with something else.  We may as well do our best to make sure CSS does good behaviors well, in ways that makes the most sense to the most authors.
</p>
<p>
So that&#8217;s basically my feedback: since we&#8217;re going to do it, let&#8217;s do it right.  Apple&#8217;s made a start, and unless the syntax they&#8217;ve defined in <a href="http://dev.w3.org/csswg/css3-animations/">their CSS Animations draft</a> is completely unworkable in other browsers for technical reasons, then let&#8217;s just roll with it.  And please note I said the <em>syntax</em>, not the overall concept.  (Ditto for <a href="http://webkit.org/specs/CSSVisualEffects/CSSTransforms.html">their CSS Transforms draft</a>.)
</p>

<p>
<strong>Stuff that isn&#8217;t rectangular</strong> &#8212; including both polygonal element boxes and polygonal floats.  I&#8217;ve wanted these for at least a decade, so it&#8217;s little surprise that I&#8217;m in favor.  <a href="http://meyerweb.com/eric/css/edge/raggedfloat/demo.html">Ragged floats</a> were invented as a hack to make the latter happen, of course, and the basic idea&#8217;s been <a href="http://www.evolt.org/article/Super_Ragged_Floats/22/50410/index.html">improved upon</a> <a href="http://www.alistapart.com/articles/sandbags">more than once</a>.
</p>
<p>
The tricky part, of course, is actually defining polygons.  Regular polygons, as in hexagons and octagons and dodecagons, are not terribly difficult; but creating an irregular polygon requires defining a set of point coordinates in relation to some origin and resolving what happens when the lines cross over each other and&#8230; well, yeah.
</p>
<p>
The build-on-what-exists approach would just adopt the syntax HTML <a href="http://www.w3.org/TR/REC-html40/struct/objects.html#edef-AREA"><code>area</code> </a>elements use in the <code>coords</code> elements.  There would be two interesting questions there, which are what happens with negative coordinate values, and what happens if you draw a polygon that cuts through some of the element&#8217;s content.  For example, you have a <code>div</code> containing an image, and you define the polygon to be smaller (in places) than the image.  Is the browser obligated to prevent content overlap in such cases?  I would tend to say no but I can see arguments for the opposite view, particularly when it comes to floats.
</p>
<p>
Then there&#8217;s the problem that you&#8217;d have to define a separate polygon for every element that needed a non-rectangular float, as Bert Bos notes in <a href="http://www.w3.org/blog/CSS/2007/07/03/rotations_and_non_rectangular_floats">his thoughts on the topic</a> from a couple of years ago.  His <code>contour</code> idea is certainly interesting, though I&#8217;d then start to wonder how you define a contour point on, say, an irregular faded gradient.
</p>
<p>
Anyway, I thought about adapting <code>clip</code> to the purpose of defining float polygons, but then I remembered the long, tortuous hell that is the history of <code>clip</code> (and <code>offset-clip</code>) and decided that a new property is the way to go.  Clean break, start fresh, et cetera.  I don&#8217;t know what it would be called.  <code>content-shape</code>, maybe, to go with <code>element-shape</code>.  Or not.
</p>
</div>

</div>

</div>
<p style="font-size: 90%; text-align: right; margin-top: 0.5em; padding-top: 0;">(If you care, there's even an <a href="/eric/thoughts/page/2/">archive of previous thoughts</a>...)</p>

</div><div id="extra"><div class="panel" id="archipelago"><h4>Identity Archipelago</h4><ul><li><a href="http://flickr.com/photos/meyerweb/" rel="me">Flickr</a></li><li><a href="http://twitter.com/meyerweb/" rel="me">Twitter</a></li><li><a href="http://dopplr.com/traveller/meyerweb">Dopplr</a></li><li><a href="http://www.linkedin.com/in/meyerweb" rel="me">LinkedIn</a></li><li><a href="http://technorati.com/profile/emeyer" rel="me">Technorati</a></li></ul></div><div class="panel" id="pointers"><h4>Projects Elsewhere</h4><ul><li><a href="http://aneventapart.com/">An Event Apart</a></li><li><a href="http://complexspiral.com/">Complex Spiral Consulting</a></li><li><a href="http://www.webassist.com/go/css/emeyer/">CSS Sculptor</a></li><li><a href="http://css-discuss.org/">css-discuss</a></li><li><a href="http://microformats.org/">Microformats</a></li><li><a href="http://s5project.org/">S5</a></li></ul></div><div class="panel" id="tour"><ul><li><a href="http://fray.com/issue3/"><img src="http://fray.com/images/i3c.gif" alt="Fray Contributor (Issue 3: Sex &amp; Death)" /></a></li><!-- <li><a href="http://www.webassist.com/go/css/emeyer/"><img src="/pix/CS_ad_180x109.jpg" alt="CSS Sculptor for Dreamweaver" style="max-width: 100%;" /></a></li> --></ul></div><div class="panel">
<h4>Recently Tweeted</h4>
<p class="more"><a href="http://twitter.com/meyerweb">see more</a></p>
<p>Today, the existence of the "Quicken Backups" folder caused me to take back every mean thing I've ever said about Quicken.  Times FIVE. <small>&#8211;tweeted 1 hour, 53 minutes ago</small></p>
</div><div id="sideblog" class="panel">
<h4>Distractions</h4>
<p class="more">
<a href="/eric/thoughts/recent-links/">archive</a>
</p>
<ul>
<li><a href="http://www.youtube.com/watch?v=nFicqklGuB0&amp;feature=player_embedded" title="March 12 | Wry comment expressing my appreciation of the creative derivativeness of this video and its uncanny accuracy in mocking common tropes.">Academy Award Winning Movie Trailer</a></li>
<li><a href="http://www.youtube.com/watch?v=414TmP12WAU" title="March 9 | &#8220;Apple juice&#8230; for half price!&#8221;  More like twice PRICELESS.  (Note: If you&#8217;re at work, don your headphones.)">Happy in Paraguay</a> <small>[via <a href="http://unstoppablerobotninja.com/">Ethan</a>]</small></li>
<li><a href="http://www.youtube.com/watch?v=9V5ubAOeOBk&amp;feature=player_embedded" title="February 10 | This is approximately the best thing ever.">U900 -Walk Don&#8217;t Run (Isogabamaware)</a></li>
<li><a href="http://www.456bereastreet.com/archive/201002/sifr_default_css_hides_content_from_at_least_one_screen_reader/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A 456bereastreet %28456 Berea Street%29" title="February 8 | -9999px comes through again, but I really wish we were beyond that kind of thing.">sIFR default CSS hides content from at least one screen reader</a></li>
<li><a href="http://www.macosxhints.com/article.php?story=20100117064356428" title="February 8 | Storing this for future use.">Take a picture with the iSight camera when a folder is opened</a></li>
<li><a href="http://mingle2.com/blog/view/web-developer-mind" title="February 4 | Mostly valid.  (SEE WHAT I DID THERE?)">The Mind of a Web Developer: An Illustrated Diagram</a></li>
<li><a href="http://www.theonion.com/content/news/science_channel_refuses_to_dumb" title="January 28 | &#8220;Punkin Chunkin, for Christ&#8217;s sake&#8230; What more do you people want?&#8221;">Science Channel Refuses To Dumb Down Science Any Further</a></li>
<li><a href="http://www.mailchimp.com/blog/project-omnivore-declassified/" title="January 27 | Sounds like quite a feat.  But I wonder how we&#8217;d feel if Microsoft or Google announced the same kind of thing on their e-mail services.">MailChimp&#8217;s Project Omnivore: Declassified</a></li>
<li><a href="http://www.politifact.com/truth-o-meter/statements/2010/jan/25/carolyn-maloney/congresswoman-says-democratic-presidents-create-mo/" title="January 26 | &#8220;Obviously, luck matters a lot, but when there is a consistent pattern over more than 60 years, it starts to look like more than just luck.&#8221;">Congresswoman says Democratic presidents create more private-sector jobs</a></li>
<li><a href="http://www.ted.com/talks/taylor_mali_what_teachers_make.html" title="January 25 | Truth.">Taylor Mali: What teachers make</a></li>
<li><a href="http://notebook.johnmartz.com/how-websites-work?c=1" title="January 22 | At last, the truth is out and I can stop pretending:  beatific monkeys are what makes it all go.">How websites work</a></li>
<li><a href="http://morsecode.scphillips.com/jtranslator.html" title="January 22 | &#8211; &#8230;. .. &#8230; / .. &#8230; / .- .&#8211; . &#8230; &#8212; &#8212; . / -. &#8212; / &#8230; . .-. .. &#8212; ..- &#8230; .-.. -.&#8211;">Morse Code Translator</a></li>
<li><a href="http://bengoldacre.posterous.com/did-aliens-play-a-role-in-woolworths" title="January 19 | I think the answer is clear to any who have the courage to see it.">Did aliens play a role in Woolworths?</a></li>
</ul>
</div>
<div class="panel" id="advisory">
<div class="guarded">
<a href="http://blogadvisorysystem.com/"><img src="/pix/bas/guarded.png" alt="Blog Advisory System Alert Level: Guarded"></a>
</div>
</div>

<div class="panel" id="excuse">
<h4>The <a href="/feeds/excuse/">excuse of the day</a> is</h4>
<p>cats</p>
</div>

<div class="panel" id="extras">
<h4>Extras</h4>
<ul>
<li><a href="/feeds/">Feeds</a> &#8226;</li>
<li><a href="/eric/faq.html">FAQ</a> &#8226;</li>
<li><a href="/family.html">Family</a></li>
</ul>
</div>

</div>

<div id="navigate">
<h4>Navigation</h4>
<ul id="navlinks">
<li id="archLink"><a href="/eric/thoughts/">Archives</a></li>
<li id="cssLink"><a href="/eric/css/">CSS</a></li>
<li id="toolsLink"><a href="/eric/tools/">Toolbox</a></li>
<li id="writeLink"><a href="/eric/writing.html">Writing</a></li>
<li id="speakLink"><a href="/eric/talks/">Speaking</a></li>
<li id="otherLink"><a href="/other/">Leftovers</a></li>
<li id="aboutsite"><a href="/ui/about.html">About this site</a></li>
</ul>
</div>

<div id="footer">
<p class="sosumi">All contents of this site, unless otherwise noted, are &copy;1995-2008 <strong>Eric A. and Kathryn S. Meyer</strong>.  All Rights Reserved.</p>
<p>"<a href="/eric/thoughts/">Thoughts From Eric</a>" is powered by the &uuml;bercool <a href="http://wordpress.org/">WordPress</a></p>
</div>
</body>
</html>
