Re: [csswg-drafts] Should font-variation-settings be a property, a descriptor, or both?

The CSS Working Group just discussed `TAG Review of variable fonts`, and agreed to the following resolutions:

* `RESOLVED: font variations will be both properties and descriptors`

<details><summary>The full IRC log of that discussion</summary>
&lt;fremy> Topic: TAG Review of variable fonts<br>
&lt;TabAtkins> GitHub: https://github.com/w3ctag/design-reviews/issues/183<br>
&lt;fremy> github: https://github.com/w3ctag/design-reviews/issues/183<br>
&lt;fremy> dbaron: ??? asked for tag review<br>
&lt;eae> s/???/drott/<br>
&lt;fremy> dbaron: the main feedback was how this should be font properties or descriptors<br>
&lt;fremy> dbaron: the reasoning should be that some things should be whether you would want the things to apply to fallback fonts or not<br>
&lt;fremy> dbaron: over time, system fonts are likely to get more variations<br>
&lt;TabAtkins> Looks like the axixes would be best done as an open-ended set of properties, similar to custom properties...<br>
&lt;fremy> myles_: there are two spaces<br>
&lt;TabAtkins> We can't guarantee that the axis names live in the CSS ident space, so we can't do `font-axis-*` tho.<br>
&lt;fremy> myles_: one is for things that are defined for all fonts<br>
&lt;fremy> myles_: and things that are custom for your own font, which are used in all caps<br>
&lt;fremy> TabAtkins: what is the ascii range for these names?<br>
&lt;fremy> myles_: less than ascii for sure<br>
&lt;fremy> myles_: no control char or anything, and casing does matter<br>
&lt;fremy> dbaron: flip side is animation<br>
&lt;fremy> dbaron: if you want to animate them, they should be properties<br>
&lt;fremy> eae: there have been clear request to support that<br>
&lt;fremy> dbaron: I think it would make sense then to have both to support both use cases<br>
&lt;fremy> myles_: this is what font-feature-settings is, minus some stories I rather not start talking about<br>
&lt;dbaron> github: https://github.com/w3c/csswg-drafts/issues/1652<br>
&lt;fremy> TabAtkins: how about having a list of values in the axis?<br>
&lt;fremy> TabAtkins: we still need to be able to control them independantly<br>
&lt;fremy> TabAtkins: we can instead allocate a property namespace so that you get a property for each axis<br>
&lt;fremy> fantasai: the issue is that each axis might change of ascii range in newer formats<br>
&lt;fremy> TabAtkins: you can escape any char in identifiers in css<br>
&lt;fremy> myles_: in our impl we would not want that anyway<br>
&lt;fantasai> s/the issue is that each axis might change of/what if axis idents are outside/<br>
&lt;fremy> s/that/weird axis names/<br>
&lt;fremy> alan: use case where you have weight animated<br>
&lt;fremy> myles_: you can animate pair by pair<br>
&lt;fremy> TabAtkins: but you still need to change all of them in same declaration<br>
&lt;fremy> myles_: additive css would solve that<br>
&lt;fremy> TabAtkins: yes<br>
&lt;fremy> myles_: so, based on consensus we need a resolution to add descriptor and keep property<br>
&lt;fremy> fantasai: we have a similar problem with various stylistic fonts tags you want to turn on and off<br>
&lt;fremy> fantasai: what we did, we decided to tie them to an identifer that is font-specific<br>
&lt;fremy> fantasai: we could take the same approach here<br>
&lt;fremy> fantasai: this would allow to customize a font-specific thing in particular without affecting other fonts<br>
&lt;fremy> myles_: that would work for named axises but some are just number-indexed<br>
&lt;fremy> TabAtkins: also the ranges could not mean the same thing for each font even if name is identical<br>
&lt;TabAtkins> s/name is identical/the two axises do approximately the same thing/<br>
&lt;myles_> That works for stylistic alternates because the meaning of "alternate #1" is arbitrary but it doesn't make sense for axis names because the meaning of a value is supposed to be consistent across fonts<br>
&lt;fremy> alan: even the lower-case standardized names, do they have identical ranges?<br>
&lt;fremy> myles_: no<br>
&lt;fremy> myles_: names are consistent between formats, but ranges are not<br>
&lt;fremy> myles_: they are internally consistent per format though<br>
&lt;fremy> alan: could we map one to the other?<br>
&lt;fremy> myles_: yes, we could map to a canonical form<br>
&lt;TabAtkins> s/myles_: that would work for named axises but some are just number-indexed/That works for stylistic alternates because the meaning of "alternate #1" is arbitrary but it doesn't make sense for axis names because the meaning of a value is supposed to be consistent across fonts/<br>
&lt;fremy> alan: so could we define a css range?<br>
&lt;fremy> myles_: I don't want to get into that<br>
&lt;fremy> alan: anyway, I didn't hear any opposition to have things be both font descriptors and properties as per tag review<br>
&lt;fremy> alan: can we get this resolved?<br>
&lt;Bert> q+ to ask (about previous topic) what 'font-synth: no-weight style' means for small-caps: Is small-caps synthesis on (beacuse it is not explicitly turned off) or off (because it is not explicitly turned on)?<br>
&lt;fremy> RESOLVED: font variations will be both properties and descriptors<br>
&lt;fremy> alan: any other issue we should discuss from this review?<br>
&lt;fremy> dbaron: not really, the rest is mostly editorial<br>
&lt;astearns> ack Bert<br>
&lt;Zakim> Bert, you wanted to ask (about previous topic) what 'font-synth: no-weight style' means for small-caps: Is small-caps synthesis on (beacuse it is not explicitly turned off) or off<br>
&lt;Zakim> ... (because it is not explicitly turned on)?<br>
&lt;fremy> Bert: so font-synthesis: no-abc --> turns off abc but on def, right?<br>
&lt;fremy> myles_: well, it resets def to its default<br>
&lt;fremy> myles_: right now all the other values are on by default, but in the future we could add new things that would be off by default<br>
&lt;fremy> Bert: then why should we not change the fonts spec<br>
&lt;fremy> myles_: no, it would just do as today, the spec will still be internally consistent<br>
&lt;fremy> fantasai: well, new features will be off by default all the time right? otherwise it will be breaking change<br>
&lt;fremy> Florian: not really, because new features could be things that did not exist at all before<br>
&lt;fremy> Florian: so there would be no possible backwards compat problem<br>
&lt;fremy> fantasai: and small-caps?<br>
&lt;fremy> myles_: it is not in level 3, so no revision to do<br>
&lt;fremy> fantasai: but with this we could backport to level 3<br>
&lt;fremy> fantasai: wouldn't you want that then?<br>
&lt;fremy> myles_: to prevent a browser that support "small-caps" but "not-smallcaps"?<br>
&lt;fremy> fantasai: yes<br>
&lt;fantasai> fantasai: We could have small-caps be on in the initial value and also be on if omitted<br>
&lt;fremy> dbaron: well, i think there is still a change from level 3<br>
&lt;fantasai> fantasai: The ability to do this is effectively why we are considering having this foo/no-foo syntax.<br>
&lt;fremy> TabAtkins: this is not the same default we are talking about<br>
&lt;fremy> TabAtkins: now we talk about "default if you omit it in the declaration" not the "default if you omit the declaration"<br>
&lt;fremy> dbaron: is this widely implemented?<br>
&lt;fremy> myles_: no<br>
&lt;fremy> dbaron and tabatkins arguing about default vs initial<br>
&lt;fremy> dbaron: i would want the default to be the same as the initial<br>
&lt;fremy> fantasai: +1<br>
&lt;fantasai> s/default/default if omitted/<br>
&lt;TabAtkins> [dbaron kept using "default" to mean "initial value", when I and Myles were purposely using "default" to mean a totally separate concept]<br>
&lt;fremy> fantasai: if we don't do what david wants, yes, there is not breaking change<br>
</details>


-- 
GitHub Notification of comment by css-meeting-bot
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/1652#issuecomment-319952560 using your GitHub account

Received on Thursday, 3 August 2017 12:18:06 UTC