

RE: SVG 1.2 Comment: vector effects

From: Doug Schepers <doug@schepers.cc>
Date: Mon, 29 Nov 2004 03:56:34 -0500
To: "'Ian Hickson'" <ian@hixie.ch>, <www-svg@w3.org>
Cc: "'Craig Northway'" <craign@cisra.canon.com.au>
Message-Id: <20041129085634.DDB7014969A@pillage.dreamhost.com>

Hi, Ian-

Ian Hickson wrote: 
| With all due respect, I would feel more comfortable if the 
| SVG specification was designed with simplicity in mind, 
| rather than starting with everything and then only removing 
| features if enough people complain.

With all due respect, I would be much more satisfied if features and
solutions we have been promised for several years now were finally
delivered. Vector Effects will let us solve our own problems, rather than
wait on a crippled featureset designed by committee. Also, as someone who
uses SVG regularly, the syntax seems very intuitive to me, since it
leverages the similarity to filter effects.

| Please correct me if I'm wrong, but as far as I can tell this 
| circle is a
| square:
|    <circle vector-effect="url(#square)"/>
|    <defs>
|     <vectorEffect id="square">
|      <vePath>
|       <vePathRef xlink:href="#square-path"/>
|      </vePath>
|      <veStroke/>
|     </vectorEffect>
|     <path id="square-path" d="M0,0 L10,0 L10,10 L0,10 Z"/>
|    </defs>
| (I may have gotten the syntax a bit wrong but hopefully you 
| get the idea.)

To be perfectly honest, I'm not sure exactly the use case for that
particular VE element, and I think that's the crux of many problems. The SVG
1.2 Spec badly needs to be more complete, both normatively and
descriptively. There need to be use-cases and examples. I'm not sure that
that's what that VE does, so I can't critique your example.

That being said, your example is not particularly compelling. I can already
represent a circle as a square, and vice versa.


   <clipPath id='rectPath'>
      <rect id='clippingRect' x='35' y='35' width='30' height='30' />

<rect id='CircledSquare' x='25' y='25' width='50' height='50'
 rx='25' ry='25' fill='green'/>
<circle id='SquaredCircle' cx='50' cy='50' r='25'
 fill='lime' clip-path='url(#rectPath)'/>

What should be a lime circle on top of a green rectangle looks like a lime
rectangle on top of a green circle.

But why would I do that? In HTML+CSS, you can make an 'h1' look like the
default layout for a 'p', or vice versa, including font-weight, font-size,
display, etc. That doesn't mean it's a good idea for an author to do so, nor
does it mean that CSS shouldn't allow those properties to be manipulated,
since they have very useful, legitimate functions. 'clipPath' is very
useful, and so will be Vector Effects.

As I recall, you advocated earlier permitting sXBL to re-render SVG-NS
elements [1], which seems a far grosser affront to semantics and invitation
to abuse than the rather unlikely scenario you describe above.

[1] http://lists.w3.org/Archives/Public/www-svg/2004Oct/0144.html


doug . schepers  @ vectoreal.com
www.vectoreal.com ...for scalable solutions.

Received on Monday, 29 November 2004 08:56:39 UTC
