.ttf— so TrueType fonts only! The upstream repo can of course contain OTF-CFF
.otffonts, as well as webfonts
.woff2. GF redirects users to the upstream repo to find these files if they are not satisfied with the one served by the API.
download familybutton in any specimen pages). Please read about the instantiated static fonts
Google’s static fonts API supports up to 18 styles in one family: up to 9 weights (Thin–Black), + their matching Italics. The table below lists each style’s specific name table and bit settings.
fontmake doesn’t produce Mac names entries any more. If you must add the name for platform 1 (Mac), make sure they are the same as the one in Platform 3 (Windows).
|Filename||Family Name (ID 1, Win)||Subfamily Name (ID 2, Win)||Typographic Family Name (ID 16)||Typo Subfamily Name (ID 17)||OS/2 usWeightClass||OS/2 fsSelection||head macStyle|
|FamilyName-Thin.ttf||Family Name Thin||Regular||Family Name||Thin||100||bit 6|
|FamilyName-ExtraLight.ttf||Family Name ExtraLight||Regular||Family Name||ExtraLight||200||bit 6|
|FamilyName-Light.ttf||Family Name Light||Regular||Family Name||Light||300||bit 6|
|FamilyName-Regular.ttf||Family Name||Regular||400||bit 6|
|FamilyName-Medium.ttf||Family Name Medium||Regular||Family Name||Medium||500||bit 6|
|FamilyName-SemiBold.ttf||Family Name SemiBold||Regular||Family Name||SemiBold||600||bit 6|
|FamilyName-Bold.ttf||Family Name||Bold||700||bit 5||bit 0|
|FamilyName-ExtraBold.ttf||Family Name ExtraBold||Regular||Family Name||ExtraBold||800||bit 6|
|FamilyName-Black.ttf||Family Name Black||Regular||Family Name||Black||900||bit 6|
|FamilyName-ThinItalic.ttf||Family Name Thin||Italic||Family Name||Thin Italic||100||bit 0||bit 1|
|FamilyName-ExtraLightItalic.ttf||Family Name ExtraLight||Italic||Family Name||ExtraLight Italic||200||bit 0||bit 1|
|FamilyName-LightItalic.ttf||Family Name Light||Italic||Family Name||Light Italic||300||bit 0||bit 1|
|FamilyName-Italic.ttf||Family Name||Italic||400||bit 0||bit 1|
|FamilyName-MediumItalic.ttf||Family Name Medium||Italic||Family Name||Medium Italic||500||bit 0||bit 1|
|FamilyName-SemiBoldItalic.ttf||Family Name SemiBold||Italic||Family Name||SemiBold Italic||600||bit 0||bit 1|
|FamilyName-BoldItalic.ttf||Family Name||Bold Italic||700||bit 5 + bit 0||bit 0 + bit 1|
|FamilyName-ExtraBoldItalic.ttf||Family Name ExtraBold||Italic||Family Name||ExtraBold Italic||800||bit 0||bit 1|
|FamilyName-BlackItalic.ttf||Family Name Black||Italic||Family Name||Black Italic||900||bit 0||bit 1|
If the style name matches the RIBBI convention (ie.
ID 2 = ID 17), then
name IDs 16/17 are not exported.
In Glyphs.app, the
Family Name in font info (or the
Localised Family Name in the instance), and the
Style Name fields are meant to generate the
name ID 16/17, or
name ID 1/2 if the naming matches RIBBI convention. Although, the export tool can guess it right only if you set the style linking bits correctly as explained below.
font-weightproperty of 100 or 200 then the
usWeightClassvalue may be 250, as values of 249 or less in CFF fonts suffered from blurry rendering on older versions of Windows — but in 2020 this is no longer necessary.
As mentioned above, we strictly follow the RIBBI convention for nameID2 (such as required in the OpenType spec), to allow functional style linking in most environments (button Bold and Italic in desktop apps for example). This means that you can’t have another style name than Regular, Italic, Bold, Bold Italic in
name ID 2 (for any platform). Other style name should be appended to
name ID 1. The “real” font family name that is impacting how a family is grouped in font menu is handles by the
name ID 16 and the “real” style names are in
name ID 17.
In Glyphs.app, the
Style Name field in the set instances will be the one used for the
name ID 17. The
name ID 2 will be set according to the style linking bits and if the style name matches RIBBI. So don’t forget to tick the proper cases:
This instance is the [ ] Bold, [ ] Italic of: ___________. You can leave the last field blank which suggests “Regular”.
This instance is the [ ] Bold, [ ] Italic of: ___________
<fsSelection value="00000000 01000000"/>
<macStyle value="00000000 00000000"/>
This instance is the [ ] Bold, [X] Italic of: ___________
<fsSelection value="00000000 00000001"/>
<macStyle value="00000000 00000010"/>
This instance is the [X] Bold, [ ] Italic of: ___________
<fsSelection value="00000000 00100000"/>
<macStyle value="00000000 00000001"/>
This instance is the [X] Bold, [X] Italic of: ___________
<fsSelection value="00000000 00100001"/>
<macStyle value="00000000 00000011"/>
If a family has styles which are not in the above table, they should be released as a separate/new family. To do this, append any unsupported style (e.g Condensed) to the family name, so it becomes part of the family name, rather than part of the style name. We frequently use this approach for Condensed and smallcap sibling families. This way, we never have to use
name IDs 21/22 for the WWS convention.
For projects which use Glyphs.app, you can follow the example of Archivo which contains glyphs files that are set correctly. An additional field
Localised Family Name should be added in all concerned instances in order to append the non supported style to the family name and override the one in font info.
Localized Family Name: Archivo Condensed
Style Name: Light Italic
Font filenames must be based on the following schema:
The filename must not contain anything else.
Remember Google Fonts only allows weight styles, and doesn’t even follow the WWS scheme in the sense that width styles are forbidden and must be part of the family name of the font family:
Same for optical size or any other attribute.
If a family is a single weight and it visually doesn’t have the appearance of a Regular weight, “One” must be appended to the family name and “Regular” used for the style name, since any family must contain a Regular.
This approach allows us to keep the desired font name available if we decide to add more styles in the future: if a future extension of a previously single-weight font includes a Regular, the family name without “One” is used and the “Regular” style name can be given to the new actual Regular weight.
We have released many of these families in the past.
The single weight families must have the following font specific settings:
|Filename||Family Name (nameID 1)||Subfamily Name (nameID 2)||Typographic Family Name (nameID 16)||Typo Subfamily Name (nameID 17)||OS/2.usWeightClass||OS/2.fsSelection||hhea.macStyle|
|FamilyNameOne-Regular.ttf||Family Name One||Regular||400||bit 6|
Static fonts should be hinted using the latest version of ttfautohint. If the results look poor on Windows browsers, it’s better to release the fonts unhinted with GASP table set to “grayscale / symmetric smoothing” (0x000A) across the full PPEM range.
ttfautohint often struggles to hint display or handwritten typefaces.
If you don’t use gftools builder (which autohint static fonts by default but you can turn off that option), you should run the fonts through
gftools fix-hinting once the fonts have been hinted. If the fonts are unhinted, run the fonts through
Fontmake does not support manual hinting from Glyphs. You can use use VTT instead and you can patch a VTT program with gftools builder — see Montserrat as an example.
You can view the name tables using these tools:
Some font testing web pages allow you to view a selection of tables: