Google Fonts

METADATA file

๐Ÿธ The METADATA.pb files found in the Google Fonts library repo (github.com/google/fonts) are Protocol Buffers metadata files that contains some information about the font files served by Google Fonts, some of which typically corresponds to font file internal metadata.
Background reading:
nerd  google/fonts repository explained

Table of contents

History

This documentation was initiated by Adam Twardoch as a community contributor in 2015, and updated by Dave Crossland as a member of the Google Fonts team in 2020. It is provided so that other font distributors (webfonts providers or font package maintainers) can better use the library repo repository structure.

This metadata is used specifically by Google Fonts for organization and display on the Google Fonts website. It may be useful for others to be able to make sense of the metadata files.

Generation

The file can be partially generated by the gftools add-font script and gftools packager :

gftools add-font path/to/google/fonts/ofl/fontdirname

The file uses UTF-8 encoding.

Below are 2 example METADATA.pb files, first for a family of static font files, and then for a family with variable font files, followed by a brief description of each key and possible values.

Example Static Fonts Family

name: "Example Sans"
designer: "Firstname Lastname, Person Two, Person Three"
license: "OFL"
category: "SANS_SERIF"
date_added: "2021-09-30"
fonts {
  name: "Example Sans"
  style: "normal"
  weight: 400
  filename: "ExampleSans-Regular.ttf"
  post_script_name: "ExampleSans-Regular"
  full_name: "Example Sans Regular"
  copyright: "Copyright 2021 The Example Sans Project Authors (github.com/username/example-sans)"
}
fonts {
  name: "Example Sans"
  style: "italic"
  weight: 400
  filename: "ExampleSans-Italic.ttf"
  post_script_name: "ExampleSans-Italic"
  full_name: "Example Sans Italic"
  copyright: "Copyright 2021 The Example Sans Project Authors (github.com/username/example-sans)"
}
subsets: "arabic"
subsets: "latin"
subsets: "latin-ext"
subsets: "menu"
subsets: "vietnamese"
primary_script: "Arab"
source {
  repository_url: "https://github.com/username/example-sans"
  commit: "d9098c0a72125d411dbb225a2e5a61dc15265ffc"
}
minisite_url: "https://myfontwebsite.com"
stroke: "SANS_SERIF"

Example Variable Fonts Family

name: "Example Serif"
designer: "Firstname Lastname, Person Two, Person Three"
license: "OFL"
category: "MONOSPACE"
date_added: "2021-09-30"
fonts {
  name: "Example Serif"
  style: "normal"
  weight: 300
  filename: "ExampleSerif[opsz,wght].ttf"
  post_script_name: "ExampleSerif-Light"
  full_name: "Example Serif Light"
  copyright: "Copyright 2021 The Example Sans Project Authors (github.com/username/example-serif)"
}
fonts {
  name: "Example Serif"
  style: "italic"
  weight: 300
  filename: "ExampleSerif-Italic[opsz,wght].ttf"
  post_script_name: "ExampleSerif-LightItalic"
  full_name: "Example Serif Light Italic"
  copyright: "Copyright 2021 The Example Sans Project Authors (github.com/username/example-serif)"
}
subsets: "latin"
subsets: "latin-ext"
subsets: "menu"
subsets: "vietnamese"
axes {
  tag: "wght"
  min_value: 300.0
  max_value: 700.0
}
axes {
  tag: "opsz"
  min_value: 10
  max_value: 144
}
registry_default_overrides {
  key: "opsz"
  value: 24
}
source {
  repository_url: "https://github.com/username/example-sans"
  commit: "d9098c0a72125d411dbb225a2e5a61dc15265ffc"
}
minisite_url: "https://myfontwebsite.com"
stroke: "SERIF"
classifications: "MONOSPACE"

Description of Keys

Most top-level keys provide unique information which is generally not derived from or matching with data inside the font files themselves. Each top-level field can only occur once in the file. The order of the keys does not strictly matter, but the order in this example is typical and is maintained when possible to avoid noisy diff comparisons.

name

Family name used to call the familyโ€™s fonts from the Google Fonts API, and shown in the catalog fonts.google.com.

Example: name: "ABeeZee"

date_added

Date in YYYY-MM-DD format that the font was first published by Google Fonts. It is used to order the front page of the GF catalog, both obviously the โ€œdate addedโ€ sort mode, and also the default โ€œtrending mode.โ€

