Skip to content

Conversation

@m4rc1e
Copy link
Collaborator

@m4rc1e m4rc1e commented Oct 2, 2025

@nyshadhr9 This PR tests two font families: Maven Pro and Open Sans. Open Sans has two axes that influence how “loud” the family appears, which is why 4 tags are required. Maven Pro, on the other hand, only has a weight axis, so only 2 tags are needed.

If I were tagging a family with 3 axes that affect the Loud category, I’d need to add at least 8 positions. Does this logic make sense?

Open Sans,"wght,wdth@600,75",/Expressive/Loud,21
Open Sans,"wght,wdth@600,100",/Expressive/Loud,15
Open Sans,"wght,wdth@800,75",/Expressive/Loud,80
Open Sans,"wght,wdth@800,100",/Expressive/Loud,75
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the intended loudness at weight 599?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm. Now I wonder if this could/should be modelled by deltas?

wdth 75 => +6
wdth 100 => +0
wght 600 => +15
wght 800 => +75

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(I still wonder what wght 599 scores, it would be a bit odd if it jumped directly from 15 to 0)

Copy link
Collaborator Author

@m4rc1e m4rc1e Oct 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the intended loudness at weight 599?

If we let the RBF interpolation do its thing, we'll get a value less than 10. This is what happens in my demo, https://google.github.io/fonts/vf-tag-demo2.html adjust the weight slider and you'll see you'll get values less than the minimum tag, which is also 10.

If we don't like this behaviour, we should instead be defining the coordinate when the score is 0.

We could also treat it like a designspace aka don't allow extrapolation so it will literally be 0 for any value outside the range of 600-800.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IIRC we ruled out RBF and planned to use "normal" VF interpolation, @nyshadhr9 is that right?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should instead be defining the coordinate when the score is 0

My intuition is this may be what we want, making triangles of influence, say loud is 0 at 400, high at 900, in traditional VF style.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that's right - we will go with linear/multilinear interpolation.
Marc and I talked offline. Looks like supporting something like a step function - loud between 600 and 800 but not below or above those values - might be helpful too. I think we should be able to support that, but we need to come up with a way to specify this when assigning tags.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here's a new demo that uses linear interpolation and doesn't allow extrapolation, https://google.github.io/fonts/vf-tag-demo-linear.html. Imo this feels like the right direction. People adding the tags should also be thinking "when does 0 start for this tag"

@m4rc1e m4rc1e moved this from PR GF to In Sandbox in Fonts Traffic Jam Nov 4, 2025
@m4rc1e m4rc1e removed the status in Fonts Traffic Jam Nov 4, 2025
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

Successfully merging this pull request may close these issues.

3 participants