commontype-standard / commontype

Annotated OpenType Specification
Other
23 stars 1 forks source link

Suggestion: locale-specific variable font features #49

Open fontfish opened 2 years ago

fontfish commented 2 years ago

Given that accent preferences vary between languages, I believe it might make sense to allow for a variable font feature for accents and other letters to change automatically similarly to the OpenType "locl" setting. Notably, the angle of acutes and graves appears to be preferred as more upright in some languages, such as Polish, than others. When accents are occasionally used in English, I personally find anything steeper than about 45° jarring.

As far as I understand, variable font features currently have no language-specific settings, though they seem to me to have the potential to provide a very clean way of implementing something like this, at least from a design perspective, as if need be/wanted it could even allow for a sliding scale of angle and position.

More information on the design of accents is available from the diacritics project: http://diacritics.typo.cz/

Thoughts are welcome. To be clear, my knowledge of the software specifics of font formats, variable fonts, etc., is very limited.

My apologies if I have put this suggestion in the wrong place. If so, please advise as to where might be more suitable.

simoncozens commented 2 years ago

Hey Gregor,

This sounds like might be a useful idea in here, but I want to tease out a bit more of what you are thinking, and maybe see if there is a more general-purpose need here.

locl already allows for substitutions - say, more upright accents - based on language setting. So what would we need to do differently in a variable font context? I suspect we don't want to have a publicly-exposed axis for, say, accent angle. But perhaps what you are suggesting is that instead of designing separate eacute and eacute.PLK glyphs, there's an internal "accent angle" axis and the designer says "when language is PLK, set the value of the accent-angle axis to 50" or whatever. That feels rather like the Black Foundry variable components idea, but with the additional feature of allowing OpenType rules to set axis values.

I feel like that could work but there might be a lot of weird corner cases and interactions that I haven't foreseen yet. But is that the sort of thing you were thinking of?

fontfish commented 2 years ago

Hello, Simon! Thank you for your response.

My initial thought was for an exposed axis with automatic implementation such as is common with OpenType locl. That might allow for cases such as a designer needing to, say, override the axis and forego a linguistic standard in order to set two lines of display capitals very close together using flatter accents. It would also allow publishers and businesses to implement an internal standard if ever there is a preference to do such things in languages with no specific angle preference.

The Black Foundry variable components suggestion also strikes me as being an interesting idea. Their note on CJK components is similar to something I had vaguely considered, though probably not entirely relevant for language-specific implementation.

An internal axis manipulated by OpenType rules, as you describe, may indeed be a more ideal way of doing things, however. I can see it fitting into the existing locl framework comfortably without necessitating changes to workflow for end users. If it were to be OpenType-controlled, would that then also allow it to function even where variable fonts are not supported?