- From: Amelia Bellamy-Royds <amelia.bellamy.royds@gmail.com>
- Date: Thu, 15 Jan 2015 09:23:12 -0700
- To: "www-svg@w3.org" <www-svg@w3.org>
- Message-ID: <CAFDDJ7yiBpxmPz39Y3qsKO1HtSwaiW0rtUHH3e8fi=biU=eE_Q@mail.gmail.com>
Regarding the SVG WG agenda request: * 'context-fill', 'context-color' should apply to <pattern> and <hatch> (Tav) This is a great idea, making patterns and hatches much more flexible. I would recommend just generalizing it to apply to any XML element that is referenced through a style property of another element: <marker>, <pattern>, <hatch>, <gradient>, <filter>, and conceivably <solidColor> and <mask> (although I'm not sure of the use cases for those). However, in order to use the keywords for paint server elements, the context fill/stroke values would need to be defined in a way that prevents circular references to the paint server itself. Since fill and stroke allow fallback colors, the logical solution is that the keywords reference these colors instead of the paint server. Questions than become: - Is there a use case for keywords that reference the context paint server instead of the context paint color fallback? If so there would need to be multiple keywords: - contextStrokeColor, contextFillColor, and contextColor for color values that you could safely reference from within a paint server - contextStrokePaint, contextFillPaint for color OR paint server values that you could reference from with a marker (or within a non-circular reference paint server, e.g. referencing contextStrokePaint from within a paint server used for the element's fill) - If both keyword types are adopted, how should circular reference errors be handled? - Should the fill / stroke properties be converted into CSS shorthand properties, allowing you to set `stroke-color` and `fill-color` directly, separately from `stroke-paint` and `fill-paint` ? These would be useful in data viz, in that it allows you to set a pattern/hatch design using one CSS class, and then control the color with a separate set of classes. Following CSS rules, setting the shorthand property (`fill` or `stroke`) would reset both constituent properties (color and paint), so current behavior would be maintained. - If separate properties are used, would SVG-specific color types count as a `color` value or as a `paint` value? I'm not talking about references to a <solidColor> element (these would always count as a paint server), but about references to ICC profile colors and other color descriptors that aren't supported in CSS. While on the topic, some more general questions about the context keywords are: - What would be the result of using one of the context keywords in a situation where there is no "context"? Options are to use a the initial value for the property (black/none), to use the actual element's value for the same property (e.g., elements are their own context), or to use the inherited value for the property. Or use the element's value for the property, except when that would result in a circular reference (e.g. `stroke: contextStrokeColor`), in which case use the inherited value. - Should the context keywords have a special meaning for graphics in a `<use>` element (given that normal style inheritance already works in this case)? - Should there be a way to reference custom CSS variables from the context element? E.g., by defining a `context-var(--variable)` function that is otherwise equivalent to the `var(--variable)` function from the CSS variables spec? AmeliaBR
Received on Thursday, 15 January 2015 16:23:39 UTC