🦥 The following guidelines apply to all fonts, regardless of their format. Then, depending on the format, we have different specifications for static and variable fonts. Please read the guidelines for static fonts and the guidelines for variable fonts. It is recommended to read the guidelines to add or upgrade font in Google Fonts before continuing.
These font info parameters are not optional and should follow the same scheme within the entire GF library.
The font must contain a copyright string within the name table with the following format:
Copyright { year } The { family } Project Authors ({ git_url })
E.g. Copyright 2011 The Montserrat Project Authors (https://github.com/JulietaUla/Montserrat)
If you are using the Glyphs font editor, add a “Copyright” entry under the “Font” tab of the Font Info panel.
The license string must be the same for all GF font projects:
This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://scripts.sil.org/OFL
If you are using the Glyphs font editor, add this string to a “License” entry in the “Font” tab of the Font Info panel.
The license URL must be the same for all GF fonts projects:
https://scripts.sil.org/OFL
If you are using the Glyphs font editor, add this string to a “License URL” entry in the “Font” tab of the Font Info panel.
Typically libre fonts are not subject to any trademarks.
If you do not trademark your project name:
If you do trademark your project name:
License your trademarks for redistribution in a TRADEMARKS.md
file.
Example:
Font Name is a trademark of Company Name.
Explicitly permit Google to use the trademarks. Email fonts@google.com with an email like this:
Dear Google Fonts
We would like our font project “Font Family Name” to be included in Google Fonts and other Google products.
I hereby grant permission in perpetuity to Google LLC and affiliates to use the following trademarks, and Reserved Font Names declared in the SIL Open Font License notices, for the following font family names:
Font Family Name Font Family Name Mono Font Family Name Sans
Best regards,
Firstname Othername
Job Title, Organization
Every new version onboarded to GF should have an increased version number compared to the precedent. This is explained in the Main contribution cases.
Versioning is based on semver, apart from we use MAJOR.SIGNIFICANTMINORPATCH
, instead of MAJOR.MINOR.PATCH
.
Examples:
If a breaking change is made e.g. converting a static font family to a variable font family, the MAJOR must be incremented by 1, and the others reset, e.g.:
Current 1.230
, new 2.000
If a new character set is inserted, SIGNIFICANT should be incremented, e.g.:
Current 1.230
, new 1.330
If a few new glyphs are added, MINOR should be incremented, e.g.:
Current 1.230
, new 1.240
If a name table record is updated such as the copyright string, PATCH should be incremented, e.g.:
Current 1.230
, new 1.231
fsType parameter should be set to 0
 (Installable embedding).
This is how it should look like in the OS/2 table: <fsType value="00000000 00000000"/>
If you are using the Glyphs font editor, create a new custom parameter called “fsType” in the “Font” tab of the Font Info pane. Change the Embedding drop-down to “Installable” and leave the “Subsetting Forbidden” checkbox unchecked.
Please read the following pages about vertical metrics for setting vertical metrics.
We require the post table isFixedPitch
 to be set and the OS/2 panose
 table to have OS/2.panose.bProportion
 (bit 4) set correctly. If either of these is set incorrectly, users may get fallback glyphs that are not monospaced if they type a character that doesn’t exist in the font.
post.isFixedPitch
 to 1OS/2.panose.bFamilyType
 is 2 (Latin Text), set OS/2.panose.bProportion
 to 9.OS/2.panose.bFamilyType
 is 3 (Latin Script), set OS/2.panose.bProportion
 to 3.OS/2.panose.bFamilyType
 is 5 (Latin Picture), set OS/2.panose.bProportion
 to 3.OS/2.panose.bFamilyType
 to, use 2 for “normal” fonts.OS/2.panose.bFamilyType
 is 4, you do not need to worry about OS/2.panose.bProportion
.Developers can set these automatically by using the following gftools command: gftools fix-isfixedpitch
GF Glyphsets provides the glyph set definition standards that Google Fonts fonts must adhere to.
The structure of these sets is based on a modular scheme that allows the use of different blocks of information to be combined to build sets of glyphs with different levels of complexity according to the needs of each project.
This system aims to give enough flexibility to define the intended scope of each project as well as a way to better assess the font development status and quality analysis.
Currently, the most used ones are:
Find all the glyphsets definition and filter lists in the Glyphsets repository. Be aware that these glyphsets are still a work in progress and any advise or recommendation can be submitted using the Glyphsets’ issue tracker.
The Google Fonts API currently does not support the inclusion of OpenType Stylistic Set features. Fonts that absolutely need them need to be published as a separate family with the stylistic feature added to the family name.