vercel / geist-font

https://vercel.com/font
SIL Open Font License 1.1
2.13k stars 54 forks source link

Map the variable wght range to the standard OpenType wght range, make the Regular weight the default in the Variable exports. #20

Closed robertjanes closed 8 months ago

robertjanes commented 8 months ago

I've updated the Glyphs files so that the design wght range is mapped to the standard OpenType wght upon export. Additionally, the Regular weight is mapped to be the default state of the exported VFs.

emapeire commented 8 months ago

Awesome!

timocapa commented 8 months ago

am i doing something wrong? never compiled a font before

❯ fontmake Geist-Sans.glyphs -o variable
INFO:fontmake.font_project:Building master UFOs and designspace from Glyphs source
INFO:glyphsLib.parser:Parsing .glyphs file
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class public.kern1.EA found in kerning rules.
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class public.kern2.Y found in kerning rules.
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class public.kern1.Y found in kerning rules.
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class public.kern2.Y found in kerning rules.
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class public.kern2.Y found in kerning rules.
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class public.kern2.Y found in kerning rules.
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class public.kern2.slash found in kerning rules.
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class public.kern2.Y found in kerning rules.
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class public.kern1.Y found in kerning rules.
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class public.kern2.Y found in kerning rules.
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class public.kern2.Y found in kerning rules.
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class public.kern1.slash found in kerning rules.
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class public.kern2.slash found in kerning rules.
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class public.kern2.Y found in kerning rules.
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class public.kern2.slash found in kerning rules.
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class public.kern2.Y found in kerning rules.
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class public.kern1.Y found in kerning rules.
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class public.kern2.Y found in kerning rules.
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class public.kern2.Y found in kerning rules.
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class public.kern2.Y found in kerning rules.
WARNING:glyphsLib.builder.axes:Axis wght: Instance 'Regular' redefines the mapping for user location 400 from 88 to 84
WARNING:fontTools.designspaceLib.statNames:Cannot determine default source to look up family name.
WARNING:fontTools.designspaceLib.statNames:Cannot determine default source to look up family name.
WARNING:fontTools.designspaceLib.statNames:Cannot determine default source to look up family name.
WARNING:fontTools.designspaceLib.statNames:Cannot determine default source to look up family name.
WARNING:fontTools.designspaceLib.statNames:Cannot determine default source to look up family name.
WARNING:fontTools.designspaceLib.statNames:Cannot determine default source to look up family name.
WARNING:fontTools.designspaceLib.statNames:Cannot determine default source to look up family name.
WARNING:fontTools.designspaceLib.statNames:Cannot determine default source to look up family name.
WARNING:fontTools.designspaceLib.statNames:Cannot determine default source to look up family name.
INFO:fontmake.font_project:Building variable fonts variable_ttf/Geist-VF.ttf
WARNING:fontTools.designspaceLib.statNames:Cannot determine default source to look up family name.
WARNING:fontTools.designspaceLib.statNames:Cannot determine default source to look up family name.
WARNING:fontTools.designspaceLib.statNames:Cannot determine default source to look up family name.
WARNING:fontTools.designspaceLib.statNames:Cannot determine default source to look up family name.
WARNING:fontTools.designspaceLib.statNames:Cannot determine default source to look up family name.
WARNING:fontTools.designspaceLib.statNames:Cannot determine default source to look up family name.
WARNING:fontTools.designspaceLib.statNames:Cannot determine default source to look up family name.
WARNING:fontTools.designspaceLib.statNames:Cannot determine default source to look up family name.
WARNING:fontTools.designspaceLib.statNames:Cannot determine default source to look up family name.
fontmake: Error: In 'Geist-Sans.glyphs' -> 'master_ufo/Geist.designspace': Generating fonts from Designspace failed: No default source; expected default master at Weight=84. Found master locations:
Geist Thin at Weight=32
Geist Regular at Weight=88
Geist Ultra Black at Weight=240
robertjanes commented 8 months ago

@timocapa I exported the font using GlyphsApp itself, which works fine.

But the error from Fontmake does reveal something: the Regular master is positioned at wght 88 but the Regular export is at wght 84, which creates this discrepancy. It’s therefore probably best if the Regular master is interpolated to be positioned at 84, or the Regular export is changed to be at 88. Otherwise the default state of the variable font will be different to the Regular export.

evowizz commented 8 months ago

@robertjanes What you're describing seems related to what I've been experiencing. I've been testing the font on my own website. But instead of using the npm package, I decided to bundle the variable font instead, since I need some of the features that aren't supported by static fonts.

However, for some reason, the default weight didn't seem to be "Regular". I don't know as much as you seem to know about fonts, but after opening the font in another software, I observed the same behavior (the default weight not being "Regular").

Here's a screenshot: SCR-20231030

JohnPhamous commented 8 months ago

Thank you for contributing. We have fixed the axis scale in #46.