If you set the date added into the future, then the family will stay at the top of the โ€˜trendingโ€™ sort until that date passes and it trails off like normal.

Once pushed to production, updating it is generally not allowed, although exceptions can be made in limited cases.

Example: date_added: "2021-09-30"

designer

Full name of the type designers or foundries who designed the fonts. Each value typically matches a string in the designer key of info.pb files in the library repo /catalog/designers tree. The order in which the names are listed here will determine the order of appareance in the About section in the font specimen page. (See below.)

Examples:

license

Declares the license of the fonts in the family. Can contain one of 3 possible values:

category

Typographic classifications, one of 5 possible values:

In 2023 the category field was augmented with two new fields called stroke and classifications, the category field will continue to exist with no changes to its semantics. We are keeping the category field as is because Google products like Workspace and Ads use them and we didnโ€™t want to affect those products.

This key is deprecated in the API (cf. below Stroke and Classification), but still mandatory to fill up in METADATA.pb

fonts

Dictionaries with information specific to each font file in the family. The values in this section typically match those inside the font files. Example:

fonts {
  name: "ABeeZee"
  style: "normal"
  weight: 400
  filename: "ABeeZee-Regular.ttf"
  post_script_name: "ABeeZee-Regular"
  full_name: "ABeeZee Regular"
  copyright: "Copyright 2011 The ABeeZee Project Authors (github.com/username/abeezee)"
}

fonts โ€” name

Family name used to call the font from the Google Fonts API. This must match the name key used at the top level. This typically matches the font fileโ€™s name table ID 16, or if that does not exist, the ID 1. If multiple ID 16s or 1s exist, they must match.

Example: name: "ABeeZee"

fonts โ€” style

Value of the CSS font-style property served by Google Fonts. One of 2 possible values:

Styles marked as normal in the family METADATA file refers to any upright styles, and italic refers to any style-linked italic styles.

fonts โ€” weight

Value of the CSS font-weight property served by Google Fonts. For families offered as static fonts, this will be one of 9 possible values:

Typically this matches the value of usWeightClass in the font fileโ€™s OS/2 table.

For variable fonts, this will be one of the 9 possible values that corresponds to the glyf table outline design.

fonts โ€”ย filename

The font filename. Example: "filename": "ABeeZee-Italic.ttf"

There is a โ€œcanonicalโ€ naming scheme for font filenames in the Google Fonts library.

For static fonts the pattern is $family-$style.ttf and the allowed values are as follows; These filenames are case sensitive, unlike the default file system of macOS, so Semibold is not allowed, and simply renaming it in macOS Finder will not be effective; it needs to be renamed to something with one more/less character, then renamed back to a correct name.

For variable fonts, the naming scheme is the family name, then an alphabetically sorted, comma separated, list of axes within square brackets. If the family has Italic styles in a second file, then the -Italic particle is appended to the family name.

fonts โ€” post_script_name

Value of the font fileโ€™s name table ID 6. If multiple ID 6s exist, they must match. Example: post_script_name: "ABeeZee-Italic"

Typically this matches the stem of the filename.

fonts โ€” full_name

Value of the font fileโ€™s name table ID 4. If multiple ID 4s exist, they must match. Example: full_name: "ABeeZee Italic"

Copyright notice. Example: copyright: "Copyright 2011 The ABeeZee Project Authors (github.com/username/example-serif)"

Typically this matches the value of the copyright notice in the first lines of the license file. It also matches the font file name table ID 0. If multiple ID 0s exist, they must match.

subsets

List of all character subsets available in Google Fonts API for the given font family. They are described as languages, but they are actually script sets.

These subsets are defined in GF Glyphsets repo โ€”with the exception of the menu subset.

The menu subset is the characters of the font family name (defined above) and is used in font picker UIs to render the font name in itself.

The subsets must be sorted in alphabetical order. The possible values are the same the available nam files. For example, if a nam file is named chorasmian_unique-glyphs.nam the key in METADATA.pb would be subsets: "chorasmian" (the nam file path without โ€œ_unique-glyphs.namโ€)

primary script

This key aims to indicate which script the specimen page on Google Fonts should display in priority. The possible values to enter here must refer to the ID of the specified scriptโ€™s textprotos from the lang directory in google/fonts repo.

Example:

primary_script: "Arab"

Languages

This key aims to restrict the number of languages shown in a specimen page. It is mandatory in all Noto fonts but not recommended in non-Nono fonts. It can be useful though when a font support the glyphs of a specific language only.

