Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vector-effect grammar should allow multiple effects #725

Open
AmeliaBR opened this issue Aug 18, 2019 · 2 comments
Open

vector-effect grammar should allow multiple effects #725

AmeliaBR opened this issue Aug 18, 2019 · 2 comments

Comments

@AmeliaBR
Copy link
Contributor

The grammar for the vector-effect property currently only allows one keyword. (| combinator is an exclusive OR in the CSS values grammar).

Value: none | non-scaling-stroke | non-scaling-size | non-rotation | fixed-position

However, the prose says:

These values can be enumerated. Thereby, the effect which has these characteristics simultaneously can be specified.

Logically, it is reasonable to apply multiple effects at once. The grammar should be changed to use the || combinator, except for the none keyword:

Value: none | [ non-scaling-stroke || non-scaling-size || non-rotation || fixed-position ]

I do not expect there will be any no implementation impacts of making this change, since there are currently no implementations that implement more than one keyword value.

cc @satakagi

@satakagi
Copy link
Contributor

That's right. This is typo.
There are implementations of polyfills and their tests that allow multiple properties.

https://svgmap.org/devinfo/devstd/non-scaling-objects-2/VectorEffect_polyfill_wScreen.html

@css-meeting-bot
Copy link
Member

The SVG Working Group just discussed vector-effect grammar should allow multiple effects, and agreed to the following:

  • RESOLUTION: Change the grammar to allow multiple effects at once
The full IRC log of that discussion <krit> topic: vector-effect grammar should allow multiple effects
<krit> GitHub: https://github.com//issues/725
<krit> AmeliaBR: this came out of a review of tests.
<krit> AmeliaBR: mostly parsing tests. The tests matched the grammar in the spec but not the logical grammar.
<krit> AmeliaBR: ... you should be able to specify multiple of the effects
<krit> AmeliaBR: stakagi commented that this is how the polypill implemented it.
<krit> AmeliaBR: Though most browser implementations just support the keywords yet.
<krit> myles: there should be a set of properties that map to a certain behavior, not a list
<krit> AmeliaBR: they describe the effect but not the order of operation. We need to define the meaningful order.
<krit> myles: if all browsers are just implementing the one keyword are we waiting for implementations?
<krit> AmeliaBR: yes, at this point, the new content is at-risk
<krit> myles: polyfills count as implementation, do they?
<krit> AmeliaBR: yes
<krit> AmeliaBR: at this point it is about changing the grammar
<krit> myles: all the descriptions could be in conflict but maybe I am complicated here. We maybe should describe in more detail which transforms apply in which order. But am fine with changing the grammar, the issue at hand.
<krit> RESOLUTION: Change the grammar to allow multiple effects at once
<krit> s/Change the grammar/Change the grammar of vector-effect property/
<krit> krit: should the concerns from myles go into a different issue?
<krit> AmeliaBR: probably
<krit> AmeliaBR: we could leave the text as is for now and wait for implementer feedback. However, this could lead to different implementation behavior

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants