<div><div><div dir="auto">Hmm... So what's the purpose of STAT (and why is it required in VFs)? I never really knew. </div><div dir="auto"><br></div><div dir="auto">For some time I ignored STAT, only later I realized that it actually is almost exactly the same as the "axis instances" that I designed for FontLab VI before I heard of STAT. </div><div dir="auto"><br></div><div dir="auto">My thinking was that the particle names are there so that in a multiaxis font, a UI can opt in for a multi-dropdown UI with ~10 or less entries in each. — But this may be because I was biased, since that's the thinking I originally had for managing instances in FontLab :) </div><div dir="auto"><br></div><div dir="auto">If you use the STAT particle names purely to synth a full style name, then you end up with another huge list that duplicates the fvar list, no? </div><div dir="auto"><br></div><div dir="auto">The problem with the single-list approach is of course that it quickly becomes a UX nightmare in VF. 9 weights, 5 widths, 5 optical sizes & 2 italicizations in STAT, combine them and you have 450 entries. Then the "style list" needs its own search engine :D </div><div dir="auto"><br></div><div dir="auto">I thought STAT was there to help in that. Apps could adapt their style selection widgets so that in a font that has no STAT, the app shows a plain list, but with STAT, it switches to multi-list/multi-column.</div><div dir="auto"><br></div><div dir="auto">But — I've jumped ahead with my thinking. I'd love to hear the use cases actually envisioned by those who created STAT! </div><div dir="auto"><br></div><div dir="auto">(And I don't mean the back-formation of friendlier names from location regions, like Photoshop does it. I get that :) ).</div><div dir="auto"><br></div><div dir="auto">A.</div><div dir="auto"><br></div></div></div><div><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 21 Aug 2020 at 17:17, Peter Constable <<a href="mailto:pgcon6@msn.com" target="_blank">pgcon6@msn.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><br><br><br><br><br><br><br><br><br><br><br><br><div lang="EN-US" link="blue" vlink="purple"><br><br><div><br><br><p class="MsoNormal">Great question, Adam<u></u><u></u></p><br><br><p class="MsoNormal"><u></u> <u></u></p><br><br><p class="MsoNormal">I think there are alternate possibilities; here are two off the top of my head:<u></u><u></u></p><br><br><p class="MsoNormal"><u></u> <u></u></p><br><br><p class="MsoNormal">a) Based on the current font size, the picker UI highlights (in some way) those instances that match the size with the opsz axis. The user could still choose an instance that contravenes the opsz if they want, but they see which are “recommended”<br><br> (given some assumptions about the eventual display environment).<u></u><u></u></p><br><br><p class="MsoNormal"><u></u> <u></u></p><br><br><p class="MsoNormal">b) There is an auto-opsz option somewhere. If disabled, then something like (a) can be offered as UX. But if enabled, then in the font picker UI the instances are folded so that there are only wght options offered. The subfamily strings<br><br> displayed would either omit the opsz-distinguishing labels (e.g., “Light” but no “Display Light”), or perhaps the strings could show the opsz labels that are encompassed, e.g., “Light (Small/Text/Dislay)”.<u></u><u></u></p><br><br><p class="MsoNormal"><u></u> <u></u></p><br><br><p class="MsoNormal">I’m sure there are other possibilities.<u></u><u></u></p><br><br><p class="MsoNormal"><u></u> <u></u></p><br><br><p class="MsoNormal">Btw, one thing to point out: while independent controls for each axis might be workable for variable fonts, it can become really problematic for a family of static-instance fonts. (Back in 2008 or so, I started to design font controls for<br><br> Windows 7 using this approach, but then realized it has bad UX issues.) <u></u><u></u></p><br><br><p class="MsoNormal"><u></u> <u></u></p><br><br><p class="MsoNormal">Suppose within a family there are 3 wght values represented, and 3 opsz values represented: if the family is fully populated with all 9 combinations, then the UI works. But if the matrix of possibilities is sparsely filled, then the UX<br><br> becomes pretty bad: either the choices shown in one control change by the state of the other control, or else each control shows all options but a choice in one control can invisibly change the setting of the other control.<u></u><u></u></p><br><br><p class="MsoNormal"><u></u> <u></u></p><br><br><p class="MsoNormal">For that ready, I would strongly caution against a UI design such as what you described in (3) in your message.</p></div></div><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><u></u><u></u></p><br><br><p class="MsoNormal"><u></u> <u></u></p><br><br><p class="MsoNormal"><u></u> <u></u></p><br><br><p class="MsoNormal">Peter<u></u><u></u></p><br><br><p class="MsoNormal"><u></u> <u></u></p><br><br><div style="border-style:solid none none;border-top-width:1pt;padding:3pt 0in 0in;border-top-color:rgb(225,225,225)"><br><br><p class="MsoNormal"><b>From:</b> mpeg-otspec <<a href="mailto:mpeg-otspec-bounces@lists.aau.at" target="_blank">mpeg-otspec-bounces@lists.aau.at</a>> <b><br><br>On Behalf Of </b>Adam Twardoch<br><br><br><b>Sent:</b> Friday, August 21, 2020 7:58 AM<br><br><br><b>To:</b> MPEG OT Spec list (<a href="mailto:mpeg-otspec@lists.aau.at" target="_blank">mpeg-otspec@lists.aau.at</a>) <<a href="mailto:mpeg-otspec@lists.aau.at" target="_blank">mpeg-otspec@lists.aau.at</a>>; OpenType Font Variations list OTFontVar <<a href="mailto:otfontvar@unicode.org" target="_blank">otfontvar@unicode.org</a>><br><br><br><b>Subject:</b> [MPEG-OTSPEC] STAT instances, fvar instances and auto optical sizing<u></u><u></u></p><br><br></div><br><br><p class="MsoNormal"><u></u> <u></u></p><br><br><div><br><br><div><br><br><p class="MsoNormal">1. Let's say a font has the wght axis with the STAT instances "Light", "(Regular)" (elided) and "Bold". It again has the opsz axis with the STAT instances "Small", "(Text)" and "Display".<u></u><u></u></p><br><br><div><br><br><p class="MsoNormal"><u></u> <u></u></p><br><br></div><br><br><div><br><br><p class="MsoNormal">The fvar instances permute those, so: <u></u><u></u></p><br><br></div><br><br><div><br><br><p class="MsoNormal">- Shall Light<u></u><u></u></p><br><br></div><br><br><div><br><br><p class="MsoNormal">- Light<u></u><u></u></p><br><br></div><br><br><div><br><br><p class="MsoNormal">- <span style="color:black">Display </span>Light<u></u><u></u></p><br><br></div><br><br><div><br><br><p class="MsoNormal">- Small<u></u><u></u></p><br><br></div><br><br><div><br><br><p class="MsoNormal">- Regular (from elided fallback)<u></u><u></u></p><br><br></div><br><br><div><br><br><p class="MsoNormal">- Display<u></u><u></u></p><br><br></div><br><br><div><br><br><p class="MsoNormal">- Small Bold<u></u><u></u></p><br><br></div><br><br><div><br><br><p class="MsoNormal">- Bold<u></u><u></u></p><br><br></div><br><br><div><br><br><p class="MsoNormal">- Display Bold<u></u><u></u></p><br><br></div><br><br><div><br><br><p class="MsoNormal"><u></u> <u></u></p><br><br></div><br><br><div><br><br><p class="MsoNormal"><span style="border:1pt none windowtext;padding:0in;color:black">2. Let’s say a desktop app implements behavior like CSS "font-optical-sizing: auto", i.e. the app automatically chooses an "opsz" value based on the font size (let’s disregard<br><br> the question of specific units). </span><u></u><u></u></p><br><br></div><br><br><div><br><br><p class="MsoNormal"><u></u> <u></u></p><br><br></div><br><br><div><br><br><p class="MsoNormal"><span style="border:1pt none windowtext;padding:0in;color:black">3. Let's say the app implements a STAT-based style selection UI, with one drop-down per STAT axis. In this model, it seems that the opsz drop-down, should list Small, Text,<br><br> Display AND should have an extra entry "Auto" which makes it work like "font-optical-sizing: auto". Do you agree? I think that's reasonable enough. Then, if any of the other opsz entries are chosen, opsz would be frozen at the associated STAT value.</span><u></u><u></u></p><br><br></div><br><br><div><br><br><p class="MsoNormal"><u></u> <u></u></p><br><br></div><br><br><div><br><br><p class="MsoNormal"><span style="border:1pt none windowtext;padding:0in;color:black">4. But what should be done in a model that lists fvar instances as styles? Every fvar instance IS tied to some opsz value. So would the recommended UX be that there is some<br><br> kind of "checkbox" somewhere that basically says "Font size chooses optical size" or something, and THEN choosing the "Small" style vs. the "Display" style would have no visual effect? </span><u></u><u></u></p><br><br></div><br><br></div><br><br></div><br><br><div><br><br><div><br><br><div><br><br><p class="MsoNormal"><br clear="all"><br><br><u></u><u></u></p><br><br><div><br><br><p class="MsoNormal"><u></u> <u></u></p><br><br></div><br><br><p class="MsoNormal">-- <u></u><u></u></p><br><br><div><br><br><div><br><br><div><br><br><p class="MsoNormal">Adam Twardoch<u></u><u></u></p><br><br></div><br><br><div><br><br><p class="MsoNormal"><a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.twardoch.com%2F&data=02%7C01%7C%7Cd8b0db5c25994d72a1d808d845e2a429%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637336187004385999&sdata=%2FyNtwwi6jcAr3wMnc4fN%2F6xFR9MQwBmYY3R5N2jslcg%3D&reserved=0" target="_blank">http://www.twardoch.com/</a><u></u><u></u></p><br><br></div><br><br></div><br><br></div><br><br></div><br><br></div><br><br><p class="MsoNormal" style="margin-bottom:12pt"><u></u> <u></u></p><br><br></div><br><br><p class="MsoNormal">-- <u></u><u></u></p><br><br><div><br><br><p class="MsoNormal">Adam Twardoch<u></u><u></u></p><br><br></div><br><br><p class="MsoNormal"><a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.twardoch.com%2F&data=02%7C01%7C%7Cd8b0db5c25994d72a1d808d845e2a429%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637336187004395983&sdata=MM%2BrO2WPbV4HHi1m6RCtpLadLlQbltXFmYolJLBSBtQ%3D&reserved=0" target="_blank">http://www.twardoch.com/</a><u></u><u></u></p><br><br></div><br><br></div><br><br><br><br>_______________________________________________<br><br>mpeg-otspec mailing list<br><br><a href="mailto:mpeg-otspec@lists.aau.at" target="_blank">mpeg-otspec@lists.aau.at</a><br><br><a href="https://lists.aau.at/mailman/listinfo/mpeg-otspec" rel="noreferrer" target="_blank">https://lists.aau.at/mailman/listinfo/mpeg-otspec</a><br><br></blockquote></div></div><br><br></div>