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

Axis Location Specifier: Understanding the Role of Plus and Minus Signs #8

Open
ErwinDenissen opened this issue Oct 21, 2024 · 3 comments

Comments

@ErwinDenissen
Copy link

I’m curious about the necessity of this. While I can see how it might be useful in relation to axis range conditions (ConditionSets), that's something more relevant to Stage 2. Could you explain the reasoning behind it?

@skef
Copy link
Contributor

skef commented Oct 21, 2024

Consider the archetypal discontinuous kerning problem: A designer is making a variable font with a weight axis. She is kerning T and o. At lighter weights she wants the o nestled under the top stroke of the T. At some weight the o no longer fits next to the vertical stem of the T and has to move out. And she does not want it to move gradually, as the intermediate positions look wrong to her.

She could simply use two different axis locations that are "close" to one another to simulate discontinuity, but that relies on no users picking the intermediate locations. The plus and minus signs make it easy to specify locations that are truly adjacent according to the specification.

With multiple axes things can get a little tricky, and choosing two positions that are "diagonally adjacent" in designspace may not be absolutely foolproof, but they will be as close to foolproof (e.g. not revealing any intermediate interpolations) as practical with the current spec.

@ErwinDenissen
Copy link
Author

I see what you're getting at, and I understand the need for precision in avoiding unwanted intermediate positions. However, I believe feature variations for GPOS already address this scenario effectively.

@skef
Copy link
Contributor

skef commented Oct 21, 2024

There are a number of scenarios that can be addressed either by adding "masters" (in the case of kerning, a value) into the designspace of a variable element or by substituting one (variable) element for another. Some designers choose to deal with problems like the number of bars in a dollar sign with additional masters.

A given foundry might choose to be prescriptive about which way to solve a problem, but generally speaking we want to support the different patterns designers may want to use.

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

No branches or pull requests

2 participants