Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .ci/test_font_tags.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ def tags_metadata():
)
reader = csv.reader(data.splitlines())
res = []
for category, _, _ in reader:
for category, _, _, _ in reader:
res.append(category)
return res

Expand All @@ -59,7 +59,7 @@ def test_categories_exist(family_tags, tags_metadata):
tags_metadata.csv file
"""
meta_categories = set(tags_metadata)
families_categories = set(cat for _, cat, _ in family_tags)
families_categories = set(cat for _, _, cat, _ in family_tags)
missing = families_categories - meta_categories
assert not missing, f"Missing categories: {missing}"

Expand All @@ -68,7 +68,7 @@ def test_no_duplicate_families(family_tags):
seen = set()
dups = []
for family, axes, cat, _ in family_tags:
key = (family, cat)
key = (family, axes, cat)
if key in seen:
dups.append(",".join(key))
seen.add(key)
Expand Down
8 changes: 7 additions & 1 deletion tags/all/families.csv
Original file line number Diff line number Diff line change
Expand Up @@ -7817,6 +7817,8 @@ Matemasie,,/Quality/Spacing,90
Matemasie,,/Quality/Wordspace,100
Matemasie,,/Seasonal/Valentine's Day,65
Maven Pro,,/Expressive/Calm,75
Maven Pro,wght@400,/Expressive/Loud,3
Maven Pro,wght@900,/Expressive/Loud,88
Maven Pro,,/Expressive/Stiff,91
Maven Pro,,/Quality/Concept,50
Maven Pro,,/Quality/Drawing,60
Expand Down Expand Up @@ -10318,6 +10320,10 @@ Oooh Baby,,/Script/Informal,100
Oooh Baby,,/Seasonal/Valentine's Day,85
Open Sans,,/Expressive/Business,98.5
Open Sans,,/Expressive/Calm,87.9
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"

Open Sans,,/Quality/Concept,70
Open Sans,,/Quality/Drawing,70
Open Sans,,/Quality/Spacing,80
Expand Down Expand Up @@ -13120,9 +13126,9 @@ STIX Two Text,,/Quality/Drawing,70
STIX Two Text,,/Quality/Spacing,80
STIX Two Text,,/Quality/Wordspace,80
STIX Two Text,,/Serif/Transitional,100
SUSE Mono,,/Monospace/Monospace,100
SUSE Mono,,/Expressive/Calm,80
SUSE Mono,,/Expressive/Futuristic,30
SUSE Mono,,/Monospace/Monospace,100
SUSE Mono,,/Quality/Concept,70
SUSE Mono,,/Quality/Drawing,70
SUSE Mono,,/Quality/Spacing,80
Expand Down
Loading