Example:

languages: "gu_Gujr"  # Gujarati

registry_default_overrides

Override the default value from the Axis Registry. This is required when axis min and max values do not match the registry default, or when the default value differs from the registered default for the axis.

Repeated for each axis.

Contains 2 required child values:

Example:

registry_default_overrides {
  key: "opsz"
  value: 18
}

โ†’ Look at Roboto Flex for an example of complex Axis Registry override:

source

Indicates the upstream repo URL and the commit at which the font was taken, this important for versioning, but also to keep a trace back the origin of the font since multiple forks can exist for one project.

If the source is a tagged release, then the source entry should look like this:

source {
repository_url: "https://github.com/username/projectname"
archive_url: "https://github.com/username/projectname/releases/download/v2.200/projectname-2.200.zip"
}
Further reading:
templ Designer profile
templ License file
templ Authors and Contributors
nerd  Lang repo

Display name

The display_name key is used when the font name should appear differently on the API. The main use of this key is for the Noto CJK families which have abbreviated names as a convention. This is not necessarily clear for the user, so the display_name key is used to display an unabbreviated name on the specimen page.

Example:

font_name: "Noto Sans JP"
display_name: "Noto Sans Japanese"

An other example of use of this key is when the font family name should be written with an hyphen. Indeed, the hyphen is only authorized to separate the family name from the style name; having a font family name with an hyphen would cause a bad file path and postscript name.

Example:

font_name: "Noto Sans PhagsPa"
display_name: "Noto Sans Phags-pa"

Minisite url

This key allows to link a mini website to the fontโ€™s specimen page. It will appear on top of the page, under the font name, next to the designerโ€™s name.

Example:

minisite_url: "https://myfontwebsite.com"

Classification

The classification field is a repeated field that can be any combination of Handwriting, Display, Monospace, or Symbols, or it can not be set. So for example, if a font is Handwriting, Display and Monospace all at the same time, use all three. If it does not fit into any of those classifications, there is no need to use the field.

Stroke

The stroke field has a single value that is one of SANS_SERIF, SERIF, SLAB_SERIF. It should always be set if one of those options accurately describes the design since some features in the UI only look at the stroke value for some things. Otherwise, if one of the options doesnโ€™t describe the design, it can not be set. Google Fonts Search UI will present stroke and classifications as separate search groups so users can combine them and search, say, for fonts that are Serif and Display.

Sample text

This key overrides the sample texts provided in the languages texprotos (that you can find in the Lang repository). Therefore the properties of this keys are the same as the one in a lang textproto.

If sample text is given within a sample text group (e.g. poster, specimen, masthead), all fields within that group must be provided.

Poster samples are used in presenting the font in GF catalog specimen poster component. The poster module has 3 different strings shown in 3 different styles. A sm, md, and lg string is needed for each of the three rows in the poster. The poster group is only used in Noto fonts.

Specimen samples are used as type ramp samples. The indicates the rendering size.

Example:

