- From: fantasai <fantasai.lists@inkedblade.net>
- Date: Wed, 19 Feb 2014 16:19:55 -0800
- To: "www-style@w3.org" <www-style@w3.org>, www-svg <www-svg@w3.org>, "public-fx@w3.org" <public-fx@w3.org>
Masking ------- Discussed mapping of CSS boxes (border/padding/margin/content) to SVG concepts. RESOLVED: Use the keywords fill/stroke/viewbox for clip-path/mask-origin/mask-clip. RESOLVED: Use roc's definition of obb/usou in HTML content - same geometry, coord space is 1 user-space unit wide/tall in obb, user-space unit = CSS px in usou. RESOLVED: New WD for Masking. Gradients --------- Discussion of color functions used for gradient interpolation. RESOLVED: change CSS Images 4's specification of colorless color stops to use Rik's proposal (i.e. use power curves) SVG Text Filling ---------------- Discussed using multiple fills/strokes in SVG. RESOLVED: Import the background shorthand syntax for multi-fill and multi-stroke into SVG minus the attachment part of the syntax ====== Full minutes below ====== Masking ------- krit: During the LC period I got a comment and an objection. krit: clip-mask/etc take a <shape-box> argument. krit: Which determines what box the coords are resolved against. krit: Currently we're using the box keywords from B&B, plus margin-box. krit: SVG objected. krit: They make sense for CSS/HTML, but how do they apply to SVG? krit: In SVG we have "bounding box", which is a tight bound around the shape. krit: This doesn't include strokes/etc, just geometry. krit: So we also have "stroke bounding box" which includes stroke/markers. krit: Earlier in the week, we also discussed "viewport" in SVG. People asked about using the SVG viewport as the reference shape. krit: Scaling coordinates by the viewport is actually rather common in SVG. krit: So SVG thought it would be confusing to have "content-box" mean "bounding box". krit: Similarly for stroke-bounding-box, and viewport of the SVG. krit: I personally don't want to add three more keywords. krit: I think content-box and bounding-box are close enough to be useful to just use content-box. krit: Similarly, I think border-box and stroke bounding box are probably close enough. smfr: What about the bounds of filtered pixels? krit: People suggested painted bounding box, but that's very expensive. TabAtkins: Also infinite in some cases, such as blurs. smfr: Does CSS define the bounds of box-shadow? dbaron: No. Also, probably impossible. heycam: I think I'd like to have all of the CSS-related names map to a single SVG-related one, like maybe "bounding-box", and also have SVG-specific keywords. heycam: I'd like to match the names up with getBBox extensions. heycam: Right now we have getBBox() and getStrokeBBox(), but we should probably have it take a dictionary of things to include. krit: Does that imply we need another keyword for markers? krit: Does the CSSWG support doing extra SVG-only keywords? TabAtkins: I'm fine with it. florian: Me too. heycam: Does the CSSWG think it's a good idea to do the mapping between CSS and SVG? TabAtkins: I think content=>geometry and border=>stroke kinda make sense, but there's no padding analog in SVG, nor marker analog in CSS, so it's a bad idea overall. TabAtkins: I suggest for the svg boxes: svg([marker || stroke]?), similar to the bbox methods. krit: I think it's [marker | stroke] - one implies the other. heycam: Maybe not. krit: Viewport. TabAtkins: Don't want it at top-level, because it's a different meaning than CSS's viewport. krit: So svg([[marker || stroke] | viewport]) heycam: I think it's weird to name it svg(). krit: Fallback to the initial value (border-box) if you specify svg() on an non-SVG element. Fallback to svg() (object bounding box) for reverse. krit: So we also need this in mask-origin, mask-clip. krit: Example: clip-path: circle() svg(marker); krit: Circle starting in the center of the marker box, radius equal to closest side. heycam: Does the default-fixing (for putting svg() on an HTML element) happen at computed-value time? TabAtkins: I think so, yeah. smfr: Yeah, possible. dbaron: Yeah. Maybe annoying. krit: We may have the same problem in SVG later. krit: If we take in CSS Shapes, for example. ed: Would it be worth having the "fill" keyword there as well? TabAtkins: Hm, I think so. <ed> having svg(fill || stroke || markers) would also match up with the paint-order property syntax <ed> spec link for paint-order, for reference: https://svgwg.org/svg2-draft/painting.html#PaintOrder heycam: SVG text, the default getbbox() for text actually unions the glyph cells (rectangles). Same here? krit: Yeah. Bert: I think it's weird to see a function without parameters inside, like "svg()". TabAtkins: You can say "svg(fill)" if you want. heycam: Or just leave it alone - you'll get that behavior by default. smfr: should we use up a function called svg() for something that returns a box? Why not svg-box()? smfr: I think it's a weird namespacing hack to use svg() here. krit: My pref is to just use the keywords directly, and only allow one. Define them to be hierarchical - fill is inside stroke is inside marker is inside viewport. TabAtkins: Still don't like "viewport" as raw keyword. krit: viewbox? heycam: I think it's maybe useful which ones to include. Maybe we can defer. <ChrisL> we have (geometric) bbox and decorated-bbox which includes stroke width, markers etc heycam: I'd probably be okay with just keywords for now, and do union stuff later. heycam: Maybe use the words bounding-box, stroke-bounding-box, decorated-bounding-box, and...? krit: viewbox? heycam: Too wordy. fill/stroke heycam: Leave off marker for now, since I want it to actually mean the markers, not marker+stroke+fill. TabAtkins: But you're okay with stroke meaning fill+stroke? heycam: It does automatically - stroke bounding box is a superset of fill bounding box. krit: Anyway, resolve on these and figure out details in the SVGWG meeting? RESOLVED: Use the keywords fill/stroke/viewbox for clip-path/mask-origin/mask-clip. ed: The viewbox keyword, is that the viewport or the viewbox? krit: They're the same geometric area. TabAtkins: Only difference is the coord system established in each. And the shape functions so far don't use user-space units, so you can't detect that. heycam: And if we did allow, viewbox is what you'd want. krit: Last issue we discussed on Monday. krit: about usou and obb. TabAtkins: Just do what roc said. krit: [explains the issue again for SVGWG people] RESOLVED: Use roc's definition of obb/usou in HTML content - same geometry, coord space is 1 user-space unit wide/tall in obb, user-space unit = CSS px in usou. krit: I'd like to publish a new WD. RESOLVED: New WD for Masking. Gradient Midpoints ------------------ Scribe: birtles cabanier: I wanted to show why there is a need for an explicit midpoint for gradients. TabAtkins: this is already in CSS Images 4 TabAtkins: if you just omit the color cabanier: but some people were confused by that... it doesn't really work cabanier: I created this little application <cabanier> sample application: http://codepen.io/adobe/full/fhnBJ cabanier: by clicking on the gradient line you can add color stuff cabanier: and by dragging it to the left, you can see this effect as you approach the edge cabanier: a line starts to appear cabanier: your eyes play tricks on you cabanier: if you copy this and enlarge in photoshop you'll see this line is actually not there cabanier: it's just your eyes cabanier: but to get rid of that you can add a midpoint cabanier: and drag it along <cabanier> example of the formula: http://codepen.io/adobe/pen/ced9e76d276a1d6613b529e8524e4cad cabanier: you fill it in with this formula cabanier: by doing it this way you avoid the line cabanier: you create a curve that avoids the appearance of sharp changes TabAtkins: is there a theoretical justification for this formula? ChrisL: yes, it's based on a power distribution ChrisL: it gives you curves but it doesn't give you continuity at where the curves join ChrisL: it's an improvement but it doesn't accomplish everything ChrisL: people think you can fix this by adding more color stops but apart from enlarging your code smfr: if we're using CoreGraphics which doesn't have this can we support this by adding color stops in the UA? cabanier: yes florian: getting back to Chris' point, you will still have parts that aren't smooth florian: should we try to solve that in one go? cabanier: not really, maybe in the future TabAtkins: what would happen if you added multiple midpoints? ChrisL: one describes a curve, two or more--the behavior is not defined and is not used in practice TabAtkins: so more than one would be a syntax error ChrisL: yes leif: I saw a similar effect when dragging the stop and midpoint to the right cabanier: that's due to the response curve since your device is not linear cabanier: that requires a different solution heycam: we already have that in SVG, you can specify interpolation in linear or sRGB cabanier: yes ChrisL: we don't yet have a way to ask for a smooth curve through points in a color space with C1 continuity ChrisL: although we do have that for paths now with Catmull-Rom curves in SVG2 RESOLVED: change CSS Images 4's specification of colorless color stops to use Rik's proposal (i.e. use power curves) Filling Text ------------ krit: we decided we want to have fill/stroke properties on text in general, not just SVG shapes krit: however, lately we realised we don't just want SVG paint servers but also images krit: so you can use regular CSS images etc. krit: the difficulty comes from referencing images that have fixed size krit: if the area you are painting differs from the size of the image krit: what do you do ChrisL: that problem has already been solved for backgrounds krit: yes that is the proposal krit: but roc suggested we don't support attachment smfr: what is the property? TabAtkins: you can use 'fill' etc. on text smfr: what is the bounding box TabAtkins: I think we were going to use the box of the text? smfr: use the background bounding box heycam: with the box decoration break, it's not too much trouble to paint the text over and over again? krit: without attachment you can't simulate some behaviors of background-clip: -webkit-text smfr: the geometry of the image filling is exactly the same the geometry backgrounds will use krit: the question here is not so much about painting CSS text but first how to use fill/stroke in SVG krit: what do we do in SVG for multiple fill layers? krit: I would like to use the same syntax as for background but without introducing extra properties krit: we can do that later krit: for now just have the one property specifying the multiple layers heycam: what are the different parts of background? heycam: if we are going to do some, we should do all? heycam: often you want multiple backgrounds so you can layer them all at once without doing different sizes heycam: do we need that complexity in SVG? krit: it just falls out heycam: as long as you can re-use your existing background stuff, then it's ok TabAtkins: do you want to do the same thing for stroke? krit: yes smfr: so would you repeat the image like we do for backgrounds? krit: yes, with the same syntax TabAtkins: for SVG we'll ignore the <box> part of the production for <bg-layer>? krit: not necessarily krit: you might want to repeat the image TabAtkins: that's <bg-size> TabAtkins: the values for <box> don't make any sense for SVG TabAtkins: do we want to add the SVG ones there? TabAtkins: ('fill', 'stroke') etc.? smfr: does fill/stroke just control what gets painted? TabAtkins: yes smfr: it seems a bit odd, different to what we have in CSS smfr: we can't do layered borders krit: attachment doesn't make sense for SVG for now so it will just be ignored krit: we might want to leave it out of the syntax heycam: perhaps later we can talk about different stroke widths for each item in the list smfr: it's interesting that you can do something in SVG that you can't do in CSS, namely repeating an image around the border krit: I wanted to bring it up today because it's a CSS property and because we will use these properties for text in the future ChrisL: it is nice for HTML to be able to color text with something other than a solid fill TabAtkins: we can add attachment later and add it later if we decide it is sufficiently useful RESOLVED: Import the background shorthand syntax for multi-fill and multi-stroke into SVG minus the attachment part of the syntax
Received on Thursday, 20 February 2014 00:20:24 UTC