- From: Dirk Schulze <dschulze@adobe.com>
- Date: Sat, 8 Jun 2013 19:34:28 -0700
- To: fantasai <fantasai.lists@inkedblade.net>
- CC: www-style list <www-style@w3.org>, "public-fx@w3.org" <public-fx@w3.org>
Hi,
I had a chance to discuss this topic with fantasai during the CSS F2F. fantasai suggested that the 'mask-*' properties get a new shorthand property (maybe 'mask-layer'?). 'mask' itself would reset the 'mask-layer' and 'mask-box-image' properties and would itself have a reasonable setting.
Based on this idea, a syntax proposal could look like this:
'mask' = none | <url> [alpha | luminance]?
- 'none' is the initial value in current implementations
- If 'mask' is set all mask properties (including 'mask-box-image-*' and 'mask-*') are reset to the initial value.
- '<url>' can just be used to reference <mask> elements, as it is defined SVG 1.1 and implemented in all browsers.
- 'mask' will not be a shorthand
The old 'mask' shorthand will be renamed to 'mask-layer' and all 'mask-*' longhands to 'mask-layer-*' (or a better name if there is one).
- 'mask-layer-image's '<url>' will just support CSS Images, no references to <mask> elements possible.
No changes to 'mask-box-image*' necessary.
The new proposal would avoid the problem of different fetching algorithms depending on the resource type that is referenced.
Any comments or suggestions?
Greetings,
Dirk
On Jun 6, 2013, at 3:40 PM, Dirk Schulze <dschulze@adobe.com> wrote:
>
> On Jun 5, 2013, at 2:06 AM, fantasai <fantasai.lists@inkedblade.net> wrote:
>
>> On 05/29/2013 09:01 PM, Dirk Schulze wrote:
>>> Hi,
>>>
>>> During the WG meeting today, there was a question if 'mask: none;' can clear all masking operations on an element.
>>>
>>> As an introduction, the CSS Masking spec defines three main properties: mask, mask-box-image and clip-path where some are shorthands for a couple of longhand properties:
>>>
>>> mask
>>> * mask-image, mask-source-type, mask-repeat, mask-position, mask-clip, mask-size
>>>
>>> mask-box-image:
>>> * mask-box-image-source, mask-box-image-slice, mask-box-image-width, mask-box-image-outset, mask-box-image-repeat
>>>
>>> While the 'mask*' properties are similar to the 'background*' properties,
>>> the 'mask-box-image*' properties are similar to the 'border-image*' properties.
>>>
>>> Since 'mask' and 'mask-box-image' are two shorthands, it seems to be impossible
>>> to disable all masking operations with 'mask: none'.
>>
>> That's because of the way the shorthands have been defined.
>> That can be changed to be more like the way 'border'
>> interacts with 'border-image'.
>
> Ok, now I understand you. However, this still leads to the following questions:
>
> 1) Has "mask-image: none;" any affect on mask-box-image? Or is it just the mask shorthand that can reset mask-box-image?
> 2) What about "mask: none, url('image.png')" or even "mask: none, none;" (notice: there are two masking layer defined)? Does this setting for the both examples affect mask-box-image?
> 3) Can the mask shorthand be restricted to just reset 'mask-box-image' if it is explicitly set to "none"?
>
> Greetings,
> Dirk
>
>>
>>> The biggest problem is that the initial value for 'mask-image' is 'none' and
>>> therefore would always disable 'mask-box-image' as well.
>>
>> This is an invalid issue. Shorthands don't have initial values
>> and don't reset anything unless they're explicitly specified.
>> (That declaration then gets expanded into the relevant longhands.)
>>
>>> I added a note to the 'mask' property, that 'mask: none' will just disable
>>> masking by the 'mask*' properties, but not for 'mask-box-image*' properties.
>>> If there are no objections, I will remove the issue 1
>>
>> I object to removing the issue without thinking through potential solutions
>> and concluding that it's in fact not a good idea to have a master shorthand
>> for masking.
>>
>> ~fantasai
>
Received on Sunday, 9 June 2013 02:36:51 UTC