sample_text {
  masthead_full: "แœ€แœ…แœŽแœ‘"
  masthead_partial: "แœ†แœ‚"
  styles: "แœ€แœ…แœ” แœŽแœ‘แœ†แœ” แœ…แœ” แœ†แœ‚แœŒแœ” แœแœแœ’แœˆแœ’แœŽแœ…แœ” แœˆ แœ‹แœŽแœŒ แœ€แœ†แœ” แœ‰แœˆแœ”แœ†แœŒแœ”แœ‰แœˆแœ”แœ†แœŒแœ” แœ แœƒแœ‡แœ…แœŽแœˆแœ”"
  tester: "แœ€แœ…แœ” แœŽแœ‘แœ†แœ” แœ…แœ” แœ†แœ‚แœŒแœ” แœแœแœ’แœˆแœ’แœŽแœ…แœ” แœˆ แœ‹แœŽแœŒ แœ€แœ†แœ” แœ‰แœˆแœ”แœ†แœŒแœ”แœ‰แœˆแœ”แœ†แœŒแœ” แœ แœƒแœ‡แœ…แœŽแœˆแœ” แœ€แœ†แœ” แœ‹แœ”แœ„ แœƒแœ‡แœ‰แœ†แœˆแœ” แœแœ’แœŽแœŒแœ”"
  poster_sm: "แœ€แœ…แœ” แœŽแœ‘แœ†แœ” แœ…แœ” แœ†แœ‚แœŒแœ”"
  poster_md: "แœ€แœ…แœ” แœŽแœ‘แœ†แœ”"
  poster_lg: "แœŽแœ‘แœ†แœ”"
  specimen_48: "แœ€แœ…แœ” แœŽแœ‘แœ†แœ” แœ…แœ” แœ†แœ‚แœŒแœ” แœแœแœ’แœˆแœ’แœŽแœ…แœ” แœˆ แœ‹แœŽแœŒ แœ€แœ†แœ” แœ‰แœˆแœ”แœ†แœŒแœ”แœ‰แœˆแœ”แœ†แœŒแœ” แœ แœƒแœ‡แœ…แœŽแœˆแœ” แœ€แœ†แœ” แœ‹แœ”แœ„"
  specimen_36: "แœ€แœ…แœ” แœŽแœ‘แœ†แœ” แœ…แœ” แœ†แœ‚แœŒแœ” แœแœแœ’แœˆแœ’แœŽแœ…แœ” แœˆ แœ‹แœŽแœŒ แœ€แœ†แœ” แœ‰แœˆแœ”แœ†แœŒแœ”แœ‰แœˆแœ”แœ†แœŒแœ” แœ แœƒแœ‡แœ…แœŽแœˆแœ” แœ€แœ†แœ” แœ‹แœ”แœ„ แœƒแœ‡แœ‰แœ†แœˆแœ” แœแœ’แœŽแœŒแœ” แœ‰แœ’แœˆแœ„แœ”แœƒแœŽแœ“แœŠแœˆแœ” แœ…แœ” แœƒแœ†แœ”แœแœ’แœ‡แœˆแœ” แœ€แœ†แœ” แœŠแœ“แœ‡แœ”แœ‘แœ’ แœ€แœ†แœ” แœ‡แœ‰แœ†แœ” แœ‹แœ„แœ”แœ‰แœŽแœ„แœŒแœˆแœ” แœ€แœ…แœ” แœแœแœ†แœ” แœแœ แœ แœ‡แœ’แœ แœ…แœ” แœ‰แœ„แœ”แœƒแœƒแœ‰แœ†แœ’แœ‡แœˆแœ”"
  specimen_32: "แœ€แœ…แœ” แœŽแœ‘แœ†แœ” แœ…แœ” แœ†แœ‚แœŒแœ” แœแœแœ’แœˆแœ’แœŽแœ…แœ” แœˆ แœ‹แœŽแœŒ แœ€แœ†แœ” แœ‰แœˆแœ”แœ†แœŒแœ”แœ‰แœˆแœ”แœ†แœŒแœ” แœ แœƒแœ‡แœ…แœŽแœˆแœ” แœ€แœ†แœ” แœ‹แœ”แœ„ แœƒแœ‡แœ‰แœ†แœˆแœ” แœแœ’แœŽแœŒแœ” แœ‰แœ’แœˆแœ„แœ”แœƒแœŽแœ“แœŠแœˆแœ” แœ…แœ” แœƒแœ†แœ”แœแœ’แœ‡แœˆแœ” แœ€แœ†แœ” แœŠแœ“แœ‡แœ”แœ‘แœ’ แœ€แœ†แœ” แœ‡แœ‰แœ†แœ” แœ‹แœ„แœ”แœ‰แœŽแœ„แœŒแœˆแœ” แœ€แœ…แœ” แœแœแœ†แœ” แœแœ แœ แœ‡แœ’แœ แœ…แœ” แœ‰แœ„แœ”แœƒแœƒแœ‰แœ†แœ’แœ‡แœˆแœ”"
  specimen_21: "แœ€แœ…แœ” แœŽแœ‘แœ†แœ” แœ…แœ” แœ†แœ‚แœŒแœ” แœแœแœ’แœˆแœ’แœŽแœ…แœ” แœˆ แœ‹แœŽแœŒ แœ€แœ†แœ” แœ‰แœˆแœ”แœ†แœŒแœ”แœ‰แœˆแœ”แœ†แœŒแœ” แœ แœƒแœ‡แœ…แœŽแœˆแœ” แœ€แœ†แœ” แœ‹แœ”แœ„ แœƒแœ‡แœ‰แœ†แœˆแœ” แœแœ’แœŽแœŒแœ” แœ‰แœ’แœˆแœ„แœ”แœƒแœŽแœ“แœŠแœˆแœ” แœ…แœ” แœƒแœ†แœ”แœแœ’แœ‡แœˆแœ” แœ€แœ†แœ” แœŠแœ“แœ‡แœ”แœ‘แœ’ แœ€แœ†แœ” แœ‡แœ‰แœ†แœ” แœ‹แœ„แœ”แœ‰แœŽแœ„แœŒแœˆแœ” แœ€แœ…แœ” แœแœแœ†แœ” แœแœ แœ แœ‡แœ’แœ แœ…แœ” แœ‰แœ„แœ”แœƒแœƒแœ‰แœ†แœ’แœ‡แœˆแœ”\nแœ€แœ…แœ” แœŽแœ‘แœ†แœ” แœ…แœ” แœ†แœ‚แœŒแœ” แœแœแœ’แœˆแœ’แœŽแœ…แœ” แœˆ แœ‹แœŽแœŒ แœ€แœ†แœ” แœ‰แœˆแœ”แœ†แœŒแœ”แœ‰แœˆแœ”แœ†แœŒแœ” แœ แœƒแœ‡แœ…แœŽแœˆแœ” แœ€แœ†แœ” แœ‹แœ”แœ„ แœƒแœ‡แœ‰แœ†แœˆแœ” แœแœ’แœŽแœŒแœ” แœ‰แœ’แœˆแœ„แœ”แœƒแœŽแœ“แœŠแœˆแœ” แœ…แœ” แœƒแœ†แœ”แœแœ’แœ‡แœˆแœ” แœ€แœ†แœ” แœŠแœ“แœ‡แœ”แœ‘แœ’ แœ€แœ†แœ” แœ‡แœ‰แœ†แœ” แœ‹แœ„แœ”แœ‰แœŽแœ„แœŒแœˆแœ” แœ€แœ…แœ” แœแœแœ†แœ” แœแœ แœ แœ‡แœ’แœ แœ…แœ” แœ‰แœ„แœ”แœƒแœƒแœ‰แœ†แœ’แœ‡แœˆแœ”\nแœ€แœ…แœ” แœŽแœ‘แœ†แœ” แœ…แœ” แœ†แœ‚แœŒแœ” แœแœแœ’แœˆแœ’แœŽแœ…แœ” แœˆ แœ‹แœŽแœŒ แœ€แœ†แœ” แœ‰แœˆแœ”แœ†แœŒแœ”แœ‰แœˆแœ”แœ†แœŒแœ” แœ แœƒแœ‡แœ…แœŽแœˆแœ” แœ€แœ†แœ” แœ‹แœ”แœ„ แœƒแœ‡แœ‰แœ†แœˆแœ” แœแœ’แœŽแœŒแœ” แœ‰แœ’แœˆแœ„แœ”แœƒแœŽแœ“แœŠแœˆแœ” แœ…แœ” แœƒแœ†แœ”แœแœ’แœ‡แœˆแœ” แœ€แœ†แœ” แœŠแœ“แœ‡แœ”แœ‘แœ’ แœ€แœ†แœ” แœ‡แœ‰แœ†แœ” แœ‹แœ„แœ”แœ‰แœŽแœ„แœŒแœˆแœ” แœ€แœ…แœ” แœแœแœ†แœ” แœแœ แœ แœ‡แœ’แœ แœ…แœ” แœ‰แœ„แœ”แœƒแœƒแœ‰แœ†แœ’แœ‡แœˆแœ”"
  specimen_16: "แœ€แœ…แœ” แœŽแœ‘แœ†แœ” แœ…แœ” แœ†แœ‚แœŒแœ” แœแœแœ’แœˆแœ’แœŽแœ…แœ” แœˆ แœ‹แœŽแœŒ แœ€แœ†แœ” แœ‰แœˆแœ”แœ†แœŒแœ”แœ‰แœˆแœ”แœ†แœŒแœ” แœ แœƒแœ‡แœ…แœŽแœˆแœ” แœ€แœ†แœ” แœ‹แœ”แœ„ แœƒแœ‡แœ‰แœ†แœˆแœ” แœแœ’แœŽแœŒแœ” แœ‰แœ’แœˆแœ„แœ”แœƒแœŽแœ“แœŠแœˆแœ” แœ…แœ” แœƒแœ†แœ”แœแœ’แœ‡แœˆแœ” แœ€แœ†แœ” แœŠแœ“แœ‡แœ”แœ‘แœ’ แœ€แœ†แœ” แœ‡แœ‰แœ†แœ” แœ‹แœ„แœ”แœ‰แœŽแœ„แœŒแœˆแœ” แœ€แœ…แœ” แœแœแœ†แœ” แœแœ แœ แœ‡แœ’แœ แœ…แœ” แœ‰แœ„แœ”แœƒแœƒแœ‰แœ†แœ’แœ‡แœˆแœ”\nแœ€แœ…แœ” แœŽแœ‘แœ†แœ” แœ…แœ” แœ†แœ‚แœŒแœ” แœแœแœ’แœˆแœ’แœŽแœ…แœ” แœˆ แœ‹แœŽแœŒ แœ€แœ†แœ” แœ‰แœˆแœ”แœ†แœŒแœ”แœ‰แœˆแœ”แœ†แœŒแœ” แœ แœƒแœ‡แœ…แœŽแœˆแœ” แœ€แœ†แœ” แœ‹แœ”แœ„ แœƒแœ‡แœ‰แœ†แœˆแœ” แœแœ’แœŽแœŒแœ” แœ‰แœ’แœˆแœ„แœ”แœƒแœŽแœ“แœŠแœˆแœ” แœ…แœ” แœƒแœ†แœ”แœแœ’แœ‡แœˆแœ” แœ€แœ†แœ” แœŠแœ“แœ‡แœ”แœ‘แœ’ แœ€แœ†แœ” แœ‡แœ‰แœ†แœ” แœ‹แœ„แœ”แœ‰แœŽแœ„แœŒแœˆแœ” แœ€แœ…แœ” แœแœแœ†แœ” แœแœ แœ แœ‡แœ’แœ แœ…แœ” แœ‰แœ„แœ”แœƒแœƒแœ‰แœ†แœ’แœ‡แœˆแœ”\nแœ€แœ…แœ” แœŽแœ‘แœ†แœ” แœ…แœ” แœ†แœ‚แœŒแœ” แœแœแœ’แœˆแœ’แœŽแœ…แœ” แœˆ แœ‹แœŽแœŒ แœ€แœ†แœ” แœ‰แœˆแœ”แœ†แœŒแœ”แœ‰แœˆแœ”แœ†แœŒแœ” แœ แœƒแœ‡แœ…แœŽแœˆแœ” แœ€แœ†แœ” แœ‹แœ”แœ„ แœƒแœ‡แœ‰แœ†แœˆแœ” แœแœ’แœŽแœŒแœ” แœ‰แœ’แœˆแœ„แœ”แœƒแœŽแœ“แœŠแœˆแœ” แœ…แœ” แœƒแœ†แœ”แœแœ’แœ‡แœˆแœ” แœ€แœ†แœ” แœŠแœ“แœ‡แœ”แœ‘แœ’ แœ€แœ†แœ” แœ‡แœ‰แœ†แœ” แœ‹แœ„แœ”แœ‰แœŽแœ„แœŒแœˆแœ” แœ€แœ…แœ” แœแœแœ†แœ” แœแœ แœ แœ‡แœ’แœ แœ…แœ” แœ‰แœ„แœ”แœƒแœƒแœ‰แœ†แœ’แœ‡แœˆแœ”\nแœ€แœ…แœ” แœŽแœ‘แœ†แœ” แœ…แœ” แœ†แœ‚แœŒแœ” แœแœแœ’แœˆแœ’แœŽแœ…แœ” แœˆ แœ‹แœŽแœŒ แœ€แœ†แœ” แœ‰แœˆแœ”แœ†แœŒแœ”แœ‰แœˆแœ”แœ†แœŒแœ” แœ แœƒแœ‡แœ…แœŽแœˆแœ” แœ€แœ†แœ” แœ‹แœ”แœ„ แœƒแœ‡แœ‰แœ†แœˆแœ” แœแœ’แœŽแœŒแœ” แœ‰แœ’แœˆแœ„แœ”แœƒแœŽแœ“แœŠแœˆแœ” แœ…แœ” แœƒแœ†แœ”แœแœ’แœ‡แœˆแœ” แœ€แœ†แœ” แœŠแœ“แœ‡แœ”แœ‘แœ’ แœ€แœ†แœ” แœ‡แœ‰แœ†แœ” แœ‹แœ„แœ”แœ‰แœŽแœ„แœŒแœˆแœ” แœ€แœ…แœ” แœแœแœ†แœ” แœแœ แœ แœ‡แœ’แœ แœ…แœ” แœ‰แœ„แœ”แœƒแœƒแœ‰แœ†แœ’แœ‡แœˆแœ”\nแœ€แœ…แœ” แœŽแœ‘แœ†แœ” แœ…แœ” แœ†แœ‚แœŒแœ” แœแœแœ’แœˆแœ’แœŽแœ…แœ” แœˆ แœ‹แœŽแœŒ แœ€แœ†แœ” แœ‰แœˆแœ”แœ†แœŒแœ”แœ‰แœˆแœ”แœ†แœŒแœ” แœ แœƒแœ‡แœ…แœŽแœˆแœ” แœ€แœ†แœ” แœ‹แœ”แœ„ แœƒแœ‡แœ‰แœ†แœˆแœ” แœแœ’แœŽแœŒแœ” แœ‰แœ’แœˆแœ„แœ”แœƒแœŽแœ“แœŠแœˆแœ” แœ…แœ” แœƒแœ†แœ”แœแœ’แœ‡แœˆแœ” แœ€แœ†แœ” แœŠแœ“แœ‡แœ”แœ‘แœ’ แœ€แœ†แœ” แœ‡แœ‰แœ†แœ” แœ‹แœ„แœ”แœ‰แœŽแœ„แœŒแœˆแœ” แœ€แœ…แœ” แœแœแœ†แœ” แœแœ แœ แœ‡แœ’แœ แœ…แœ” แœ‰แœ„แœ”แœƒแœƒแœ‰แœ†แœ’แœ‡แœˆแœ”"
}

Ordered sample glyphs

This key overrides the Glyphs page on the UI. Example: Noto Emoji. Not recommended to use in other fonts than icon/symbols one.

Example:

ordered_sample_glyphs {
  name: "Smileys and emotions"
  glyphs: "๐Ÿ˜€ ๐Ÿ˜ƒ ๐Ÿ˜„ ๐Ÿ˜ ๐Ÿ˜† ๐Ÿ˜… ๐Ÿ˜‚ ๐Ÿคฃ ๐Ÿ˜ญ ๐Ÿ˜‰ ๐Ÿ˜— ๐Ÿ˜™ ๐Ÿ˜š ๐Ÿ˜˜ ๐Ÿฅฐ ๐Ÿ˜ ๐Ÿคฉ ๐Ÿฅณ ๐Ÿ™ƒ ๐Ÿ™‚ ๐Ÿฅฒ ๐Ÿฅน ๐Ÿ˜‹ ๐Ÿ˜› ๐Ÿ˜ ๐Ÿ˜œ ๐Ÿคช ๐Ÿ˜‡ ๐Ÿ˜Š โ˜บ๏ธ ๐Ÿ˜ ๐Ÿ˜Œ ๐Ÿ˜” ๐Ÿ˜‘ ๐Ÿ˜ ๐Ÿ˜ถ ๐Ÿซก ๐Ÿค” ๐Ÿคซ ๐Ÿซข ๐Ÿคญ ๐Ÿฅฑ ๐Ÿค— ๐Ÿซฃ ๐Ÿ˜ฑ ๐Ÿคจ ๐Ÿง ๐Ÿ˜’ ๐Ÿ™„ ๐Ÿ˜ฎโ€๐Ÿ’จ ๐Ÿ˜ค ๐Ÿ˜  ๐Ÿ˜ก ๐Ÿคฌ ๐Ÿฅบ ๐Ÿ˜Ÿ ๐Ÿ˜ฅ ๐Ÿ˜ข โ˜น๏ธ ๐Ÿ™ ๐Ÿซค ๐Ÿ˜• ๐Ÿค ๐Ÿ˜ฐ ๐Ÿ˜จ ๐Ÿ˜ง ๐Ÿ˜ฆ ๐Ÿ˜ฎ ๐Ÿ˜ฏ ๐Ÿ˜ฒ ๐Ÿ˜ณ ๐Ÿคฏ ๐Ÿ˜ฌ ๐Ÿ˜“ ๐Ÿ˜ž ๐Ÿ˜– ๐Ÿ˜ฃ ๐Ÿ˜ฉ ๐Ÿ˜ซ ๐Ÿ˜ต ๐Ÿ˜ตโ€๐Ÿ’ซ ๐Ÿ™‚โ€โ†”๏ธ ๐Ÿ™‚โ€โ†•๏ธ ๐Ÿซฅ ๐Ÿ˜ด ๐Ÿ˜ช ๐Ÿคค ๐ŸŒ› ๐ŸŒœ ๐ŸŒš ๐ŸŒ ๐ŸŒž ๐Ÿซ  ๐Ÿ˜ถโ€๐ŸŒซ๏ธ ๐Ÿฅด ๐Ÿฅต ๐Ÿฅถ ๐Ÿคข ๐Ÿคฎ ๐Ÿคง ๐Ÿค’ ๐Ÿค• ๐Ÿ˜ท ๐Ÿค  ๐Ÿค‘ ๐Ÿ˜Ž ๐Ÿค“ ๐Ÿฅธ ๐Ÿคฅ ๐Ÿคก ๐Ÿ‘ป ๐Ÿ’ฉ ๐Ÿ‘ฝ ๐Ÿค– ๐ŸŽƒ ๐Ÿ˜ˆ ๐Ÿ‘ฟ ๐Ÿ‘น ๐Ÿ‘บ ๐Ÿ”ฅ ๐Ÿ’ซ โญ ๐ŸŒŸ โœจ ๐Ÿ’ฅ ๐Ÿ’ฏ ๐Ÿ’ข ๐Ÿ’จ ๐Ÿ’ฆ ๐Ÿซง ๐Ÿ’ค ๐Ÿ•ณ๏ธ ๐ŸŽ‰ ๐ŸŽŠ ๐Ÿ™ˆ ๐Ÿ™‰ ๐Ÿ™Š ๐Ÿ˜บ ๐Ÿ˜ธ ๐Ÿ˜น ๐Ÿ˜ป ๐Ÿ˜ผ ๐Ÿ˜ฝ ๐Ÿ™€ ๐Ÿ˜ฟ ๐Ÿ˜พ โค๏ธ ๐Ÿงก ๐Ÿ’› ๐Ÿ’š ๐Ÿ’™ ๐Ÿ’œ ๐ŸคŽ ๐Ÿ–ค ๐Ÿค โ™ฅ๏ธ ๐Ÿ’˜ ๐Ÿ’ ๐Ÿ’– ๐Ÿ’— ๐Ÿ’“ ๐Ÿ’ž ๐Ÿ’• ๐Ÿ’Œ ๐Ÿ’Ÿ โฃ๏ธ โค๏ธโ€๐Ÿฉน ๐Ÿ’” โค๏ธโ€๐Ÿ”ฅ ๐Ÿ’‹ ๐Ÿซ‚ ๐Ÿ‘ฅ ๐Ÿ‘ค ๐Ÿ—ฃ๏ธ ๐Ÿ‘ฃ ๐Ÿง  ๐Ÿซ€ ๐Ÿซ ๐Ÿฉธ ๐Ÿฆ  ๐Ÿฆท ๐Ÿฆด โ˜ ๏ธ ๐Ÿ’€ ๐Ÿ‘€ ๐Ÿ‘๏ธ ๐Ÿ‘„ ๐Ÿซฆ ๐Ÿ‘… ๐Ÿ‘ƒ ๐Ÿ‘‚ ๐Ÿฆป ๐Ÿฆถ ๐Ÿฆต ๐Ÿฆฟ ๐Ÿฆพ ๐Ÿ’ช ๐Ÿ‘ ๐Ÿ‘Ž ๐Ÿ‘ ๐Ÿซถ ๐Ÿ™Œ ๐Ÿ‘ ๐Ÿคฒ ๐Ÿค ๐Ÿคœ ๐Ÿค› โœŠ ๐Ÿ‘Š ๐Ÿซณ ๐Ÿซด ๐Ÿซฑ ๐Ÿซฒ ๐Ÿคš ๐Ÿ‘‹ ๐Ÿ–๏ธ โœ‹ ๐Ÿ–– ๐ŸคŸ ๐Ÿค˜ โœŒ๏ธ ๐Ÿคž ๐Ÿซฐ ๐Ÿค™ ๐ŸคŒ ๐Ÿค ๐Ÿ‘Œ ๐Ÿ–• โ˜๏ธ ๐Ÿ‘† ๐Ÿ‘‡ ๐Ÿ‘‰ ๐Ÿ‘ˆ ๐Ÿซต โœ๏ธ ๐Ÿคณ ๐Ÿ™ ๐Ÿ’…"
}